磁盘的动态扩容与缩减

磁盘的动态扩容与缩减

在日常运维过程中,经常会出现磁盘爆满,不足以维持未来业务量,或者磁盘太大,造成资源浪费的情况,这种情况下最好的方式就是采用磁盘的动态扩容和缩减。

lvm是什么

在这里我们推荐使用LVM逻辑卷的方式,为什么使用这个方式呢,这个方式有什么值得推崇的呢,我们在这里不进行一堆原理上的介绍,只需要知道如果我们使用了lvm,就可以动态的控制某个磁盘的大小,而不至于每次都要删除重建磁盘即可。话不多说,下面我们直接进入正文。

PV 物理卷。可以是单独磁盘,也可以是磁盘分区;

VG 卷组。是PV的组合,可以看成单独的逻辑磁盘;

LV 逻辑分区。相当于物理分区的 /dev/sd* /dev/vd*等

扫描磁盘

添加新磁盘时,如lsblk和fdisk -l无法找到新加磁盘,执行以下命令刷新磁盘

for i in /sys/class/scsi_host/*; do echo "- - -" > $i/scan; done

划分磁盘

如sdb为新磁盘

echo "n
p



t
8e
w
" | fdisk /dev/sdb

创建PV


pvcreate 将物理分区新建为PV
pvs/pvscan 查看系统里有pv的磁盘
pvdisplay 显示系统上面的pv状态
pvremove 删除pv
pvcreate /dev/sdb1

创建VG


vgcreate 新建vg, -s  后面接 pe 的大小
vgextend 扩展vg,就是增加vp
vgs/vgscan 查看系统里有 vg 的磁盘
vgdisplay 显示系统上面的 vg 状态
vgremove 删除vg
vgreduce 在vg里面删除pv
vgcreate  datavg  /dev/sdb1

创建LV


lvcreate 新建lv,-L指定容量,M,G
lvextent 增加容量
lvs/lvscan 查看系统里有lv的磁盘
lsdisplay 显示系统上面的lv的状态
lsremove 删除lv
lvreduce 在lv里减少容量
分配10G空间给datalv
lvcreate -L 10G -n datalv  datavg
分配所有vg空间给datalv
lvcreate -l 100%VG  -n datalv  datavg

快速格式化

mkfs.ext4  /dev/datavg/datalv
-N 268435456 -T largefile  加该参数可以扩大分区的inode数

挂载

mount  /dev/datavg/datalv   /data
写入fstab开机自动挂载 
vi /etc/fstab  增加以下内容
/dev/datavg/datalv  /data    ext4   defaults 0 0

扩容

扩容VG

把/dev/sdb1扩容给datavg

vgextend  datavg /dev/sdc1

扩容LV

扩容200G给/dev/datavg/datalv

lvextend -L +200G /dev/datavg/datalv

文件系统扩容

resize2fs  /dev/datavg/datalv

缩容

umount /data  卸载挂载分区
e2fsck -f /dev/datavg/datalv   # 检查
resize2fs /dev/datavg/datalv 200G  # 文件系统缩减
lvreduce -L 200G /dev/datavg/datalv  # 磁盘缩减
mount  /dev/datavg/datalv   /data # 重新挂载

磁盘的动态扩容与缩减
http://www.jcwit.com/article/176/
作者
Carlos
发布于
2023年11月9日
许可协议