准备知识
linux volume
1.(PV)physical volume
disk ; 物理硬盘
物理硬盘需要转换成lvm(logic volume manage)可识别的状态,将磁盘的system id 转换成8e(lvm的识别码),再通过
pvcreate转换成PV,这样才能对磁盘加以利用
2.(VG) volume group
磁盘组, 由pv组成,而后pv又会被看做一个整体分为lv1、lv2···
3.(PE) physical extent
lvm的最小存储块
4.(LV)logical volume
逻辑卷
VG最后会被分成许多LV
表示为 /dev/vgname/lvname 例 /dev/sda/sda1 、/dev/sda/sda2 、/dev/sdb/sdb1
—————————————-华丽的分割线—————————————————-
系统版本:
cat /etc/redhat-release
- 1
CentOS Linux release 7,2,15,11
现状:
磁盘有2块 sda(20G) 、sdb(2G), 现只有sda被使用,因为root分区马上就满了所以准备对磁盘sda扩容,将sdb合并到sda中
原理:
使用lvm对磁盘扩容
通过转置sdb的pe到sda中达到对sda扩容的目的。
流程:
1.添加逻辑卷sdb
先用parted确定磁盘类型,若类型为MBR则使用fdisk,若为GPT则使用gdisk来分割。
parted /dev/sdbx print
- 1
确认一个扇区(sector)的大小为512字节
确定类型为msdos(mbr),所以使用fdisk。
fdisk /dev/sdb
- 1
注意此处因为是要将sdb中所有容量都拿过来,所以在设定容量时直接按默认值回车了,如果要分配出指定的容量,则在last sector 行自行设置,例 +2G;再将系统识别码设置称lvm可是别的8e,w保存。
2.更新分区表
partprob
- 1
3.格式化为ext4格式
mkfs -t ext4 /dev/vdb1
- 1
4.挂载sbd(此处挂载可忽略,因为扩容不需要挂载,跳到5)
mkdir /mnt/sdb1
mount /dev/sdb1 /mnt/sdb
- 1
- 2
设置开机自动挂载
vi /etc/fstab 在末尾添加一行
/dev/sdb1 /mnt/sdb ext4 defaluts 1 2
- 1
- 2
reboot 重启df -h 查看
成功!
如果你的设备已经挂载请先卸载。
5.通过lvm管理sdb1
先创建物理卷pv
lvm
pvcreate /dev/sdb1
- 1
- 2
将pv(物理卷)加入到vg(卷组),可以通过·vgdisplay 查看组信息
vgextend centos /dev/sdb1
- 1
可以看到vg size 增加到了22G,Free PE size 也有了2G(511)的大小。(我们要增加的就是这个PE的大小!!)
到现在终于可以开始扩充根目录酱的容量啦。。(有奇怪的东西混了进来2333)
逻辑卷扩容
lvextend -l +511 /dev/mapper/centos-root
- 1
同样可以通过lvdisplay查看结果
6.接下来扩容文件系统
注意:如果文件系统是xfs格式用 xfs_growfs ,我这里是ext4格式用resize2fs
resize2fs /dev/mapper/centos-root
- 1
df -h 查看结果
- 1
可以看到我们的根目录酱(划掉)⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄已经成功的从18G涨到20G啦。
至此扩容完成。