2

我目前正在努力实现驻留在 Azure虚拟机上的应用程序的99.95% 可用性

我想要实现的是,每当机器由于 Windows 更新或故障重启而重新启动时,不同“更新域”/“故障域”中的另一台机器应该接管。我遇到了以下问题:

  • 存储高可用性:我的应用程序位于wwwroot文件夹中,并具有包含应用程序用户创建的文档数据库(CSV、PDF、Txt ...)的动态文件夹。我无法移动到“Azure Web 应用程序”,因为这些文件是通过虚拟路径访问的:“~/Users/CSVs/4.csv”。迁移到BLOB存储是一种解决方案,需要对我的基础架构和 Web 应用程序代码进行大量更改,因为涉及多个其他组件(Windows 服务和计划任务可执行文件也通过绝对路径访问相同的文件:“C:/inetput/wwwroot /ApplicationFolder/Users/CSVs/4.csv")。我将整个应用程序移动到不同于 OS 磁盘的数据磁盘 (VHD) 上,并将其作为一个新的简单卷附加,希望将相同的 VHD 重新附加到另一个实例。这在 MS Azure 中是不允许的远离使用 BLOB 和远离SMB协议的任何建议?:)

  • SQL 高可用性:我使用 SQL 依赖关系从 SQL Server 查询通知到应用程序级别,并使用 SignalR 自动更新 UI。这需要在数据库上启用 Service Broker。在 SQL Azure 中无法访问服务代理。任何其他推荐的方法来查询特定查询的更改,而不使用 SQL 服务代理,并且不会通过 Ajax 超时查询新通知而使服务器负担过重?

我愿意接受任何针对我的 IaaS 解决方案的混合高可用性架构建议,而不是完全采用 PaaS。

任何建议建筑师?

谢谢

4

1 回答 1

0

我自己试过了,它奏效了;具体来说,我:

  • 启动两个 Ubuntu 虚拟机
  • 使用 XPlat CLI 将空磁盘附加到 VM1('azure vm disk attach ...')
  • 安装磁盘并在其上放置一个名为“hi.txt”的文件
  • 分离磁盘('azure vm disk detach ...')
  • 将同一个磁盘附加到 VM2('azure vm disk attach ...')
  • 在 VM2 上挂载磁盘并找到文件“hi.txt”

这一切都在 Linux 中,遵循这篇关于 linux 特定命令的博客文章:https ://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-how-to-attach-disk/

这是一个希望对 Windows 有所帮助的链接:https ://azure.microsoft.com/en-us/documentation/articles/storage-windows-attach-disk/

需要注意的一点是,我在 ARM 模式下完成了所有操作。上面的教程假设 Classic/ASM 模式,但这不是必需的。

希望这可以帮助!:)

于 2016-02-04T23:48:23.427 回答