Lately I’ve been asked to review a PID (Project Initiation Document) for a new File Server project based on Linux/GFS v2 (General File System) hosted on VMware vSphere. I noticed that the PID was talking about a dynamic File Server that could (and even would) grow towards 100 TB storage space. That number immediately set off alarm bells in my head.
The vSphere Configuration Maximums document states that a VM can have a maximum of 4 SCSI cards.
So my initial design would look like this:
- 1 SCSI Card is for the VM Boot Disk (SCSI Bus Sharing: None) which leaves us with
- 3 SCSI Cards for the RDM’s (SCSI Bus Sharing: Virtual or Physical).
The wide SCSI bus is capable of serving SCSI ID 0 to 15 which means 16 SCSI targets. Since traditionally SCSI ID 7 is reserved for the SCSI card itself it leaves us with 15 SCSI disk targets. A simple sum shows us that the limit for this VMs would be 3x 15 x 2TB = 90 TB. Unless I could also enable the 1st SCSI card (SCSI0:x) to use SCSI BUS Sharing.
SCSI Bus Sharing is explained in the following overview:
|None||Virtual disks cannot be shared by other virtual machines.|
|Virtual||Virtual disks can be shared by virtual machines on same server.|
|Physical||Virtual disks can be shared by virtual machines on any server.|
Both the options ‘Virtual’ and ‘Physical’ state that: “the virtual disks can be shared by virtual machines”. So question that rises is: is it a supported scenario if I enable SCSI Bus Sharing on SCSI0 which serves the unshared Boot Disk and shared RDM’s? I contacted VMware Support and they confirmed that this is a supported scenario at witch caution should be taken since this enables you to share the Boot Disk as well. Accidently sharing the Boot Disk could leave you with a corrupted disk!
By sharing the 1st SCSI card (SCSI0) I can raise the limit of the VM to 118 TB. (90 TB + 14x 2 TB)
(Please note the 14, SCSI 0:0 is used for the Boot Disk so on SCSI0 I got less options than I got on SCSI1, 2 and 3)
Please keep in mind that:
- You are creating a scenario with a higher risk of data corruption on the VM Boot Disk;
- You are maxing out the VM definition;
- You need to use an eagerzeroedthick-disk for the VM Boot Disk;
- You can enable Paravirtual SCSI Adapter on SCSI1, SCSI2 and SCSI3 but not on SCSI0 as long as this is serving the VM Boot Disk (so you aren’t consistent in the SCSI adapters types that are serving your RDM’s). (*)
(*) Unless you are using vSphere 4.0 Update 1 which states:
Enhanced VMware Paravirtualized SCSI Support – Support for boot disk devices attached to a Paravirtualized SCSI ( PVSCSI) adapter has been added for Windows 2003 and 2008 guest operating systems. Floppy disk images are also available containing the driver for use during the Windows installation by selecting F6 to install additional drivers during setup. Floppy images can be found in the /vmimages/floppies/ folder.
So to wrap-up things, I would personally not prefer to enable SCSI Bus Sharing on the 1st SCSI card (SCSI0) since the possibility of data corruption whenever someone accidently shares the boot disk. If you for whatever reason still have to max out a VM this way, please document the VM definition very well to minimize the risk of sharing the wrong disk.