Centos7 下调整根/分区的大小(扩容)

快速命令:

     1.删除/home 将其空间分给/

umount /home
vi /etc/fstab
lvremove /dev/centos/home
vgs
lvextend -L +9.31G /dev/centos/root
xfs_growfs /dev/centos/root
df -h

    

    2.添加一块硬盘,扩展给/

lsblk
pvcreate /dev/sdb
pvs
vgs
vgextend centos /dev/sdb
lvextend /dev/centos/root /dev/sdb
xfs_growfs /dev/centos/root
df -hT


3、虚拟机增加硬盘容量给/分区

pve上面虚拟机关机,硬件的硬盘+10G,然后开机,进去此时看到lsblk下sda增加了10G

lsblk
fdisk /dev/sda

 删除2分区,新建2分区,此时lsblk可以看到sda2分区变大了10G

刷新分区表,扩大pv

partprobe
pvresize /dev/sda2

此时pvs增加了10G,vgs看到VG也增加了10G

lvextend -L +10G /dev/mapper/centos-root

可以看到lv也增加了10G

xfs_growfs /dev/mapper/centos-root

成功后df -h 看到/分区也增加了10G

据说用下面这条命令可以在扩大LV的时候同时格式化,还没试过,先记录下来

lvextend -rL 10G /dev/mapper/centos-root


事情起因是笔者在测试虚拟机的磁盘性能时根分区被写满,由于上篇讲到用dd命令可以测试磁盘读写速度,因此笔者周末放假在家对虚拟机进行测试,结果发生了意外。本篇要讲的就是如何解决这个意外。

笔者用的命令就是time dd if=/dev/zero of=test bs=1M count=4096 这条命令,同时发现了另外一个问题,那就是这条命令会占用磁盘空间,测试完后根分区的可用空间会缩小,当然这是笔者解决了意外之后专门再次做的测试,现在把它放到文章开头来讲,好了废话不多说,上图:

开始前的磁盘容量

接着开始dd操作

dd之后磁盘的容量,少了1.4G

dd之后的容量.png

试图删除,恢复磁盘容量

失败,磁盘容量并未恢复

看来磁盘性能测试用dd命令,会占用不小的磁盘空间。当然产生的文件是可以删除的,然后磁盘空间会得到释放。

现在正式开始分享根分区容量调整的过程

发现磁盘容量不足

意外发生.png

lsblk

lsblk查看磁盘情况.png

lvs

查看LV情况.png

好了,磁盘情况已经知道了,根分区只有8.2G,/home反而有9.3G,那就把/home的容量给根分区使用,这种方法适用于只有一块硬盘的情况。接下来的思路就是先卸载/home这个挂载点,然后删除这个名称为home的LV,然后将删除后空余出来的VG容量挂载给根分区,最后还要删除/etc/fstab里的home挂载,以免下次重启开不了机。

当然什么是LVM,参考红帽认证rhcsa逻辑卷管理。

当然操作之前我还是百度了的,但是百度来的都是坑,只能看我自己的红帽教程才解决。以下是百度坑

resize2fs -p /dev/mapper/VolGroup-lv_home 20G

磁盘满了tab键用不了,重启机器之后可以用了

tab键按不了.png

继续参照百度出来的文章坑操作

百度命令操作不了.png

好了,放弃。开始我自己的红帽教材方法

卸载

umount /home

删除

lvremove /dev/mapper/centos-home

查看lv和vg

lvs

vgs

多余的VG.png

明显看到VG有了9.31GB的空余,那么把它扩容到root,这个root就是根分区的LV名称,扩给它就是扩给了根分区

lvextend -L +9.31G /dev/centos/root


扩容成功.png

可以看到LV root的容量变成了17.51GB,表示扩容成功。接下来扩容的最后一步

xfs_growfs /dev/centos/root 

扩容后的根分区.png

还有一步别忘了,既然你删除了/home挂载点,就要去/etc/fatab下面删除开机挂载,否则有可能开不了机(我还没试过,有兴趣的可以做好快照了试试)

vi /etc/fstab

fstab.png



上面说了,根分区满了,只有一块硬盘我们把/home删掉扩展给根分区,那么假如我再添加一块新的硬盘用来扩展根分区该怎么操作呢?

那思路是这样的,一般是lsblk命令查看有几块硬盘,硬盘的名称一般是第一块sda,第二块sdb,第三块sdc。云服务器是vda,vdb,vdc来命名的。那就把sdb第二块硬盘分区,然后创建成一个PV,然后对原来的VG进行扩容,然后挂载,挂载当然是写进/etc/fstab。

好了,思路有了,开始操作

第二块硬盘.png

看到第二块硬盘有10G。那么用fdisk进行分区,一路回车,最后按w保存退出。再次lsblk发现多了个sdb1分区

sdb.png

接着创建PV

pvcreate /dev/sdb1

有警告出现是因为我之前多此一举对它进行了xfs格式化,创建PV的时候让我确认是否删除,当然要删除

pv创建.png

PV创建好了,接下来开始扩容VG

vgextend centos /dev/sdb1

vg扩容.png

可以看到有了10G的空余,继续扩容LV

lvextend /dev/centos/root /dev/sdb1

LV扩容.png

LV扩容第二步

xfs_growfs /dev/mapper/centos-root

LV扩容2.png

可以看到根分区成功扩容到了28G,下面的图是之前的根分区

没扩容之前的磁盘.png

经过对比,刚好把第二块磁盘的10G容量扩容到了根分区,操作成功!!!


最后编辑于:2018/06/09作者: admin

发表评论