次の方法で共有


Azure Linux VM への一時ディスクのフォーマットとマウント

適用対象: ✔️ Linux VM ✔️ フレキシブルなスケール セット

この記事では、Azure Linux 仮想マシン (VM) に 一時ディスク (リソース ディスクとも呼ばれます) をフォーマットしてマウントする方法について説明します。 VM シリーズに応じて、一時ディスクでは SCSI または NVMe インターフェイスが使用されます。 一時ディスクはマネージド ディスクではなく、永続的ではありません。

ローカルの一時ディスクではなく、マネージド ディスクに重要なデータを格納します。 一時ディスクは、通常、ページ ファイル、スワップ ファイル、SQL Server tempdb ファイルなどの項目を格納するためのものです。

[前提条件]

一時ディスクをフォーマットする前に:

ディスクのフォーマット

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 を定期的に実行します。

sudo apt install util-linux
sudo fstrim /mnt/temp

トラブルシューティング

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 にディスクが存在するかどうかを確認します。