ポータルを利用し、データ ディスクを Linux VM に接続する
適用対象: ✔️ Linux VM ✔️ フレキシブルなスケール セット
この記事では、Azure ポータルを使用して新しいディスクと既存のディスクの両方を Linux 仮想マシンに接続する方法について示します。 Azure Portal で Windows VM にデータ ディスクを接続することもできます。
VM にディスクを接続する前に、次のヒントを確認してください。
- 仮想マシンのサイズによって、接続できるデータ ディスク数は変わります。 詳細については、「 仮想マシンのサイズ」を参照してください。
- 仮想マシンに接続されているディスクは、実際には Azure に保存されている .vhd ファイルです。 詳しくは、「マネージド ディスクの概要」を参照してください。
- ディスクをアタッチした後、Linux VM に接続して新しいディスクをマウントする必要があります。
仮想マシンの検索
- Azure portal にアクセスして VM を検索します。 [仮想マシン] を検索して選択します。
- 一覧から VM を選択します。
- [仮想マシン] ページの [設定] で、 [ディスク] を選択します。
新しいディスクの接続
[ディスク] ウィンドウの [データ ディスク] で、 [新しいディスクを作成し接続する] を選択します。
マネージド ディスクの名前を入力します。 既定の設定を確認し、必要に応じて、 [ストレージの種類] 、 [サイズ (GiB)] 、 [暗号化] 、 [ホスト キャッシュ] を更新します。
完了したら、ページの上部にある [保存] を選択してマネージド ディスクを作成し、VM 構成を更新します。
既存のディスクの接続
[ディスク] ペインの [データ ディスク] で、[既存のディスクのアタッチ] を選びます。
[ディスク名] のドロップダウン メニューを選択し、使用可能なマネージド ディスクのリストからディスクを選択します。
[保存] を選択して既存のマネージド ディスクをアタッチし、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/fstab で
discard
マウント オプションを使用します。UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,discard 1 2
場合によっては、
discard
オプションがパフォーマンスに影響する可能性があります。 または、fstrim
コマンドを手動でコマンド ラインから実行するか、crontab に追加して定期的に実行することができます。
次のステップ
詳細およびディスクの問題のトラブルシューティングについては、「Linux VM デバイス名の変更のトラブルシューティング」を参照してください。
Azure CLI を利用し、データ ディスクを接続することもできます。