用語
- PV(Physical Volume)
物理ボリュームのこと。/dev/hda7や/dev/hdcと示すディスクそのものを意味する。
- VG(Volume Group)
上記のPVを束ねて作成されるボリュームのこと。この中から実際に使う「論理的な」パーティションを切り出すことになる。
- LV(Logical Volume)
LVとは、ここまで「論理的な」ボリュームと称してきたものであり、VGから切り出して実際に利用することになるパーティションを示す。
LVMの作成
Linux において LVM を利用する手順は下のとおりです。
- LVM パーティションの作成
- PV (Physical Volume) の作成
- VG (Volume Group) の作成
- LV (Logical Volume) の作成
パーティッション
LVM用のパーティッションは
fdisk /dev/hda
でfdiskを起動して
t で 8e Linux LVM
を選ぶ。
PV (Physical Volume) の作成
pvcreate /dev/hda6
pv情報の表示
pvdisplay /dev/hda6
pvの一覧
pvs
VG (Volume Group) の作成
vgcreate myvg /dev/hda6
vgの情報、一覧
vgdisplay vgs
VGの拡張
vgextend myvg /dev/sda7
論理ボリューム (LogicalVolume) の割り当て
lvcreate -L 100m -n lvtest myvg
オプション -L で論理ボリュームの大きさを指定。
オプション -n で論理ボリュームの名前を指定。
未使用領域を全て割り当てて作成する場合
lvcreate -l 100%FREE -n lvtest myvg
lvの情報、一覧
lvdisplay lvs
論理ボリューム(LogicalVolume)の拡張
/dev/VolGroup00/LogVol00 を 20Gにする
lvextend -L 20G /dev/VolGroup00/LogVol00
/dev/VolGroup00/LogVol00 に 20Gを足す
lvextend -L +20G /dev/VolGroup00/LogVol00
/dev/VolGroup00/LogVol00 に未使用領域を全て割り当てる
lvextend -l +100%FREE /dev/VolGroup00/LogVol00
論理ボリュームのフォーマット
普通の Linux パーティションと同様にフォーマットしたり mount したり出来ます
mke2fs -j /dev/myvg/lvtest
ボリュームグループの情報のバックアップとリストア
バックアップ
pvdisplay
または
vgdisplay -v
PV UUIDを確認する。
vgcfgbackup VolGroup00 -f /nfs/VolGroup00.txt
ボリュームグループ情報をバックアップ
リストア
lvm pvcreate -ff --restorefile /nfs/VolGroup00.txt --uuid バックアップ時に確認したPV UUID /dev/hda6 lvm vgcfgrestore -f /nfs/VolGroup00.txt VolGroup00
アクティブにする
lvm lvchange -a y VolGroup00
PVから物理ディスクを取り外す
- 取り外すPVの内容を別のPVに移す
- pvmoveで取り外すデバイスの内容を他のデバイスへ移動する
- pvmove /dev/sdb1
- pvmove は時間がかかる。Ctrl + C で中断してもバックグラウンドで動作し続ける
- pvmove --abort 止めることができるが、pvmoveはもう一度最初からやり直しになる。
- pvmoveで取り外すデバイスの内容を他のデバイスへ移動する
- PVをVGから外す
- vgreduceでVGからPVを外す
- vgreduce data /dev/sdb1
- vgreduceでVGからPVを外す
スナップショット機能
http://www.usupi.org/sysad/166.html
もとのファイルシステムは、ボリュームグループが Volume00 という名前で、論理ボリュームが LogVol00 という名前だとしましょう。
そして、以下のように /mnt/test に mount されているとします。
# df /mnt/test Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/Volume00-LogVol00 142799 107433 29471 79% /mnt/test
スナップショットを作成するには、いつものように、 lvcreate コマンドを使用します。簡単な書式は、以下の通りです。
# lvcreate -s -L サイズ -n 論理ボリューム名 もとのデバイス
スナップショットの論理ボリューム名を -n オプションで指定します。
「もとのデバイス」には、もとのファイルシステムのデバイスファイルを指定します。
-L オプションで指定するサイズは、もとのデータを保持するための領域です。もとのファイルシステムと同じサイズである必要はありません。
というわけで、ここでは LogVol00_snap という名前のスナップショットを作成してみました。サイズは、もとが 144MB ですので、32MB くらいにしてみました。 (使用頻度などによりますので、えいやーで決めました。)
# lvcreate -s -L 32M -n LogVol00_snap /dev/Volume00/LogVol00
lvscan や lvdisplay で確認しますと、以下のようにスナップショットであることがわかります。
# lvscan ACTIVE Original '/dev/Volume00/LogVol00' [144.00 MB] inherit ACTIVE Snapshot '/dev/Volume00/LogVol00_snap' [32.00 MB] inherit # lvdisplay /dev/Volume00/LogVol00_snap --- Logical volume --- LV Name /dev/Volume00/LogVol00_snap ...中略... LV Size 144.00 MB Current LE 36 COW-table size 32.00 MB COW-table LE 8 Allocated to snapshot 0.07% Snapshot chunk size 8.00 KB ...後略...
では、mount してみましょう。
もちろん、通常の論理ボリュームとして使用できます。
ここでは、/mnt/snap に mount してみました。
# mount -o ro /dev/mapper/Volume00-LogVol00_snap /mnt/snap # df /mnt/test /mnt/snap Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/Volume00-LogVol00 142799 107433 29471 79% /mnt/test /dev/mapper/Volume00-LogVol00_snap 142799 107433 29471 79% /mnt/snap
当り前ですが、もとのファイルシステムとまったく同じですね。
オンラインリサイズ
http://blog.usoinfo.info/article/193585529.html
http://pantora.net/pages/lvm/3/
ext2 | ext3/ext4 | ReiserFS | XFS | JFS | |
---|---|---|---|---|---|
拡大 | オフライン ※1(resize2fs) | オンライン/オフライン(resize2fs) | オンライン/オフライン(resize_reiserfs) | オンライン(xfs_growfs) | オンライン(mount -o remount,resize) |
縮小 | オフライン | オフライン | オフライン | なし | なし |
lvresize で LogicalVolume のサイズを変更
# lvresize -L +58G /dev/VolGroup00/LogVol00
resize2fs でオンラインのままリサイズ実行(resize2fsは結構時間が掛かる)
# resize2fs -p /dev/mapper/VolGroup00-LogVol00
CentOS7(XFS)の場合
# xfs_growfs /dev/centos/root
resize2fs の -p オプションは作業完了分のパーセントを表すバーを表示するオプション
Volume Group に不良なLogical Volume ができてしまった場合
http://koozme.blogspot.jp/2012/10/contos.html
http://hotaru.4030.jp/category/68853-1.html
LVMから所定の手続きを踏まずにディスク交換やネットワークの不具合でiSCSIのLVMがおかしくなってしまった場合。
PV unknown device VG VolGropu00 ...
などと出る場合は、
# vgreduce --removemissing VolGroup00 # vgscan
で不正な Physical Volume を外してくれる。ただし、iSCSIとかを使っている場合は扱いに注意。
VolumeGroupの残り容量を確認する
vgs
で使用領域、未使用領域が確認できる。
[カテゴリ: OS > Linux]
[通知用URL]
Tweet
最終更新時間:2021年11月23日 18時08分46秒