Understanding and Configuring VirtualBox Virtual Hard Disks
Most operating systems require access to some form of storage space, typically in the form of a disk drive, to store operating system files and user data. The guest operating systems supported by VirtualBox are no exception to this rule and to meet this requirement, VirtualBox provides a number of virtual hard disk drive configuration options, each of which is the topic of this chapter.
VirtualBox Virtual Hard Disk Controllers
VirtualBox provides access to storage by presenting virtual hard disk controllers to virtual machines. Although controllers are essentially software emulations of hard disk controllers, as far as the guest operating systems are concerned, these appear as real, physical devices. A number of different standards of disk controller have developed over the years and VirtualBox provides virtual versions of the following standards:
- Serial ATA (SATA/AHCI) - The latest drive controller standard, SATA provides higher levels of storage access performance and, unlike the older IDE standard, does not impose restrictions on the number of devices that can be attached to a single disk controller. In addition, SATA is designed to allow disk drives to be added and removed without powering down the system. SATA disk controllers may be configured to run in IDE compatibility mode to allow access from guest operating systems lacking Advanced Host Controller Interface (AHCI) support. VirtualBox allows up to 30 SATA ports to be configured per virtual machine. The first four of these are configured by default to operate in IDE compatibility mode. The SATA controller is disabled by default for new Virtual Box virtual machines. To enable the SATA controller, select the required virtual machine, click on Settings in the toolbar, select for the selected virtual machine, select Hard Disks from the list of categories and set the Enable SATA Controller check box. Finally, click OK to commit the change.
- Integrated Drive Electronics (IDE) - Perhaps the most widely used disk controller standard, these controllers are now being replaced in favor of the SATA standard. The VirtualBox virtual IDE disk controller allows up to four storage devices to be connected to a virtual machine using the Primary Master, Primary Slave, Secondary Master and Secondary Slave slots. The Secondary Master connection is reserved for CD/DVD devices, allowing for the attachment of three virtual hard disks to the controller. If additional disks are required, it will be necessary to enable the VirtualBox SATA controller for the virtual machine as outlined above.
- Small Computer System Interface (SCSI) - A popular storage connection standard, SCSI is based on a bus topology allowing up to 16 stroage devices to be connected to a disk controller in a daisy chain configuration. Each device is assigned a unique SCSI identifier to distinguish it from other devices on the SCSI bus. VirtualBox provides emulation for BusLogic and LsiLogic 53c1030 SCSI disk controllers. SCSI virtual disk controller support is currently categorized as experimental in VirtualBox 2.1.
Virtual Disk Images and Types
The most common method for providing disk storage to virtual machines is through the use of virtual disk image files. A virtual disk image file is nothing more than a file residing on the file system of the host which is treated by a virtual disk controller in the same way as a physical disk drive is used. The guest operating system interacts with this image through a virtual disk controller and is completely unaware of the fact that what it thinks is a physical hard disk drive is actually a file.
Virtual disk images can be created as either fixed-size or dynamically expanding:
- Dynamically Expanding - The disk image file is created at a minimal size and then grows automatically as more space is needed by the guest operating system (up to a specified maximum). This has the advantage that disk space on the host is not used until it is needed, but can result in slower performance if the disk needs to be enlarged frequently.
- Fixed-size - The disk image file is created to the specified size. This pre-allocates all the requested disk space regardless of whether it is immediately needed, but results in improved disk write performance.