我刚刚将我的网站迁移到Azure虚拟机,并且自上周末以来一直在运行。到目前为止,我对结果非常满意,并期待在适当的时候进一步利用Azure。
我确实有一个看起来很常见的情况 - 令我惊讶的是,我找不到明显的解决方案。我有几个虚拟机 - 一个是我的主服务器,另一个将暂停并准备启动(手动很好),如果第一个有问题。我将我的网站备份到Azure存储(我的备份实用程序支持保存到Azure blob)。这是个好消息。
我原以为我可以以某种方式将存储blob挂载为驱动器,从而有效地在两个VM之间共享存储。然而,令我惊讶的是,我没有找到一个明显的方法来做到这一点。我找到了第三方实用程序(Gladinet Cloud Desktop)但看起来很痛苦。正如我所说,我承认我只是认为这是一件容易的事。
那么,退一步,从多个虚拟机访问存储blob最直接的方法是什么?我真的不想建立一个专用网络,然后设置网络文件共享 - 这看起来很老派:)并对一个特定的VM放置一个特定的依赖。
有什么建议吗?
感谢。
答案 0 :(得分:14)
现在这不仅是可能的,而且非常简单,它看起来就像一个文件系统。查看新的Azure文件服务(截至撰写本文时的预览版)。
引述公告:
" Azure文件服务使用标准SMB 2.1协议公开文件共享。现在,在Azure中运行的应用程序可以使用标准和熟悉的文件系统API(如ReadFile和WriteFile)轻松地在VM之间共享文件。"
这不仅仅是一个SMB驱动器,因为公告继续提及:
"此外,还可以通过REST接口同时访问这些文件,这将打开各种混合方案。最后,Azure文件基于与Blob,表和队列服务相同的技术构建,这意味着Azure文件能够利用我们平台内置的现有可用性,持久性,可扩展性和地理冗余。"
答案 1 :(得分:6)
在Azure资源管理器“存储帐户”中,您可以创建一个网络文件共享,可以安装为驱动器到多个VM或适用于Unix,Linux和Windows的不在Azure上的计算机和设备。
一般情况下,转到存储帐户➡文件➡创建文件共享➡命名共享和磁盘空间配额➡单击“连接”以获取命令或Windows或Linux以将共享安装到相应的设备。请注意仅适用于本地冗余存储 ,而不是区域,而不是地理冗余。
<强> https://www.youtube.com/watch?v=SGPJZMaSlis 强>
上面的视频教程向您显示分步如何执行此操作。唯一的限制是Windows 3.0或更高版本以及Windows 2012或更高版本所支持的SMB 3.0协议的操作系统支持。需要防火墙端口445 才能打开。
答案 2 :(得分:5)
您可以从多个VM访问blob。这是一种非常常见的模式。您无法做的是同时在多个VM上安装驱动器(存储在blob中)。也就是说,如果您决定创建VHD磁盘并将其附加到VM(无论是Linux还是Windows - 无关紧要),那么blob支持的磁盘将锁定到VM,然后该VM可以与vhd一起使用它将是一个本地文件系统。
另一方面,如果您将blob作为单个对象单独处理,则可以在任意数量的VM上轻松处理这些blob。
如果您希望执行类似网络共享(例如SMB)的操作,则需要使用Azure文件服务或暂存您自己的SMB服务器VM。
如果您绝对必须拥有已安装的文件系统,但又希望以主/备方式使用文件系统,则可以始终通过API执行某些操作,从一个VM卸载并重新安装到另一个VM。这可以通过PowerShell(仅限Windows)或通过Linux / Mac / Windows上的跨平台命令行界面执行。如果您的主虚拟机由于某种原因失败,您可以执行此操作。
答案 3 :(得分:0)
这是好文章,
我也在寻找,希望找到正确的解决方案。
希望您在这里分享您的经验。
决定何时使用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。如果需要跨多个Pod共享持久卷,请使用Azure文件。
Azure虚拟机中SQL Server的性能准则
https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-performance
使用Azure Kubernetes Services(AKS)在Kubernetes中部署SQL Server容器
https://docs.microsoft.com/en-us/sql/linux/tutorial-sql-server-containers-kubernetes?view=sql-server-2017