# linux 逻辑卷管理 调整分区大小
遇到一个linux磁盘容量问题:
系统环境:RedHat5.6
发现vg_localhost-lv-root使用率已经100%,分配的空间是50G 这时需要进行动态扩容。
因为redhat带有lvm的功能包所以可以借助lvm进行动态扩容。
首先介绍一下lvm的几个概念:
- PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区
VG(volume group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。
- LV(logical volume):逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。
- PE(physical extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。
- LE(logical extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
卷组描述区域:卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中逻辑卷、逻辑卷中物理区域的分配等所有信息,它是在使用pvcreate建立物理卷时建立的。
在安装好系统后redhat自动建立并分配好了逻辑分区,如下所示
```
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 931G 0 part
├─vg_localhost-lv_root (dm-0) 253:0 0 350G 0 lvm /
├─vg_localhost-lv_swap (dm-1) 253:1 0 9.8G 0 lvm [SWAP]
└─vg_localhost-lv_home (dm-2) 253:2 0 571.2G 0 lvm /home
```
在系统内分配好了root和home的空间
动态扩容就是对vg_localhost-lv_root进行扩容。
以下是动态扩容的步骤:
1. 查看分区 df -hT
```
[root@localhost ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_localhost-lv_root
ext4 345G 24G 304G 8% /
tmpfs tmpfs 3.9G 213M 3.7G 6% /dev/shm
/dev/sda1 ext4 485M 37M 423M 9% /boot
/dev/mapper/vg_localhost-lv_home
ext4 563G 198M 534G 1% /home
```
从上面内容可以看出/dev/mapper/vg_localhost-lv_home的容量很多 所以可以从里面切一块出来给root
2. 取消挂载 umount /home //取消挂载
```language
umount /home // 取消挂载
// 执行上述命令时如果有进程或用户占用/home/则会执行失败可以增加-f参数
umount -f /home
// 如上述命令依然失败 可以使用fuser命令 (此命令慎用 有可能会引起逻辑卷错误,甚至数据损失)
fuser -km /dev/vg_localhost-lv_home
```
3. e2fsck -f /dev/vg_localhost-lv_home //分区检测
4. resize2fs -p /dev/mapper/vg_localhost-lv_home 100G // 将home的空间缩小
5. mount /home //挂载home
6. df -h //查看分区
7. vgdisplay //查看可用空间大小
8. lvextend -L +300G /dev/mapper/vg_localhost-lv_root //扩展lv_root虚拟分区
9. resize2fs -p /dev/mapper/VolGroup-lv_root //lv_root重设分区大小
10. lsblk 查看各虚拟分区的容量大小