適用対象: ✔️ Linux VM ✔️ フレキシブルなスケール セット
この記事では、Azure portal を使用して、新規ディスクと既存のディスクの両方を Linux 仮想マシンにアタッチする方法について説明します。 Azure portal で Windows VM にデータ ディスクを接続することもできます。
前提条件
Azure 仮想マシン (VM) にディスクを接続する前に、次のヒントを確認してください。
仮想マシンのサイズによって、接続できるデータ ディスク数は変わります。 詳細については、「 仮想マシンのサイズ」を参照してください。
仮想マシンを検索する
次の手順に従います。
Azure portal に移動して VM を見つけます。 [仮想マシン] を検索して選択します。
ディスクを接続する 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 では 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 通りあります。 通常どおり、ご使用のディストリビューションで推奨される方法をお問い合わせください。
/etc/fstab で
discard
マウント オプションを使用します。次に例を示します。```config UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,discard 1 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