LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分LVM区管理的灵活性。其结构为:PV——VG——LV——PE,LVM分区比较灵活的一个功能就是可以无损更改分区大小。目前我现网中的服务器也使用的是LVM分区,目前也遇到了某分区分间不足的问题,所以在测试环境上演练下更改分区大小,在此记录下。
1).PV(Physical Volume):物理巻,处于LVM最底层,可以是物理硬盘或者分区。
2).VG(Volume Group):巻组,建立在PV之上,可以含有一个到多个PV。
3).LV(Logical Volume):逻辑巻,建立在PV之上,相当于原来分区的概念。不过大小可动态改变。
4).PE(Physical Extend):物理区域,PV中可以用于分配的最小存储单位,可以在建立PV时指定,如1,2,4,8... ...64M,同一VG中的所有PV的PE应该相同。
一、无损减小LVM分区大小
1、查看目前的分区情况
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 5.4G 12G 32% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 916M 0 916M 0% /dev/shm
tmpfs 916M 9.0M 907M 1% /run
tmpfs 916M 0 916M 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 184M 12K 184M 1% /run/user/42
tmpfs 184M 0 184M 0% /run/user/0
/dev/mapper/ln-myweb 25G 2.3G 21G 7% /www
当前测试环境下的/www分区为LVM分区(普通分区也可以通过pvcreate、vgcreate、lvcreate等一系统命令完成),
2、卸载分区,调整大小
卸载分区
[root@localhost ~]# umount /www
umount: /www:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
查出谁在使用这个资源:lsof命令或者fuser命令
[root@localhost ~]# lsof | grep www
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
bash 25062 root cwd DIR 253,2 4096 263836 /www/wdlinux/httpd/conf/vhost
bash 25195 root cwd DIR 253,2 4096 262266 /www/wdlinux/httpd/bin
bash 25603 root cwd DIR 253,2 4096 788793 /www/web/slai720
[root@localhost bin]# fuser -u -m -v /www
用户 进程号 权限 命令
/www: root kernel mount (root)/www
root 25062 ..c.. (root)bash
root 25195 ..c.. (root)bash
root 25603 ..c.. (root)bash
root 28030 ..c.. (root)bash
检查文件系统:
[root@localhost ~]# e2fsck -f /dev/mapper/ln-myweb //强制检查文件系统的正确性
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/mapper/ln-myweb: 36437/1638400 files (0.1% non-contiguous), 725572/6552576 blocks
调整大小:
缩小ext4文件系统,因为LVM分区还是在基本文件系统之上建立的,其更改需要文件系统也要做相应的更改。不然两大小是对等的,就会出问题了。
[root@localhost ~]# resize2fs /dev/mapper/ln-myweb 20G //20G为调整后www分区的大小
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/mapper/ln-myweb to 5242880 (4k) blocks.
The filesystem on /dev/mapper/ln-myweb is now 5242880 blocks long.
接下来,缩小LVM分区的大小。
[root@localhost ~]# lvresize -L 20G /dev/mapper/ln-myweb
WARNING: Reducing active logical volume to 20.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce ln/myweb? [y/n]: y
Size of logical volume ln/myweb changed from <25.00 GiB (6399 extents) to 20.00 GiB (5120 extents).
Logical volume ln/myweb successfully resized.
3、重新挂载,查看更改
[root@localhost ~]# mount /www/
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 5.4G 12G 32% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 916M 0 916M 0% /dev/shm
tmpfs 916M 9.0M 907M 1% /run
tmpfs 916M 0 916M 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 184M 12K 184M 1% /run/user/42
tmpfs 184M 0 184M 0% /run/user/0
/dev/mapper/ln-myweb 20G 2.3G 17G 13% /www
二、创建新的测试分区
我们利用刚刚/www分区减小的分区,创建新的lv分区
[root@localhost bin]# pvscan
PV /dev/sdb1 VG ln lvm2 [<25.00 GiB / <5.00 GiB free]
PV /dev/sda2 VG centos lvm2 [<19.00 GiB / 0 free]
Total: 2 [43.99 GiB] / in use: 2 [43.99 GiB] / in no VG: 0 [0 ]
[root@localhost bin]# lvcreate -n second-web -l 100%free ln
Logical volume "second-web" created.
创建新的分区之前已经写过,需要的情查看:https://blog.csdn.net/shardy0/article/details/86239616
三、无损增大LVM分区
[root@localhost bin]# pvscan
PV /dev/sdb1 VG ln lvm2 [<25.00 GiB / <5.00 GiB free]
PV /dev/sda2 VG centos lvm2 [<19.00 GiB / 0 free]
Total: 2 [43.99 GiB] / in use: 2 [43.99 GiB] / in no VG: 0 [0 ]
[root@localhost bin]# df -hl
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 5.4G 12G 32% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 916M 0 916M 0% /dev/shm
tmpfs 916M 9.1M 907M 1% /run
tmpfs 916M 0 916M 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 184M 12K 184M 1% /run/user/42
tmpfs 184M 0 184M 0% /run/user/0
/dev/mapper/ln-myweb 20G 2.3G 17G 13% /www
卸载home分区,并增加大小 (不进行umount操作也可以, 不过在操作过程中会引起IO增高的问题)
[root@localhost bin]# lvextend -L +5G /dev/mapper/ln-myweb
Insufficient free space: 1280 extents needed, but only 1279 available
[root@localhost bin]# lvextend -L +4G /dev/mapper/ln-myweb
Size of logical volume lnweixin/myweb changed from 20.00 GiB (5120 extents) to 24.00 GiB (6144 extents).
Logical volume ln/myweb successfully resized.
使更改生效
[root@localhost bin]# resize2fs /dev/mapper/ln-myweb
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/ln-myweb is mounted on /www; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 3
The filesystem on /dev/mapper/ln-myweb is now 6291456 blocks long.
硬盘xfs格式
使用
xfs_growfs /dev/centos/root
卸载增加空间后,需要先运行e2fsck检查,按照提示先进行分区检查(若无上面的提示,下面的步骤可以省略)
e2fsck -f /dev/mapper/ln-myweb
重新挂载,
mount /dev/mapper/ln-myweb /www
查看大小
[root@localhost bin]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 5.4G 12G 32% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 916M 0 916M 0% /dev/shm
tmpfs 916M 9.0M 907M 1% /run
tmpfs 916M 0 916M 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 184M 12K 184M 1% /run/user/42
tmpfs 184M 0 184M 0% /run/user/0
/dev/mapper/ln-myweb 24G 2.3G 21G 11% /www