次の方法で共有


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

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

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

前提条件

Azure 仮想マシン (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 では 32G です。

lsblkの出力から、LUN 0 の 4 GB ディスクがsdc、LUN 1 の 16 GB ディスクがsddされ、LUN 2 の 32G ディスクが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

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

Von Bedeutung

データを含む既存のディスクを使用している場合は、 ディスクのマウントに進みます。 次の手順では、ディスク上のデータを削除します。

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

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

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

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

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

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

ディスクをマウントする

mkdirを使用してファイル システムをマウントするディレクトリを作成し、mountを使用してファイル システムをマウントします。 その後、 ドライブを /etc/fstab ファイルに追加して、再起動後にドライブが自動的に追加されるようにします。

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

sudo mkdir /datadrive
sudo mount /dev/sdc1 /datadrive
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"

fstab ファイルを編集する

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

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

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

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

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

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

ディスクを確認する

lsblkをもう一度使用して、ディスクとマウント ポイントを確認できるようになりました。 その後、出力は例のようになります。

次の出力例では、 sdc/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. /etc/fstabdiscard マウント オプションを使用します。次に例を示します。

    ```config
    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