I keep running into a lot of different competing information on what type of VM and where the data should be stored for a MongoDB deployment in Azure. When reading over the D series VMs it specifically mentions using the local SSD to store the data. I had started to go down this route but stopped the VM and started it 20 minutes later and everything in the local SSD was gone. So now I am looking at using a DS series VM but don't know how many IOPS the OS Disk has or if I should attach a striped disk. There seem to be no good tutorials on how to create a striped disk in Azure and none of the web tools allow you to create one.
2 Answers
D just provides a local SSD for the ephemeral disk, whereas regular VMs provide a local spinning one.
Any of the Premium Storage VMs (like DS) let you attach a less local SSD for persistent storage. This is the starting point for your strategy. You can attach more disks if you want to have a striped volume, for example RAID 0 on Linux. The actual volume creation is an operating system function, not Azure's.
Another part of your strategy is the caching policy, both at the Azure level as well as the operating system level. The Using Linux VMs with Premium Storage section of the documentation covers some important points on thar regards.
As you have noticed the SSD in the D series is intended for temporary storage only, its great for transient data but not if you want to persist anything. If you want storage performance you would need to use premium storage to attach to the VM, which will persist. Storage speeds are listed below:
If you want to stripe multiple LUNS together then you can, but you will need to attach these as separate volumes to the VM, and then use either disk management or Storage Spaces (storage spaces will likely give slightly better performance) to stripe them inside Windows. You can't configure a stripe at the fabric level.