LVM----拡張/縮小VGと拡張/縮小LV
前編の博文LVM-基本的な作成と使用について紹介したが、LVMの基本的な構成と使用については、この博文ではLVMの他の操作を断続的に紹介する.
1.VGの拡張
2.VGの縮小
3.LVの拡張
4.LVの縮小
------------------VGの拡張、VGの拡張は比較的に簡単な3段階の操作で完成することができます-----------
手順:パーティションを準備し、新しいパーティションを設定するSystem IDは8 e pvcreateを使用してPV を構築 vgextendを使用して新しいPVを既存のVGに 加える.
現在のシステムで使用されているPVを表示します.
パーティションの準備結果:
pvcreateコマンドを使用してpvを作成します.
現在のシステムのすべてのPVを表示するには、次の手順に従います.
sdb 1とsdc 1がtestVGというVGに組み込まれていることがわかります.
/dev/sdd 1というPVをtestVGに追加します.
VG拡張結果を表示するには:
----------------VGの削減----------
手順:削除するPV を決定する pvmoveを使用してこのPV上のデータを他のPV に転送する. vgreduceを使用:このPVをボリュームグループから削除する . pvremoveを使用して物理ボリュームを削除し、pvの物理ボリューム を本当に削除します.
/dev/sdb 1というpvを削除
pvmove/path/to/pv PVのデータを他のPVに転送し、ターゲットPVを指定しない場合、同ボリュームグループの他のPVに転送します.
ボリュームグループtestVGの現在の状況:
ボリュームグループtestVGから/dev/sdv 1というPVを削除:
ボリュームグループtestVGの状況を再度確認します.
vgreduceコマンドは、/dev/sdb 1をボリュームグループtestVGから削除するだけで、/dev/sdb 1というPVは削除されていません
pvremoveを使用して、/dev/sdb 1というPVを本当に削除します.
pvremoveの操作結果を表示すると、/dev/sdb 1というpvが削除されていることがわかります
注意:pvmoveとpvremoveの操作の違いは、pvmoveは移動データであり、pvremoveはPVを削除する.
VG上の動作はlv中のデータに影響しない
----------------------LVの拡張-----------------------
手順:は、現在の論理ボリュームが存在するボリュームグループに十分な空き領域があることを決定する: 拡張物理境界、すなわちパーティションのサイズ 拡張論理境界、すなわちファイルシステムのサイズ ファイルシステム検出 を完了する.
コマンドpvsを使用してtestVGという名前の情報を表示します.
testVGのボリュームグループではPV数2 LV数1,VG総サイズ20 G,アイドル10 Gが見られる
lvのサイズを表示するには:
コマンドlvextend[-L|-l][+]SIZE/path/to/lvを使用して物理境界のサイズを拡張します.
sizeの前に+番号とプラス記号がない違いがあります.
プラス記号:表示拡張
プラス記号なし:
-L:SIZE B,M,G単位で拡張量を表す
-l:物理拡張単位で、何個拡張したかを表すpe
lvsを使用して、拡張されたlvの前状況を表示します.
拡張に成功したことがわかりますが、なぜlvをマウントしてdf-lhで表示すると、15 Gではなく10 Gしか見えませんか?
パーティションのサイズを拡張しただけで、拡張ファイルシステムのサイズは拡張されていません.
コマンドresize 2 fsの使用 /path/to/device拡張ファイルシステム:
再びdf-lhを使って文区の大きさを見てみると、結果も15 Gでした
ファイルシステムの検出:
fsck:サポートされているすべてのファイルシステムを検出できます
e2fsck [-t fs_type][-f][-p] /path/to/deviceはextシリーズファイルシステムのみをサポート
-f:強制検出
-p:検出中に問題があれば修復
注意現在マウント中のデバイスは検出できません
------------------------------------------------------------------------------------(リスクあり)
手順:はどのくらい縮小するかを確定しますか?前提は、少なくとも既存のすべてのデータ を収容できることである.現在マウント中のLVをアンインストールし、ファイルシステム を検出する.論理境界resize 2 fs/path/to/device SIZE を縮小物理境界lvreduce[-L|-l]SIZE/path/to/lv を縮小検出ファイルシステム マウント使用 現在マウント中のデバイスを表示するには、次の手順に従います.
現在マウント中のLVをアンインストールし、ファイルシステムを検出
resize 2 fsを使用して、縮小論理境界を使用します.
Lvsを用いてLVを調べたところ,LVは論理境界のみを縮小し,物理境界を縮小していないため変化していないことが分かった.
lvreduceを使用して物理境界を縮小するには、次の手順に従います.
lvsを再使用するとlvが減少することが分かった:
検出ファイルシステム:
デバイスをマウントしてサイズを表示するには、次の手順に従います.
--------------------------------------------------------------------------------
1.VGの拡張
2.VGの縮小
3.LVの拡張
4.LVの縮小
------------------VGの拡張、VGの拡張は比較的に簡単な3段階の操作で完成することができます-----------
手順:
現在のシステムで使用されているPVを表示します.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 testVG lvm2 a-- 10.00g 0
/dev/sdc1 testVG lvm2 a-- 10.00g 10.00g
パーティションの準備結果:
[root@localhost ~]# fdisk /dev/sdd
Device Boot Start End Blocks Id System
/dev/sdd1 1 1306 10490413+ 8e Linux LVM
pvcreateコマンドを使用してpvを作成します.
[root@localhost ~]# pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created
現在のシステムのすべてのPVを表示するには、次の手順に従います.
[root@localhost ~]# pvscan
PV /dev/sdb1 VG testVG lvm2 [10.00 GiB / 0 free]
PV /dev/sdc1 VG testVG lvm2 [10.00 GiB / 10.00 GiB free]
PV /dev/sdd1 lvm2 [10.00 GiB]
Total: 3 [30.00 GiB] / in use: 2 [20.00 GiB] / in no VG: 1 [10.00 GiB]
sdb 1とsdc 1がtestVGというVGに組み込まれていることがわかります.
/dev/sdd 1というPVをtestVGに追加します.
[root@localhost ~]# vgextend testVG /dev/sdd1
Volume group "testVG" successfully extended
VG拡張結果を表示するには:
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 testVG lvm2 a-- 10.00g 0
/dev/sdc1 testVG lvm2 a-- 10.00g 10.00g
/dev/sdd1 testVG lvm2 a-- 10.00g 10.00g
----------------VGの削減----------
手順:
/dev/sdb 1というpvを削除
pvmove/path/to/pv PVのデータを他のPVに転送し、ターゲットPVを指定しない場合、同ボリュームグループの他のPVに転送します.
[root@localhost ~]# pvmove /dev/sdb1
/dev/sdb1: Moved: 0.2%
/dev/sdb1: Moved: 61.5%
/dev/sdb1: Moved: 100.0%
ボリュームグループtestVGの現在の状況:
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 testVG lvm2 a-- 10.00g 10.00g
/dev/sdc1 testVG lvm2 a-- 10.00g 0
/dev/sdd1 testVG lvm2 a-- 10.00g 10.00g
ボリュームグループtestVGから/dev/sdv 1というPVを削除:
[root@localhost ~]# vgreduce testVG /dev/sdb1
Removed "/dev/sdb1" from volume group "testVG"
ボリュームグループtestVGの状況を再度確認します.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 a-- 10.00g 10.00g
/dev/sdc1 testVG lvm2 a-- 10.00g 0
/dev/sdd1 testVG lvm2 a-- 10.00g 10.00g
vgreduceコマンドは、/dev/sdb 1をボリュームグループtestVGから削除するだけで、/dev/sdb 1というPVは削除されていません
pvremoveを使用して、/dev/sdb 1というPVを本当に削除します.
[root@localhost ~]# pvremove /dev/sdb1
Labels on physical volume "/dev/sdb1" successfully wiped
pvremoveの操作結果を表示すると、/dev/sdb 1というpvが削除されていることがわかります
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdc1 testVG lvm2 a-- 10.00g 0
/dev/sdd1 testVG lvm2 a-- 10.00g 10.00g
注意:pvmoveとpvremoveの操作の違いは、pvmoveは移動データであり、pvremoveはPVを削除する.
VG上の動作はlv中のデータに影響しない
----------------------LVの拡張-----------------------
手順:
コマンドpvsを使用してtestVGという名前の情報を表示します.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
testVG 2 1 0 wz--n- 20.00g 10.00g
testVGのボリュームグループではPV数2 LV数1,VG総サイズ20 G,アイドル10 Gが見られる
lvのサイズを表示するには:
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
testLV testVG -wi-ao--- 10.00g
コマンドlvextend[-L|-l][+]SIZE/path/to/lvを使用して物理境界のサイズを拡張します.
sizeの前に+番号とプラス記号がない違いがあります.
プラス記号:表示拡張
プラス記号なし:
-L:SIZE B,M,G単位で拡張量を表す
-l:物理拡張単位で、何個拡張したかを表すpe
[root@localhost ~]# lvextend -L +5G /dev/testVG/testLV
Extending logical volume testLV to 15.00 GiB
Logical volume testLV successfully resized
lvsを使用して、拡張されたlvの前状況を表示します.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
testLV testVG -wi-ao--- 15.00g
拡張に成功したことがわかりますが、なぜlvをマウントしてdf-lhで表示すると、15 Gではなく10 Gしか見えませんか?
[root@localhost ~]# df -lh /backup/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/testVG-testLV
9.9G 151M 9.2G 2% /backup
[root@localhost ~]#j ld
パーティションのサイズを拡張しただけで、拡張ファイルシステムのサイズは拡張されていません.
コマンドresize 2 fsの使用 /path/to/device拡張ファイルシステム:
[root@localhost ~]# resize2fs /dev/testVG/testLV
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/testVG/testLV is mounted on /backup; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/testVG/testLV to 3932160 (4k) blocks.
The filesystem on /dev/testVG/testLV is now 3932160 blocks long.
再びdf-lhを使って文区の大きさを見てみると、結果も15 Gでした
[root@localhost ~]# df -lh /backup/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/testVG-testLV
15G 153M 14G 2% /backup
ファイルシステムの検出:
fsck:サポートされているすべてのファイルシステムを検出できます
e2fsck [-t fs_type][-f][-p] /path/to/deviceはextシリーズファイルシステムのみをサポート
-f:強制検出
-p:検出中に問題があれば修復
注意現在マウント中のデバイスは検出できません
[root@localhost ~]# umount /dev/testVG/testLV
[root@localhost ~]# e2fsck -f /dev/testVG/testLV
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/testVG/testLV: 12/983040 files (0.0% non-contiguous), 100865/3932160 blocks
------------------------------------------------------------------------------------(リスクあり)
手順:
[root@localhost ~]# mount
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/mapper/testVG-testLV on /backup type ext4 (rw)
現在マウント中のLVをアンインストールし、ファイルシステムを検出
[root@localhost ~]# umount /dev/mapper/testVG-testLV
[root@localhost ~]# e2fsck -f /dev/mapper/testVG-testLV
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/testVG-testLV: 12/983040 files (0.0% non-contiguous), 100865/3932160 block
resize 2 fsを使用して、縮小論理境界を使用します.
[root@localhost ~]# resize2fs /dev/testVG/testLV 5G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/testVG/testLV to 1310720 (4k) blocks.
The filesystem on /dev/testVG/testLV is now 1310720 blocks long.
Lvsを用いてLVを調べたところ,LVは論理境界のみを縮小し,物理境界を縮小していないため変化していないことが分かった.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
testLV testVG -wi-a---- 15.00g
lvreduceを使用して物理境界を縮小するには、次の手順に従います.
[root@localhost ~]# lvchange -a n /dev/testVG/testLV
[root@localhost ~]# lvreduce -L 5G /dev/testVG/testLV
Reducing logical volume testLV to 5.00 GiB
Logical volume testLV successfully resized
[root@localhost ~]# lvchange -a y /dev/testVG/testLV
lvsを再使用するとlvが減少することが分かった:
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
testLV testVG -wi-a---- 5.00g
検出ファイルシステム:
[root@localhost ~]# e2fsck -f /dev/testVG/testLV
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/testVG/testLV: 12/327680 files (0.0% non-contiguous), 58463/1310720 blocks
デバイスをマウントしてサイズを表示するには、次の手順に従います.
[root@localhost ~]# mount /dev/testVG/testLV /backup/
[root@localhost ~]# df -lh /backup/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/testVG-testLV
5.0G 148M 4.6G 4% /backu
--------------------------------------------------------------------------------