2

I am currently working on achieving 99.95 % Availability of my application residing on Azure Virtual Machine.

What I want to achieve is that whenever the machine is restarted due to windows update or fault restart, another machine in a different "update domain"/ "fault domain" should take over. I ran across the following issues:

  • Storage High Availability: My application resides on wwwroot folder and has dynamic folders that contain Document database (CSVs, PDFs, Txt ...) Created by the application users. I cannot move to "Azure Web Application" because the files are accessed via virtual path: "~/Users/CSVs/4.csv". Moving to BLOB storage is a solution that requires a lot of changes on my infrastructure and web application code as multiple other components are involved (Windows Services & Scheduled Tasks Executables are also accessing the same files via absolute path: "C:/inetput/wwwroot/ApplicationFolder/Users/CSVs/4.csv"). I moved the whole application to Data Disk (VHD) different than the OS Disk and attached it as a new simple volume hoping to re-attach the same VHD to another instance. This is not allowed in MS Azure. Any recommendations away from using BLOB and away from SMB Protocol?? :)

  • SQL High Availability: I use SQL Dependency to query notifications from SQL Server to the application level and auto-update the UI using SignalR. This requires Service Broker to be enabled on the database. Service broker is not accessible in SQL Azure. Any other recommended way to query changes on a specific query without using SQL Service Broker and without overburdening the server by querying new notifications via Ajax timeout?

I am open to any hybrid high availability architecture suggestion for my IaaS solution rather than going full PaaS.

Any Suggestions Architects?

Thanks

James Dayeh
  • 516
  • 1
  • 5
  • 13
  • Why do you say you "cannot" move to WebApps? WebApps don't prevent you from using virtual paths, and Azure WebApps use Blob storage to share files across multiple instances. Have you tried deploying to a WebApp? – viperguynaz Jan 25 '16 at 16:25
  • Hello @viperguynaz, I tried moving to WebApps and the problem was that I want the WebJob (Equivalent for Windows Service or Scheduled Task) to access the WebApp Dynamic Folders. Do you think this is achievable? – James Dayeh Jan 25 '16 at 16:29
  • WebJobs are hosted under the WebApp's App_Data folder: wwwroot\app_data\jobs\continuous and will have access to anything under wwwroot. – viperguynaz Jan 25 '16 at 19:20
  • I'm not sure I understand what you mean by Azure not supporting re-attaching data-disks to different VMs. I was pretty sure this was supported; did you see some documentation saying it wasn't or run into trouble when you tried it? – Neil Sant Gat Feb 02 '16 at 20:57
  • I think it is discontinued! The any VHD that is already attached to a VM doesn't show as an option anymore. I know that it was supported not sure why it is not appearing anymore. – James Dayeh Feb 03 '16 at 12:34
  • Are you using Classic or ARM? Either way, have you tried Powershell/CLI? It sounds like you are trying to use portal, which *might* have a different set of functionality. – Neil Sant Gat Feb 03 '16 at 21:07

1 Answers1

0

I just tried it myself and it worked; specifically, I:

  • Spun up two Ubuntu VMs
  • Used the XPlat CLI to attach an empty disk to VM1 ('azure vm disk attach ...')
  • Mounted the disk and put a file on it called 'hi.txt'
  • detached the disk ('azure vm disk detach ...')
  • attached the same disk to VM2 ('azure vm disk attach ...')
  • Mounted the disk on VM2 and found the file 'hi.txt'

This was all in Linux, following this blog post for linux-specific commands: https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-how-to-attach-disk/

Here is a link that will hopefully help for Windows: https://azure.microsoft.com/en-us/documentation/articles/storage-windows-attach-disk/

One thing to note is that I did everything in ARM mode; the tutorials above assume Classic/ASM mode, but this is not necessary.

Hope this helps! :)

Neil Sant Gat
  • 857
  • 6
  • 10
  • Hello Neil, the problem is that I don't want to Detach the VHD from the first VM. I want both VMs to share the same VHD so whenever I access VM1 or VM2 I can access "Hi.txt" – James Dayeh Feb 08 '16 at 12:55
  • Ah, in that case, you are right; we don't support this yet. Have you considered Azure Files? (granted, I think they use SMB, which you specified you don't want to use; why do you not want SMB?) – Neil Sant Gat Feb 08 '16 at 21:03