centos 7.4 x86_64
场景:安装服务器系统时就需要规划好磁盘空间,并用lvm建立分区,以便随后磁盘空间耗尽,随时添加。lvm原理:
PV(physical volume):物理卷 即整个物理硬盘或物理硬盘上的分区。 PE(physical extent):物理区域 是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。 VG(volume group):卷组 建立在物理卷上,卷组中至少要包括一个物理卷,可动态的添加新卷到卷组中。 LV(logical volume):逻辑卷 建立在卷组上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后也可动态扩展和缩小空间。 LE(logical extent):逻辑区域 是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。安装lvm管理工具
yum install -y lvm2原磁盘空间用完,新加数据盘/dev/vdb
1,新建分区(8e就是lvm的分区类型) fdisk /dev/vdb n(新建分区) p(选择主分区) t(修改分区格式) 8e p(查看创建的分区) wq(保存分区信息) fdisk -l 查看磁盘状况,多出新分区/dev/vdb12,新建PV(将物理盘格式化为物理卷)
pvcreate /dev/vdb1 pvdisplay pvs3,新建名为vg0的VG
vgcreate vg0 /dev/vdb1 vgdisplay vgs4,在vg的基础上新建名为lv0的LV
将vg0所有空余空间添加到lv0
lvcreate -l 100%FREE -n lv0 vg0 或者vgs | grep Free获得空闲PE的总数1888 lvcreate -l1888 -n lv0 vg0 也可创建指定大小的LV lvcreate -L +100G -n lv0 vg0 lvdisplay格式化lv0
fdisk -l mkfs.ext4 /dev/mapper/vg0-lv0 或者 mkfs.xfs /dev/mapper/vg0-lv0创建挂载点
mkdir /alidata 挂载逻辑卷LV0 mount /dev/mapper/vg0-lv0 /alidata为了在系统启动时自动加载文件系统,还需要在/etc/fstab中添加内容:
/dev/mapper/vg0-lv0 /alidata ext4 defaults 1 1扩展空间:原分区用尽后,无需重启系统(服务器支持热插拔或者本来就有剩余空闲磁盘空间),新加磁盘并动态扩容
5,将新加磁盘/dev/vdc添加到lv0 pvcreate /dev/vdc 新建物理卷PV vgextend vg0 /dev/vdc 扩容卷组,将新物理卷PV添加到卷组vg0 lvextend -l +100%FREE /dev/mapper/vg0-lv0 将新加的所有空闲PE扩展到逻辑卷lv0 resize2fs /dev/mapper/vg0-lv0 刷新文件系统使扩容生效 df -h另外一种情况是调整系统分区大小
6,centos7按默认分区安装后磁盘空间调整 df -h 查看各个分区大小 fdisk -l 查看分区状况 cp -r /home /homebk 备份home分区内容 umount /home 若home存在使用进程,fuser -m -v -i -k /home终止 lvremove /dev/mapper/centos-home 默认是home分区过大,删除home分区的逻辑卷 lvcreate -L 50G -n home centos 从物理卷组centos的空闲空间新建50G的home分区逻辑卷 mkfs.xfs /dev/centos/home 格式化新建的home逻辑卷 mount /dev/centos/home /home 挂载逻辑卷到/home目录 vgdisplay 查看Free PE数246255 将剩下的所有自由空间添加到root的lvm分区 lvextend -l +100%FREE /dev/mapper/centos-root 或者将所有的free pe建新的逻辑卷LV lvcreate -l246255 -n iscsi centos管理命令
删除物理卷 pvremove /dev/vdb1 删除卷组 vgremove vg0 将物理卷从卷组移除 vgreduce vg0 /dev/vdb1 从卷组移除缺失物理盘 vgreduce --removemissing vg0 删除逻辑卷 lvremove /dev/mapper/vg0-lv0 (先umount /alidata) 减少逻辑卷空间 lvreduce -L -100G /dev/mapper/vg0-lv0