1
0
Fork 0
virtualbox/doc/manual/en_US/dita/topics/harddiskcontrollers.dita
Daniel Baumann 2b3ba1f3e4
Merging upstream version 7.1.8-dfsg.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-24 20:41:59 +02:00

194 lines
13 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
<topic xml:lang="en-us" id="harddiskcontrollers">
<title>Hard Disk Controllers</title>
<body>
<p>In a computing device, hard disks and CD/DVD drives are connected to a device called a hard disk controller,
which drives hard disk operation and data transfers. <ph conkeyref="vbox-conkeyref-phrases/product-name"/> can
emulate the most common types of hard disk controllers typically found in computing devices: IDE, SATA (AHCI),
SCSI, SAS, USB-based, NVMe and virtio-scsi mass storage devices. </p>
<ul>
<li>
<p><b outputclass="bold">IDE (ATA)</b> controllers are a backward-compatible yet very
advanced extension of the disk controller in the IBM PC/AT (1984). Initially, this
interface worked only with hard disks, but was later extended to also support CD-ROM
drives and other types of removable media. In physical PCs, this standard uses flat ribbon
parallel cables with 40 or 80 wires. Each such cable can connect two devices, called
device 0 and device 1, to a controller. Typical PCs had two connectors for such cables. As
a result, support for up to four IDE devices was most common: primary device 0, primary
device 1, secondary device 0, and secondary device 1. </p>
<p>In <ph conkeyref="vbox-conkeyref-phrases/product-name"/>, each virtual machine may have one IDE controller
enabled, which gives you up to four virtual storage devices that you can attach to the machine. By default,
one of these virtual storage devices, device 0 on the secondary channel, is preconfigured to be the virtual
machine's virtual CD/DVD drive. However, you can change the default setting. </p>
<p>Even if your guest OS has no support for SCSI or SATA devices, it should always be able to see an IDE
controller. </p>
<p>You can also select which exact type of IDE controller hardware <ph
conkeyref="vbox-conkeyref-phrases/product-name"/> should present to the virtual machine: PIIX3, PIIX4, or
ICH6. This makes no difference in terms of performance, but if you import a virtual machine from another
virtualization product, the OS in that machine may expect a particular controller type and crash if it is not
found. </p>
<p>After you have created a new virtual machine with the <b outputclass="bold">New Virtual Machine</b> wizard in
<ph conkeyref="vbox-conkeyref-phrases/vbox-mgr"/>, you will typically see one IDE controller in the
machine's <b outputclass="bold">Storage</b> settings. The virtual CD/DVD drive will be attached to one of the
four ports of this controller. </p>
</li>
<li>
<p><b outputclass="bold">Serial ATA (SATA)</b> is a more
recent standard than IDE. Compared to IDE, it supports both
much higher speeds and more devices per controller. Also, with
physical hardware, devices can be added and removed while the
system is running. The standard interface for SATA controllers
is called Advanced Host Controller Interface (AHCI).
</p>
<p>Like a real SATA controller, <ph conkeyref="vbox-conkeyref-phrases/product-name"/>'s virtual SATA controller
operates faster and also consumes fewer CPU resources than the virtual IDE controller. Also, this enables you
to connect up to 30 virtual hard disks to one machine instead of just three, when compared to the <ph
conkeyref="vbox-conkeyref-phrases/product-name"/> IDE controller with a DVD drive attached. </p>
<p>
For this reason, depending on the selected guest OS,
<ph conkeyref="vbox-conkeyref-phrases/product-name"/> uses SATA as the default for newly created
virtual machines. One virtual SATA controller is created by
default, and the default disk that is created with a new VM is
attached to this controller.
</p>
<note>
<p>The entire SATA controller and the virtual disks attached to it, including those in IDE compatibility mode,
will not be seen by OSes that do not have device support for AHCI. In particular, <i>there is no support for
AHCI in Windows versions before Windows Vista</i>. Legacy Windows versions such as Windows XP, even with
SP3 installed, will not see such disks unless you install additional drivers. It is possible to switch from
IDE to SATA after installation by installing the SATA drivers and changing the controller type in the VM <b
outputclass="bold">Settings</b> window. </p>
<p><ph conkeyref="vbox-conkeyref-phrases/product-name"/> recommends the Intel Matrix Storage drivers, which
can be downloaded from <ph>http://downloadcenter.intel.com/Product_Filter.aspx?ProductID=2101</ph>. </p>
</note>
<p>To add a SATA controller to a machine for which it has not been enabled by default, either because it was
created by an earlier version of <ph conkeyref="vbox-conkeyref-phrases/product-name"/>, or because SATA is not
supported by default by the selected guest OS, do the following. Go to the <b outputclass="bold">Storage</b>
page of the machine's <b outputclass="bold">Settings</b> window, click <b outputclass="bold">Add
Controller</b> under the Storage Tree box and then select <b outputclass="bold">Add SATA Controller</b>. The
new controller appears as a separate PCI device in the virtual machine, and you can add virtual disks to it. </p>
<p>To change the IDE compatibility mode settings for the SATA controller, see <xref
href="vboxmanage-storagectl.dita"/>. </p>
</li>
<li>
<p><b outputclass="bold">SCSI</b> is another established
industry standard, standing for Small Computer System
Interface. SCSI is as a generic interface for data transfer
between all kinds of devices, including storage devices. SCSI
is still used for connecting some hard disks and tape devices,
but it has mostly been displaced in commodity hardware. It is
still in common use in high-performance workstations and
servers.
</p>
<p>Primarily for compatibility with other virtualization software, <ph
conkeyref="vbox-conkeyref-phrases/product-name"/> optionally supports LSI Logic and BusLogic SCSI
controllers, to each of which up to fifteen virtual hard disks can be attached. </p>
<p>To enable a SCSI controller, on the <b outputclass="bold">Storage</b> page of a virtual machine's <b
outputclass="bold">Settings</b> window, click <b outputclass="bold">Add Controller</b> under the Storage
Tree box and then select <b outputclass="bold">Add SCSI Controller</b>. The new controller appears as a
separate PCI device in the virtual machine. </p>
<note>
<p>As with the other controller types, a SCSI controller will only be seen by OSes with device support for it.
Windows 2003 and later ships with drivers for the LSI Logic controller, while Windows NT 4.0 and Windows
2000 ships with drivers for the BusLogic controller. Windows XP ships with drivers for neither. </p>
</note>
</li>
<li>
<p><b outputclass="bold">Serial Attached SCSI (SAS)</b> is
another bus standard which uses the SCSI command set. As
opposed to SCSI physical devices, serial cables are used
instead of parallel cables. This simplifies physical device
connections. In some ways, therefore, SAS is to SCSI what SATA
is to IDE: it enables more reliable and faster connections.
</p>
<p>To support high-end guests which require SAS controllers, <ph conkeyref="vbox-conkeyref-phrases/product-name"
/> emulates a LSI Logic SAS controller, which can be enabled much the same way as a SCSI controller. At this
time, up to 255 devices can be connected to the SAS controller. </p>
<note>
<p>As with SATA, the SAS controller will only be seen by OSes with device support for it. In particular,
<i>there is no support for SAS in Windows before Windows Vista</i>. So Windows XP, even SP3, will not see
such disks unless you install additional drivers. </p>
</note>
</li>
<li>
<p>The <b outputclass="bold">USB mass storage device class</b> is a standard to connect external storage devices
like hard disks or flash drives to a host through USB. All major OSes support these devices and ship generic
drivers making third-party drivers superfluous. In particular, legacy OSes without support for SATA
controllers may benefit from USB mass storage devices. </p>
<p>The virtual USB storage controller offered by <ph conkeyref="vbox-conkeyref-phrases/product-name"/> works
differently to the other storage controller types. While most storage controllers appear as a single PCI
device to the guest with multiple disks attached to it, the USB-based storage controller does not appear as
virtual storage controller. Each disk attached to the controller appears as a dedicated USB device to the
guest. </p>
<note>
<p>Booting from drives attached using USB is only supported when EFI is used as the BIOS lacks USB support. </p>
</note>
</li>
<li>
<p><b outputclass="bold">Non volatile memory express
(NVMe)</b> is a standard for connecting non volatile
memory (NVM) directly over PCI Express to lift the bandwidth
limitation of the previously used SATA protocol for
solid-state devices. Unlike other standards the command set is
very simple in order to achieve maximum throughput and is not
compatible with ATA or SCSI. OSes need to support NVMe devices
to make use of them. For example, Windows 8.1 added native
NVMe support. For Windows 7, native support was added with an
update.
</p>
<p>The NVMe controller is part of the extension pack. </p>
<note>
<p>Booting from drives attached using NVMe is only supported when EFI is used as the BIOS lacks the
appropriate driver. </p>
</note>
</li>
<li>
<p><b outputclass="bold">Virtual I/O Device SCSI</b> is a
standard to connect virtual storage devices like hard disks or
optical drives to a VM. Recent Linux and Windows versions
support these devices, but Windows needs additional drivers.
Currently virtio-scsi controller support is experimental.
</p>
<note>
<p>The virtio-scsi controller will only be seen by OSes with device support for it. In particular, <i>there is
no built-in support in Windows</i>. So Windows will not see such disks unless you install additional
drivers. </p>
</note>
</li>
</ul>
<p>In summary, <ph conkeyref="vbox-conkeyref-phrases/product-name"/> gives you the following categories of virtual
storage slots: </p>
<ul>
<li>
<p>Four slots attached to the traditional IDE controller, which are always present. One of these is typically a
virtual CD/DVD drive. </p>
</li>
<li>
<p>30 slots attached to the SATA controller, if enabled and supported by the guest OS. </p>
</li>
<li>
<p>15 slots attached to the SCSI controller, if enabled and supported by the guest OS. </p>
</li>
<li>
<p>Up to 255 slots attached to the SAS controller, if enabled and supported by the guest OS. </p>
</li>
<li>
<p>Eight slots attached to the virtual USB controller, if enabled and supported by the guest OS. </p>
</li>
<li>
<p>Up to 255 slots attached to the NVMe controller, if enabled and supported by the guest OS. </p>
</li>
<li>
<p>Up to 256 slots attached to the virtio-scsi controller, if enabled and supported by the guest OS. </p>
</li>
</ul>
<p>Given this large choice of storage controllers, you may not know which one to choose. In general, you should
avoid IDE unless it is the only controller supported by your guest. Whether you use SATA, SCSI, or SAS does not
make any real difference. The variety of controllers is only supplied by <ph
conkeyref="vbox-conkeyref-phrases/product-name"/> for compatibility with existing hardware and other
hypervisors. </p>
</body>
</topic>