トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF RSS ログイン

LVM

 用語

  • PV(Physical Volume)
物理ボリュームのこと。/dev/hda7や/dev/hdcと示すディスクそのものを意味する。
  • VG(Volume Group)
上記のPVを束ねて作成されるボリュームのこと。この中から実際に使う「論理的な」パーティションを切り出すことになる。
  • LV(Logical Volume)
LVとは、ここまで「論理的な」ボリュームと称してきたものであり、VGから切り出して実際に利用することになるパーティションを示す。

 LVMの作成

Linux において LVM を利用する手順は下のとおりです。

  1. LVM パーティションの作成
  2. PV (Physical Volume) の作成
  3. VG (Volume Group) の作成
  4. 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から物理ディスクを取り外す

  1. 取り外すPVの内容を別のPVに移す
    1. pvmoveで取り外すデバイスの内容を他のデバイスへ移動する
      1. pvmove /dev/sdb1
    2. pvmove は時間がかかる。Ctrl + C で中断してもバックグラウンドで動作し続ける
    3. pvmove --abort 止めることができるが、pvmoveはもう一度最初からやり直しになる。
  2. PVをVGから外す
    1. vgreduceでVGからPVを外す
      1. vgreduce data /dev/sdb1

 スナップショット機能

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]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2021年11月23日 18時08分46秒