在 SQL Server 2012 环境中标准版,是否可以将 Azure Blob 存储直接作为 Windows 群集上的共享 SCSI 资源提供给 SQL 故障转移群集? Azure Blob 实际上是共享存储,Azure VM 上新添加的磁盘在转换为卷 (GPT) 之前会显示为 SCSI 磁盘。
SQL Server 是否支持从两个集群实例直接写入这样的共享 Blob 存储?
答案1
SQL Server 不支持 Azure Blob 存储上的共享数据。
但是,您可以依靠数据库镜像来实现高可用性。它在 SQL Server Standard 中可用,甚至不需要 WSFC 或 AD 即可运行。
答案2
您需要使用软件进行存储复制。有几个选项可用,包括来自 SIOS Technology Group 的选项(完全公开,我为 SIOS 做过一些演示)。我不确定 Azure 将如何处理共享 IP。如果它允许您在两台机器之间故障转移单个 IP,那么您可以使用 SQL 标准版执行此操作。如果不允许,那么您仍然需要企业版。我知道在 EC2 中,例如,这需要将两个节点放在两个不同的 EC2 可用区中,因为您不能让两台机器来回故障转移 IP。
答案3
SQL 服务器可以将数据库文件直接存储在 Azure Blob 存储中从 2014 版开始;但是,Windows Server 故障转移群集子系统不支持此功能,因此您所要求的功能无法实现。
此外,将虚拟硬盘同时附加到多个虚拟机已经有一段时间无法实现了,对于经典磁盘(驻留在存储帐户中的磁盘)来说,这绝对是不可能的。
不过,有一项新功能(目前处于预览阶段)允许这样做管理磁盘;这将允许您在 Azure 中构建“经典”故障转移群集(即使用共享存储而不是复制)。