如何在一台ESXi主机上搭建一整套VSAN集群的环境
从上周起,我开始翻译一本新书。IT类中文书籍的翻译往往有一个术语的问题,如何选择最准确的中文术语,让读者清楚明白而且在实际操作和配置的时候不至于误解,是一件不那么容易的事情。一个简单的例子就是cluster,中文可以译作“集群”或者“群集”。这两者本身都广为使用,而且是完全相同的意思。我查了一下中文亚马逊书店,136本IT类中文图书用了“集群”,29本用了“群集”。看上去“集群”更为普及一些,而且我本人也习惯用“集群”这个术语。那么在本书中到底应该翻译成集群还是“群集”呢?我决定用“群集”。为啥呢?因为vSphere中文版客户端和中文版vSphere Web客户端都使用“群集”作为术语。为了方便读者阅读本书的时候,能够和中文版系统和中文版帮助文件对照起来,所有能够在中文版中找到的术语,我都将用中文版本里面的术语来进行翻译。
这本新书是关于VMware VSAN的,为了翻译的VSAN术语更加准确,我需要搭建一个VSAN集群。可是VSAN集群的构建有一些必要的前提条件:
至少3台以上的vSphere ESXi 5.5U1主机
每台主机需要至少一块SSD和一块磁盘(至少有3台主机有这样的配置)提供给VSAN数据存储用
每台主机至少要有千兆网卡,推荐万兆。如果是千兆,建议有一个千兆端口专门提供给VSAN专用。
每台主机最少6GB内存
支持虚拟化技术的Intel或AMD处理器,至少是Intel XEON corei7级别或更高。
注:关于VSAN的安装和前提条件,可以参考一下文章和资料:
http://vsdsrevolution.blog.51cto.com/8674155/1381076
http://vsdsrevolution.blog.51cto.com/8674155/1386083
http://www.vmware.com/files/cn/pdf/products/vsan/VMware_Virtual_SAN_Whats_New.pdf
看了一下,3台主机就有点困难,每台2块千兆网卡、6GB内存,克服一下还能找到,大容量磁盘也还算容易,要搞3块SSD就难度略大。终于咬了咬牙,自己掏钱在亚马逊下单买了2块SSD,加上自己家里原来有的1块,凑够了3块。不过周二拜访了VMware公司,VMware中国研发中心的林博士却给了我一个建议,可以在虚拟机上模拟嘛。至于SSD问题,书里面第3章讲到某些SSD因为RAID-0控制器无法识别成SSD的时候,可以用命令行来强制指定为SSD,那么在虚拟机的情况下,也可以用同样的方法糊弄一下。我恍然大悟,于是回家在自己家里的ESXi主机上开搞。(那2块SSD的钱啊已经花出去了!哭!)
我家里只有一台DELL Precision T7500的工作站用作实验用的ESXi主机,这台机器是在淘宝上花4000元淘来的DELL的库存货,虽然是3年前的硬件,但是配上XEON处理器和24GB服务器专用内存,玩个服务器虚拟化还是不错滴。
废话一大篓,现在切入正题。
接下去,我就来介绍下如何在一台ESXi主机上配置3个ESXi并组建一个VSAN集群。昨天,我介绍了如何在一台ESXi主机上安装ESXi的客户机(当然这些ESXi本身也是主机哦,还可以在其上部署虚拟机,虽然性能会比较差)。因此,首先就是根据上面所说的硬件条件创建3个虚拟机用来安装ESXi5.5u1。我的配置是每一台主机都包括:
4个CPU(最少2个)
8GB内存
3个硬盘,一个4GB(用来装系统)、一个40GB(模拟成SSD)、一个400GB(提供给vsan存放数据)
2个网络适配器,一个在子网192.168.10.x用于管理和虚拟机网络,一个在子网192.168.20.x,用于VSAN VMkernel
虚拟机版本10
注意,为了让ESXi客户机有2个网络适配器,在ESXi主机(本例中起名为esxi01)上的网络配置至少要配置2个不同的端口组,我将这2个端口组分别配置在了2个不同的vSwitch上:
vSwitch0,默认vSwitch,配置有管理网络(VMKernel)和VM Network 10端口组
vSwitch2,新增的vSwitch,配置有VM Network 20端口组
此外,我还因为有iSCSI存储,因此配置了2个iSCSI的VMKernel分别在vSwitch1和vSwitch2上。
vSwitch0和vSwitch2的配置截图如下:
这里有一点要说明的是,如果仅为了vsan网络的通信,vSwitch2可以没有上联的物理适配器,我的截图里面配置了上联的物理适配器是因为我还有一个iSCSI2的VMkernel需要使用。
安装3台虚拟机的过程就不赘述了,只要你按照我昨天的文章来操作,就可以顺利完成。安装完之后,照例是配置静态IP地址、FQDN主机名、禁用IPv6、DNS并开启SSH和ESXi SHELL以备之后在控制台输入命令行使用。
需要强调一次的是,在你的实验网络中,需要配置好一台域控制器,它同时也是DNS服务器,并事先在DNS服务器里面添加好静态的ESXi主机的DNS项。在我的实验环境中,它们是:
esxi55u01.home.lab – 192.168.10.31
esxi55u02.home.lab – 192.168.10.32
esxi55u03.home.lab – 192.168.10.33
请在黄色DCUI界面(安装完ESXi主机的初次配置界面)里面测试一下网络,如果主机域名也能顺利解析,那就说明网络配置都完备了。DNS对于正确配置VMware集群来说非常重要。
接下去就是用vSphere Web客户端再次连接到vCenter(我的是vCSA),把这几台新安装的ESXi主机添加进来,添加的时候要用FQDN,不能是IP地址。
现在让我们来看一看这些ESXi主机的磁盘情况(左边窗格点选主机,在右边窗格分别选择管理,存储器和存储设备,如图所示),可以看见置备的3个磁盘都是非SSD。下面要克服的问题是怎样欺骗ESXi,让它以为其中一块40GB的磁盘是SSD,这样才能满足VSAN配置的必要前提条件。
让我们进入到这台vSphere ESXi主机的管理控制台界面,在命令行里面输入下面的2条命令,就可以完成:
# esxcli storage nmp satp rule add --satp VMW_SATP_LOCAL --device mpx.vmhba1:C0:T1:L0 --option=enable_ssd
# esxcli storage core claiming reclaim -d mpx.vmhba1:C0:T1:L0
注意,这里的设备ID要填写你所想要变成SSD的那个磁盘,设备ID就是长的像mpx.vmhba1.C0:T1:L0的那个。
输入命令后,如果没有填错,是不返回结果的。回到vSphere Web客户端,刷新一下,你就会发现那个40GB的磁盘的类型变成SSD了。
关于VSAN的配置,LeoXiao同学写的很不错,就不多罗嗦了。你可以参考他的文章。
http://sanshileilei.blog.51cto.com/3105269/1375551
我借个图说明下顺序:
多说一句,为了测试NIOC功能,而这个功能只有在分布式交换机上才有,所以,建议VSAN集群配置的时候先配置好分布式交换机,并且把VSAN专用的VMkernel建在分布式交换机上。
最后,给大家看一下,要搭建一个VSAN集群的测试环境,在一台主机上至少要配置并开启5台虚拟机——包括1台域控制器,1台vCenter和3台ESXi主机(每台都配了8GB内存哦)。
虽然还是有一些网络传输上不稳定的问题,不过vsan数据存储好歹是建起来了。
最后的感慨是24GB内存的主机还是缺内存,555,性能还是好差啊~