ポータルを利用し、データ ディスクを Linux VM に接続する

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

この記事では、Azure ポータルを使用して新しいディスクと既存のディスクの両方を Linux 仮想マシンに接続する方法について示します。 Azure Portal で Windows VM にデータ ディスクを接続することもできます。

VM にディスクを接続する前に、次のヒントを確認してください。

仮想マシンの検索

  1. Azure portal にアクセスして VM を検索します。 [仮想マシン] を検索して選択します。
  2. 一覧から VM を選択します。
  3. [仮想マシン] ページの [設定] で、 [ディスク] を選択します。

新しいディスクの接続

  1. [ディスク] ウィンドウの [データ ディスク] で、 [新しいディスクを作成し接続する] を選択します。

  2. マネージド ディスクの名前を入力します。 既定の設定を確認し、必要に応じて、 [ストレージの種類][サイズ (GiB)][暗号化][ホスト キャッシュ] を更新します。

    ディスク設定を確認する

  3. 完了したら、ページの上部にある [保存] を選択してマネージド ディスクを作成し、VM 構成を更新します。

既存のディスクの接続

  1. [ディスク] ペインの [データ ディスク] で、[既存のディスクのアタッチ] を選びます。

  2. [ディスク名] のドロップダウン メニューを選択し、使用可能なマネージド ディスクのリストからディスクを選択します。

  3. [保存] を選択して既存のマネージド ディスクをアタッチし、VM の構成を更新します。

Linux VM を接続して新しいディスクをマウントする

Linux VM から使用できるように新しいディスクのパーティション分割、フォーマット、マウントを行うには、SSH で VM に接続します。 詳細については、Azure 上の Linux における SSH の使用方法に関するページをご覧ください。 次の例では、パブリック IP アドレス 10.123.123.25 と、ユーザー名 azureuser を指定して、VM に接続します。

ssh azureuser@10.123.123.25

ディスクの特定

ご利用の VM に接続したら、ディスクを特定する必要があります。 この例では、lsblk を使用してディスクを一覧表示します。

lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"

出力は次の例のようになります。

sda     0:0:0:0      30G
├─sda1             29.9G /
├─sda14               4M
└─sda15             106M /boot/efi
sdb     1:0:1:0      14G
└─sdb1               14G /mnt
sdc     3:0:0:0       4G

この例において、追加されたディスクは sdc です。 これは LUN 0 で、4 GB です。

より複雑な例として、複数のデータ ディスクがポータルでどのように表示されるかを次に示します。

ポータルで複数のディスクを表示したスクリーンショット。

この画像には、次の 3 つのデータ ディスクがあることがわかります: LUN 0 の 4 GB、LUN 1 の 16 GB、LUN 2 の 32 G。

lsblk を使用すると、それは次のようになります:

sda     0:0:0:0      30G
├─sda1             29.9G /
├─sda14               4M
└─sda15             106M /boot/efi
sdb     1:0:1:0      14G
└─sdb1               14G /mnt
sdc     3:0:0:0       4G
sdd     3:0:0:1      16G
sde     3:0:0:2      32G

lsblk の出力から、LUN 0 の 4 GB ディスクは sdc であり、LUN 1 の 16 GB ディスクは sdd であり、LUN 2 の 32 G ディスクは sde であることがわかります。

新しい空のディスクを準備する

重要

データが格納された既存のディスクを使用する場合は、ディスクのマウントにスキップしてください。 次の手順を実行すると、ディスク上のデータが削除されます。

新規ディスクをアタッチする場合、ディスクをパーティション分割する必要があります。

parted ユーティリティを使用すれば、データ ディスクのパーティション分割とフォーマットを行うことができます。

  • ご利用のディストリビューションで入手可能な最新バージョンの parted を使用してください。
  • ディスク サイズが 2 テビバイト (TiB) 以上の場合は、GPT パーティション分割を使用する必要があります。 ディスク サイズが 2 TiB 未満の場合は、MBR または GPT のどちらのパーティション分割でも使用できます。

次の例では、/dev/sdc にある parted を使用します。これは、通常、ほとんどの VM 上で最初のデータ ディスクが置かれる場所です。 sdc を、ご利用のディスクに適したオプションに置き換えます。 また、XFS ファイル システムを使用してフォーマットしています。

sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
sudo mkfs.xfs /dev/sdc1
sudo partprobe /dev/sdc1

partprobe ユーティリティを使用して、カーネルが新しいパーティションとファイルシステムを認識できるようにしています。 partprobe を使用しないと、blkid または lslbk コマンドで、新しいファイルシステムの UUID が返されない可能性があります。

ディスクのマウント

mkdir を使用して、ファイル システムをマウントするディレクトリを作成します。 次の例では、 /datadrive にディレクトリを作成します。

sudo mkdir /datadrive

mount を使用して、ファイル システムをマウントします。 次の例では、 /dev/sdc1 パーティションを /datadrive マウント ポイントにマウントします。

sudo mount /dev/sdc1 /datadrive

再起動後にドライブを自動的に再マウントするために、そのドライブを /etc/fstab ファイルに追加する必要があります。 ドライブを参照する場合に、デバイス名 (/dev/sdc1 など) だけでなく、UUID (汎用一意識別子) を /etc/fstab で使用することもお勧めします。 UUID を使用すると、OS が起動中にディスク エラーを検出した場合に、間違ったディスクが特定の場所にマウントされるのを防ぐことができます。 その後、残りのデータ ディスクは、その同じデバイス ID に割り当てられます。 新しいドライブの UUID を確認するには、blkid ユーティリティを使用します。

sudo blkid

出力は次の例のようになります。

/dev/sda1: LABEL="cloudimg-rootfs" UUID="11111111-1b1b-1c1c-1d1d-1e1e1e1e1e1e" TYPE="ext4" PARTUUID="1a1b1c1d-11aa-1234-1a1a1a1a1a1a"
/dev/sda15: LABEL="UEFI" UUID="BCD7-96A6" TYPE="vfat" PARTUUID="1e1g1cg1h-11aa-1234-1u1u1a1a1u1u"
/dev/sdb1: UUID="22222222-2b2b-2c2c-2d2d-2e2e2e2e2e2e" TYPE="ext4" TYPE="ext4" PARTUUID="1a2b3c4d-01"
/dev/sda14: PARTUUID="2e2g2cg2h-11aa-1234-1u1u1a1a1u1u"
/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs" PARTLABEL="xfspart" PARTUUID="c1c2c3c4-1234-cdef-asdf3456ghjk"

Note

/etc/fstab ファイルを不適切に編集すると、システムが起動できなくなる可能性があります。 編集方法がはっきりわからない場合は、このファイルを適切に編集する方法について、ディストリビューションのドキュメントを参照してください。 /etc/fstab ファイルを編集する前に、このファイルのバックアップを作成してください。

次に、テキスト エディターで /etc/fstab ファイルを開きます。 前の手順で作成した /dev/sdc1 デバイスの UUID 値と /datadrive のマウントポイントを使用して、ファイルの末尾に行を追加します。 この記事の例を使用すると、新しい行は次のようになります。

UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive   xfs   defaults,nofail   1   2

ファイルの編集が完了したら、エディターを保存して閉じます。

Note

この後、fstab を編集せずにデータ ディスクを削除すると VM は起動できません。 ほとんどのディストリビューションでは、nofail または nobootwait fstab オプションが提供されています。 これにより起動時にディスクのマウントが失敗しても、システムを起動できます。 これらのパラメーターの詳細については、使用しているディストリビューションのドキュメントを参照してください。

nofail オプションを使用すると、ファイル システムが壊れているか、ブート時にディスクが存在しない場合でも VM が起動されるようになります。 このオプションを指定しない場合、「Cannot SSH to Linux VM due to FSTAB errors (FSTAB エラーが原因で Linux VM に SSH 接続できない)」で説明されているような動作が発生します。

ディスクを確認する

lsblk を再度使用して、ディスクとマウントポイントを表示できるようになりました。

lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"

出力は次のようになります。

sda     0:0:0:0      30G
├─sda1             29.9G /
├─sda14               4M
└─sda15             106M /boot/efi
sdb     1:0:1:0      14G
└─sdb1               14G /mnt
sdc     3:0:0:0       4G
└─sdc1                4G /datadrive

sdc/datadrive にマウントされていることがわかります。

Azure における Linux の TRIM/UNMAP サポート

一部の Linux カーネルでは、ディスク上の未使用ブロックを破棄するために TRIM/UNMAP 操作がサポートされます。 この機能は主に、削除されたページが無効になり、破棄できることを Azure に通知するのに役立ちます。 この機能を使用すると、非管理対象 Standard ディスクやディスク スナップショットなど、消費されたストレージの量に基づいて課金されるディスクのコストを節約できます。

Linux VM で TRIM のサポートを有効にする方法は 2 通りあります。 通常どおり、ご使用のディストリビューションで推奨される方法をお問い合わせください。

  • 次のように、 /etc/fstabdiscard マウント オプションを使用します。

    UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive   xfs   defaults,discard   1   2
    
  • 場合によっては、discard オプションがパフォーマンスに影響する可能性があります。 または、 fstrim コマンドを手動でコマンド ラインから実行するか、crontab に追加して定期的に実行することができます。

sudo apt-get install util-linux
sudo fstrim /datadrive

次のステップ

詳細およびディスクの問題のトラブルシューティングについては、「Linux VM デバイス名の変更のトラブルシューティング」を参照してください。

Azure CLI を利用し、データ ディスクを接続することもできます。