Virtual Machine File System (VMFS)
In our discussion of NAS, we briefly mentioned data is organized by a “file system”. Without some method of managing files, the data in a storage device would be an unintelligible mass, with no indication of where one set of data ended and the next began. You can imagine how confusing it would be if the 70,000 songs on your 1tb hard drive were all lumped together, without names and track information. It’s only when data is separated into individual pieces that it can be identified and retrieved.
These separate pieces of data are grouped into files, which are in turn grouped into directories (which may contain subdirectories – directories within directories). This hierarchical arrangement allows users to navigate the different levels of a file system as required. File systems provide “metadata” for each file (e.g., file name, timestamps, permissions) and indexes that let the operating system know what files are on a drive and where they are.
There are many types of file systems, including file systems for disks, for databases, and for networks. Examples of file systems that you may have heard of are NTFS ( supported by Windows), ext (e.g., ext2, ext3, and ext4) and ReiserFS (both supported by Linux), HFS+ and APFS (both supported by Apple’s macOS), and UDF and ISO 9660 for optical disks. On a hard disk the file system is created when the disk is initialized (if it’s new) or formatted (whether new or not).
Virtualized storage is designed to give virtual machines (VMs) the storage they need to host their operating systems and applications. In a virtualized environment, the virtual disks of a virtual machine are stored on a “datastore”. (In the virtualization process, a partition is created on a physical drive to form a space known as a “Logical Unit Number” or LUN; one or more LUNs make up a “volume”; a number of volumes make up a datastore.) A datastore typically needs to have a file system installed on it in order for it to be accessed. With VMware's cloud computing virtualization platform, vSphere, datastores are set up with one of two file system formats: the “Virtual Machine File System” (VMFS) or the “Network File System” (NFS). NFS will be discussed in the next section.
VMware pioneered virtualization technologies and developed their own file system, VMFS, to work with them. Conventional file systems allow only one server to have read/write access to a given file at a given time. By contrast, VMFS allows multiple servers to have read and write access to the same storage resources at the same time. This is because VMFS is a high-performance clustered file system (CFS), “cluster” meaning that it is simultaneously mounted (made accessible) on multiple servers.
VMware's virtualization technology allows VMFS to establish and allocate virtualized storage for virtual machines and servers. VMFS also enables multiple VMs to share a single file system. In a simple configuration, the disks of virtual machines are stored as files within VMFS. For VMFS to understand requested file operations from a SCSI device, the virtualization layer translates the SCSI commands issued from a guest operating system.
A virtual machine ‘sees’ a virtual disk that’s stored on a VMFS datastore as a mounted SCSI device. The operating system running inside the VM does not ‘see’ VMFS – it ‘sees’ its own file system instead.
A VMFS datastore can be linked to a single SAN LUN or stretch over multiple SAN LUNs. You can even expand a datastore while virtual machines are running on it, either by growing the datastore or by adding a new area of storage. The VMFS datastore can be extended over 32 physical storage areas of the same storage type. (VMFS can be used on a wide variety of block storage devices, including Fibre Channel SANs, iSCSI SANs, local storage, and Fibre Channel over Ethernet.)
With multiple ESXi servers in a cluster, virtual machines are powered on, the VMFS locking mechanism feature ensures that the VMs are not powered on by all the ESXi servers in a cluster. Multiple ESXi hosts can access the same VMFS datastore in a shared storage environment, thus the reason for on-disk locking. With VMware High Availability, however, the on-disk locking mechanism is disabled so that the ESXi hosts in the cluster can failover successfully in an attempt to power on the virtual machine on another working physical server. As with all hypervisors, ESXi (short for “Elastic Sky X Integrated”) creates and runs VMs. It’s a “Type 1” hypervisor, which means that it doesn’t rely on its host’s operating system, but runs directly on the host’s hardware, containing within itself a basic operating system (OS) that includes the kernel. (The kernel is the core component of an OS, managing system resources.) VMware HA (or “High Availability”) pools VMs and the hosts they reside on into a cluster. Hosts in the cluster are monitored, and in the event of a failure, the VMs on a failed host are restarted on different hosts. VMware HA allows companies to provide high availability to any application running in a VM.
Each virtual machine is encapsulated in a small set of files in a single directory. Disaster recovery is therefore greatly simplified; the entire VM can be remotely mirrored and easily recovered in the event of a disaster.