更新:此功能可在2020-06-16之后使用
根据Matthew Lenz的另一个答案,创建多作者持久磁盘的功能已经可用,但仍处于alpha状态(尽管它被记录为在beta轨道中),需要特殊的项目启用。
注意:此GitHub问题指出,尽管标记为beta,但该功能仍处于alpha状态。如果您想要提前访问此功能,则可以通过Cloud Console提交反馈以请求其为您的项目启用,但不能保证启用。
假设您的项目有权使用此功能(或该功能变为公共访问),请注意它带有一些注意事项:
--multi-writer
创建多写入器模式下的磁盘,以便可以将其附加到多个VM并具有读写访问权限。只能与区域SSD持久磁盘一起使用。多写入器模式下的磁盘不支持调整大小和快照操作。
您可以通过以下方式使用:
$ gcloud beta compute disks create DISK_NAME --multi-writer [...]
请注意以下事项:
- 仅支持分区 SSD 持久性磁盘
- 无法调整磁盘大小
- 无法创建快照
如果这些权衡对您不可接受,请参阅原始答案(下面),其中列出了多个建议的存储替代方案,可用于在多个 GCE VM 之间共享数据。
原始答案(截至2020年6月16日有效)
不,这是不可能的,因为你在撰写时引用的文档所说(已更新):
但是,如果将持久磁盘附加到多个实例,则所有实例都必须以只读模式附加持久磁盘。
自那时以来,文档已重新排列;新文档位于不同的网址,但内容相同:
您可以将非根持久磁盘以只读模式附加到多个虚拟机实例中,从而使多个实例之间共享静态数据。通过从一个持久磁盘共享静态数据,比为各个实例复制数据到唯一磁盘更为便宜。
如果将持久磁盘附加到多个实例,则所有这些实例都必须以只读模式附加持久磁盘。不可能以读写模式将持久磁盘附加到多个实例。如果需要在多个实例之间共享动态存储空间,请将实例连接到
Cloud Storage或
创建网络文件服务器。
如果有一个包含要在多个实例之间共享的数据的持久磁盘,请将其从任何读写实例中分离,并以只读模式将其附加到一个或多个实例上。
这意味着您不能让一个实例具有写访问权限,而另一个实例具有只读访问权限。
如果您想在实例之间共享数据,则需要使用除持久磁盘之外的其他解决方案。以下是一些可能的解决方案:
您可以使用以下任何托管/管理服务:
或者,你可以运行自己的: