Azure|仮想マシンのデータディスクのサイズを縮小する方法


Azure 仮想マシンのデータディスクのサイズを縮小することは、Azure ではサポートしておらず、縮小する機能は提供されていない。


縮小する機能が提供されていないので、

ここでは、Azure 仮想マシンのデータディスクを縮小するために、既存のデータディスクのサイズより小さいデータディスクを新規で作成して、既存のデータディスクのデータを新規のデータディスクにコピーして、既存のデータディスクを削除して、新規のデータディスクを使用するようにすることで、Azure 仮想マシンのデータディスクを縮小する。


環境

Linux (redhat 7.6)


仮想マシンのデータディスクを新規作成

データディスクを作成

ここでは、既存のデータディスクのサイズより小さい新規のデータディスクを作成する。


Azure ポータルにサインインして、

ホーム > 仮想マシン > ディスク

を選択して、「新しいディスクを作成し接続する」をクリックする。


ストレージの種類、サイズ、暗号化、ホストキャッシュを入力して、「保存」ボタンをクリックする。


Linux ファイルシステムの新規作成とマウント

ここでは、新規のデータディスクで Linux ファイルシステムを新規作成して、マウントする。

ブロックデバイスの存在確認

仮想マシンに Teraterm などで ssh 接続して、下記のコマンドを実行して、作成した Azure 仮想マシンのデータディスクのブロックデバイスを確認する。


ここでは、作成したデータディスクのブロックデバイス名を sdd とする。


・コマンド

lsblk
コマンド実行結果
sdd 8:48 0 256G 0 disk


作成した Azure 仮想マシンのデータディスクのブロックデバイスを調べる方法は、下記の記事を参照

Azure 仮想マシンのデータディスクと Linux 環境 のブロックデバイスを関連付ける方法


パーティションの存在確認

下記のコマンドで /dev/sdd* が存在しないことを確認する。


・コマンド

df -h


物理ボリュームの作成

下記のコマンドを実行して、物理ボリュームを作成する。


・コマンド

pvcreate /dev/sdd


ボリュームグループの作成

下記のコマンドを実行して、ボリュームグループを作成する。


ここでは、ボリュームグループ名を VG02 とする。ボリュームグループ名は任意の名前を指定する。


・コマンド

vgcreate VG02 /dev/sdd


論理ボリュームの作成

下記のコマンドを実行して、論理ボリュームを作成する。


ここでは、論理ボリューム名を LG02 とする。論理ボリューム名は任意の名前を指定する。


・コマンド

lvcreate -l 100%free -n LV02 VG02


作成した VG02-LV02 の存在を確認

下記のコマンドを実行して、VG02-LV02 が存在することを確認する。


・コマンド

lsblk
VG02-LV02 253:0 0 256G 0 lvm


ファイルシステムの作成とマウント

下記のコマンドを実行して、ファイルシステムとディレクトリ /data_disk02 を作成して、ファイルシステムをディレクトリ /data_disk02 にマウントする。


・コマンド

mkfs.xfs /dev/VG02/LV02
mkdir /data_disk02
mount /dev/VG02/LV02 /data_disk02


fstab の設定

下記のコマンドを実行して、UUID を確認する。


・コマンド

blkid
コマンド実行結果
/dev/mapper/VG02-LV02: UUID="XXX" TYPE="xfs"


fstab ファイルをバックアップして、fstab ファイル に、上記で確認した UUID を記述してマウントポイントを指定する。


・コマンド

cp -p /etc/fstab /etc/fstab.bk
vi /etc/fstab

fstab ファイルの最下行に下記の1行を追加する。XXX には、上記で確認した /dev/mapper/VG02-LV02 の UUID を記述する。

UUID=XXX  /data_disk02  xfs  defaults,nofail,nobarrier 1 2


データ移動

データのコピー

下記のコマンドを実行して、既存のデータディスクのデータを新規作成したデータディスクにコピーする。


ここでは、既存のデータディスクのディレクトリを /data_disk01 とする。


・コマンド

cp -pr /data_disk01/* /data_disk02


既存のデータディスクから新規のデータディスクに切り替え

アンマウント

下記のコマンドを実行して、既存と新規のファイルシステムのディレクトリ /data_disk01、/data_disk02 をアンマウントする。


・コマンド

umount /data_disk01
umount /data_disk02

※アンマウントできない場合は、lsof /data_diskXX を実行して、ディレクトリを使用しているプロセスを確認して対応する。


fstab の再設定

fstab ファイルから既存のデータディスク /data_disk01 の設定行 1 行を削除して、上記で追加した最下行の 文言「/data_disk02」 を 「/data_disk01」 に変更する。XXX には、上記で確認した /dev/mapper/VG02-LV02 の UUID が記述された状態になる。

・コマンド

vi /etc/fstab


UUID=XXX  /data_disk01  xfs  defaults,nofail,nobarrier 1 2


マウントと確認

下記のコマンドを実行して、設定した fstab の内容でマウントする。


・コマンド

mount -a

※mount -a は、fstab の設定に従ってマウントするコマンド


下記のコマンドを実行して、ファイルシステム /dev/mapper/VG02-LV02 が /data_disk01 にマウントされていることを確認する。


・コマンド

df -h
コマンド実行結果
/dev/mapper/VG02-LV02 256G 33M 256G 1% /data_disk01


Azure 仮想マシンの既存のデータディスクを削除

Azure ポータルにサインインして、

ホーム > 仮想マシン > ディスク

を選択する。不要になった既存のデータディスクを削除して、「保存」ボタンをクリックする。


次に、

ホーム > ディスク

を選択して、上記で削除したデータディスクを削除する。ここで削除しないと、データディスクのAzure 使用料金が発生して、課金が続く。


仮想マシンの再起動

仮想マシンを再起動して、df -h コマンドを実行して、設定した fstab の内容に従って、新規のファイルシステム /dev/mapper/VG02-LV02 が /data_disk01 にマウントされていることを確認する。




スポンサーリンク

0 件のコメント :

コメントを投稿