<commit_before>#Virtual Box

Just for your laptop.

---

## Overview
The VirtualBox driver registers a storage driver named `virtualbox` with the
`REX-Ray` driver manager and is used by VirtualBox VM's to to connect and
manage volumes provided by Virtual Box.

## Pre-Requisites
In order to leverage the `virtualbox` driver, REX-Ray must be located on each
VM that you wish to be able to consume external volumes.  The driver
leverages the `vboxwebserv` HTTP SOAP API which is a process that must be
started from the VirtualBox *host* (ie OS X) using `vboxwebsrv -H 0.0.0.0 -v` or
additionally with `-b` for running in the background.  This allows the VMs
running `REX-Ray` to remotely make calls to the underlying VirtualBox
application.  A test for connectivity can be done with
`telnet virtualboxip 18083` from the VM.  The `virtualboxip` is what you
would put in the `endpoint` value.

It is optional to leverage authentication.  The HTTP SOAP API can have
authentication disabled by running
`VBoxManage setproperty websrvauthlibrary null`.

Hot-Plugging is required, which limits the usefulness of this driver to `SATA`
only.  Ensure that your VM has *pre-created* this controller and it is
named `SATA`.  Otherwise the `controllerName` field must be populated
with the name of the controller you wish to use.

VirtualBox 5.0.10+ must be used.

## Configuration
The following is an example configuration of the VirtualBox driver.  
The `localMachineNameOrId` parameter is for development use where you force
REX-Ray to use a specific VM identity.  Choose a `volumePath` to store the
volume files or virtual disks.  This path should be created ahead of time.


```yaml
virtualbox:
  endpoint: http://virtualboxhost:18083
  userName: optional
  password: <PASSWORD>
  tls: false
  volumePath: /Users/your_user/VirtualBox Volumes
  controllerName: name
  localMachineNameOrId: forDevelopmentUse
```

For information on the equivalent environment variable and CLI flag names
please see the section on how non top-level configuration properties are
[transformed](./config/#all-other-properties).
<commit_msg>Updated virtualbox docs for port count<commit_after>#Virtual Box

Just for your laptop.

---

## Overview
The VirtualBox driver registers a storage driver named `virtualbox` with the
`REX-Ray` driver manager and is used by VirtualBox VM's to to connect and
manage volumes provided by Virtual Box.

## Pre-Requisites
In order to leverage the `virtualbox` driver, REX-Ray must be located on each
VM that you wish to be able to consume external volumes.  The driver
leverages the `vboxwebserv` HTTP SOAP API which is a process that must be
started from the VirtualBox *host* (ie OS X) using `vboxwebsrv -H 0.0.0.0 -v` or
additionally with `-b` for running in the background.  This allows the VMs
running `REX-Ray` to remotely make calls to the underlying VirtualBox
application.  A test for connectivity can be done with
`telnet virtualboxip 18083` from the VM.  The `virtualboxip` is what you
would put in the `endpoint` value.

It is optional to leverage authentication.  The HTTP SOAP API can have
authentication disabled by running
`VBoxManage setproperty websrvauthlibrary null`.

Hot-Plugging is required, which limits the usefulness of this driver to `SATA`
only.  Ensure that your VM has *pre-created* this controller and it is
named `SATA`.  Otherwise the `controllerName` field must be populated
with the name of the controller you wish to use.  The port count must be set
manually as it cannot be increased when the VMs are on.  A count of `30`
is sugggested.

VirtualBox 5.0.10+ must be used.

## Configuration
The following is an example configuration of the VirtualBox driver.  
The `localMachineNameOrId` parameter is for development use where you force
REX-Ray to use a specific VM identity.  Choose a `volumePath` to store the
volume files or virtual disks.  This path should be created ahead of time.


```yaml
virtualbox:
  endpoint: http://virtualboxhost:18083
  userName: optional
  password: <PASSWORD>
  tls: false
  volumePath: /Users/your_user/VirtualBox Volumes
  controllerName: name
  localMachineNameOrId: forDevelopmentUse
```

For information on the equivalent environment variable and CLI flag names
please see the section on how non top-level configuration properties are
[transformed](./config/#all-other-properties).

{'fraction_non_alphanumeric': 0.0569198990130824, 'fraction_numerical': 0.008721597429423916, 'mean_word_length': 4.468005018820577, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7142870', 'n_tokens_mistral': 1234, 'n_tokens_neox': 1169, 'n_words': 617}