共有ディスク (やUltra ディスク) のついた Azure VM Backup が条件つきでできるようになってた

こんにちは駆け出しアーキテクトのやまぱんです。

**共有ディスクのついたAzure VM に対するAzure VM Backup が条件つきでできるようになってました。**
具体的に条件付きとは共有ディスク (やUltra ディスク) の除外設定をしてAzure VM Backup ができるようになってました。
できるようになってたとは言ってもまだ~~パブリックプレビュー状態で数か月先の GA を目指してると思われます。~~(GA済)

:::note
2024/02/15 更新： この共有ディスクを除外設定してAzure VM Backup ができる機能 ＧＡ してました。✨
参考リンク
+ General availability: Selective Disk Backup and Restore in Enhanced Policy for Azure VM Backup
https://azure.microsoft.com/ja-JP/updates/ga-selectivedisk-enhancedpolicy/

+ Azure 仮想マシンの選択的なディスク バックアップと復元
https://learn.microsoft.com/ja-jp/azure/backup/selective-disk-backup-restore#scenarios
:::

しかも肝心の共有ディスクは Azure VM Backup ではまだ取得できません。将来的にはそこを目指してるらしい、いやそうであってほしいです。
ただし、あくまで予定、予定は未定。これはお約束。
ちなみに今回の機能は3 月中旬にパブリックプレビューとなったようでした。

### そもそもどういうことだってばよ
共有ディスクを使った構成を作った場合、これまでは Azure VM Backup をすることができませんでした。
なので、そういった Azure VM や共有ディスクをバックアップするには必然的に下記2つの方法しかありませんでした。

+ a. Azure Disk Backupまたはマネージドディスクのスナップショットを利用してすべてのディスクのバックアップを取る
+ b. Azure VM Backupの際だけ共有ディスクをデタッチしてバックアップをする、そして共有ディスクだけ a. の方法でとる

整合性の観点で言えば OS 起動時にバックアップをする(スナップショットをとる)のであれば、 OSディスクはできるだけ、Azure VM Backup を利用したほうがよいです。なので b.の方法が実現可能な範囲で一番望ましいバックアップの方法でした。
理由：Azure Disk Backupやマネージドディスクのスナップショットで取得したOSディスクのスナップショット(バックアップ)からの起動は保証しないクラッシュ整合性になっているから。

bをやろうとすると、手動でやるにしても Azure PowerShell や Automation などを使って作りこむにしてもまあまあ面倒でした。

+ 参考) Azure VM Backupにおける整合性について
 https://jpabrs-scem.github.io/blog/AzureVMBackup/Consistencies/

+ 参考) Azure ディスク バックアップ
https://learn.microsoft.com/ja-jp/azure/backup/disk-backup-overview

+ 参考)  Azure VM  バックアップ
https://learn.microsoft.com/ja-jp/azure/backup/backup-azure-vms-introduction


### 今回、何ができるようになったんだってばよ？
今回は Azure VM Backup の機能である選択的ディスクバックアップ(Azure Disk Backupとは別物)を使うことで共有ディスクのバックアップを取らない設定にすることでAzure VM Backup が使えるようになりました！！

+ Azure 仮想マシンの選択的なディスク バックアップと復元
https://learn.microsoft.com/ja-jp/azure/backup/selective-disk-backup-restore#scenarios
> 拡張ポリシーを使用している場合は、このソリューションを使用して、**サポートされていないディスク (Ultra ディスク、共有ディスク) を除外し、バックアップについて VM を構成できます。**

以前は**上記の共有ディスクの除外設定しても共有ディスクがついてるだけでAzure VM Backup が失敗しました。**

下記のようなメッセージが出てました。
```
          "errorString": "Backups for VMs with Shared disk not supported.",
          "errorTitle": "UserErrorSharedDiskBackupNotSupported",
          "recommendations": [
            "Currently, Azure VM backup doesn't support VMs with ultra-disks or shared disks attached to them."
```

**これが失敗しなくなったというわけです。**
普通除外設定したら取れるでしょ？って思いますよね、取れなかったんです。
なので、**作りこみとか手動オペレーションがなく、 b. の方法が取れるようになりました**。
 (**これができるようになって嬉しいことです！**)

◆具体的にいうと
+ やりたいこと：共有ディスクのついた Azure VM (および共有ディスク)をバックアップしたい
+ いま考えられるよい実現方法：Azure VM Backupを取得(共有ディスクを除外設定) ＋ 共有ディスクはAzure Disk Backup で取得


:::note warn
ただし、共有ディスクとそれ以外のOSディスクやデータディスク(ある場合)との静止点を完全に合わせることは  Azure Backup (Azure VM BackupやAzure Disk Backup) 標準の機能で設定するだけではできないです。
そのため、完全に断面を合わせたい場合は電源断してその間にスナップショットをとる運用にするか、対象のアプリケーションの挙動を停止・再開させるようなスクリプトによる作りこみなどが必要になってくるかと思います。
整合性の観点で考えると電源断した場合はすべてAzure Disk Backup で取得しても良いかもしれません。
(ただし、冗長性(GRS構成にしたい場合)の観点ではまた考慮事項が必要です)
:::

### あとがき
いや～～～ほんとに共有ディスクを発表しておいて、いざ 使い始めてみたり、利用を検討してみるとAzure VM Backup がまともに取れないとかどうにかならんのかなーイケてないぜ～と個人的にずっと思っていたのですが、やっとimproveしてとても嬉しいです。
実際にお客様に多くの要望をいただいていました。
将来的にはAzure VM Backup だけで共有ディスクもバックアップが取れるようになれば嬉しいですが、(共有ディスクなので当たり前ですが)他のマシンにアタッチしてる関係性静止点をとるのに難しい部分がある気もします。