虚拟化为IT人员面临的诸多问题提供了解决方案。利用虚拟化技术,用户可以在一台计算机上以虚拟机的形式整合并运行多个工作负载。虚拟机是一台由软件创建的计算机,它可以像物理计算机一样运行操作系统和应用。每个虚拟机都包含自己的虚拟硬件,包括虚拟CPU、内存、硬盘和网卡,对于操作系统和应用而言,它们就像是物理硬件一样。本文将介绍VMware虚拟机的几种数据存储形式:VMFS和NFS。
数据存储是一种逻辑容器,它可将各种存储设备的特征隐藏起来,提供一个统一的模型来存储虚拟机文件。在VMware中,用户可以使用VMFS或者使用存储设备带的基于NFS协议共享的文件系统对数据存储进行格式化,具体取决于所使用的存储类型。
VMware vSphere环境中的ESXi主机支持以下存储技术:
• 直连存储:直接连接到主机的内部/外部存储磁盘或阵列。
• 光纤通道:一种使用SAN的高速传输协议。光纤通道中封装了SCSI命令,这些命令在光纤通道节点之间进行传输。通常,光纤通道节点可以是服务器、存储设备或者磁盘驱动器。光纤通道交换机可将多个节点互相连接起来,构成光纤通道网络。
• FCoE:光纤通道流量封装成基于以太网的光纤通道(FCoE)帧。这些FCoE帧将与网络流量聚合在一起。通过让同一条以太网链路同时承载光纤通道和以太网流量,FCoE能够提高物理基础架构的使用率。同时,FCoE还能减少网络端口和布线的总数。
• iSCSI:一种SCSI传输协议,该协议支持通过标准TCP/IP网络访问存储设备以及连接电缆。iSCSI可通过TCP/IP映射面向SCSI数据块的存储。通过诸如ESXi主机中的iSCSI主机总线适配器之类的启动器,可将SCSI命令发送到位于iSCSI存储系统中的目标上。
• NAS:基于标准的TCP/IP网络在文件系统级别共享的存储。NAS设备用于容纳NFS数据存储,但是NFS协议不支持SCSI命令。
iSCSI、NAS和FCoE可基于千兆位以太网或10GB以太网运行。10GB以太网可提供更高的存储性能水平和充足的带宽,因此多种类型的高带宽协议流量可以在同一网络上共存。数据存储可使用VMFS进行格式化,对于NAS/NFS设备,则可使用存储供应商自行提供的文件系统进行格式化。VMFS和NFS数据存储可以跨多个ESXi主机共享。虚拟机作为一组按目录组织的文件存储在数据存储中。数据存储可用于存储ISO映像、软盘映像、虚拟机和模板。
VMFS
VMFS是一种集群文件系统,该文件系统允许多个ESXi主机同时读写同一存储设备。集群文件系统支持一些基于虚拟化的独特服务,包括:
• 无需停机即可在不同的ESXi主机之间迁移正在运行的虚拟机
• 在单独的ESXi主机中自动重新启动故障虚拟机
• 支持跨多台物理服务器创建虚拟机群集
VMFS允许IT部门在一个中心位置高效存储整个虚拟机的状态,从而极大地简化了虚拟机的调配。利用VMFS,多个ESXi主机可同时访问共享的虚拟机存储。当驻留在VMFS数据存储上的虚拟机开启并运行时,可动态增加VMFS数据存储的容量。VMFS数据存储能够有效地存储大型和小型的虚拟机文件。一个VMFS数据存储可支持多个虚拟磁盘文件。虚拟磁盘文件的最大大小为62TB。VMFS数据存储使用子数据块寻址来有效地对小型文件进行存储。
VMFS提供数据块级分布式锁定功能,可确保多台服务器不会同时启动同一虚拟机。如果一台ESXi主机出现故障,则会解除各虚拟机的磁盘锁定,从而这些虚拟机可以在其他ESXi主机上重新启动。
VMFS可部署在三种基于SCSI的存储设备上:
• 直连存储
• 光纤通道存储
• iSCSI存储
VMFS数据存储中存储的虚拟磁盘将始终作为已装载的SCSI设备显示在虚拟机中。虚拟磁盘对虚拟机操作系统隐藏了物理存储层。对于虚拟机内的操作系统而言,VMFS会保留内部文件系统的语义。因此,虚拟机内运行的操作系统看到的是本机文件系统,而非VMFS。这些语义可确保虚拟机中运行的应用具有正常的应用行为及数据完整性。
VMFS数据存储采用与Linux或UNIX操作系统相似的文件结构。每个数据存储都装载在文件夹中且包含多个子目录,这些子目录中含有用于描述虚拟机的文件。VMFS经过优化,可以支持大型文件,同时也可以支持多个小型的并发写入操作。
NFS
NFS是ESXi主机用于与NAS设备进行通信的一种文件共享协议。NAS是一种与网络连接的专用存储设备,可为ESXi主机提供文件访问服务。NFS数据存储被视为VMFS数据存储类似的存储,因为它们都可用于存放虚拟机文件、模块和ISO映像。此外,NFS卷还允许对文件位于NFS数据存储中的虚拟机进行vMotion迁移。内置在ESXi中的NFS客户端采用NFS协议与NAS或NFS服务器进行通信。
ESXi主机不使用Network Lock Manager协议,该协议是用于支持NFS挂载文件的文件锁定功能的标准协议。通过在NFS服务器上创建锁定文件,可以执行NFS锁定。锁定文件名为.lck-