我目前正致力于实现驻留在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 Service Broker,并且通过Ajax超时查询新通知而不会使服务器负担过重?
我对我的IaaS解决方案的任何混合高可用性架构建议持开放态度,而不是完整的PaaS。
任何建议建筑师?
由于
答案 0 :(得分:0)
我自己尝试过它并且有效;特别是,我:
这一切都在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模式下做了一切;上面的教程假设经典/ ASM模式,但这不是必需的。
希望这有帮助! :)