环境

Esxi版本:6.7 update3
虚拟机镜像:Linux Mint 20.3 + Ubuntu20.04

实际上任何镜像都可以用相同的方法置备,我写在这里只是方便区分。您也可以当作主机A和主机B来阅读。

配置方法

首先关闭所有需要置备共享磁盘的虚拟机。

接着就可以开始添加添加虚拟硬盘(vmdk)了。但无论是添加现有的还是新的硬盘,您还必须为虚拟机创建SCSI控制器。

首先为其中一台虚拟机添加SCSI控制器,例如我的Mint。

将新增的控制器配置为VMware Paravirtual,总线共享选择虚拟。点击保存。

在这里插入图片描述

下一步添加新硬盘。
在这里插入图片描述

设置需要的硬盘大小,置备必须选择厚置备,置零。虚拟设备节点挂在刚才新建的SCSI控制器上,比如SCSI控制器1就是SCSI(1:0)。选择位置和设置大小,磁盘模式为“独立-持久”,修改共享为“多写入器共享”。保存,等待磁盘置备。

在这里插入图片描述
磁盘置备可能需要花费一定的时间,在下方的近期任务中可以看到进度条。此时请不要对另一台设备进行置备。
在这里插入图片描述

完成置备后,在另一台虚拟机上添加新SCSI控制器,参数同第一台。

先保存修改,再进入虚拟机编辑,添加现有硬盘,选择刚才的新建的硬盘(vmdk)。
在这里插入图片描述
在这里插入图片描述

磁盘模式为“独立-持久”,修改共享为“多写入器共享”,并挂载到新的SCSI控制器上,与之前相同,比如SCSI控制器1就是SCSI(1:0)。保存。

至此,配置结束。您应该可以同时打开两台虚拟机的电源,并且找到相应的block和mount到需要的挂载点。

后记(关于共享磁盘读写的问题)

事实证明在不了解原理的情况下盲目投入生产环境是鲁莽的。切忌在两台虚拟机同时挂载该虚拟磁盘的情况下两台都做写操作。举例来说,在A机写入一个文件(或删除一个文件之后),B机是看不到文件的变化的,必须umount再重新mount才能看到文件的变化,这和缓存写入的时机有关。假如在没有重新挂载的情况下B机也做写操作,那么就很有可能破坏数据。这有点像死锁问题,最直接的后果就是系统掌握的文件索引和实际的文件不一致,造成读写的错误,甚至无法挂载。我不确定这是否和文件系统有关,我第一次发现这个问题是在NTFS的硬盘上。之后我重新分区为EXT4,也遇到了相同的问题。

最保险的做法是,仅让一台主机工作在读写模式下,其他的主机只读,但这并不能解决需要重新挂载才能看到文件更新的问题。更直接的做法是同时只打开一台虚拟机的电源,如果你并不需要他们同时开机,但也是换汤不换药罢了。

总之,共享磁盘被多个虚拟机挂载时,一定要谨慎进行读写操作。

Quote

http://case.macrosan.com/webdoc/view/Pub40288112661f1dee01672726319310bf.html

https://blog.csdn.net/weixin_33924312/article/details/92107778

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐