====== LVM(Logical Volume Manager) - 論理ボリューム管理 ======
===== GNU Parted を利用して 2TB 超えのパーティションを作成 =====
- デバイスを引数に指定して GNU Parted を起動する。
# parted /dev/sdb
GNU Parted 1.8.8
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
- 2TB を超えるパーティションを作成するには、GPT(GUID Partition Table) ディスクラベルを作成する。\\ msdos(MBR形式のパーティションテーブル) ディスクラベルでは 2TB が管理の限界なので注意。
(parted) mklabel
警告: いま存在している /dev/sdb のディスクラベルは破壊され、
このディスクの全データが失われます。続行しますか?
はい(Y)/Yes/いいえ(N)/No? y
新しいディスクラベル? [msdos]? gpt
(parted) print
モデル: HPT DISK_0_1 (scsi)
ディスク /dev/sdb: 2872GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
- ディスクの最大容量でパーティションを作成する。
(parted) mkpart
パーティションの名前? []?
ファイルシステムの種類? [ext2]?
開始? 0
終了? 2872G
(parted) print
モデル: HPT DISK_0_1 (scsi)
ディスク /dev/sdb: 2872GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 17.4kB 2872GB 2872GB msftres
(parted) quit
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
===== LVM の PV、VG、LV について =====
LVM では、PV(Physical Volume - 物理ボリューム)を作成し、PV を1つ以上使って VG(Volume Group - ボリュームグループ)を作成する。\\
そして、VG(ボリュームグループ) の中に LV(Logical Volume - 論理ボリューム) をマッピングして作成する。\\
LV(論理ボリューム) には、ext4 などのファイルシステムを作成して利用する。\\
\\
LV(論理ボリューム) は、利用中であっても VG(ボリュームグループ) の空き領域を割り当てて拡張することができる。\\
VG(ボリュームグループ) の空き容量がなくなってきた場合は、新しい PV(物理ボリューム) を VG(ボリュームグループ) に追加することで、簡単に容量を増やすことがきる。\\
===== PV(物理ボリューム) の作成 =====
- pvcreate コマンドを使用して PV(物理ボリューム) を初期化する。
# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
- pvdisplay コマンドにて作成状況を確認する。
# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name vg_monster
PV Size 119.01 GB / not usable 4.16 MB
Allocatable yes (but full)
PE Size (KByte) 4096
Total PE 30465
Free PE 0
Allocated PE 30465
PV UUID sVhxN7-Bf8u-35yp-BmZ6-CjSd-9fOn-TNAvCv
"/dev/sdb1" is a new physical volume of "2.61 TB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 2.61 TB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID OdPiUV-biUo-gha3-cAOA-QiB1-aFyc-waev4A
===== VG(ボリュームグループ) の作成 =====
# vgcreate vg_monster1 /dev/sdb1
Volume group "vg_monster1" successfully created
# vgdisplay
--- Volume group ---
VG Name vg_monster1
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
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 2.61 TB
PE Size 4.00 MB
Total PE 684826
Alloc PE / Size 0 / 0
Free PE / Size 684826 / 2.61 TB
VG UUID 4YGE0j-AbaM-BKmx-9OVj-fnG8-C5jV-opCUCZ
===== VG(ボリュームグループ) の拡張 =====
VG(ボリュームグループ) に PV(物理ボリューム) を追加する。
# vgextend vg_monster /dev/sdb1
Volume group "vg_monster" successfully extended
# vgdisplay
--- Volume group ---
VG Name vg_monster
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 14
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 2.73 TB
PE Size 4.00 MB
Total PE 715291
Alloc PE / Size 30465 / 119.00 GB
Free PE / Size 684826 / 2.61 TB
VG UUID y9vUDl-a5tm-1919-zViH-aaMU-hmNJ-38pcfy
===== LV(論理ボリューム) の拡張 =====
# lvdisplay
--- Logical volume ---
LV Name /dev/vg_monster/lv_root
VG Name vg_monster
LV UUID oclD9d-LSdM-tWs8-gYmh-O34O-1RJK-L3YunN
LV Write Access read/write
LV Status available
# open 1
LV Size 115.00 GB
Current LE 29441
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Name /dev/vg_monster/lv_swap
VG Name vg_monster
LV UUID p3eWnk-8ifO-c8tW-uJ7Q-lO4I-0Gk7-2d1APF
LV Write Access read/write
LV Status available
# open 1
LV Size 4.00 GB
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
# lvextend -L +100G /dev/vg_monster/lv_root
Extending logical volume lv_root to 215.00 GB
Logical volume lv_root successfully resized
LV(論理ボリューム)に合わせてファイルシステムをリサイズする。
# resize2fs /dev/vg_monster/lv_root
resize2fs 1.41.4 (27-Jan-2009)
Filesystem at /dev/vg_monster/lv_root is mounted on /; on-line resizing required
old desc_blocks = 8, new_desc_blocks = 175
Performing an on-line resize of /dev/vg_monster/lv_root to 731409408 (4k) blocks.
The filesystem on /dev/vg_monster/lv_root is now 731409408 blocks long.
リサイズ中の root デバイス\\
{{:linux:resize2fs_sysmon_1.png?700|リサイズ中のrootデバイス1}}\\
リサイズ後の root デバイス\\
{{:linux:resize2fs_sysmon_2.png?700|リサイズ後のrootデバイス2}}\\
===== LV(論理ボリューム) の縮小 =====
# umount /home
# fsck -f /dev/mapper/vg_monster-lv_home
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/vg_monster-lv_home: 704340/241876992 files (0.3% non-contiguous), 255445351/967505920 blocks
# resize2fs /dev/mapper/vg_monster-lv_home 3710018M
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/vg_monster-lv_home to 949764608 (4k) blocks.
The filesystem on /dev/mapper/vg_monster-lv_home is now 949764608 blocks long.
# lvreduce -L3710018M /dev/mapper/vg_monster-lv_home
Rounding up size to full physical extent 3.54 TiB
WARNING: Reducing active logical volume to 3.54 TiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv_home? [y/n]: y
Reducing logical volume lv_home to 3.54 TiB
Logical volume lv_home successfully resized
===== 他で使用していたディスクのLVMを認識させる =====
$ sudo lvscan
inactive '/dev/vg_hoge/lv_swap' [4.00 GiB] inherit
inactive '/dev/vg_hoge/lv_root' [144.53 GiB] inherit
ACTIVE '/dev/vg_thecircle-fc/lv_swap' [3.94 GiB] inherit
ACTIVE '/dev/vg_thecircle-fc/lv_home' [201.56 GiB] inherit
ACTIVE '/dev/vg_thecircle-fc/lv_root' [50.00 GiB] inherit
$ sudo vgchange -ay vg_hoge
2 logical volume(s) in volume group "vg_hoge" now active
$ sudo vgchange -an vg_hoge
0 logical volume(s) in volume group "vg_hoge" now active
$ sudo lvscan
inactive '/dev/vg_hoge/lv_swap' [2.00 GiB] inherit
inactive '/dev/vg_hoge/lv_root' [124.00 GiB] inherit
ACTIVE '/dev/vg_thecircle-fc/lv_swap' [3.94 GiB] inherit
ACTIVE '/dev/vg_thecircle-fc/lv_home' [201.56 GiB] inherit
ACTIVE '/dev/vg_thecircle-fc/lv_root' [50.00 GiB] inherit