Mixing IDE and SATA controllers with VirtualBox

The default configuration for Oracle VirtualBox includes a mixture of controller types. Virtualization pro Rick Vanover explains considerations associated with each type.

There are two types of hypervisors typically associated with server virtualization: type I and type II. Type I hypervisors include Microsoft Hyper-V Server 2008, VMware vSphere Hypervisor (ESXi), and Citrix XenServer; type II hypervisors include VMware Workstation, VMware Player, VMware Server, and VirtualBox, one of my longtime favorites. VirtualBox has open source roots from its Sun days, and now is branded as Oracle VM VirtualBox.

Virtual machines created with VirtualBox are by default given two controller types: IDE and SATA. These controller types can process optical and virtual machine disk files, but they do so very differently. The typical virtual machine created in VirtualBox will have these two controllers primarily for optical and fixed disk access. The IDE controller, enumerated first in the virtual machine, is better suited to provide access to a virtual CD-ROM image (.ISO) file. The SATA controller, enumerated second in the virtual machine, is where disk files should be placed. The VirtualBox disk format is .VDI, but it can also transparently work with VMware's .VMDK format and the Citrix and Microsoft .VHD format. Figure A shows these two controllers enumerated in a VirtualBox virtual machine configuration. Figure A

Click the image to enlarge.

The issue arises when a disk is added to the virtual machine. .VDI disk files and .ISO CD-ROM images can be added to either controller, but that doesn't necessarily ensure that the expected behavior will be occur. Each controller has the ability to add items, and the entire virtual machine can add additional controllers, which can be SAS, SCSI, floppy, or more IDE and SATA controllers.

The four buttons at the bottom of the storage configuration area of the virtual machine allow the attachments to be managed (Figure B). Figure B

Click the image to enlarge.

The way VirtualBox has the disk resources enumerated within the virtual machine's inventory makes it easy to add a disk resource to the wrong controller. For example, take a Windows virtual machine: If you have installed the operating system on the SATA controller and have an IDE controller in place for CD-ROM access for applications and installations such as Guest Additions (the VirtualBox driver set), more drives should be added to the SATA controller or to an additional controller. If the additional virtual disk file is added to the IDE controller, there can be interference with the virtual machine's boot sequence and make the virtual machine unable to boot on the .VDI file with the operating system installed. (Note: This scenario is based on my real-world experiences.)

Have you done much with the VirtualBox storage controller configuration? If so, what customizations have you done? Let us know in the discussion.