適用対象: ✔️ 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引数は、作成してアタッチする追加のデータ ディスクを指定します。 複数のディスクを作成して接続するには、ディスク サイズのスペース区切りのリストを使用します。 次の例では、2 つのデータ ディスク (両方とも 128 GiB) を含む VM を作成します。 ディスクは 128 GiB であるため、両方を 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 GiB Premium ディスクを作成し、最後の手順で作成した VM に接続します。
az vm disk attach \
--resource-group myResourceGroupDisk \
--vm-name myVM \
--name myDataDisk \
--size-gb 128 \
--sku Premium_LRS \
--new
Linux でデータ ディスクを準備する
ディスクを仮想マシンに接続したら、ディスクを使用するようにオペレーティング システムを構成します。 次の例では、VM の作成時に接続された最初の 128 GiB データ ディスクを手動で構成します。 VM のディスク コントローラーによって、Linux がディスクを公開する方法が決まります。 cloud-init を使用してこのプロセスを自動化することもできます。これについては、後の チュートリアルで説明します。
仮想マシンとの SSH 接続を作成します。 この例の IP アドレスは、仮想マシンのパブリック IP で置き換えてください。
ssh azureuser@10.101.10.10
フォーマットする前に、正しいデータ ディスクを特定したことを確認します。 間違ったディスクをフォーマットすると、データが失われます。
SCSI コントローラーがある VM では、 lsblk を使用してデータ ディスクを識別します。 次の例では、 /dev/sdcを使用します。
sdcをデータ ディスクのデバイス名に置き換えます。
lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"
partedでディスクをパーティション分割し、partprobeを使用してオペレーティング システムに新しいパーティション テーブルを認識させる。
sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
sudo partprobe /dev/sdc
mkfs コマンドを使用してパーティションにファイル システムを書き込みます。
sudo mkfs.xfs /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 128G 52M 128G 1% /datadrive
再起動後にドライブが確実に再マウントされるように、そのドライブを /etc/fstab ファイルに追加する必要があります。 これを行うには、blkid ユーティリティを使用してディスクの UUID を取得します。
sudo -i blkid
出力には、ドライブの UUID が表示されます。 SCSI コントローラーがある VM では、パーティションが /dev/sdc1として表示されることがあります。 NVMe コントローラーがある VM では、 /dev/nvme0n2p1として表示される場合があります。
/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
スナップショットから仮想マシンを復元する
VM を削除する前に、 az vm show を使用して、すべてのデータ ディスクのリソース ID を dataDiskIds 変数に格納します。
dataDiskIds=$(az vm show \
--resource-group myResourceGroupDisk \
--name myVM \
--query "storageProfile.dataDisks[].managedDisk.id" \
--output tsv)
実際に仮想マシンの復旧を試すために、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 vm disk attach と各リソース ID を使用して、すべてのデータ ディスクを再アタッチします。
for dataDiskId in $dataDiskIds; do
az vm disk attach \
--resource-group myResourceGroupDisk \
--vm-name myVM \
--name "$dataDiskId"
done
次のステップ
このチュートリアルでは、VM ディスクについて、次のようなトピックを学習しました。
- OS ディスクと一時ディスク
- データ ディスク
- ディスクの種類とパフォーマンス オプション
- ディスクのパフォーマンス
- データ ディスクの接続と準備
- ディスクのスナップショット
次のチュートリアルに進み、VM 構成を自動化する方法について学習してください。