一、增加硬盘到 VG 中 1、先看下目前lvm的情况: 01 | [root@localhost ~]# pvs |
02 | PV VG Fmt Attr PSize PFree |
03 | /dev/sdc vg1 lvm2 a- 10.00G 2.00G |
04 | /dev/sdd vg1 lvm2 a- 10.00G 10.00G |
05 | [root@localhost ~]# vgs |
06 | VG #PV #LV #SN Attr VSize VFree |
07 | vg1 2 1 0 wz--n- 19.99G 11.99G |
08 | [root@localhost ~]# lvs |
09 | LV VG Attr LSize Origin Snap% Move Log Copy % Convert |
2、识别到新的硬件 /dev/sde ; 3、把 /dev/sde 设为 pv 1 | [root@localhost ~]# pvcreate /dev/sde |
2 | Physical volume "/dev/sde" successfully created |
4、把 PV /dev/sde 加入到 vg1 中 1 | [root@localhost ~]# vgextend vg1 /dev/sde |
2 | Volume group "vg1" successfully extended |
5、再看下各个状态: 01 | [root@localhost ~]# pvs |
02 | PV VG Fmt Attr PSize PFree |
03 | /dev/sdc vg1 lvm2 a- 10.00G 2.00G |
04 | /dev/sdd vg1 lvm2 a- 10.00G 10.00G |
05 | /dev/sde vg1 lvm2 a- 10.00G 10.00G |
06 | [root@localhost ~]# vgs |
07 | VG #PV #LV #SN Attr VSize VFree |
08 | vg1 3 1 0 wz--n- 29.99G 21.99G |
09 | [root@localhost ~]# lvs |
10 | LV VG Attr LSize Origin Snap% Move Log Copy % Convert |
加盘的操作已经完成,很简单,没什么复杂过程。 二、扩大 LV 容量 接着上面的环境,以下类同。 1、备份数据,养成好习惯; 2、卸载 lv1 ; 1 | [root@localhost ~]# umount /dev/vg1/lv1 |
3、加大 lv1 容量,增加1G容量; 1 | [root@localhost ~]# lvextend -L +1G /dev/vg1/lv1 |
2 | Extending logical volume lv1 to 9.00 GB |
3 | Logical volume lv1 successfully resized |
4、做下 e2fsck 检测 1 | [root@localhost ~]# e2fsck -f /dev/vg1/lv1 |
2 | e2fsck 1.39 (29-May-2006) |
3 | Pass 1: Checking inodes, blocks, and sizes |
4 | Pass 2: Checking directory structure |
5 | Pass 3: Checking directory connectivity |
6 | Pass 4: Checking reference counts |
7 | Pass 5: Checking group summary information |
8 | /dev/vg1/lv1: 517/1048576 files (13.3% non-contiguous), 200111/2097152 blocks |
5、resize2fs 操作: (1) ext2、ext3 文件系统 1 | [root@localhost ~]# resize2fs /dev/vg1/lv1 |
2 | resize2fs 1.39 (29-May-2006) |
3 | Resizing the filesystem on /dev/vg1/lv1 to 2359296 (4k) blocks. |
4 | The filesystem on /dev/vg1/lv1 is now 2359296 blocks long. |
(2)reiserfs 文件系统 1 | resize_reiserfs -f /dev/vg1/lv1 |
6、重新挂载,查看效果: 01 | [root@localhost ~]# mount /dev/vg1/lv1 /mnt |
02 | [root@localhost ~]# df -h |
04 | /dev/sda2 6.7G 4.9G 1.6G 77% / |
05 | /dev/sda1 99M 12M 82M 13% /boot |
06 | tmpfs 187M 0 187M 0% /dev/shm |
07 | /dev/mapper/vg1-lv1 8.9G 654M 7.9G 8% /mnt |
08 | [root@localhost ~]# lvs |
09 | LV VG Attr LSize Origin Snap% Move Log Copy % Convert |
三、缩小 LV 容量 1、备份数据; 2、卸载 lv1 3、从 lv1 中缩小1G空间; 01 | [root@localhost /]# lvreduce -L -1G -r /dev/vg1/lv1 |
02 | fsck 1.39 (29-May-2006) |
03 | e2fsck 1.39 (29-May-2006) |
04 | /dev/mapper/vg1-lv1: clean, 3106/1179648 files, 869683/2359296 blocks |
05 | resize2fs 1.39 (29-May-2006) |
06 | Resizing the filesystem on /dev/mapper/vg1-lv1 to 2097152 (4k) blocks. |
07 | The filesystem on /dev/mapper/vg1-lv1 is now 2097152 blocks long. |
09 | Reducing logical volume lv1 to 8.00 GB |
10 | Logical volume lv1 successfully resized |
其中 -r 参数比较关键,如果直接缩小lv容量的话,容易把数据弄坏! 4、挂载上来,看看效果: 01 | [root@localhost /]# lvs |
02 | LV VG Attr LSize Origin Snap% Move Log Copy % Convert |
04 | [root@localhost /]# mount /dev/vg1/lv1 /mnt |
05 | [root@localhost /]# df -h |
07 | /dev/sda2 6.7G 4.9G 1.6G 77% / |
08 | /dev/sda1 99M 12M 82M 13% /boot |
09 | tmpfs 187M 0 187M 0% /dev/shm |
10 | /dev/mapper/vg1-lv1 7.9G 3.2G 4.6G 42% /mnt |
没什么问题,还可以测试下读写,应该也没什么问题。 四、从 VG 中删除某个硬盘 1、从 VG 中删除某个硬盘,得看该硬盘是否被使用,需要具体问题具体分析: (1)、如果是下面情况,删除 /dev/sdd 和 /dev/sde ,自然没有问题,因为它们虽然在vg1组里,但根本没有使用,所以可以直接删除: 01 | [root@localhost /]# pvs |
02 | PV VG Fmt Attr PSize PFree |
03 | /dev/sdc vg1 lvm2 a- 10.00G 2.00G |
04 | /dev/sdd vg1 lvm2 a- 10.00G 10.00G |
05 | /dev/sde vg1 lvm2 a- 10.00G 10.00G |
06 | [root@localhost /]# vgreduce vg1 /dev/sde |
07 | Removed "/dev/sde" from volume group "vg1" |
08 | [root@localhost /]# vgreduce vg1 /dev/sdd |
09 | Removed "/dev/sdd" from volume group "vg1" |
10 | [root@localhost /]# pvs |
11 | PV VG Fmt Attr PSize PFree |
12 | /dev/sdc vg1 lvm2 a- 10.00G 2.00G |
13 | /dev/sdd lvm2 -- 10.00G 10.00G |
14 | /dev/sde lvm2 -- 10.00G 10.00G |
(2)、如果是下面情况 2 | PV VG Fmt Attr PSize PFree |
3 | /dev/sdc vg1 lvm2 a- 10.00G 0 |
4 | /dev/sdd vg1 lvm2 a- 10.00G 7.99G |
5 | /dev/sde vg1 lvm2 a- 10.00G 10.00G |
想删除 /dev/sdc 或者 /dev/sdd 的话,需要将 PV上的LE 移到其他空闲 PV 上: 01 | [root@localhost ~]# pvmove /dev/sdc |
03 | /dev/sdc: Moved: 15.9% |
04 | /dev/sdc: Moved: 23.0% |
05 | /dev/sdc: Moved: 29.5% |
06 | /dev/sdc: Moved: 37.5% |
07 | /dev/sdc: Moved: 45.4% |
08 | /dev/sdc: Moved: 53.5% |
09 | /dev/sdc: Moved: 61.6% |
10 | /dev/sdc: Moved: 69.6% |
11 | /dev/sdc: Moved: 77.5% |
12 | /dev/sdc: Moved: 85.5% |
13 | /dev/sdc: Moved: 93.0% |
14 | /dev/sdc: Moved: 100.0% |
15 | [root@localhost ~]# pvs |
16 | PV VG Fmt Attr PSize PFree |
17 | /dev/sdc vg1 lvm2 a- 10.00G 10.00G |
18 | /dev/sdd vg1 lvm2 a- 10.00G 7.99G |
19 | /dev/sde vg1 lvm2 a- 10.00G 0 |
pvmove时,可以手动指定目标地址(pvmove /dev/sdc /dev/sde),也可以象上面一样,不用手动指定,系统会自动转移到剩余可用的PV上。 如果当剩余可用空间小于要移动的硬盘时,转移将无法进行。 2、将数据 move 到其他 PV 上后,就可以将该 PV 从 VG 组里删除了: 1 | [root@localhost /]# vgreduce vg1 /dev/sdc |
2 | Removed "/dev/sdc" from volume group "vg1" |
3 | [root@localhost /]# pvremove /dev/sdc |
4 | Labels on physical volume "/dev/sdc" successfully wiped | 6 | PV VG Fmt Attr PSize PFree |
7 | /dev/sdd vg1 lvm2 a- 10.00G 6.99G |
8 | /dev/sde vg1 lvm2 a- 10.00G 0 |
|