1 | <?xml version='1.0' encoding='UTF-8'?>
|
---|
2 | <!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
|
---|
3 | <topic xml:lang="en-us" id="harddiskcontrollers">
|
---|
4 | <title>Hard Disk Controllers</title>
|
---|
5 |
|
---|
6 | <body>
|
---|
7 | <p>In a computing device, hard disks and CD/DVD drives are connected to a device called a hard disk controller,
|
---|
8 | which drives hard disk operation and data transfers. <ph conkeyref="vbox-conkeyref-phrases/product-name"/> can
|
---|
9 | emulate the most common types of hard disk controllers typically found in computing devices: IDE, SATA (AHCI),
|
---|
10 | SCSI, SAS, USB-based, NVMe and virtio-scsi mass storage devices. </p>
|
---|
11 | <ul>
|
---|
12 | <li>
|
---|
13 | <p><b outputclass="bold">IDE (ATA)</b> controllers are a backward-compatible yet very
|
---|
14 | advanced extension of the disk controller in the IBM PC/AT (1984). Initially, this
|
---|
15 | interface worked only with hard disks, but was later extended to also support CD-ROM
|
---|
16 | drives and other types of removable media. In physical PCs, this standard uses flat ribbon
|
---|
17 | parallel cables with 40 or 80 wires. Each such cable can connect two devices, called
|
---|
18 | device 0 and device 1, to a controller. Typical PCs had two connectors for such cables. As
|
---|
19 | a result, support for up to four IDE devices was most common: primary device 0, primary
|
---|
20 | device 1, secondary device 0, and secondary device 1. </p>
|
---|
21 | <p>In <ph conkeyref="vbox-conkeyref-phrases/product-name"/>, each virtual machine may have one IDE controller
|
---|
22 | enabled, which gives you up to four virtual storage devices that you can attach to the machine. By default,
|
---|
23 | one of these virtual storage devices, device 0 on the secondary channel, is preconfigured to be the virtual
|
---|
24 | machine's virtual CD/DVD drive. However, you can change the default setting. </p>
|
---|
25 | <p>Even if your guest OS has no support for SCSI or SATA devices, it should always be able to see an IDE
|
---|
26 | controller. </p>
|
---|
27 | <p>You can also select which exact type of IDE controller hardware <ph
|
---|
28 | conkeyref="vbox-conkeyref-phrases/product-name"/> should present to the virtual machine: PIIX3, PIIX4, or
|
---|
29 | ICH6. This makes no difference in terms of performance, but if you import a virtual machine from another
|
---|
30 | virtualization product, the OS in that machine may expect a particular controller type and crash if it is not
|
---|
31 | found. </p>
|
---|
32 | <p>After you have created a new virtual machine with the <b outputclass="bold">New Virtual Machine</b> wizard in
|
---|
33 | <ph conkeyref="vbox-conkeyref-phrases/vbox-mgr"/>, you will typically see one IDE controller in the
|
---|
34 | machine's <b outputclass="bold">Storage</b> settings. The virtual CD/DVD drive will be attached to one of the
|
---|
35 | four ports of this controller. </p>
|
---|
36 | </li>
|
---|
37 | <li>
|
---|
38 | <p><b outputclass="bold">Serial ATA (SATA)</b> is a more
|
---|
39 | recent standard than IDE. Compared to IDE, it supports both
|
---|
40 | much higher speeds and more devices per controller. Also, with
|
---|
41 | physical hardware, devices can be added and removed while the
|
---|
42 | system is running. The standard interface for SATA controllers
|
---|
43 | is called Advanced Host Controller Interface (AHCI).
|
---|
44 | </p>
|
---|
45 | <p>Like a real SATA controller, <ph conkeyref="vbox-conkeyref-phrases/product-name"/>'s virtual SATA controller
|
---|
46 | operates faster and also consumes fewer CPU resources than the virtual IDE controller. Also, this enables you
|
---|
47 | to connect up to 30 virtual hard disks to one machine instead of just three, when compared to the <ph
|
---|
48 | conkeyref="vbox-conkeyref-phrases/product-name"/> IDE controller with a DVD drive attached. </p>
|
---|
49 | <p>
|
---|
50 | For this reason, depending on the selected guest OS,
|
---|
51 | <ph conkeyref="vbox-conkeyref-phrases/product-name"/> uses SATA as the default for newly created
|
---|
52 | virtual machines. One virtual SATA controller is created by
|
---|
53 | default, and the default disk that is created with a new VM is
|
---|
54 | attached to this controller.
|
---|
55 | </p>
|
---|
56 | <note>
|
---|
57 | <p>The entire SATA controller and the virtual disks attached to it, including those in IDE compatibility mode,
|
---|
58 | will not be seen by OSes that do not have device support for AHCI. In particular, <i>there is no support for
|
---|
59 | AHCI in Windows versions before Windows Vista</i>. Legacy Windows versions such as Windows XP, even with
|
---|
60 | SP3 installed, will not see such disks unless you install additional drivers. It is possible to switch from
|
---|
61 | IDE to SATA after installation by installing the SATA drivers and changing the controller type in the VM <b
|
---|
62 | outputclass="bold">Settings</b> window. </p>
|
---|
63 | <p><ph conkeyref="vbox-conkeyref-phrases/product-name"/> recommends the Intel Matrix Storage drivers, which
|
---|
64 | can be downloaded from <ph>http://downloadcenter.intel.com/Product_Filter.aspx?ProductID=2101</ph>. </p>
|
---|
65 | </note>
|
---|
66 | <p>To add a SATA controller to a machine for which it has not been enabled by default, either because it was
|
---|
67 | created by an earlier version of <ph conkeyref="vbox-conkeyref-phrases/product-name"/>, or because SATA is not
|
---|
68 | supported by default by the selected guest OS, do the following. Go to the <b outputclass="bold">Storage</b>
|
---|
69 | page of the machine's <b outputclass="bold">Settings</b> window, click <b outputclass="bold">Add
|
---|
70 | Controller</b> under the Storage Tree box and then select <b outputclass="bold">Add SATA Controller</b>. The
|
---|
71 | new controller appears as a separate PCI device in the virtual machine, and you can add virtual disks to it. </p>
|
---|
72 | <p>To change the IDE compatibility mode settings for the SATA controller, see <xref href="../cli_topics/vboxmanage-storagectl.dita"/>. </p>
|
---|
73 | </li>
|
---|
74 | <li>
|
---|
75 | <p><b outputclass="bold">SCSI</b> is another established
|
---|
76 | industry standard, standing for Small Computer System
|
---|
77 | Interface. SCSI is as a generic interface for data transfer
|
---|
78 | between all kinds of devices, including storage devices. SCSI
|
---|
79 | is still used for connecting some hard disks and tape devices,
|
---|
80 | but it has mostly been displaced in commodity hardware. It is
|
---|
81 | still in common use in high-performance workstations and
|
---|
82 | servers.
|
---|
83 | </p>
|
---|
84 | <p>Primarily for compatibility with other virtualization software, <ph
|
---|
85 | conkeyref="vbox-conkeyref-phrases/product-name"/> optionally supports LSI Logic and BusLogic SCSI
|
---|
86 | controllers, to each of which up to fifteen virtual hard disks can be attached. </p>
|
---|
87 | <p>To enable a SCSI controller, on the <b outputclass="bold">Storage</b> page of a virtual machine's <b
|
---|
88 | outputclass="bold">Settings</b> window, click <b outputclass="bold">Add Controller</b> under the Storage
|
---|
89 | Tree box and then select <b outputclass="bold">Add SCSI Controller</b>. The new controller appears as a
|
---|
90 | separate PCI device in the virtual machine. </p>
|
---|
91 | <note>
|
---|
92 | <p>As with the other controller types, a SCSI controller will only be seen by OSes with device support for it.
|
---|
93 | Windows 2003 and later ships with drivers for the LSI Logic controller, while Windows NT 4.0 and Windows
|
---|
94 | 2000 ships with drivers for the BusLogic controller. Windows XP ships with drivers for neither. </p>
|
---|
95 | </note>
|
---|
96 | </li>
|
---|
97 | <li>
|
---|
98 | <p><b outputclass="bold">Serial Attached SCSI (SAS)</b> is
|
---|
99 | another bus standard which uses the SCSI command set. As
|
---|
100 | opposed to SCSI physical devices, serial cables are used
|
---|
101 | instead of parallel cables. This simplifies physical device
|
---|
102 | connections. In some ways, therefore, SAS is to SCSI what SATA
|
---|
103 | is to IDE: it enables more reliable and faster connections.
|
---|
104 | </p>
|
---|
105 | <p>To support high-end guests which require SAS controllers, <ph conkeyref="vbox-conkeyref-phrases/product-name"
|
---|
106 | /> emulates a LSI Logic SAS controller, which can be enabled much the same way as a SCSI controller. At this
|
---|
107 | time, up to 255 devices can be connected to the SAS controller. </p>
|
---|
108 | <note>
|
---|
109 | <p>As with SATA, the SAS controller will only be seen by OSes with device support for it. In particular,
|
---|
110 | <i>there is no support for SAS in Windows before Windows Vista</i>. So Windows XP, even SP3, will not see
|
---|
111 | such disks unless you install additional drivers. </p>
|
---|
112 | </note>
|
---|
113 | </li>
|
---|
114 | <li>
|
---|
115 | <p>The <b outputclass="bold">USB mass storage device class</b> is a standard to connect external storage devices
|
---|
116 | like hard disks or flash drives to a host through USB. All major OSes support these devices and ship generic
|
---|
117 | drivers making third-party drivers superfluous. In particular, legacy OSes without support for SATA
|
---|
118 | controllers may benefit from USB mass storage devices. </p>
|
---|
119 | <p>The virtual USB storage controller offered by <ph conkeyref="vbox-conkeyref-phrases/product-name"/> works
|
---|
120 | differently to the other storage controller types. While most storage controllers appear as a single PCI
|
---|
121 | device to the guest with multiple disks attached to it, the USB-based storage controller does not appear as
|
---|
122 | virtual storage controller. Each disk attached to the controller appears as a dedicated USB device to the
|
---|
123 | guest. </p>
|
---|
124 | <note>
|
---|
125 | <p>Booting from drives attached using USB is only supported when EFI is used as the BIOS lacks USB support. </p>
|
---|
126 | </note>
|
---|
127 | </li>
|
---|
128 | <li>
|
---|
129 | <p><b outputclass="bold">Non volatile memory express
|
---|
130 | (NVMe)</b> is a standard for connecting non volatile
|
---|
131 | memory (NVM) directly over PCI Express to lift the bandwidth
|
---|
132 | limitation of the previously used SATA protocol for
|
---|
133 | solid-state devices. Unlike other standards the command set is
|
---|
134 | very simple in order to achieve maximum throughput and is not
|
---|
135 | compatible with ATA or SCSI. OSes need to support NVMe devices
|
---|
136 | to make use of them. For example, Windows 8.1 added native
|
---|
137 | NVMe support. For Windows 7, native support was added with an
|
---|
138 | update.
|
---|
139 | </p>
|
---|
140 | <p>The NVMe controller is part of the extension pack. </p>
|
---|
141 | <note>
|
---|
142 | <p>Booting from drives attached using NVMe is only supported when EFI is used as the BIOS lacks the
|
---|
143 | appropriate driver. </p>
|
---|
144 | </note>
|
---|
145 | </li>
|
---|
146 | <li>
|
---|
147 | <p><b outputclass="bold">Virtual I/O Device SCSI</b> is a
|
---|
148 | standard to connect virtual storage devices like hard disks or
|
---|
149 | optical drives to a VM. Recent Linux and Windows versions
|
---|
150 | support these devices, but Windows needs additional drivers.
|
---|
151 | Currently virtio-scsi controller support is experimental.
|
---|
152 | </p>
|
---|
153 | <note>
|
---|
154 | <p>The virtio-scsi controller will only be seen by OSes with device support for it. In particular, <i>there is
|
---|
155 | no built-in support in Windows</i>. So Windows will not see such disks unless you install additional
|
---|
156 | drivers. </p>
|
---|
157 | </note>
|
---|
158 | </li>
|
---|
159 | </ul>
|
---|
160 | <p>In summary, <ph conkeyref="vbox-conkeyref-phrases/product-name"/> gives you the following categories of virtual
|
---|
161 | storage slots: </p>
|
---|
162 | <ul>
|
---|
163 | <li>
|
---|
164 | <p>Four slots attached to the traditional IDE controller, which are always present. One of these is typically a
|
---|
165 | virtual CD/DVD drive. </p>
|
---|
166 | </li>
|
---|
167 | <li>
|
---|
168 | <p>30 slots attached to the SATA controller, if enabled and supported by the guest OS. </p>
|
---|
169 | </li>
|
---|
170 | <li>
|
---|
171 | <p>15 slots attached to the SCSI controller, if enabled and supported by the guest OS. </p>
|
---|
172 | </li>
|
---|
173 | <li>
|
---|
174 | <p>Up to 255 slots attached to the SAS controller, if enabled and supported by the guest OS. </p>
|
---|
175 | </li>
|
---|
176 | <li>
|
---|
177 | <p>Eight slots attached to the virtual USB controller, if enabled and supported by the guest OS. </p>
|
---|
178 | </li>
|
---|
179 | <li>
|
---|
180 | <p>Up to 255 slots attached to the NVMe controller, if enabled and supported by the guest OS. </p>
|
---|
181 | </li>
|
---|
182 | <li>
|
---|
183 | <p>Up to 256 slots attached to the virtio-scsi controller, if enabled and supported by the guest OS. </p>
|
---|
184 | </li>
|
---|
185 | </ul>
|
---|
186 | <p>Given this large choice of storage controllers, you may not know which one to choose. In general, you should
|
---|
187 | avoid IDE unless it is the only controller supported by your guest. Whether you use SATA, SCSI, or SAS does not
|
---|
188 | make any real difference. The variety of controllers is only supplied by <ph
|
---|
189 | conkeyref="vbox-conkeyref-phrases/product-name"/> for compatibility with existing hardware and other
|
---|
190 | hypervisors. </p>
|
---|
191 | </body>
|
---|
192 |
|
---|
193 | </topic>
|
---|