Microsoft Azureで共有ディスクを設定する方法をまとめます。なお、Azureの共有ディスクには排他制御の仕組みは備わっていませんので、別途、MSFCやPacemakerのようなミドルウェアの設計が必要になります。
参考資料
参考になる公式ドキュメントを以下に示します。
事前準備
以下、仮想ネットワーク等のリソースを作成します。
az group create --name MyResourceGroup --location japaneast az network vnet create \ -g MyResourceGroup \ -n MyVnet \ --address-prefix 172.16.0.0/16 \ --subnet-name MySubnet \ --subnet-prefix 172.16.0.0/24
共有ディスクの作成
共有ディスクの制約事項
共有ディスクは「Premium SSD」「Standard SSD」などディスクの種類によって制約事項が異なります。また、サポートされるオペレーティングシステムも限定的です。制約事項は公式ドキュメント「Azure マネージド ディスクの共有」にまとまっていますので、使用の前に制約事項を一読ください。
共有ディスクの作成
共有ディスクは考慮すべき事が多く設計は非常に難しいですが、オペレーションは非常に簡単です。az disk createコマンドの引数max-sharesに2以上を指定します。
az disk create \ --resource-group MyResourceGroup \ --name MySharedDisk \ --size-gb 32 \ --sku StandardSSD_LRS \ --location japaneast \ --max-shares 2
共有ディスクの接続(アタッチ)
共有ディスクはOSディスクとしては使用できず、データディスクとしてのみ使用できます。
仮想マシン作成と同時に接続するならば、以下のようにaz vm createの引数attach-data-disksに共有ディスクの名前またはIDを指定します。
今のところ、UbuntuやCentOSはサポート対象外である事に注意ください。
az vm create \ --resource-group MyResourceGroup \ --name linux010 \ --image RedHat:RHEL:8_5:8.5.2021121501 \ --size Standard_B2s \ --attach-data-disks MySharedDisk \ --admin-username azureuser \ --authentication-type ssh \ --ssh-key-values ~/.ssh/authorized_keys
作成済の仮想マシンに対して共有ディスクを追加するならば、az vm disk attachコマンドを使用します。起動中の仮想マシンに対しても共有ディスクの接続(アタッチ)は可能です。
az vm create \ --resource-group MyResourceGroup \ --name linux020 \ --image RedHat:RHEL:8_5:8.5.2021121501 \ --size Standard_B2s \ --admin-username azureuser \ --authentication-type ssh \ --ssh-key-values ~/.ssh/authorized_keys az vm disk attach \ --resource-group MyResourceGroup \ --vm-name linux020 \ --name MySharedDisk