適用対象: ✔️ Linux VM ✔️ フレキシブル スケール セット
Azure Virtual Machines (VM) では、オペレーティング システム、アプリケーション、およびデータを格納するためにディスクを使用します。 VM を作成するときは、予測されるワークロードに適したディスクのサイズと構成を選択する必要があります。 このチュートリアルでは、VM ディスクのデプロイと管理方法を示します。 内容は次のとおりです。
- OS ディスクと一時ディスク
- データ ディスク
- ディスクの種類とパフォーマンス オプション
- ディスクのパフォーマンス
- データ ディスクの接続と準備
- ディスクのスナップショット
既定の Azure ディスク
Azure 仮想マシンを作成すると、2 つのディスクが仮想マシンに自動的に接続されます。
オペレーティング システム ディスク - オペレーティング システム (OS) ディスクは VM オペレーティング システムをホストし、最大 4,095 ギビバイト (GiB) にすることができますが、多くのオペレーティング システムは既定で マスター ブート レコード (MBR) でパーティション分割されます。 MBR では、使用可能なサイズが 2 TiB に制限されます。 2 TiB 以上必要な場合は、データディスクを作成して接続し、データストレージ用に使用します。 デバイス名は VM の生成とディスク コントローラーの種類によって異なるため、 /dev/sda などの固定パスに依存しないでください。 OS ディスク キャッシュは OS のパフォーマンスに最適化されているため、OS ディスクにアプリケーション データを格納しないでください。 アプリケーションとデータ ストレージにデータ ディスクを使用します。
Temporary ディスク - 一時ストレージは、VM と同じAzure ホスト上のローカル ストレージを使用します。 VM のサイズと世代によっては、このストレージが一時ディスクまたはローカル NVMe ディスクとして表示される場合があります。 それは高パフォーマンスですが、非永続です。 VM が新しいホストに移動されると、一時ストレージ上のデータが削除されます。 使用可能なサイズは、VM のサイズによって異なります。
データ ディスク
アプリケーションのインストールとデータの格納を行うために、データ ディスクを追加できます。 耐久性と応答性の高いデータ ストレージが望ましい状況では、必ず、データ ディスクを使用する必要があります。 仮想マシンのサイズによって、VM に接続できるデータ ディスクの数が決まります。
VM ディスクの種類
Azureマネージド ディスクには、次の 5 種類のディスクが用意されています。
一般に、本番環境のワークロードには Premium SSD v2 または Premium SSD、開発/テストおよびパフォーマンス要件がそれほど高くないワークロードには Standard SSD、I/O 集約型のデータ ワークロードには Ultra Disks を使用します。 Ultra Disks と Premium SSD v2 はデータ ディスクのみのオプションであり、OS ディスクとして使用することはできません。 詳細な制限、リージョンの可用性、サイズ設定のガイダンスについては、「Azureマネージド ディスクの種類を参照してください。
Azure Cloud Shell を起動する
Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。
Cloud Shellを開くには、コード ブロックの右上隅にある Try it を選択します。 https://shell.azure.comの別のブラウザー タブでCloud Shellを起動することもできます。 Copy を選択してコード ブロックをコピーし、Cloud Shellに貼り付けて Enter キーを押して実行します。
ディスクを作成して接続する
データ ディスクの作成および接続は、VM の作成時や、既存の VM に対して実行することができます。
VM の作成時にディスクを接続する
az group create コマンドを使用して、リソース グループを作成します。
az group create --name myResourceGroupDisk --location eastus
az vm create コマンドを使用して VM を作成します。 次の例では、 myVM という名前の VM を作成し、 azureuser という名前のユーザー アカウントを追加し、SSH キーがまだ存在しない場合は SSH キーを生成します。
--data-disk-sizes-gb引数は、作成およびアタッチする追加のデータ ディスクを指定します。 複数のディスクを作成して接続するには、ディスク サイズのスペース区切りのリストを使用します。 次の例では、どちらも 128 GB のデータ ディスクを 2 つ備えた VM が作成されます。 ディスク サイズが 128 GB であるため、両方のディスクが P10 として構成され、ディスクあたり最大 500 IOPS を実現します。
az vm create \
--resource-group myResourceGroupDisk \
--name myVM \
--image Ubuntu2204 \
--size Standard_DS2_v2 \
--admin-username azureuser \
--generate-ssh-keys \
--data-disk-sizes-gb 128 128
既存の VM にディスクを接続する
新しいディスクを作成して既存の仮想マシンに接続するには、az vm disk attach コマンドを使用します。 次の例では、サイズが 128 ギガバイトの Premium ディスクが作成され、最後の手順で作成した VM に接続されます。
az vm disk attach \
--resource-group myResourceGroupDisk \
--vm-name myVM \
--name myDataDisk \
--size-gb 128 \
--sku Premium_LRS \
--new
データ ディスクを準備する
ディスクが仮想マシンに接続されたら、そのディスクを使用するようにオペレーティング システムを構成する必要があります。 次の例は、ディスクを手動で構成する方法を示しています。 この処理は、cloud-init を使用して自動化することもできます。詳細については、後のチュートリアルで説明します。
仮想マシンとの SSH 接続を作成します。 この例の IP アドレスは、仮想マシンのパブリック IP で置き換えてください。
ssh azureuser@10.101.10.10
parted を使用してディスクをパーティション分割します。
sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
mkfs コマンドを使用してパーティションにファイル システムを書き込みます。
partprobe を使用して、変更を OS に認識させます。
sudo mkfs.xfs /dev/sdc1
sudo partprobe /dev/sdc1
オペレーティング システムでアクセスできるように、新しいディスクをマウントします。
sudo mkdir /datadrive && sudo mount /dev/sdc1 /datadrive
これで /datadrive マウント ポイントを通じてディスクにアクセスできるようになりました。これは df -h コマンドを実行して確認できます。
df -h | grep -i "sd"
出力には、/datadrive に新しいドライブがマウントされていることが示されます。
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 29G 2.0G 27G 7% /
/dev/sda15 105M 3.6M 101M 4% /boot/efi
/dev/sdb1 14G 41M 13G 1% /mnt
/dev/sdc1 50G 52M 47G 1% /datadrive
再起動後にドライブが確実に再マウントされるように、そのドライブを /etc/fstab ファイルに追加する必要があります。 これを行うには、blkid ユーティリティを使用してディスクの UUID を取得します。
sudo -i blkid
出力には、ドライブ (この例では /dev/sdc1) の UUID が表示されます。
/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs"
注意
/etc/fstab ファイルを不適切に編集すると、システムが起動できなくなる可能性があります。 編集方法がはっきりわからない場合は、このファイルを適切に編集する方法について、ディストリビューションのドキュメントを参照してください。 編集する前に、/etc/fstab ファイルのバックアップを作成することもお勧めします。
次のようにテキスト エディターで /etc/fstab ファイルを開きます。
sudo nano /etc/fstab
次のような行を /etc/fstab ファイルに追加します。 UUID 値は実際のものに置き換えてください。
UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,nofail 1 2
ファイルの編集が完了したら、Ctrl+O を使用してファイルを書き込み、 Ctrl+X を使用してエディターを終了します。
ディスクが構成されたので、SSH セッションを閉じます。
exit
ディスクのスナップショットを作成する
ディスク スナップショットを作成すると、Azureはディスクの読み取り専用のポイントインタイム コピーを作成します。 Azure VM のスナップショットは、構成に変更を加える前に、VM の状態を簡単に保存するときに役立ちます。 問題またはエラーが発生した場合は、スナップショットを使用して VM を復元できます。 VM に複数のディスクがある場合は、各ディスクのスナップショットが個別に作成されます。 アプリケーション整合性バックアップを作成するには、ディスク スナップショットを作成する前に VM を停止することを検討してください。 または、vm の実行中に自動バックアップをサポートする Azure Backup を使用します。
スナップショットを作成する
スナップショットを作成する前に、ディスクの ID または名前が必要です。 az vm show を使用して、ディスク ID を取得します。 この例では、ディスク ID を変数に格納して、後の手順で使用できるようにしています。
osdiskid=$(az vm show \
-g myResourceGroupDisk \
-n myVM \
--query "storageProfile.osDisk.managedDisk.id" \
-o tsv)
ID を取得したので、 az snapshot create を使用してディスクのスナップショットを作成します。
az snapshot create \
--resource-group myResourceGroupDisk \
--source "$osdiskid" \
--name osDisk-backup
スナップショットからディスクを作成する
その後、az disk create を使用してこのスナップショットをディスクに変換できます。これを使用して、仮想マシンを再作成することができます。
az disk create \
--resource-group myResourceGroupDisk \
--name mySnapshotDisk \
--source osDisk-backup
スナップショットから仮想マシンを復元する
実際に仮想マシンの復旧を試すために、az vm delete を使用して既存の仮想マシンを削除します。
az vm delete \
--resource-group myResourceGroupDisk \
--name myVM
スナップショット ディスクから新しい仮想マシンを作成します。
az vm create \
--resource-group myResourceGroupDisk \
--name myVM \
--attach-os-disk mySnapshotDisk \
--os-type linux
データ ディスクを再接続する
すべてのデータ ディスクを仮想マシンに再度接続する必要があります。
az disk list コマンドを使用して、データ ディスク名を見つけます。 この例では、このディスク名を datadisk という変数に格納しています。次の手順でこの変数を使用します。
datadisk=$(az disk list \
-g myResourceGroupDisk \
--query "[?contains(name,'myVM')].[id]" \
-o tsv)
ディスクを接続するには、az vm disk attach コマンドを使用します。
az vm disk attach \
--resource-group myResourceGroupDisk \
--vm-name myVM \
--name $datadisk
次のステップ
このチュートリアルでは、VM ディスクについて、次のようなトピックを学習しました。
- OS ディスクと一時ディスク
- データ ディスク
- ディスクの種類とパフォーマンス オプション
- ディスクのパフォーマンス
- データ ディスクの接続と準備
- ディスクのスナップショット
次のチュートリアルに進み、VM 構成を自動化する方法について学習してください。