因为项目需要需要一个磁盘共享的环境。
最先想到用iSCSI,两个客户端挂载同一个远端盘;这样确实可行,但是感觉太繁琐,想到既然是虚拟机环境,可以设置虚拟磁盘共享。
于是网上一番搜罗,确实有人这个做过,一下是鄙人的操作步骤记录:
ESXi版本6.0.0
1,通过ESXi客户端打开ssh服务,ssh登陆到服务端,通过命令创建几个虚拟磁盘:
## $DATASTORE1 为系统上盘的别名
# mkdir /vmfs/volumes/$DATASTORE1/sharedisk
# cd /vmfs/volumes/$DATASTORE1/sharedisk
# vmkfstools -c 10240m -a lsilogic -d eagerzeroedthick sharedisk01.vmdk
# vmkfstools -c 10240m -a lsilogic -d eagerzeroedthick sharedisk02.vmdk
# vmkfstools -c 10240m -a lsilogic -d eagerzeroedthick sharedisk03.vmdk
# vmkfstools -c 10240m -a lsilogic -d eagerzeroedthick sharedisk04.vmdk
关于vmkfstools命令,
-c 指定盘大小
-a 指定控制器类型
-d 指定虚拟盘格式 eagerzeroedthick 格式所创建的虚拟盘文件vmdk文件大小即为盘大小,这种格式所创建出来的虚拟盘数据已经清0,首次写入速度有优势
创建完以后,就可以通过客户端对虚拟机进行编辑,加入现有虚拟磁盘,即刚创建的哪几个。
此处有几点要注意:
1,虚拟设备节点要和系统盘在不同的控制器下,即一般系统盘是0:0,则共享盘要1:0或者1:1...;
2,虚拟盘的模式为 独立--持久;
3,给新加入的虚拟盘指定不同通道后,系统会自动创建对应通道的磁盘控制器,需要设置控制器共享属性为“虚拟”;
4,设置完成后,还需要通过ssh 对虚拟机的硬件配置文件(*.vmx)做一些修改:
+++++++++ # 加入这些
Disk.EnalbeUUid="true"
Disk.locking="false"
DiskLib.datacacheMaxSize=""
DiskLib.datacacheMaxReadAheadSize=""
DiskLib.datacacheMinReadAheadSize=""
DiskLib.datacachePageSize=""
DiskLib.MaxUnsynceWrites=""
另外一台虚拟机也重复上述操作,若他们启动都能看到加入的虚拟盘,就OK
参考:http://blog.sina.com.cn/s/blog_5fe5200f0100nh6m.html