如何在Azure中运行Linux的许多虚拟机之间共享数据磁盘?

时间:2016-03-10 07:01:11

标签: azure azure-virtual-machine azure-files

我的虚拟机运行Linux。我是通过新的“资源管理器”创建的。然后我添加了数据磁盘。

然后我创建了新的虚拟机。我希望它使用与第一个相连的相同数据磁盘(至少在只读模式下)。

当我尝试将“附加现有磁盘”添加到这台新机器时,我收到此错误: Failed to attach existing disk 'DISK-NAME.vhd' to the virtual machine 'MACHINE-NAME'. Error: Failed to acquire lease while creating disk 'DISK-NAME.vhd' using blob with URI https://BLOB-URI-disk1.vhd. Blob is already in use.

如何将另一台计算机正在使用的现有数据磁盘连接到当前计算机?

3 个答案:

答案 0 :(得分:3)

简单地说,你不能。

Azure中的磁盘一次只能连接到一个VM。为了将它连接到另一个VM,您需要将其与第一个VM断开连接。

如果您需要在多台计算机之间共享数据,则可以使用提供SMB 2.1和SMB 3.0的Azure文件共享。大多数现代Linux版本可以非常无缝地连接到它。

如果您需要块存储,即共享实际磁盘,则需要启动单独的VM并使用iscsi(或NFS)等协议在多台计算机之间共享该磁盘。

答案 1 :(得分:0)

也许Microsoft Azure的“StorSimple”解决方案可能是一种方法吗?我会在Azure上将其描述为SAN。

我今天没有测试过,但应该可以将多个虚拟机连接到它,并共享文件。

您可以在文档中找到更多信息: Azure StorSimple

答案 2 :(得分:0)

根据你在答案中的评论,延长迈克尔的答案:

如果目标是在VM由于某种原因而关闭时提供数据访问,并且数据位于连接的磁盘上,那么您可以从已关闭的VM中分离磁盘并将其重新连接到另一个VM(分离中断租约,重新连接创建新租约)。但请注意:这是一个耗时的过程 - 每次操作可能需要一两分钟。但你当然可以做到,你可以通过编程方式完成。

关于磁盘复制:是的,Azure磁盘是三重复制的(如果启用地理复制,则复制6次)。但从逻辑上讲,它只是一个磁盘;它被复制为耐久性,而不是为了附加到不同的副本。

Michael提到了Azure文件服务。也许不清楚那是什么,但是......文件服务没有涉及虚拟机 - 它是一个持久存储的SMB 服务,它自己的SLA与你的虚拟机无关。您可以从多个虚拟机和读/写文件附加到它,就像本地连接的磁盘一样(这似乎是您正在尝试解决的问题)。

关于跨越VM的数据复制:如果您选择走这条路线,并自己制作物理副本,那么完全取决于您的工作方式 - 没有“最好的方法”。但这是数据库引擎的构建类型(你可以想象它们有多复杂,处理复制,日记,错误等)。