適用対象: ✔️ Linux VM ✔️ フレキシブルなスケール セット
この記事では、Azure Linux 仮想マシン (VM) に 一時ディスク (リソース ディスクとも呼ばれます) をフォーマットしてマウントする方法について説明します。 VM シリーズに応じて、一時ディスクでは SCSI または NVMe インターフェイスが使用されます。 一時ディスクはマネージド ディスクではなく、永続的ではありません。
ローカルの一時ディスクではなく、マネージド ディスクに重要なデータを格納します。 一時ディスクは、通常、ページ ファイル、スワップ ファイル、SQL Server tempdb ファイルなどの項目を格納するためのものです。
[前提条件]
一時ディスクをフォーマットする前に:
- データ損失を回避するために適切なディスクを特定する
- VM の停止/割り当て解除の間でデータが永続的ではないことを理解する
- root または sudo 特権を使用して VM に SSH アクセスする
ディスクのフォーマット
Warnung
フォーマットすると、ディスク上のすべてのデータが完全に消去されます。 正しいディスクを使用していて、重要なデータが存在しないことを確認します。
ディストリビューションで使用できる最新バージョンの parted を使用します。 ディスク サイズが 2 テビバイト (TiB) 以上の場合は、GPT パーティション分割を使用する必要があります。 ディスク サイズが 2 TiB 未満の場合は、MBR または GPT パーティション分割を使用できます。
次の例では、通常、SCSI 一時ディスクが表示されるpartedで/dev/sdbを使用します。
sdbをディスクの適切なデバイスに置き換えます。 パフォーマンスを向上させるために XFS ファイル システムを使用しています。
sudo parted /dev/disk/azure/resource --script mklabel gpt mkpart xfspart xfs 0% 100%
sudo partprobe /dev/sdb
sudo mkfs.xfs /dev/sdb1
partprobe ユーティリティを使用して、カーネルが新しいパーティションとファイル システムを認識していることを確認します。
partprobeを使用しない場合、blkidまたはlsblkコマンドは、新しいファイル システムの UUID をすぐに返さない可能性があります。
一時ディスクをマウントする
次に、 mkdirを使用してファイル システムをマウントするディレクトリを作成します。 一時ストレージの場合、一般的なマウント ポイントには、 /mnt、 /tmp、またはアプリケーション固有のディレクトリが含まれます。
sudo mkdir /mnt/temp
mountを使用してファイル システムをマウントします。 次の例では、 /dev/sdb1 パーティションを /mnt/temp マウント ポイントにマウントします。
sudo mount /dev/sdb1 /mnt/temp
Azure デバイス パスを使用することもできます。
sudo mount /dev/disk/azure/resource-part1 /mnt/temp
一時ディスクの TRIM/UNMAP サポート
ローカル一時ディスクでは、TRIM/UNMAP 操作がサポートされます。 最適なパフォーマンスを得る場合:
discardで /etc/fstab マウント オプションを使用します。
UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /mnt/temp xfs defaults,discard,nobootwait 0 0
または、 fstrim を定期的に実行します。
トラブルシューティング
Linux VM にデータ ディスクを追加するときに、LUN 0 にディスクが存在しない場合にエラーが発生する可能性があります。
az vm disk attach -new コマンドを使用してディスクを手動で追加し、Azure プラットフォームが適切な LUN を決定できるようにするのではなく、LUN (--lun) を指定する場合は、ディスクが既に存在する/LUN 0 に存在するように注意してください。
lsscsiからの出力のスニペットを示す次の例を考えてみます。
[5:0:0:0] disk Msft Virtual Disk 1.0 /dev/sdc
[5:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdd
LUN 0 と LUN 1 に 2 つのデータ ディスクが存在します ( lsscsi 出力の詳細 [host:channel:target:lun]の最初の列)。 両方のディスクに VM 内からアクセスできる必要があります。 LUN 1 に追加する最初のディスクと LUN 2 の 2 番目のディスクを手動で指定した場合、VM 内からディスクが正しく表示されない可能性があります。
注
これらの例では Azure host の値は 5 ですが、これは選択したストレージの種類によって異なる場合があります。
このディスクの動作は Azure の問題ではありませんが、Linux カーネルが SCSI 仕様に従う方法です。 Linux カーネルが接続されているデバイスの SCSI バスをスキャンする場合、システムが追加のデバイスのスキャンを続行するには、LUN 0 にデバイスが見つかる必要があります。 そのため、次のようになります。
- データ ディスクを追加した後、
lsscsiの出力を確認して、LUN 0 にディスクがあることを確認します。 - ディスクが VM 内に正しく表示されない場合は、LUN 0 にディスクが存在するかどうかを確認します。