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

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

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

Azure ポータルで Linux VM を見つける

次の手順に従います。

  1. Azure portal に移動して VM を見つけます。 [仮想マシン] を検索して選択します。

  2. ディスクを接続する VM を一覧から選択します。

  3. [ 仮想マシン ] ページの [設定] で、[ディスク] を選択 します。

Azure ポータルで新しいマネージド データ ディスクをアタッチする

次の手順に従います。

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

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

    新しいマネージド ディスクの LUN、ディスク名、ストレージの種類、サイズ、暗号化、およびホスト キャッシュ設定を示す Azure ポータルの [データ ディスク] ウィンドウのスクリーンショット。

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

Azure ポータルで既存のマネージド データ ディスクをアタッチする

次の手順に従います。

  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

Linux で接続されているデータ ディスクを見つける

Azure Linux VM は、SCSI または NVMe コントローラーを介してマネージド ディスクを公開できます。 VM で使用するコントローラーの種類を選択します。 コントローラーの種類の詳細については、 SCSI から NVMe への変換を参照してください。

を使用して、SCSI コントローラーを備えた VM 上のディスクを一覧表示します:

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 GiB です。

より複雑な例として、ポータルでの複数のデータ ディスクの外観を次に示します。

3 つのAzureマネージド データ ディスク (LUN 0 の 4 GiB Premium SSD、LUN 1 の 16 GiB Premium SSD、LUN 2 の 32 GiB Standard HDD) のスクリーンショット。

この画像では、3 つのデータ ディスク (LUN 0 では 4 GiB、LUN 1 では 16 GiB、LUN 2 では 32 GiB) を確認できます。

lsblkの出力から、LUN 0 の 4 GiB ディスクがsdc、LUN 1 の 16 GiB ディスクがsddされ、LUN 2 の 32 GiB ディスクがsdeことがわかります。

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

Linux で新しい空のデータ ディスクを準備する

Important

データを含む既存のディスクを使用している場合は、 ディスクのマウントに進みます。 次の手順では、ディスク上のデータを削除します。 フォーマットする前に、正しいディスクを識別したことを確認します。

新しいディスクを接続する場合は、ディスクをパーティション分割する必要があります。

parted ユーティリティを使用してデータ ディスクをパーティション分割し、mkfs.xfsを使用して XFS ファイル システムでパーティションをフォーマットします。

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

次の例では、partedで/dev/sdcを使用します。この例では、通常、最初のデータ ディスクがほとんどの VM 上にあります。 sdcをディスクの正しいオプションに置き換えます。 この例では、 XFS ファイル システムを使用してパーティションの書式を設定します。

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

partprobe ユーティリティを使用して、カーネルが新しいパーティション テーブルを認識していることを確認します。 partprobeを使用しない場合、blkidまたはlsblkコマンドは、新しいファイル システムの UUID をすぐに返さない可能性があります。

Linux でデータ ディスクをマウントする

mkdirを使用してファイル システムをマウントするディレクトリを作成します。

sudo mkdir /datadrive

mountを使用してファイル システムをマウントします。

/dev/sdc1を、VM 上で識別したデータ ディスクのパーティションに SCSI コントローラーで置き換えます。

sudo mount /dev/sdc1 /datadrive

再起動後にドライブが自動的に追加されるように、 ドライブを /etc/fstab ファイルに追加します。

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

sudo blkid

次の出力は、SCSI コントローラーを搭載した VM からの出力です。 NVMe コントローラーがある VM では、マネージド データ ディスク パーティションは、/dev/sdc1ではなく、/dev/nvme0n2p1などの NVMe パスとして表示されます。

/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" 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"

/etc/fstab で自動マウントを構成する

Note

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

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

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

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

Note

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

nofail オプションを使用すると、ファイル システムが破損している場合や、起動時にディスクが存在しない場合でも、VM が起動します。 このオプションがない場合、「FSTAB エラーが原因で Linux VM に SSH 接続できない」の説明に従って動作が発生する可能性があります

Linux でマウントされたデータ ディスクを確認する

lsblkをもう一度使用して、データ ディスクが/datadriveにマウントされていることを確認します。

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

Azure での Linux の TRIM/UNMAP サポート

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

Linux VM で TRIM サポートを有効にするには、2 つの方法があります。 通常どおり、推奨される方法については、ディストリビューションを参照してください。

  1. たとえば、discard で マウントオプションを使用します。

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

    Ubuntu

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

    RHEL

    sudo yum install util-linux
    sudo fstrim /datadrive
    

    SUSE

    sudo zypper install util-linux
    sudo fstrim /datadrive