esxi7.0 多虚拟机如何vmware挂载共享磁盘存储?

要充分发挥vSphere的性能与功能,为服务器配置共享存储是必须的。vSphere的许多高级功能如Vmotion、DRS、DPM、HA、FT都需要共享存储才能实现。为什么这么说?在规划与使用vSphere数据中心时,首先要明白一个重要的原则,即虚拟机的运行与存储分离的原则。在传统方式下,系统运行在某个主机,这个应用对应的数据也会保存在这个主机上,即应用与数据一体原则。而在高可用的虚拟化环境中,遵循的是应用与数据分离的原则,即应用与数据分散或保存在不同的主机,如下图1所示:图1 vSphere数据中心架构图在图1中,有一个vCenter Server(可以是物理机,推荐运行在ESXi虚拟机中),管理7台ESXi主机、3个使用光纤连接的存储。在这个拓扑中,数据中心中的虚拟机运行在7台ESXi主机中的某一台上,但这些虚拟机的数据文件会保存在某个存储上,例如保存在FC存储1上。在vSphere5.X及以前的版本中,这是主要的架构,虚拟机都保存在共享存储上。而采用这架构的优点是:正在运行的虚拟机在不同主机之间快速迁移提供了较好的响应速度。例如某个虚拟机VM1运行在ESXi-1这台主机上,虚拟机保存在FC存储1的共享存储上,VM1所在的主机突然死机,如果是启用了HA(群集),则VM1会在ESXi2-ESXi8之间的某个主机自动重新启动。如果VM1启用的是“容错(FT)”,那么当VM1所在的主机突然出现问题时,VM1的副本会立刻接管(VM1的副本运行在数据中心的某个主机上)。使用共享存储的一个明显的优点就是为虚拟机的快速迁移、故障再生提供快速的迁移能力,因为虚拟机的数据保存在共享存储上。对于正常的迁移,如VM1要从ESXi-1迁移到ESXi-8,即使VM1正在运行,vCenter Server只要将ESXi-1上运行的“内存”状态迁移到ESXi-8,将虚拟机从ESXi-1上取消注册,在ESXi-8上重新注册,就可以在ESXi-8上恢复VM1的运行状态。这可以实现不中断现有业务实行系统的快速迁移。由于使用了共享存储,所以此时存储就是整个系统的“单点故障”点,如果共享存储出现问题,那么整个系统可能会瘫痪。为了避免这个问题,在做系统设计的时候会从多个方面避免。首先存储会使用“双控制器”,每个控制器至少两个链路,这样对于一个存储来说至少有4个链路,只要有一个链路状态正常,数据连接就不会中断。其次,在存储与服务器之间的连接也是冗余的,一般情况下,要配两个独立的光纤交换机,每个交换机连接存储每个控制器的一个路径。虽然在图1中,每个存储与每个光纤交换机之间只有一条线,实际上,在生产环境中,每个存储的存储控制器1与控制器2的一个链路要连接一个光纤交换机。再次,在服务器上也会配置两个独立的FC HBA接口卡,每个FC HBA接口卡连接到一个光纤交换机。这样服务器与存储都是双条独立的线路。最后,还可以使用数据备份的方式,备份应用中最重要的系统及数据。同时,对于存储本身,磁盘也是冗余的。一般是4-5块硬盘做RAID5,有的要求高的情况下则是RAID10。RAID10除了有较好的IOPS性能外,还有较高的数据冗余性。现在专用的存储服务器通常通过光纤(FC)或SAS连接服务器,通常来说,采用FC HBA或SAS HBA接口卡的专用存储,在为其他服务器提供存储空间时,也需要服务器采用对应的FC HBA或SAS HBA接口卡。采用FC HBA或SAS HBA接口卡的好处是对于服务器来说,提供的存储像本地磁盘一样,也可以启动。对于要求比较高的用户,可以采用FC HBA接口卡的存储,通常情况下,这种存储可以同时接2个或4个服务器,如果外接服务器数据较多,可以采用FC交换机进行扩展。而在采用SAS HBA接口卡时,可以在存储服务器上多加SAS接口板来外接服务器。对存储的速度要求不高并对价格敏感的用户,采用基于iSCSI的存储是一种较好的方式。VMware ESXi提供主机级别的存储器虚拟化,即采用逻辑方式从虚拟机中抽象物理存储器层。在VMware ESXi主机上运行的虚拟机不清楚主机所连接的存储设备的复杂性和特殊性。VMware ESXi虚拟机使用虚拟硬盘来存储其操作系统、程序文件、以及与其活动相关联的其他数据。虚拟磁盘是一个大型物理文件或一组文件,可以像任何其他文件一样轻松地对其进行复制、移动、存档和备份。你可以配置具有多个虚拟磁盘的虚拟机。要访问虚拟磁盘,虚拟机需使用虚拟SCSI控制器。这些虚拟控制器对于虚拟机而言是不同类型的控制器,包括BusLogic并行、LSI逻辑并行、LSI Logic SAS和VMware准虚拟。虚拟机只能查看和访问以上类型的SCSI控制器。虚拟机可通过上述某一虚拟SCSI控制器访问每个虚拟磁盘,驻留在VMware虚拟机文件系统(VMFS)数据存储(基于NFS的数据存储)或裸磁盘上。从虚拟机角度而言,每个虚拟磁盘看上去都好像是与SCSI控制器连接的SCSI驱动器。实际的物理磁盘设备是通过并行SCSI、iSCSI、网络,还是主机上的光纤通道适配器来访问,这对客户机操作系统以及虚拟机上运行的应用程序而言都是透明的。VMware ESXi的存储器虚拟化如下图2所示:图2 VMware ESXi存储虚拟化示意图图2中所示为使用VMFS的存储器和使用裸机映射的存储器。该图同时演示了如何通过iSCSI HBA或使用iSCSI启动器软件的通用网卡来访问iSCSI存储器。
坑边闲话:虚拟机与实机在计算模型上是一致的,所以我们可以放心地把任务交给虚拟机做。但是,在设计虚拟机的托管平台时却需要考虑很多细节上的问题,比如存储、网络通信等。这是 ESXi 学习指南系列的第一篇正式文章,我们从网络虚拟化入手。1. ESXi 网络虚拟化概览ESXi 网络面板再上图中可以看到,ESXi 的 Networking 分得很细,总共有如下选项:Port groups,端口组Virtual switches,虚拟交换机Physical NICs,物理网卡VMkernel NICs,虚拟机管控网卡(笔者自译)TCP/IP stacksFirewall rules这六大部分的设计,借鉴了实体网络中的一些常见做法,下面我们一一道来。1.1 虚拟交换机在非虚拟化环境下,如果我们有多台电脑想要彼此通信,那么最简单的方案就是买一个网口数量充分多的交换机,然后用这台交换机连接起我们所有的电脑;之后配置这些电脑的网卡 IP 在同一个交换域中,即可实现互联互通。如果仅有两台电脑 A 和 B,那么 A 与 B 通信就比较简单粗暴,直接用网线将两个电脑的 RJ45 网口连接起来,配置到同一网段即可建立点对点的连接。这里插一句,Thunderbolt 网络本质上就是为这种点对点交换而生的。但是上述场景在虚拟化环境下就变得颇为复杂,假如我们有一台裸金属服务器,它有两个千兆以太网接口。这时我们在这台裸金属服务器上部署虚拟化 Hyperviser,并配置两个 Windows 10 客户机系统。这两个客户机分别直通了一个千兆以太网卡。那么此时这两个客户机仍就能效仿传统方法,用一根网线将这两个千兆以太网接口“短接”,就能实现虚机之间的通信了。看起来是不是很怪异?笔者年轻时也做过这种蠢事(尽管非常有用)。上述蠢到萌的场景有很大的优化空间。首先,网卡不一定需要直通给某个机器。因为直通就意味着设备将要被独占,所以这个被直通的设备无法再被其他设备使用了。(SR-IOV 技术后面会单独讲。)拿网卡来说,一般网卡被认为是计算机网络七层参考模型中最后两层的设备,即物理层、链路层设备,原则上网络层(IP)、传输层(TCP/UDP)可以独立设计。所以在这种场景下,我们哪怕仅有一个网卡,也可以在网络层及之上大做文章!于是这就产生了一个概念:虚拟网卡。ESXi VM 配置网络所谓的虚拟网卡,就是一个在网络层及之上工作的软件,它对客户机而言是一个真正的网卡,但是其数据要想发到 Internet,就需要交给 ESXi 的网卡驱动,把链路层、物理层的问题补齐。这儿就产生了一个重要的想法:既然网卡可以做虚拟,那么其数据自然也能让 ESXi 做内部交换!这样一来,同一个裸金属服务器上的多个客户机就无需“蠢萌”地用网线短接的方法通信了。岂不美哉!于是就有了虚拟交换机的概念。1.2 vSwitch0 虚拟交换机虚拟交换机,顾名思义,就是运行在 ESXi 上面的一个软件。在上图中,可以看到左边有两个框,右边有一个框。左边指的是虚拟世界,右边是现实世界。左边呈现的是各虚机的虚拟网卡连接到“虚拟交换机的虚拟端口”(这话有点儿绕)的拓扑图,右边呈现的是这个虚拟机的上行链路,也就是一个真实的网卡。接下来我们解释一下这个过程。首先,ESXi 给各个客户机(虚机)提供一个软件模拟的网卡,常见的有 intel E1000 千兆网卡,VMxNet 万兆网卡等;ESXi 会让你在 VM 配置页面选择是否要连接这个网卡到某个虚拟交换机,可以点击 Connect 或者不点击。不点击的话,在客户机里该网卡永远是不活跃的,Connect 的话,客户机的虚拟网卡的状态将与右侧的物理网卡的链路状态保持一致;ESXi 会根据虚拟网卡的流量目的地,自主判断是要将这些数据包转发给其他虚拟机还是转出此裸金属服务器。前者的数据交换就在内存里做,效率非常高(至少比“外部网线短接”高多了);后者将通过上图中右侧的物理网卡进行转发,多个客户机的数据将在这个上行的物理网卡面前“排队”。值得注意的是,vSwitch0 是一个特殊的、默认的虚拟交换机,这个虚拟交换机几乎不能被删除、重命名。为什么呢?因为在安装 ESXi 的时候,会默认将某个网卡设置为 vSwitch0 的上行链路,同时也会自动生成一个 VMkernel NIC,保证此裸金属服务器能通过 Web 被访问。VMkernel NIC 所在的虚拟交换机是不能被删除的,即便你真的 Remove 了,那么你将立即暂时失去 ESXi 的访问能力,但是重启一下裸金属服务器之后,被你删掉的 vSwitch0 及 VMkernel NIC 就又回来了。这能防止很多小白误操作,导致再也管理不了 ESXi. 从这个过程中也可以看到,vSwitch0 本质上是无法永久删除的。1.3 端口组看完了 1.2,就基本明白端口组 Port group 是怎么回事了。许多小白朋友以为端口组就是虚拟机的物理网卡集合,这种认识是大错特错!端口组就是虚拟交换机上的某些端口的集合。交换机上的端口是没有 IP 地址的。我们可以在端口组上设置 VLAN,从而实现交换机的管理功能。1.3 如何通过网络管理 ESXi 自身说了这么多虚拟化问题,还有一个问题没有解决,那就是如何管理 vmware ESXi 本身。当然,最直接的方法就是给裸金属服务器直接插显示器和键盘鼠标,然后在那个简陋的后台窗口配置。但是通过 Web 进行配置才是主流的做法。在 Networking 面板里的 VMkernel NICs 是专门用来配置管理网卡的。所谓 VMkernel NIC 也是一个虚拟网卡,只不过它不属于任何客户机,而是属于 ESXi 自己!通过 ESXi 的管理网卡的上行物理网卡才能访问 ESXi 的 Web 管理界面。如果你的某些物理网卡不是在 VMkernel NIC 所在的 vSwitch 的上行链路列表里,那么很遗憾,是无法通过这些物理网卡管理 ESXi 的。接下来看一下如何创建一个 VMkernel NIC。在上图中可以看到,它默认创建了一个端口组,并自主选择了 vSwitch0 作为虚拟交换机,同时默认的 VLAN ID 是 0.为什么要新建端口组?这是因为,VMkernel NIC 所连接的 vSwitch 端口组,必须与其他普通虚拟机的虚拟机虚拟网卡所连接的端口组隔开。 如果你强行将 VMkernel NIC 的端口组设置为某虚机的虚拟网卡所在的端口组,那么在创建之后,ESXi 将提醒你,此虚机的网卡不可访问了,也就是被踢掉了。所以,管理端口 VMkernel NIC 要在一个独立的端口组里!不要为了美观而妄想通过一个端口组解决所有问题。在上图中,最后的 Services 部分里,可以选择该管理网卡所能从事的服务,比如集群常用的 vMotion 迁移功能等。这一部分有机会单独写文章讲。1.4 ESXi 所面对的物理网卡ESXi 中的物理网卡能够在此页面中看到。物理网卡的命名方式一般是 vmnicN,N 是 0、1、2...比如,图里的 vmnic0 是一个 intel i219LM 千兆网卡,常见于 Dell 的商用机和某些支持 vPro 的笔记本上。其驱动程序是 ne1000,目前它没插网线,所以 Link speed 项是 Link down,表示这个网卡目前不活跃。vmnic1 和 vmnic2 是 intel X550-T2 上的两个 10G 万兆电口网卡,驱动是 ixgben,其中的 i 指的是 intel,x 指的是 ten,也就是 10G。目前它们插在了千兆交换机上,所以目前的速度是千兆全双工,而非万兆。物理网卡没什么好说的,这个界面唯一的作用就是查看网卡。有些时候一个 PCIe 转双口万兆网卡就看着很麻烦,分不清谁是 vmnic1、谁是 vmnic2,这时候可以让 vmnic0 做管理网卡,然后通过拔插 vmnic1 和 vmnic2 的网线的方式判断网卡活跃状态,并由此判定网卡 Name 与实际网口的一一对应关系。1.5 分布式交换机有机会单独写文章讲。结语这篇文章通过简短的图文,讲述了如何配置 ESXi 和 客户机的网络问题。To Be Continued

分类专栏
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐

我要回帖

更多关于 vmware挂载共享磁盘 的文章

 

随机推荐