What is Storage Virtualization in VMware Virtualization Concepts ?
Storage Virtualization
Everything the data center infrastructure does is to support the top layer of virtualization, consisting of the VMs and their applications. The virtualized data center components do the same. Virtualized storage is designed to give VMs the adequate amount of storage needed to host their operating systems and therefore, their applications. Virtualizing storage takes storage capacity and pools it together in the virtual data center and then distributes that capacity to the VMs.
To understand how this is done, it is important to understand that virtual storage is represented logically. Logical computing basically means represented as software rather than hardware. To get from hardware to software, the physical, storage capacity from all the storage devices in the data center needs to be pooled together to form one large ‘virtual disk’.
The first step in creating virtual storage from physical storage is taking physical storage capacity and transferring it into logical capacity. This is done by creating a partition and using the space on that partition to create a logical drive, also represented as a LUN, a Logical Unit Number. A LUN can be the whole drive or part of the drive depending on how the drive is partitioned. The LUN is used to identify which device the logical disk’s capacity comes from. So, what the virtual machine or server sees when it is saving data to the virtualized storage (pool) is a block number or drive letter that maps to the physical device’s logical unit.
Note
A specific definition of the term LUN is the number used to identify the storage device’s logical units; however, it is commonly used to describe the logical drive itself.
Creating virtual storage is a multistep process, and just creating LUNs does not mean the LUNs can be dragged and dropped into the pool of virtual storage. Provisioning storage is like baking; the storage capacity needs to be measured and added to a container before being poured into the pool. LUNs are smaller units, which are put into a larger unit called a volume. The volumes are then turned into a unit called a datastore, which gets virtualized.
Datastores
The method for setting up a storage resource for virtualized servers to access and save data is grouping logical storage into something called a datastore, which, simply stated, is a storage location for virtual machine files.
When a server is virtualized, the architecture stays the same, but what it is doing in the virtual environment is constantly changing. If a virtual server is shut down, another virtual server and the VMs running on it can be restarted as long as it is connected to the same datastore, and the VM’s end user, would not notice any interruption. This is a perfect example of availability and why it’s important. But, if we lose the datastore for that virtual server, it won’t remember anything that it has done or what it needs to do. This is why it is crucial that the written data is never lost and that a good backup procedure is in place.
In order to protect the virtual server’s data, the virtual memory is set up in a different location. Normally, virtual data is set up in two locations, so that the virtual server can save what is being done virtually in two separate locations. This way, if one storage server stops working, the virtual server simply switches to using another virtual storage server. The user would not even be aware when this happens because it is done automatically, as long as it is properly configured to do so.
In order to access the datastore, it is common to install a file system onto the datastore. In vSphere, datastores are set up with the following file system formats:
- Virtual Machine File System (VMFS) - High-performance file system that is optimized for storing virtual machines. Your host can deploy a VMFS datastore on any SCSI-based local or networked storage device, including Fibre Channel and iSCSI SAN equipment.
- Network File System (NFS) - File system on a Network Attached Storage (NAS) storage device.
How Virtual Machines Access Storage
Virtual machines use virtual disks to store their operating system, application software, and other data files. A virtual disk will be stored as a VMDK (virtual machine disk) file with the extension .vmdk on a datastore. What the virtual disk does is hide the physical storage layer from the virtual machine’s operating system. Regardless of the type of storage device that your host uses, the virtual disk always appears as a local device to the virtual machine.
The virtual machine configuration files are stored as VMX files with the .vmx extension. To the user, these files, along with .vmdk files, can be found in the Documents folder of the host machine. An example of how virtual machines use storage is depicted in the following diagram:
Thin Provisioning
This section will cover provisioning for virtual storage. Keep in mind that non-virtualized storage, as previously discussed in Section 4.3.7 Storage Provisioning, is most likely thick provisioned, where the desired amount of storage capacity was set aside for a virtual disk or LUN (logical unit number) at the time of its creation. However, in a virtual data center, storage needs fluctuate more than they do in a physical data center as a result of virtualization. This is a good thing because flexible storage results in the ability to deliver more virtual machines, and therefore, more applications. However, in the case of thick provisioning, setting aside a physical chunk of storage that can only be used for a certain purpose is simple but not necessarily efficient because the unused storage is confined to that disk and not available for other users.
Thin provisioning, in contrast, assigns the LUN a ceiling amount but the storage space actually used grows as data is being written to it. Think of it as ‘on-demand’ storage that allows the unused storage to be distributed to virtual disks that need it at that moment.
To thin provision a virtual disk, the hypervisor provisions the entire space required for the disk’s current and future activities, for example, a fixed amount of 40GB is provisioned to a disk. However, the thin disk commits only as much storage space as the disk needs for its initial operations. For example, a thin-provisioned disk occupies only 20GB of storage. As the disk requires more space, it can grow into its entire 40GB provisioned space.
You can also add storage space to a virtual machine beyond the provisioned amount by expanding its virtual hard disk. When you expand a virtual hard disk, the added space is not immediately available to the virtual machine. To make the added space available, you must use a disk management tool to increase the size of the existing partition on the virtual hard disk to match the expanded size.
The disk management tool that you use depends on the virtual machine guest operating system. Many operating systems, including Windows Vista, Windows 7, and some versions of Linux, provide built-in disk management tools that can resize partitions. Third-party disk management tools are also available. When you expand the size of a virtual hard disk, the sizes of partitions and file systems are not affected. As an alternative to expanding a virtual hard disk, you can instead add a new virtual hard disk to the virtual machine.
Note
VMware’s hypervisor, ESXi, supports thin provisioning for virtual disks.