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