エフェメラル OS ディスク ノードを Azure Batch プールに使用する
Azure 仮想マシン (VM) シリーズには、エフェメラル OS ディスクの使用がサポートされているものがあります。これは、ノードの仮想マシンのローカル ストレージ上に OS ディスクを作成します。 既定の Batch プール構成では、ノード OS ディスクに Azure マネージド ディスクを使用します。ここで、マネージド ディスクは物理ディスクのようですが、仮想化されてリモートの Azure Storage で保持されます。
Batch ワークロードの場合、エフェメラル OS ディスクを使用すると、プールに関連するコストの削減、ノードの起動時間を短縮できる可能性、OS ディスクのパフォーマンス向上によるアプリケーション パフォーマンスの改善という主なメリットがあります。 エフェメラル OS ディスクをご自分のワークロードに使用すべきかどうかを判断する際は、次の影響を考慮してください。
- エフェメラル OS ディスクへの読み取り/書き込みの待ち時間は短いため、アプリケーション パフォーマンスが向上する可能性があります。
- マネージド OS ディスクではそれぞれコストが発生しますが、エフェメラル OS ディスクではストレージ コストが発生しません。
- Batch でサポートされているときは、マネージド ディスクよりもエフェメラル ディスクの方がコンピューティング ノードを高速に再イメージ化できます。
- エフェメラル OS ディスクが使用されると、ノードの起動時間がわずかに短くなる可能性があります。
- エフェメラル OS ディスクは、永続性と可用性があまり高くありません。何らかの理由で VM が削除されると、OS ディスクは失われます。 Batch ワークロードは本質的にステートレスであり、保持されている OS ディスクへの変更に通常依存しないため、エフェメラル OS ディスクはほとんどの Batch ワークロードでの使用に適しています。
- エフェメラル OS ディスクは、現在、すべての Azure VM シリーズでサポートされているわけではありません。 VM でエフェメラル OS ディスクがサポートされていない場合は、マネージド OS ディスクを使用する必要があります。
注意
エフェメラル OS ディスクの構成は、"virtualMachineConfiguration" プールにのみ適用され、"cloudServiceConfiguration" プールではサポートされていません。 "cloudServiceConfiguration" プールではすべての機能がサポートされておらず、新しい機能が計画されていないため、Batch プールには "virtualMachineConfiguration" を使用することをお勧めます。 2024 年 2 月 29 日以降、新しい 'cloudServiceConfiguration' プールを作成したり、既存のプールに新しいノードを追加したりすることはできなくなります。 詳細については、「Batch プールの構成を Cloud Services から仮想マシンに移行する」を参照してください。
VM シリーズのサポート
ある VM シリーズでエフェメラル OS ディスクがサポートされているかどうかを判断するには、各 VM インスタンスに関するドキュメントをチェックします。 たとえば、Ddv4 と Ddsv4 のシリーズでは、エフェメラル OS ディスクがサポートされています。
または、プログラムでクエリを実行して、'EphemeralOSDiskSupported' 機能をチェックできます。 この機能のクエリを実行する PowerShell コマンドレットのサンプルは、エフェメラル OS ディスクについてよく寄せられる質問で提供されています。
エフェメラル OS ディスクを使用するプールの作成
EphemeralOSDiskSettings
プロパティは既定では設定されていません。 プール ノードでのエフェメラル OS ディスクの使用を構成するには、このプロパティを設定する必要があります。
ヒント
サービス ポリシー削除ポリシーのため、エフェメラル OS ディスクを Batch プール内のスポット VM と組み合わせて使用することはできません。
次の例は、マネージド ディスクではなくエフェメラル OS ディスクがノードで使用される Batch プールを作成する方法を示しています。
コード例
このコード スニペットは、一時ディスク (キャッシュ) を使用し、エフェメラル OS ディスクがある Azure Batch Python SDK を使用して、エフェメラル OS ディスクを含むプールを作成する方法を示しています。
virtual_machine_configuration=batch.models.VirtualMachineConfiguration(
image_reference=image_ref_to_use,
node_agent_sku_id=node_sku_id,
os_disk=batch.models.OSDisk(
ephemeral_os_disk_settings=batch.models.DiffDiskSettings(
placement=batch.models.DiffDiskPlacement.cache_disk
)
)
)
これは同じコード スニペットですが、Azure Batch .NET SDK と C# を使用してエフェメラル OS ディスクを含むプールを作成する場合です。
VirtualMachineConfiguration virtualMachineConfiguration = new VirtualMachineConfiguration(
imageReference: imageReference,
nodeAgentSkuId: nodeAgentSku
);
virtualMachineConfiguration.OSDisk = new OSDisk();
virtualMachineConfiguration.OSDisk.EphemeralOSDiskSettings = new DiffDiskSettings();
virtualMachineConfiguration.OSDisk.EphemeralOSDiskSettings.Placement = DiffDiskPlacement.CacheDisk;
次のステップ
- エフェメラル OS ディスクに関する FAQ を参照してください。
- Batch サービスのワークフローと主要なリソース (プール、ノード、ジョブ、タスクなど) について学習します。
- Azure Batch ワークロードに伴う可能性があるコストについて学習します。