Azure上のLinux VMにデータディスクを追加したい

今更ですが、Azure 上のLinuxVMにデータディスクを追加し、マウントする手順をまとめておきます。

ほとんどLinux側での操作となりますが、Azureの公式ドキュメントとして紹介されている手順に沿う形で記載します。

まず、Azure のLinuxVMに新規データディスクを追加する公式手順は以下です。

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

基本的には、これを順番に実行すれば問題ありません。ネット上のいろいろなページを参照することにより、かえってまごついてしまったので、MSドキュメントに沿う形で、こちらのFAQにまとめておこうと思い記載しました。
なお、ここでは新規データディスクを丸ごと一つのパーティションとして扱います。あまり込み入ったことはしていません。

1.データディスク追加

Azure ポータル上から、該当VM > ディスク をクリックし、データディスクカテゴリの

「新しいディスクを作成し接続する」をクリックします。

適宜追加するディスクの情報を入力し、「適用」をクリックします。ここでは、64GBのStandard HDDを指定しています。

以上で、Azure上の操作は完了です。

2.データディスク確認

Azure上でディスクを追加したら、Linux VMからその情報を確認します。以下をコマンドします。

lsblk -p

実行例:

上記実行例で、

/dev/sdc にポータルから追加した64GBのディスクが表示されていることが確認できます。

この/dev/sdX の部分は、データディスクの数によって異なるので、以降、適宜読み替えてください。

最初のデータディスクであれば、ほぼ、/dev/sdc だと思いますが、そうでない場合ももちろんあるので、適宜ご確認ください。

 

3.ディスクのパーティションテーブルを設定し、パーティションを作成

以下コマンドで、パーティションを作成します。

parted /dev/sdc –script mklabel gpt mkpart datadisk01 xfs 0% 100%

実行例:

Azureの公式ドキュメントだと、

Prepare a new empty disk

という部分です。「parted」コマンドを利用しています。このあたり、fdiskコマンドでも可能ですが、2TBを超えるディスクのマウント管理ができない、MS公式サイトでpartedコマンドが使われているのでこちらを紹介しています。partedコマンドに複数オプションが付与されていますが、ざっくり説明すると以下のとおりです。

/dev/sdc・・・ 対象とするディスクです。環境によって適宜変更してください。
–script・・・ 対話モードは使用しない(上記コマンド1行だけで完結させるために必要なオプション)
mklabel gpt・・・GPT 形式を指定する
mkpart datadisk01・・・「datadisk01」部分は任意の名前でよい(※)
xfs・・・ファイルシステムタイプにはxfsを指定
0% 100%・・・ディスクに対してどこまでパーティションを作成するかを指定しています。今回、新規ディスク1本丸ごと指定するので「0% 100%」です。

※ mkpart datadisk01 の部分は、「mklabel gpt」を指定している場合、パーティションの PARTLABEL 属性 を表すものとなるようです。この部分は、”primary”や”logical”という値でなくても、コマンドはとおります。
参考:同じ疑問を持った方の質問
Why does `parted` accept “xfspart” argument as valid `part-type`?

 

4.作成したパーティションを指定のファイルシステムでフォーマット

公式ドキュメントどおりすすめていきます。xfsでフォーマットします。

mkfs.xfs /dev/sdc1

sdc1 とコマンドしているのは、1つめのパーティション、ということです。

実行例

OSにパーティションの更新情報を認識させます。

partprobe /dev/sdc1

実行例

5.ディスクのマウント

マウントする為のフォルダを作成します。/ 直下に datastore01というフォルダを作成しました。

mkdir /datastore01

そのフォルダに新規設定した/dev/sdc1 をマウントします。

mount /dev/sdc1 /datastore01

ここまでくれば、この後、

lsblk -p

をコマンドすれば、sdc1が/datastore01 にマウントされているのが確認できます。

これでマウント自体は完了ですが、このままでは、OS再起動した際に、自動でマウントされないのでご注意ください。公式ドキュメントにも/etc/fstabを修正するように記載があるのでそれに従っていきます。

 

6.VM再起動後にも自動マウントされるようfstab修正

以下コマンドで新規ディスクのUUIDを確認します。

lsblk -f

実行例

上記実行例の結果から、datastore01にマウントされているディスクのUUIDは、

a9f2740f-d78f-4253-ad57-29f1d45d31b2

だと確認できます。このUUIDを/etc/fstabに記載していきます。

fstabは誤って編集するとOS自体が起動しなくなるため、慎重に作業をお願いします。

まず、バックアップを取得します。

cp -p /etc/fstab /etc/fstab.bak

※万が一起動しなくなったら、Azureポータルのコンソール接続などで、上記バックアップファイルから切り戻すとよいでしょう。

viで編集します。

vi /etc/fstab

以下赤字部分を追記

# /etc/fstab
# Created by anaconda on Wed Nov 18 22:19:57 2020
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk/’.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run ‘systemctl daemon-reload’ to update systemd
# units generated from this file.
#
UUID=a0e841e1-c145-4536-bfcd-738c05c77bba / xfs defaults 0 0
UUID=17909981-50b9-46d5-abe5-32236a7d8281 /boot xfs defaults 0 0
UUID=E09A-EA15 /boot/efi vfat defaults,uid=0,gid=0,umask=077,shortname=winnt 0 2
UUID=a9f2740f-d78f-4253-ad57-29f1d45d31b2 /datastore01 xfs defaults,nofail 1 2

UUID=  という部分で、今回追加したディスクのUUIDを指定します。

その後で、マウントポイント(/datastore01)、ファイルシステムタイプ(xfs)を指定していきます。

「defaults,nofail 1 2」という部分は、MSのサンプルコマンドどおりの指定ですが、環境によって適宜調整するのがよいと思います。(fstabのオプションについては適宜お調べください。)

なお、「nofail」は、エラーが発生しても起動できるようにするオプションで、fstabの記載不備などによりマウントに失敗した際でも該当ディスクを除いて起動してくれるものです。こちらは付与しておいた方が無難だと思います。

Azure上のLinux VMにデータディスクを追加する手順は以上です。

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルクロステクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください