※後述するが、実際は再起動しなければ反映されない設定がある。
今回は、VG、LVの名前変更手順と、PVのストレージデバイス名が変更となった際の動作を確認した結果を記載する。
※今までのLVM関連記事はこちら。↓
手順 | 記事 |
---|---|
LVM領域作成 | 【LVM入門】LinuxのLVM領域を最短で作成する |
LVM領域削除 | 【LVM入門】LinuxのLVMで作成したディスクを削除する |
LVM領域拡張 | 【LVM入門】LinuxのLVMでディスク容量を拡張する |
LVM領域縮小 | 【LVM入門】LinuxのLVMでディスク容量を縮小する |
VG・LV名前変更 | 【LVM入門】LinuxのLVMで作成済みのVGやLVの名前を変更する←★本記事 |
環境
環境情報は以下の通り。この状態からVGとLVの名前変更とPVのストレージデバイスの変更を実施する。- OS : Red Hat Enterprise Linux 7.6
- PV : /dev/sdb1
- VG : vg_sdb1
- LV : lv_sdb1
- マウントポイント : /mnt
VG名の変更
VG名の変更はvgrename
コマンドで実施する。# vgrename --help
vgrename - Rename a volume group
Rename a VG.
vgrename VG VG_new
~(以下略)~
実際にVG名を「vg_sdb1」→「vg_sdb1_rename」に変更してみよう。本作業はLVをマウントした状態で実施可能である。# vgs
VG #PV #LV #SN Attr VSize VFree
rhel 1 2 0 wz--n- <15.00g 0
vg_sdb1 1 1 0 wz--n- <5.00g 0
# vgrename vg_sdb1 vg_sdb1_rename
Volume group "vg_sdb1" successfully renamed to "vg_sdb1_rename"
# vgs
VG #PV #LV #SN Attr VSize VFree
rhel 1 2 0 wz--n- <15.00g 0
vg_sdb1_rename 1 1 0 wz--n- <5.00g 0
# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root rhel -wi-ao---- 13.39g
swap rhel -wi-ao---- 1.60g
lv_sdb1 vg_sdb1_rename -wi-ao---- <5.00g
VG名変更後、/mntにマウントしたLVにファイルを書き込んでみると問題なく書き込みすることができた。# touch /mnt/test.txt
# ls -l /mnt/
合計 0
-rw-r--r--. 1 root root 0 3月 28 13:02 test.txt
ただし、LVのデバイスファイル名の変更はマウント情報に反映はされないため、名前変更後はLVを一度アンマウントし再度マウントした方が安全と思われる。また、本記事では省略するが、/etc/fstabの修正も適宜実施する必要がある。# umount /mnt/
# mount /dev/mapper/vg_sdb1_rename-lv_sdb1 /mnt/
LV名の変更
LV名の変更はlvrename
コマンドで実施する。lvrename
はVG名を指定する方法とLVのデバイス名を指定する2つの記述方法がある。今回は後者のコマンド記述方法で実行する。- 記述方法①:
lvrename <VG名> <LV名> <新LV名>
- 記述方法②:
lvrename /dev/<VG名>/<LV名> <新LV名>
# lvrename --help
lvrename - Rename a logical volume
lvrename VG LV LV_new
[ COMMON_OPTIONS ]
lvrename LV LV_new
[ COMMON_OPTIONS ]
~(以下略)~
実際にVG名を「lv_sdb1」→「lv_sdb1_rename」に変更してみよう。本作業はLVをマウントした状態で実施可能である。# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root rhel -wi-ao---- 13.39g
swap rhel -wi-ao---- 1.60g
lv_sdb1 vg_sdb1_rename -wi-ao---- <5.00g
# lvrename /dev/vg_sdb1_rename/lv_sdb1 lv_sdb1_rename
Renamed "lv_sdb1" to "lv_sdb1_rename" in volume group "vg_sdb1_rename"
# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root rhel -wi-ao---- 13.39g
swap rhel -wi-ao---- 1.60g
lv_sdb1_rename vg_sdb1_rename -wi-ao---- <5.00g
ただし、VG名変更時と同様にLVのデバイスファイル名の変更はマウント情報に反映はされないため、名前変更後はLVを一度アンマウントし再度マウントした方が安全と思われる。また、本記事では省略するが、/etc/fstabの修正も適宜実施する必要がある。# umount /mnt/
# mount /dev/mapper/vg_sdb1_rename-lv_sdb1_rename /mnt/
PVが変更された際の動作
最後にPVのストレージデバイス名が変更された際の、OSの認識状況について確認してみよう。PVにはPV名というものは存在せず、あくまでストレージデバイスがPV名となるが、OS起動時などにストレージデバイスが付与される関係から、
pvcreate
コマンドでPV作成した際に指定したストレージデバイスが意図せず変更される場合がありうる。しかし、PVのストレージデバイスが変更となっても、問題なくVG、LVは当初と同じ設定でOSは認識してくれる。以下に実際に検証した結果を記載する。まず、変更前のPVのストレージデバイスを確認する。変更前は以下の通りになっている。
PV | VG | LV |
---|---|---|
/dev/sda2 | rhel | root, swap |
/dev/sdb1 | vg_sdb1_rename | lv_sdb1_rename |
/dev/sdc1 | vg_sdc1 | lv_sdc1 |
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 rhel lvm2 a-- <15.00g 0
/dev/sdb1 vg_sdb1_rename lvm2 a-- <5.00g 0
/dev/sdc1 vg_sdc1 lvm2 a-- <3.00g 0
# lsblk -l
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 16G 0 disk
sda1 8:1 0 1G 0 part /boot
sda2 8:2 0 15G 0 part
rhel-root 253:0 0 13.4G 0 lvm /
rhel-swap 253:1 0 1.6G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
sdb1 8:17 0 5G 0 part
vg_sdb1_rename-lv_sdb1_rename 253:3 0 5G 0 lvm
sdc 8:32 0 3G 0 disk
sdc1 8:33 0 3G 0 part
vg_sdc1-lv_sdc1 253:2 0 3G 0 lvm
sr0 11:0 1 4.2G 0 rom
# blkid | grep /dev/sd
/dev/sda1: UUID="68f1f8f7-ab56-410a-aa4c-8401fc6f7894" TYPE="xfs"
/dev/sda2: UUID="nkMf2a-kLcr-vkqe-DVzU-Pjus-xejR-isMH90" TYPE="LVM2_member"
/dev/sdb1: UUID="hRgzZI-kGbg-SfPF-wAb9-kRzf-hEY3-wsEFJM" TYPE="LVM2_member" PARTUUID="fa5082ea-b59a-416c-b5b5-294d8cce323a"
/dev/sdc1: UUID="6RCfuZ-1hjc-LMmC-1k7K-SaSh-bOBu-q3rNn6" TYPE="LVM2_member" PARTUUID="5d7b5900-860f-4348-902b-0bb15f69210c"
ストレージデバイスはSCSIデバイスの認識順で決まるようだ。仮想環境の場合はSCSIコントローラへの接続順で決まるので、容易に変更することができる。今回は、/dev/sdb1の仮想ハードディスクである「Hard disk 2」のSCSIコントローラの接続設定を「SCSI (0:1)」から「SCSI (0:3)」に変更する。
仮想ハードディスクの設定変更後にOSを起動した際のPV、VG、LVの状態は以下の通りとなる。/dev/sdb1と/dev/sdc1のPVが入れ替わっている(★箇所)が、VG名、LV名は正しく引き継がれていることがわかる。
PV | VG | LV |
---|---|---|
/dev/sda2 | rhel | root, swap |
/dev/sdc1★ | vg_sdb1_rename | lv_sdb1_rename |
/dev/sdb1★ | vg_sdc1 | lv_sdc1 |
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 rhel lvm2 a-- <15.00g 0
/dev/sdb1 vg_sdc1 lvm2 a-- <3.00g 0
/dev/sdc1 vg_sdb1_rename lvm2 a-- <5.00g 0
# lsblk -l
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 16G 0 disk
sda1 8:1 0 1G 0 part /boot
sda2 8:2 0 15G 0 part
rhel-root 253:0 0 13.4G 0 lvm /
rhel-swap 253:1 0 1.6G 0 lvm [SWAP]
sdb 8:16 0 3G 0 disk
sdb1 8:17 0 3G 0 part
vg_sdc1-lv_sdc1 253:2 0 3G 0 lvm
sdc 8:32 0 5G 0 disk
sdc1 8:33 0 5G 0 part
vg_sdb1_rename-lv_sdb1_rename 253:3 0 5G 0 lvm
sr0 11:0 1 4.2G 0 rom
# blkid | grep /dev/sd
/dev/sda1: UUID="68f1f8f7-ab56-410a-aa4c-8401fc6f7894" TYPE="xfs"
/dev/sda2: UUID="nkMf2a-kLcr-vkqe-DVzU-Pjus-xejR-isMH90" TYPE="LVM2_member"
/dev/sdb1: UUID="6RCfuZ-1hjc-LMmC-1k7K-SaSh-bOBu-q3rNn6" TYPE="LVM2_member" PARTUUID="5d7b5900-860f-4348-902b-0bb15f69210c"
/dev/sdc1: UUID="hRgzZI-kGbg-SfPF-wAb9-kRzf-hEY3-wsEFJM" TYPE="LVM2_member" PARTUUID="fa5082ea-b59a-416c-b5b5-294d8cce323a"
0 件のコメント:
コメントを投稿