カイワレの大冒険 Third

技術的なことや他愛もないことをたまに書いてます

LVMのVG(ボリュームグループ)やLG(ロジカルグループ)の基本的な使い方を解説する

メモ書き程度のものだけど、「アウトプットしない知識はインプットじゃない」とどこかで聞いた気がするので、書いておく。とりあえず、20Gb程度なり適当に空き領域をディスクに作っておいて、それをごにょごにょする方法。LVM領域は既にある前提で(単なるメモなのですいません…)。

空き領域がなくて困ってる人はこちらの記事で。
blog.masudak.net

いざ、実践

ひとまず、VG(ボリュームグループ)の確認

# vgdisplay -C
  VG   #PV #LV #SN Attr   VSize  VFree
  vg01   1   2   0 wz--n- 67.88G 19.53G

「vg01」というボリュームグループがあるのが分かる。というか作ってある。

名称が分かったので、詳細を見てみる。

# vgdisplay vg01
  --- Volume group ---
  VG Name               vg01
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               67.88 GB
  PE Size               32.00 MB
  Total PE              2172
  Alloc PE / Size       1547 / 48.34 GB
  Free  PE / Size       625 / 19.53 GB
  VG UUID               Gld7ab-xEJz-orWB-kwZe-ZXCk-RAzY-y8Gt8t

得られる情報としては、物理エクステントが32MBってことぐらいかな。


じゃ、LV(論理ボリューム)を見てみる。

# lvdisplay -C
  LV   VG   Attr   LSize  Origin Snap%  Move Log Copy%  Convert
  lv01 vg01 -wi-ao 47.34G
  sw   vg01 -wi-ao  1.00G

「lv01」と「sw」というLVがある模様。というか、以前作った。


dfコマンドでも確認。

# df -h
Filesystem          サイズ  使用  残り 使用% マウント位置
/dev/mapper/vg01-lv01
                       46G  1.0G   43G   3% /
/dev/sda1              99M   13M   82M  14% /boot
tmpfs                 2.0G     0  2.0G   0% /dev/shm

「lv01」が「/」に割り当てられてるというかなりシンプルな構成。

10Gb程度の新しい領域を作りたいので、「vg01」ボリュームグループ以下に「lv02」という名前で論理ボリューム作成。

# lvcreate -L 10G -n lv02 vg01
  Logical volume "lv02" created

んで、確認。

# lvdisplay -C
  LV   VG   Attr   LSize  Origin Snap%  Move Log Copy%  Convert
  lv01 vg01 -wi-ao 47.34G
  lv02 vg01 -wi-a- 10.00G
  sw   vg01 -wi-ao  1.00G

一応、詳細も見ておく。

# lvdisplay /dev/mapper/vg01-lv02
  --- Logical volume ---
  LV Name                /dev/vg01/lv02
  VG Name                vg01
  LV UUID                rSHgEi-2SzO-zbG0-9PTd-uaVt-Fdcr-Q5VdXe
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                10.00 GB
  Current LE             320
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

あとは、できた領域で遊べるようにする。

# mkfs.ext3 /dev/mapper/vg01-lv02

ext3でいいならよいけど、必要なパッケージとか入ってなくてxfs使えなかったら、以下で。
# yum install kmod-xfs xfsprogs
# mkfs.xfs -f /dev/mapper/vg01-lv02
# /sbin/mkfs -t xfs -f /dev/mapper/vg01-lv02

あとは、マウント先作るなり、なんなりして、マウント。

# mkdir /data
# /bin/mount -t ext3 /dev/mapper/vg01-lv02 /data  <span class="deco" style="font-weight:bold;">#ext3 ver.</span>
# /bin/mount -t xfs /dev/mapper/vg01-lv02 /data   <span class="deco" style="font-weight:bold;">#xfs ver.</span>

確認して、一応テスト書き込み。

$ df -h -T
$ touch /data/test

あとは、起動時とかマウントさせたいならfstabとか書いておく。

番外編

論理ボリュームのサイズ減らしたくなったけど、マウント先が「/」とかになって、busyだからアンマウントできないとか言う場合は、レスキューモードで。

LVMを認識しないので、認識させて、ファイルチェックをかけて、拡大縮小とか、もろもろ遊ぶだけ。

sh-3.2# lvm lvscan
sh-3.2# e2fsck -f /dev/VolGroup01/LogVol00
sh-3.2# lvm lvchange -ay /dev/VolGroup01/LogVol00

未だにどういう構成が美しいのか分からんなぁ。だれかおせーてー。