lvm创建/扩容/缩容
原理:
(1)物理磁盘被格式化为PV,空间被划分为一个个的PE
(2)不同的PV加入到同一个VG中,不同PV的PE全部进入到了VG的PE池内
(3)LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘
(4)LV现在就直接可以格式化后挂载使用了
(5)LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据
工作流程:
磁盘分区-->创建物理卷-->划分为卷组-->划分成逻辑卷-->格式化、挂载-->扩容。
安装lvm指令
yum install lvm2 -y
查看磁盘使用情况
fdisk -l
创建新的磁盘分区
fdisk /dev/sdb
注:m 可看帮助列表;p 可查看已有的分区;d 删除分区;n 添加新分区;w 保存并退出;q不保存退出
输入命令t,然后输入分区类型,输入8e(不同系统版本指令不同)表示虚拟逻辑卷(lvm)分区,后期硬盘分区空间不足可以在线扩容。
将物理硬盘分区初始化为物理卷:
pvcreate /dev/sdb1
创建卷组test_vg
vgcreate test_vg /dev/sbd1
vgdisplay或者vgs --查看vg组信息
创建逻辑卷test_lv:
lvcreate -l 1279999 test_vg -n test_lv --使用剩余可用pe数(vgdisplay中Free PE字段)
lvcreate –l +100%FREE test_vg –n test_lv --使用空闲空间的100%
lvcreate -L 2G test_vg -n test_lv --指定2G空间
格式化逻辑卷
mkfs.xfs /dev/test_vg/test_lv --xfs格式,不支持缩容
mkfs.ext4 /dev/test_vg/test_lv --ext4格式
临时挂载目录
mount /dev/test_vg/test_lv /data
设置开机自动挂载
echo 'UUID=28584681-d4c9-4ecc-a3ba-2f0d229f099a /data xfs defaults 0 0' >>/etc/fstab --推荐使用 uuid通过blkid或者lsblk -f指令获取
echo '/dev/test_vg/test_lv /data xfs defaults 0 0' >>/etc/fstab --不推荐,硬盘名称可能发生变化
mount -a --加载fstab文件
df -h --查看挂载情况
lvm在线扩容
查看vg组是否有足够的扩容空间,如果空间不足则需要先对vg组进行扩容。
vgdisplay或者vgs
扩大VG vgextend
pvcreate /dev/sdc1
vgextend vg1 /dev/sdc1 #vg1卷组名字,将/dev/sdc1扩展到vg1中
vgs
lv扩容
lvextend -L 850M /dev/vg1/lv1 #扩展到850M
lvextend -L +850M /dev/vg1/lv1 #在原有基础上加850M
lvextend -l +15 /dev/vg1/lv1 #在原有基础上加15个PE
lvs
xfs_growfs /dev/vg1/lv1 #xfs扩容,更新文件系统
resize2fs /dev/vg1/lv2 #ext4扩容,更新文件系统
df -h #查看扩容情况
lvm离线缩容(xfs不支持)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了