27

我刚刚将我的网站移动到 Azure 虚拟机,并且自上周末以来一直在运行。到目前为止,我对结果非常满意,并期待在适当的时候进一步利用 Azure。

我确实有一个看起来很常见的情况——而且,令我惊讶的是,我找不到一个明显的解决方案。我有几个虚拟机——一个是我的主服务器,另一个将被挂起并准备启动(手动很好),如果第一个有问题。我将我的网站备份到 Azure 存储(我的备份实用程序支持保存到 Azure blob)。这就是好消息。

我曾假设我可以以某种方式将存储 blob 挂载为驱动器,从而有效地跨两个 VM 共享存储。然而,令我惊讶的是,我还没有找到一个明显的方法来做到这一点。我找到了第三方实用程序(Gladinet Cloud Desktop),但它似乎非常缓慢。正如我所说,我承认我只是认为这将是一件容易的事情。

那么,退一步说,从多个 VM 访问存储 blob 最直接的方法是什么?我真的不想建立一个私有网络,然后建立网络文件共享——这看起来很老派:) 并且对一个特定的虚拟机有特定的依赖关系。

有什么建议么?

谢谢。

4

4 回答 4

16

现在这不仅是可能的,而且非常容易,而且它看起来就像一个文件系统。查看新的 Azure 文件服务(在撰写本文时为预览版)。

http://blogs.msdn.com/b/windowsazurestorage/archive/2014/05/12/introducing-microsoft-azure-file-service.aspx

引用公告:

“Azure 文件服务使用标准 SMB 2.1 协议公开文件共享。在 Azure 中运行的应用程序现在可以使用标准和熟悉的文件系统 API(如 ReadFile 和 WriteFile)在 VM 之间轻松共享文件。”

它比 SMB 驱动器要好,正如公告继续提到的那样:

“此外,还可以通过 REST 接口同时访问文件,从而开启多种混合场景。最后,Azure Files 建立在与 Blob、Table 和 Queue Services 相同的技术之上,这意味着 Azure Files 能够利用我们平台中内置的现有可用性、持久性、可扩展性和地理冗余。”

于 2014-05-15T20:14:41.793 回答
14

在 Azure 资源管理器“存储帐户”中,您可以创建一个网络文件共享,该网络文件共享可以作为驱动器安装到多个 VM 或在 Unix、Linux 和 Windows 上不在 Azure 上的计算机和设备。

一般来说,转到您的存储帐户➡文件➡创建文件共享➡命名共享和磁盘空间配额➡单击连接以获取命令或 windows 或 linux 以将共享挂载到相应的设备。请注意,这适用于本地冗余存储,不适用于区域,不适用于地理冗余。

https://www.youtube.com/watch?v=SGPJZMaSlis

上面的视频教程逐步向您展示了如何做到这一点。唯一需要的限制是操作系统支持 Windows 8 或更高版本和 Windows 2012 或更高版本的 SMB 3.0 协议。需要打开防火墙端口 445 。

于 2016-10-30T05:54:53.007 回答
5

可以从多个 VM 访问 blob。这是一种非常常见的模式。你不能做的是同时在多个虚拟机上安装一个驱动器(存储在一个 blob 中)。也就是说,如果您决定创建一个 VHD 磁盘并将其附加到 VM(无论是 Linux 还是 Windows - 无关紧要),那么支持 blob 的磁盘将锁定到 VM,然后该 VM 可以与 vhd 一起工作它将是一个本地文件系统。

另一方面,如果您将 blob 作为单个对象离散地处理,则可以轻松地在任意数量的 VM 上使用这些 blob。

如果你想做网络共享(例如 SMB)之类的事情,你要么需要使用 Azure 文件服务,要么准备你自己的 SMB 服务器 VM。

如果您绝对必须有一个已挂载的文件系统,但又想以主/备份方式使用文件系统,您总是可以通过 API 从一个 VM 卸载并重新挂载到另一个 VM。这可以通过 PowerShell(仅限 Windows)或通过 Linux/Mac/Windows 上的跨平台命令行界面执行。如果您的主虚拟机由于某种原因失败,您会这样做。

于 2013-10-27T17:16:03.370 回答
2

这是好文章,
我也在寻找,希望找到正确的解决方案。我希望你在这里分享你的经验与你的选择。

决定何时使用 Azure Blob、Azure 文件或 Azure 磁盘
https://docs.microsoft.com/en-us/azure/storage/common/storage-decide-blobs-files-disks

有高级磁盘
https://azure.microsoft.com/en-us/pricing/details/managed-disks/

在 Azure Kubernetes 服务 (AKS) 中手动创建和使用带有 Azure 磁盘的卷
https://docs.microsoft.com/en-us/azure/aks/azure-disk-volume 注意:Azure 磁盘只能挂载到一次单个吊舱。如果需要跨多个 pod 共享持久卷,请使用 Azure 文件。

Azure 虚拟机中 SQL Server 的性能指南
https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-performance

使用 Azure Kubernetes 服务 (AKS) 在 Kubernetes 中部署 SQL Server 容器
https://docs.microsoft.com/en-us/sql/linux/tutorial-sql-server-containers-kubernetes?view=sql-server-2017

在此处输入图像描述

于 2019-01-07T01:53:19.627 回答