Azure Red Hat Enterprise Linux 仮想マシンのディスク操作手順~データディスク~

前回は、Azure上にデプロイしたRed Hat Enterprise Linux(RHEL)9のVMで、OSディスクを拡張する手順を説明しました。

Azure Red Hat Enterprise Linux 仮想マシンのディスク操作手順~OSディスク~ - JBS Tech Blog

本記事では、データディスクの操作手順について記載します。

※ RHEL9のVMはLVM構成のものを使用しています

はじめに

本記事では、データディスクに関して大きく以下3つの手順を説明します。

データディスク新規追加

Azureポータルから新規のディスクを割り当てる際、OS上でフォーマットし、マウントする操作が必要です。

データディスク拡張

Azureポータルからディスクを拡張する場合、OS上でパーティション拡張操作も必要です。

データディスクアンマウント

データディスクをアンマウントする場合、OS上とAzureポータルの両方でアンマウント操作が必要です。

また、Azureではアンマウントしたディスクに対しても課金が発生するため、利用が終了したディスクは速やかに削除する必要があります。

データディスク新規追加

操作手順

新規ディスク追加(Azure)

1. Azureポータルに、VMの共同管理者以上の権限があるアカウントでログインします。

2. 対象VMの「ディスク」画面で[新しいディスクを作成し接続する]をクリックします。

新規ディスク追加

3. 新規ディスクの情報を入力し[適用]をクリックします。

新規ディスク追加

4. 対象VMの「ディスク」画面で、新規ディスクが表示されることを確認します。

新規ディスク追加
作業前の状態確認(OS)

1. VMにSSH接続し、sudoコマンドでrootに昇格します。

2. 以下のコマンドを実行し、現在のディスク構成を確認します。実行結果から、パーティションの存在しない「sdc」が確認できます。

※ 個々のパーティションのデバイス名は”NAME”列に記載されます。

# lsblk -p -o NAME,FSTYPE,SIZE,MOUNTPOINT
<実行結果>
NAME                          FSTYPE       SIZE MOUNTPOINT
/dev/sda                                   64G 
|-/dev/sda1                   vfat         200M /boot/efi 
|-/dev/sda2                   xfs          500M /boot 
|-/dev/sda3                                  1M 
|-/dev/sda4                   LVM2_member 63.3G 
  |-/dev/mapper/rootvg-tmplv  xfs            2G /tmp 
  |-/dev/mapper/rootvg-usrlv  xfs           10G /usr 
  |-/dev/mapper/rootvg-homelv xfs            1G /home 
  |-/dev/mapper/rootvg-varlv  xfs            8G /var 
  |-/dev/mapper/rootvg-rootlv xfs            2G /
/dev/sdb                                     8G
|-/dev/sdb1                   ext4           8M /mnt 
/dev/sdc                                    32G   ←★データディスクのサイズ 
データディスクのパーティション構成(OS)

1. 以下のコマンドを実行し、新規ディスクのパーティションを構成します。

※ 対象のデバイス名は、先の「作業前の状態確認」手順2.で確認した「/dev/sdc」です。

# parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
<実行結果>
出力なし
VG作成(OS)

1. 以下のコマンドを実行し、VGを新規作成します。本記事ではVG名を「vg01」とします。

# vgcreate vg01 /dev/sdc1
<実行結果>
Physical volume "/dev/sdc1" successfully created.
Volume group "vg01" successfully created
LVM作成(OS)

1. 以下のコマンドを実行し、LVMを新規作成します。本記事ではLVM名を「lv01」とします。

# lvcreate --name lv01 --extents 100%FREE vg01
<実行結果>
Logical volume "lv01" created.
ファイルシステム作成(OS)

1. 以下のコマンドを実行し、前の手順で作成したLVMパーティションのファイルシステムを拡張します。デバイス名は「/dev/mapper/<VG名>-<LVM名>」です。本記事ではデバイス名を「/dev/mapper/vg01-lv01」とします。

# mkfs.xfs /dev/mapper/vg01-lv01
<実行結果>
meta-data=/dev/mapper/vg01-lv01  isize=512    agcount=4, agsize=2096896 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=8387584, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.
マウント設定

1. 以下のコマンドを実行し、データディスクのマウントポイントを作成します。本記事では、マウントポイントを「/data」とします。

# mkdir /data
<実行結果>
出力なし

2. 以下のコマンドを実行し、ファイル「/etc/fstab」に以下の書式でデータディスクのマウント設定を追加します。

<デバイス名> <マウントポイント> xfs defaults 0 0

# vi /etc/fstab
<最終行に以下追記>
/dev/mapper/vg01-lv01 /data xfs defaults 0 0

3. 以下のコマンドを実行して、fstabの変更をOSに反映させます。

# systemctl daemon-reload
<実行結果>
出力なし

4. 以下のコマンドを実行し、fstabのマウント設定を読み込みます。

# mount -a
<実行結果>
出力なし

5. 以下のコマンドを実行し、変更後のディスク構成を確認します。実行結果から、「/dev/sdc」にLVMパーティションが構成されたことがわかります。

# lsblk -p -o NAME,FSTYPE,SIZE,MOUNTPOINT
<実行結果>
NAME                          FSTYPE       SIZE MOUNTPOINT
/dev/sda                                   64G 
|-/dev/sda1                   vfat         200M /boot/efi 
|-/dev/sda2                   xfs          500M /boot 
|-/dev/sda3                                  1M 
|-/dev/sda4                   LVM2_member 63.3G 
  |-/dev/mapper/rootvg-tmplv  xfs            2G /tmp 
  |-/dev/mapper/rootvg-usrlv  xfs           10G /usr 
  |-/dev/mapper/rootvg-homelv xfs            1G /home 
  |-/dev/mapper/rootvg-varlv  xfs            8G /var 
  |-/dev/mapper/rootvg-rootlv xfs            2G /
/dev/sdb                                     8G
|-/dev/sdb1                   ext4           8M /mnt 
/dev/sdc                                    32G
|-/dev/sdc1                   VM2_member    32G
  |-/dev/mapper/vg01-lv01     xfs           32G  ←★データディスクパーティション

6. 以下のコマンドを実行し、ディスク構成を確認します。実行結果から、「/data」にデータディスクがマウントされていることがわかります。

# df -h
<実行結果>
Filesystem                 Size  Used Avail Use% Mounted on
devtmpfs                   4.0M     0  4.0M   0% /dev
tmpfs                      1.8G     0  1.8G   0% /dev/shm
tmpfs                      722M  8.7M  713M   2% /run
efivarfs                   128K   35K   89K  29% /sys/firmware/efi/efivars
/dev/mapper/rootvg-rootlv  2.0G   71M  1.9G   4% /
/dev/mapper/rootvg-usrlv    10G  1.6G  8.4G  16% /usr
/dev/sda2                  436M  131M  306M  31% /boot
/dev/mapper/rootvg-homelv  960M   40M  921M   5% /home
/dev/mapper/rootvg-tmplv   2.0G   47M  1.9G   3% /tmp
/dev/sda1                  200M  7.1M  193M   4% /boot/efi
/dev/mapper/rootvg-varlv   8.0G  642M  7.4G   8% /var
/dev/mapper/vg01-lv01       32G  261M   32G   1% /data   ←★データディスク
/dev/sdb1                  7.8G   28K  7.4G   1% /mnt
tmpfs                      361M     0  361M   0% /run/user/1000

まとめ

下表に、データディスク新規追加時に必要な操作をまとめます。

  作業有無 作業対象
1.VM停止 不要 -
2.ディスク追加 必要 Azureポータル
3.パーティション構成 必要 OS
4.VG構成 必要 OS
5.LVM構成 必要 OS
6.ファイルシステム構成 必要 OS
7.マウントポイント構成 必要 OS
8.再起動 不要 -

データディスク拡張

前提条件

本記事ではデータディスク拡張前にVMの停止(割り当て解除)を実施します。

データディスク拡張は、一部の条件に合致する場合はVMの停止をせずに実施することが可能です。詳細は以下公開情報から確認が可能です。

Linux VM の仮想ハード ディスクを拡張する - Azure Virtual Machines | Microsoft Learn

操作手順

データディスク拡張(Azure)

1. Azureポータルに、VMの共同管理者以上の権限があるアカウントでログインします。

2. 対象VMの「概要」画面でVMを停止し、状態が「停止済み(割り当て解除)」になることを確認します。

データディスク拡張

3. 対象VMの「ディスク」画面で拡張対象のデータディスク名をクリックします。

データディスク拡張

4. データディスクの「サイズおよびパフォーマンス」画面で[拡張後のディスクサイズ]を選択し[保存]をクリックします。

データディスクの拡張

5. 対象VMの「ディスク」画面で、拡張後のディスクサイズが表示されることを確認します。

データディスクの拡張

6. 対象VMの「概要」画面でVMを開始し、状態が「実行中」になることを確認します。

データディスク拡張
作業前の状態確認(OS)

1. VMにSSH接続し、sudoコマンドでrootに昇格します。

2. 以下のコマンドを実行し、現在のディスク構成を確認します。実行結果から、データディスクが拡張されていることを確認します。

# lsblk -p -o NAME,FSTYPE,SIZE,MOUNTPOINT
<実行結果>
NAME                          FSTYPE       SIZE MOUNTPOINT
/dev/sda                                   64G 
|-/dev/sda1                   vfat         200M /boot/efi 
|-/dev/sda2                   xfs          500M /boot 
|-/dev/sda3                                  1M 
|-/dev/sda4                   LVM2_member 63.3G 
  |-/dev/mapper/rootvg-tmplv  xfs            2G /tmp 
  |-/dev/mapper/rootvg-usrlv  xfs           10G /usr 
  |-/dev/mapper/rootvg-homelv xfs            1G /home 
  |-/dev/mapper/rootvg-varlv  xfs            8G /var 
  |-/dev/mapper/rootvg-rootlv xfs            2G /
/dev/sdb                                    64G ←★データディスクの合計サイズ 
|-/dev/sdb1                   LVM2_member   32G ←★LVMの合計サイズ 
  |-/dev/mapper/vg01-lv01     xfs           32G /data ←★/dataのサイズ
/dev/sdc                                     8G
|-/dev/sdc1                   ext4           8M /mnt
パーティション拡張(OS)

1. 以下のコマンドを実行し、LVM全体のパーティションを拡張します。

※ 拡張対象のデバイス名は、先の「作業前の状態確認」手順2.で確認した「/dev/sdb1」です。

# growpart /dev/sdb 1
<実行結果>
CHANGED: partition=1 start=2048 old: size=67104768 end=67106815 new: size=134215647 end=134217694
# pvresize /dev/sdb1
<実行結果>
  Physical volume "/dev/sdb1" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
LVM拡張(OS)

1. 以下のコマンドを実行し、現在のLVM構成を確認します。

# lvs
<実行結果>
LV     VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
homelv rootvg -wi-ao----  1.00g
rootlv rootvg -wi-ao----  2.00g
tmplv  rootvg -wi-ao----  2.00g
usrlv  rootvg -wi-ao---- 10.00g
varlv  rootvg -wi-ao----  8.00g
lv01   vg01   -wi-ao---- <32.00g   ←★/dataのLVMサイズ

2. 以下のコマンドを実行し、LVMパーティションを拡張します。本記事では「/data」のサイズを拡張します。

※「/data」のデバイス名は、先の「作業前の状態確認」手順2.で確認した「/dev/mapper/vg01-lv01」です。

# lvextend -l +100%FREE /dev/mapper/vg01-lv01
<実行結果>
  Size of logical volume vg01/lv01 changed from <32.00 GiB (8191 extents) to <64.00 GiB (16383 extents).
  Logical volume vg01/lv01 successfully resized.
ファイルシステム構成(OS)

1. 以下のコマンドを実行し、前の手順で拡張したLVMパーティションのファイルシステムを拡張します。

# xfs_growfs /dev/mapper/vg01-lv01
<実行結果>
meta-data=/dev/mapper/vg01-lv01  isize=512    agcount=4, agsize=2096896 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=8387584, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 8387584 to 16776192

2. 以下のコマンドを実行し、変更後のディスク構成を確認します。実行結果から、「data」のパーティションサイズが増えたことがわかります。

# lsblk -p -o NAME,FSTYPE,SIZE,MOUNTPOINT
<実行結果>
NAME                          FSTYPE       SIZE MOUNTPOINT
/dev/sda                                    64G
tq/dev/sda1                   vfat         200M /boot/efi
tq/dev/sda2                   xfs          500M /boot
tq/dev/sda3                                  1M
mq/dev/sda4                   LVM2_member 63.3G
  tq/dev/mapper/rootvg-tmplv  xfs            2G /tmp
  tq/dev/mapper/rootvg-usrlv  xfs           10G /usr
  tq/dev/mapper/rootvg-homelv xfs            1G /home
  tq/dev/mapper/rootvg-varlv  xfs            8G /var
  mq/dev/mapper/rootvg-rootlv xfs            2G /
/dev/sdb                                     8G
mq/dev/sdb1                   ext4           8G /mnt
/dev/sdc                                    64G
mq/dev/sdc1                   LVM2_member   64G
  mq/dev/mapper/vg01-lv01     xfs           64G /data   ←★/dataのLVMサイズ

3. 以下のコマンドを実行し変更後のLVM構成を確認します。実行結果から、「/data」のLVMサイズが増えたことがわかります。

# lvs
<実行結果>
LV     VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
homelv rootvg -wi-ao----  1.00g
rootlv rootvg -wi-ao----  2.00g
tmplv  rootvg -wi-ao----  2.00g
usrlv  rootvg -wi-ao---- 10.00g
varlv  rootvg -wi-ao----  8.00g
lv01   vg01   -wi-ao---- <64.00g   ←★/dataのLVMサイズ

まとめ

下表に、データディスク新規追加時に必要な操作をまとめます。

  作業有無 作業対象
1.VM停止 必要(ただし前提条件に合致する場合は不要) Azureポータル
2.ディスク拡張 必要 Azureポータル
3.パーティション拡張 必要 OS
4.VG構成 不要 -
5.LVM構成 必要 OS
6.ファイルシステム構成 必要 OS
7.マウントポイント構成 不要 -
8.再起動 不要 -

データディスクアンマウント

前提条件

本記事ではデータディスクのアンマウントを実施します。

Azureのディスクはアンマウント後も課金が発生します。対象ディスクが不要である場合は、不要な課金を防ぐため削除が必要です。

アンマウントしたデータディスクは、AzureポータルからVMに接続し、OSからマウント操作を実施することで、再び利用することが可能です。また別のVMでも利用することが可能です。

操作手順

ディスクアンマウント(OS)

1. 以下のコマンドを実行し、ファイル「/etc/fstab」から以下のデータディスクマウント設定を削除します。

<デバイス名> <マウントポイント> xfs defaults 0 0

# vi /etc/fstab
<最終行の以下設定を削除>
/dev/mapper/vg01-lv01 /data xfs defaults 0 0  ←★削除対象行

2. 以下のコマンドを実行し、「/data」をアンマウントします。コマンド実行時は、カレントディレクトリを「/data」から移動する必要があります。

# umount /data
<実行結果>
出力なし

3. 以下のコマンドを実行し、ディスク構成を確認します。実行結果から、「/data」がアンマウントされている(表示されない)ことがわかります。

# df -h
<実行結果>
「/dev/mapper/vg01-lv01」からはじまる行が表示されない
ディスクアンマウント(Azure)

1. Azureポータルに、VMの共同管理者以上の権限があるアカウントでログインします。

2. 対象VMの「ディスク」画面で、アンマウント対象データディスクの右端にある「デタッチ」アイコンをクリックします。

ディスクアンマウント

3. アンマウント対象データディスクが接続されてない状態であることを確認し、[適用]をクリックします。

ディスクアンマウント

4. 対象VMの「ディスク」画面で、データディスクが存在しないことを確認します。

ディスクアンマウント

※Azureではアンマウントしたディスクに対しても課金が発生します。利用が終了したディスクは必ず削除を実施してください。

データディスク削除

まとめ

下表に、OSディスク拡張時に必要な操作をまとめます。

  作業有無 作業対象
1.VM停止 不要 -
2.ディスクアンマウント 必要 OS
3.ディスクアンマウント(削除) 必要 Azureポータル

おわりに

本記事では、Azure上にデプロイしたLVM構成のRHEL9 VMで、データディスクの追加・拡張・アンマウントを行う手順を説明しました。

データディスクの追加・拡張・アンマウントは、AzureポータルとOS両方で適切な操作が必要です。Azureディスクを有効に使う方法の一つとして、データディスクの操作手順を覚えていただければ幸いです。

執筆担当者プロフィール
山﨑 優美

山﨑 優美(日本ビジネスシステムズ株式会社)

ハイブリッドクラウド本部に所属。Windows Server・Linux、どちらのOSでもさわれるインフラエンジニアです。3児のママも兼務しています。

担当記事一覧