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