2020年4月8日水曜日

【LVM入門】LinuxのLVMで作成済みのVGやLVの名前を変更する

LVMで設定した後、VGやLVの名称を変更したい場合がある。LVMにおいては名前変更は柔軟に対応することが可能であり、一応オンラインでも変更可能である。
※後述するが、実際は再起動しなければ反映されない設定がある。

今回は、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 件のコメント:

コメントを投稿

人気の投稿