LVMを店じまいする(解除・後始末) [Linux(LVM/RAID/Storage)]
またえらく久しぶりに記事を追加する気がしますが、LVMで構成したストレージ領域を「店じまい」(解除というか後始末というか)する手順を紹介しておきます。
ぶっちゃけ、「アンマウントしてディスク外せば終わりじゃん!」っていう感じではあるんですけども、ディスクを外しただけだとrebootした時等にまだLVM領域が見えてしまい困るケースも無い訳では無いので、次にそのディスクを接続する事があっても、LVMとして全く認識されなくする必要が発生する…ことがある…かもしれないということで。
基本的な手順としては、
① そのディスク領域を使用しているプロセス・デーモンを停止する
② そのディスク領域に保存されているデータをどうにかする(必要に応じてコピーする等)
③ アンマウントする
④ 論理ボリュームを削除する
⑤ ボリュームグループを削除する
⑥ 物理エクステントを削除する
このうち、⑤と⑥については一つのボリュームグループ内に複数の論理ボリュームが存在し、その論理ボリュームを削除してもなお他の論理ボリュームが残っている場合には実施しません。(というかやったら消えるけどそもそもエラーになります)
では、手順を追っていきます。
① そのディスク領域を使用しているプロセス・デーモンを停止する
多分、sambaなりapacheなりnginxなりgitなりなにがしかのデーモンがそういう領域を使っていると思いますので、そいつらを始末します。
必要に応じてchkconfig あるいは systemctl でデーモンを自動起動しないようにするとか忘れずに実行します。
② そのディスク領域に保存されているデータをどうにかする(必要に応じてコピーする等)
当然、LVMの論理ボリュームを削除したらその中にあるデータも消し飛んでしまいますので、必要ならrsyncするなりscpするなり tar / cpio するなりしてデータをバックアップしておくとかコピーしておくとか実施します。
③ アンマウントする
いよいよアンマウントします。
umount /mnt/local/storage
とかそんな感じで。エラーになるようならfuserコマンドで原因となるプロセスを特定してkillしてやりましょう。
よくあるミスとしては、「自分自身がそこにcd コマンドで移動していた」なんていう事です。(大笑)
あと、/etc/fstabとかその辺も忘れずに修正しましょう。/etc/exportsとかも忘れがちだよ~。
④ 論理ボリュームを削除する
lvdisplay コマンドでサーバ上に存在するLVM論理ボリュームが確認できます。削除したい「LV Path」を確認しておきます。
[root@peorth ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vgStorage/lvPrivate
LV Name lvPrivate
VG Name vgStorage
LV UUID xulASs-wZ0N-1bnl-IXxq-3yQm-vAnT-t4iM93
LV Write Access read/write
LV Creation host, time peorth, 2018-10-15 10:23:36 +0900
LV Status available
# open 1
LV Size <7.28 TiB
Current LE 1907599
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
ここでは、「/dev/vgStorage/lvPrivate」が必要な論理ボリューム名になります。なお、LVM論理ボリュームはOSによってはインストール時にインストーラが自動でいくつかのLVM論理ボリュームを作成します。それを間違って削除しないように気をつけましょう。(アンマウントしていなければえらーになるはずだけどね)多分、酷い目に遭います。(笑)
論理ボリュームを削除するコマンドは、 lvremove になります。このコマンドに先ほどの論理ボリューム名(LV Path)を指定して実行します。
Do you really want to remove active logical volume vgStorage/lvPrivate? [y/n]:
と、聞かれると思うので、本当に削除しても良いのなら「y」を入力しましょう。
コマンドを実行すると、 lvdisplay でももはや先ほどの論理ボリュームは表示されないはずです。
⑤ ボリュームグループを削除する
必要に応じてボリュームグループを削除します。ボリュームグループの確認方法は vgdisplay コマンドです。
[root@peorth ~]# vgdisplay
--- Volume group ---
VG Name vgStorage
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <7.28 TiB
PE Size 4.00 MiB
Total PE 1907599
Alloc PE / Size 0 / 0
Free PE / Size 1907599 / <7.28 TiB
VG UUID X8BIeD-jWLi-NVT7-jnER-h3XW-5yfC-JjMw9b
このボリュームグループは、もはや全くの未使用状態になりました(Alloc PE / Size が「0」になっている)ので、遠慮なく削除します。削除する際にはボリュームグループ名が必要となりますので、「VG Name」の項目を確認しておきます。削除に用いるコマンドは vgremove です。
[root@peorth ~]# vgremove vgStorage
Volume group "vgStorage" successfully removed
これで vgdisplay コマンドを使ってもボリュームグループは表示されないはずです。
⑥ 物理エクステントを削除する
最後に、ボリュームグループに加わっていたディスクの上から物理エクステントを削除します。
物理エクステントを確認するコマンドは pvdisplay です。
[root@peorth ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb
VG Name
PV Size <1.89 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID sg4Q5g-HSXp-fyBF-aIVi-rVNy-3KOA-3WKGfg
Allocated PE の項目が「0」になっている物理ボリュームは全くの未使用状態になっています。そのボリュームの「PV Name」を確認しておきます。複数のディスクを束ねているような場合には、複数ボリューム分のAllocated PEとPV Nameとを確認しておきましょう。
物理エクステントを削除するコマンドは、 pvremove です。
[root@peorth ~]# pvremove /dev/sdb
Labels on physical volume "/dev/sdb" successfully wiped.
複数の物理ボリュームを指定することができます。(別に、1個ずつ実行しても害は無いけどね)
これで pvdisplay コマンドで物理ボリューム名が表示されなくなれば完了です。
当該ボリュームはもうLVMとして認識されることはありません。
「私たち、普通の女の子に戻ります!」
って感じで普通のボリュームに戻りました。(年齢踏み絵
ぶっちゃけ、「アンマウントしてディスク外せば終わりじゃん!」っていう感じではあるんですけども、ディスクを外しただけだとrebootした時等にまだLVM領域が見えてしまい困るケースも無い訳では無いので、次にそのディスクを接続する事があっても、LVMとして全く認識されなくする必要が発生する…ことがある…かもしれないということで。
基本的な手順としては、
① そのディスク領域を使用しているプロセス・デーモンを停止する
② そのディスク領域に保存されているデータをどうにかする(必要に応じてコピーする等)
③ アンマウントする
④ 論理ボリュームを削除する
⑤ ボリュームグループを削除する
⑥ 物理エクステントを削除する
このうち、⑤と⑥については一つのボリュームグループ内に複数の論理ボリュームが存在し、その論理ボリュームを削除してもなお他の論理ボリュームが残っている場合には実施しません。(というかやったら消えるけどそもそもエラーになります)
では、手順を追っていきます。
① そのディスク領域を使用しているプロセス・デーモンを停止する
多分、sambaなりapacheなりnginxなりgitなりなにがしかのデーモンがそういう領域を使っていると思いますので、そいつらを始末します。
必要に応じてchkconfig あるいは systemctl でデーモンを自動起動しないようにするとか忘れずに実行します。
② そのディスク領域に保存されているデータをどうにかする(必要に応じてコピーする等)
当然、LVMの論理ボリュームを削除したらその中にあるデータも消し飛んでしまいますので、必要ならrsyncするなりscpするなり tar / cpio するなりしてデータをバックアップしておくとかコピーしておくとか実施します。
③ アンマウントする
いよいよアンマウントします。
umount /mnt/local/storage
とかそんな感じで。エラーになるようならfuserコマンドで原因となるプロセスを特定してkillしてやりましょう。
よくあるミスとしては、「自分自身がそこにcd コマンドで移動していた」なんていう事です。(大笑)
あと、/etc/fstabとかその辺も忘れずに修正しましょう。/etc/exportsとかも忘れがちだよ~。
④ 論理ボリュームを削除する
lvdisplay コマンドでサーバ上に存在するLVM論理ボリュームが確認できます。削除したい「LV Path」を確認しておきます。
[root@peorth ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vgStorage/lvPrivate
LV Name lvPrivate
VG Name vgStorage
LV UUID xulASs-wZ0N-1bnl-IXxq-3yQm-vAnT-t4iM93
LV Write Access read/write
LV Creation host, time peorth, 2018-10-15 10:23:36 +0900
LV Status available
# open 1
LV Size <7.28 TiB
Current LE 1907599
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
ここでは、「/dev/vgStorage/lvPrivate」が必要な論理ボリューム名になります。なお、LVM論理ボリュームはOSによってはインストール時にインストーラが自動でいくつかのLVM論理ボリュームを作成します。それを間違って削除しないように気をつけましょう。(アンマウントしていなければえらーになるはずだけどね)多分、酷い目に遭います。(笑)
論理ボリュームを削除するコマンドは、 lvremove になります。このコマンドに先ほどの論理ボリューム名(LV Path)を指定して実行します。
Do you really want to remove active logical volume vgStorage/lvPrivate? [y/n]:
と、聞かれると思うので、本当に削除しても良いのなら「y」を入力しましょう。
コマンドを実行すると、 lvdisplay でももはや先ほどの論理ボリュームは表示されないはずです。
⑤ ボリュームグループを削除する
必要に応じてボリュームグループを削除します。ボリュームグループの確認方法は vgdisplay コマンドです。
[root@peorth ~]# vgdisplay
--- Volume group ---
VG Name vgStorage
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <7.28 TiB
PE Size 4.00 MiB
Total PE 1907599
Alloc PE / Size 0 / 0
Free PE / Size 1907599 / <7.28 TiB
VG UUID X8BIeD-jWLi-NVT7-jnER-h3XW-5yfC-JjMw9b
このボリュームグループは、もはや全くの未使用状態になりました(Alloc PE / Size が「0」になっている)ので、遠慮なく削除します。削除する際にはボリュームグループ名が必要となりますので、「VG Name」の項目を確認しておきます。削除に用いるコマンドは vgremove です。
[root@peorth ~]# vgremove vgStorage
Volume group "vgStorage" successfully removed
これで vgdisplay コマンドを使ってもボリュームグループは表示されないはずです。
⑥ 物理エクステントを削除する
最後に、ボリュームグループに加わっていたディスクの上から物理エクステントを削除します。
物理エクステントを確認するコマンドは pvdisplay です。
[root@peorth ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb
VG Name
PV Size <1.89 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID sg4Q5g-HSXp-fyBF-aIVi-rVNy-3KOA-3WKGfg
Allocated PE の項目が「0」になっている物理ボリュームは全くの未使用状態になっています。そのボリュームの「PV Name」を確認しておきます。複数のディスクを束ねているような場合には、複数ボリューム分のAllocated PEとPV Nameとを確認しておきましょう。
物理エクステントを削除するコマンドは、 pvremove です。
[root@peorth ~]# pvremove /dev/sdb
Labels on physical volume "/dev/sdb" successfully wiped.
複数の物理ボリュームを指定することができます。(別に、1個ずつ実行しても害は無いけどね)
これで pvdisplay コマンドで物理ボリューム名が表示されなくなれば完了です。
当該ボリュームはもうLVMとして認識されることはありません。
「私たち、普通の女の子に戻ります!」
って感じで普通のボリュームに戻りました。(年齢踏み絵
コメント 0