ストレージ: Azure VM 上の SQL Server のパフォーマンスに関するベスト プラクティス に記載されていますが、SQL Server を Azure VM で実行する場合、Premium SSD v2 の利用が推奨されるケースがあります。
- データ ドライブには、Premium P30 と P40 あるいはそれより小さいディスクを使用して、キャッシュ サポートの可用性を確保します。 Ebdsv5 VM シリーズを使用する場合は、高い IOPS と I/O スループットを必要とするワークロードの価格パフォーマンスを向上させる Premium SSD v2 を使用します。
- ログ ドライブについては、Premium SSD v2 または Premium SSD P30 – P80 ディスクのどちらかを評価しながら、容量を計画し、コスト パフォーマンスをテストします
「東日本」でも Premium SSD v2 が使用できるようになりましたが、今まで特性をきちんと調べたことが無かったので、SR で確認をさせていただいた内容を含めながら情報をまとめておきたいと思います。
Contents
Premium SSD v2 が展開可能な仮想マシンの構成
Premium SSD v2 の基本的な情報については Premium SSD v2 をデプロイする に記載されています。
Premium SSD v2 は可用性ゾーンを使用した VM でのみ使用することができます。可用性ゾーンの中でも展開可能なゾーンが制限されているケースがあり、東日本では次の記載となっています。
- 東日本 (2 つの可用性ゾーン)
東日本のの可用性ゾーンはゾーン 1 ~ 3 までの 3 ゾーン構成となっていますが、その中でも展開可能なゾーンが決まっています。
どのゾーンに展開可能かは次のようなスクリプトでで確認することができます。(Ultra Disk については参考として情報を取得しています)
Get-AzComputeResourceSku | where {$_.ResourceType -eq 'disks' -and $_.locations -contains 'japaneast' -and $_.name -in ("UltraSSD_LRS", "PremiumV2_LRS")}
2023/7/5 時点では、東日本については、可用性ゾーンの中でもゾーン 2,3 で展開が可能となっています。
現時点では、東日本で使用することはできますが、すべてのゾーンで使用できないのは意識しておく必要があるのではないでしょうか。
Premium SSD v2 の特性
Premium SSD v2 には、制限事項 / 性能特性 / 価格特性があります。
制限事項
可用性ゾーンでのみ使用することができ、リージョンによっては特定のゾーンでのみ使用することができるというのも制限事項となるのですが、それ以外にも制限事項があります。
基本的な内容については、制限事項 で確認できますので、この情報を一読しておく必要があります。
暗号化に制限があることと、Azure Backup / Azure Site Recovery がサポートされない、増分スナップショットのみがサポートされるためバックアップ運用についての考慮が必要な点は大きな制限となるのではないでしょうか。
OS ディスクとして使用することができないという点も制限としてありますが、私が使用する機会があるものは SQL Server のデータベース向けなので OS ディスクとして使用できないことがネックになることはないかと思っています。
性能特性
性能特性につては、SQL Server on Azure VM – Configuring for price-performance の説明がわかりやすいかと思います。ドキュメントとしては Premium SSD v2 で解説が行われています。
Premium SSD v2 は従来の Premium SSD と Ultra Disk 間のギャップを埋めることができるディスクになるかと思います。
- 99% タイルで 2 ミリ秒の応答時間
- チェック リスト には、ミリ秒未満の応答時間が求められる場合も Premium SSD v2 が記載されていますが、平均してミリ秒未満の応答が求められる場合には、Ultra Disk のほうが向いていると思います。
- サイズ / IOPS / スループットを個別に調整することができる
- Ultra Disk のようなディスク割り当てが可能
- 3,000 IOPS / 125 MB/sec のディスク性能については基本性能として無料で提供されている
- GB辺り 500 IOPS ずつ上限が増加
- IOPS 辺り 0.25 MB/秒ずつ上限が増加
- IOPS / 最大スループットについては、オンラインで変更することができる
単純な 1 IO 辺りの応答時間の即応性が求められるのであれば、Ultra Disk が必要となりますが、2 ミリ秒程度の応答時間内に収まればよいという場合には、Ultra Disk ではなく Premium SSD v2 で対応できる可能性があります。
Premium SSD v2 は、サイズは VM が停止されている状態でないと変更することはできないのですが、現在のサイズでサポートされている範囲の性能上限であれば、Ultra Disk のように VM が起動している状態で性能を変更することができますので、柔軟な性能の調整を行うことが可能です。
価格特性
1 TB のディスクを使用することを想定して各ディスクの価格を比較してみます。
Premium SSD (P30) | Premium SSD v2 | Ultra Disk | |
1024 GB のディスクサイズ | \22,468.08 / 月 | \14,263.296 / 月 (\13.929 / GB / 月) |
\25,715.968 / 月 (\25.11325 / GB / 月) |
IOPS | 5,000 IOPS (ディスクサイズに含む) |
5,000 IOPS (3,000 (無料) + 2,000 IOPS) \1,688.4 / 月 (\0.8442 / IOPS / 月) |
5,000 IOPS
\52,231.35 / 月 (\10.44627 / IOPS / 月) |
スループット | 200 MB/sec (ディスクサイズに含む) |
200 MB/sec (125 (無料) + 75 MB/sec) \522.375 / 月 (\6.965 / MB/sec / 月) |
200 MB/sec
\1,1501.446 月 (\57.50723 / MB/sec / 月) |
合計 | \22,468.08 / 月 | \16,474.071 / 月 | \89,448.764 / 月 |
現状、料金計算ツール で SSD v2 / Ulra Disk の計算ができないのでこれであっているかは自信がないのですが、Premium SSD v2 は安価に利用できそうな感じがしますね。
NVMe によるディスクの接続
現在の Azure VM では、ディスクを従来からの SCSI ではなく、NVMe で接続することもできるようになりました。
NVMe によるディスク接続は DiskControllerType が NVMe として設定されることで有効化されますが、有効化するためにはいくつかの条件があります。
- Ebsv5 / Ebdsv5 の VM サイズでのみ使用することができる
- VM 作成時に NVMe による接続を有効化する
- Gen2 イメージ (第 2 世代VM) のみサポートされている
- Gen2 VM のイメージでも NVMe サポートがタグ付けされている OS イメージ でのみ使用することができる
- セキュリティの種類は「Standard」のみサポート
- トラステッド起動 の仮想マシンはサポートされない
NVMe FAQ を有効にする にも有益な情報が記載されていますので、こちらも合わせて確認するとよいかと思います。
参考ドキュメント
- ストレージ: Azure VM 上の SQL Server のパフォーマンスに関するベスト プラクティス
- Azure Ultra ディスクの使用
- Azure マネージド ディスクの種類
- Premium SSD v2 をデプロイする
- Azure IaaS VM ディスクと Premium マネージド ディスクおよびアンマネージド ディスクについてよく寄せられる質問
- 仮想マシンでの NVMe と SCSI インターフェイスの有効化
- Ebdsv5 シリーズでは NVMe で接続することができます。
- Azure 仮想マシンのサイズの名前付け規則 / Virtual Machines シリーズ
- E: メモリ最適化ファミリ
- b: ブロックストレージのパフォーマンス
- d: ローカル (一時) ディスクが存在
- s: Premium / Ultra SSD 対応
- v5 : Version 5