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 の再設定
・コマンド
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 件のコメント :
コメントを投稿