避免在同一磁盘上的 VM 中重复写入病毒扫描签名

sch*_*919 5 virtual-machines qemu clamav

我在同一个磁盘上有两个虚拟机,每个虚拟机都安装了 clamav。两者定期同时运行相同病毒扫描特征的更新,这导致每次都对磁盘性能造成不必要的压力。由于这些签名与下载的签名相同,因此我想减少这种情况下的冗余。

最初的想法是让他们共享一个虚拟磁盘,这些签名在其中下载一次,因此 VM 只需从那里读取它们。因此,只有一个 VM 需要对磁盘进行写访问以进行下载,而另一个 VM 具有只读访问权限。

我使用以下命令将虚拟磁盘附加到第一个 VM: $ virsh attach-disk <VM1> <virtDisk> vdb --cache none

但是,在尝试将同一个虚拟磁盘附加到第二个虚拟机时,在成功附加到第一个虚拟磁盘后,使用: $ virsh attach-disk <VM2> <virtDisk> vdb --cache none --mode readonly

unable to execute QEMU command 'device-add': Failed to get shared "write" lock 发生错误 。这是不可能的,还是我错过了一个选择?

为此目的,在 VM 之间共享这些签名的最佳方法是什么?

Bar*_*958 5

您需要一些集群感知文件系统来共享多个非 R/O 使用者之间的任何块设备。在此处查看整个故事:

https://forums.starwindsoftware.com/viewtopic.php?f=5&t=1392

对于任何块存储(如 SAS、FC、iSCSI 或虚拟块设备)来说都是一样的。


Mic*_*ton 0

虚拟机管理程序不支持同时向两个不同的虚拟机共享虚拟存储。这样做没有意义,因为一个虚拟机(或可能两个虚拟机)都不可能拥有一致的存储视图,即使其中一个虚拟机是“只读”的。来宾操作系统不会期望将任何其他内容写入存储。

要在虚拟机之间共享存储,请使用专为此目的而设计的现有解决方案,例如 NFS 或 iSCSI,或者如果您确实想让它比您的用例实际需要的复杂得多,则可以使用集群文件系统。