CentOS7中基于LVM扩展根分区

作者: 天之蓝色 | 来源:发表于2017-12-24 15:33 被阅读457次

    故事前景

    有一vmware虚拟机,磁盘大小设置为默认的20GB,安装的是CentOS7.4,安装CentOS默认使用GPT分区格式建立LVM分区。分区格式如下图所示:

    node1原分区方式.png
    系统根分区"/",其大小为17G,现觉得空间过小,满足不了使用需求**,因此产生了基于LVM技术对它进行扩容的想法。以下是具体的操作过程。

    1. 增加磁盘空间

    增加磁盘空间,可以调整原磁盘的大小,或者给虚拟机添加新的硬盘,操作期间都先关闭虚拟机。
    我选择的是直接将原有的磁盘空间加大。操作如下图所示:

    node1-调整磁盘大小.png
    将原磁盘大小由20GB,拖动至100GB。确认以后,vmware会弹出提示:新的磁盘需要在虚拟机系统中进行相应操作后才能使用。(大致意思,对话框没有截图)

    2. 进行LVM扩容

    启动虚拟机,进入以后"df -h"查看分区和调整前一样。然后按如下顺序开始LVM扩容操作。

    2.1 给新增加的硬盘建立分区

    因为系统使用GPT分区格式建立的分区,所以这里使用"parted"指令完成对新增加硬盘空间的分区工作。(parted指令需要yum install parted安装)
    系统中只有一块硬盘,刚才也只是将这块硬盘大小增加了,所以其设备名仍为前面图中的"/dev/sda",然后使用"parted /dev/sda"完成LVM分区操作。如果是新增加了另一块磁盘,则先通过"parted -l"查找到系统识别出来的磁盘设备名,再进行后续操作。

    • print
      查看现有分区


      node1-原磁盘分区.png
    • mkpart primary 21.5GB 100%
      21.5GB是原有磁盘最后一个分区的位置,放在此处作为新建分区的起始位置,100%则表示整块磁盘的最大容量的位置处,简而言之就是将新增加的磁盘空间全部划为一个分区。


      node1-新建分区.png
    • name 4 addpart
      4表示分区编号,在原有的三个分区之上又新建了一个分区,所以其编号自然为4,"addpart"自定义的分区名称,此步也可省略。


      node1-给新建分区命名.png
    • set 4 lvm
      将新建的分区设置为lvm分区。

      node1-将新建分区创建为lvm.png
      然后使用"quit"退出"parted"交互模式。parted区别于fdisk的地方,除了支持超过2T大小的分区外就是它的操作执行后即刻生效,无需显示地执行"w"操作。

    2.2 LVM分区扩容

    "parted"分区完成以后,使用fdisk也可以看到新建分区(sda4)的相关信息,如下可见原磁盘(/dev/sda)新增了80GB空间。

    node1-新建分区查看.png
    • pvcreate /dev/sda4
      将/dev/sda4创建为新的PV。


      node1-创建新的PV.png
    • pvdisplay
      查看磁盘中的PV信息。

      node1-PV信息.png
      从上可以看到两个PV都属于同一个名为"centos"的VG。
    • vgextend centos /dev/sda4
      扩容VG的大小,让centos这个VG包含新增的磁盘(/dev/sda4)。


      node1-VG扩容.png
    • vgdisplay
      查看VG的大小。


      node1-VG扩容前的大小.png
      node1-VG扩容后的大小.png
    • lvextend -L 80G /dev/centos/root
      80G表示将名为root的LV扩充到80GB,显然不够准确,增加了80GB空间,不应该是扩充至80GB。还可以使用+80GB,或者+unit 表示增加多个单位(扇区)。以下是我lvextend扩容过程。


      node1-LV扩容1.png
      node1-LV扩容2.png
    • resize2fs /dev/centos/root
      调整名为root的lv的大小,使其识别到新lv的大小。但出现错误"resize2fs: Bad magic number in super-block" centos为vg名,root为lv名。

      node1-LV扩容3.png
      出现此错误的原因是resize2fs只支持ext2,ext3,ext4文件系统分区大小调整。
    • xfs_growfs /dev/mapper/centos-root
      通过"mount"指令可以查询到CentOS7默认使用的是xfs文件系统,因此此处使用xfs_growfs指令调整其大小即可。"xfs_growfs"是xfs文件专用的扩容工具。

      node1-xfs分区扩容.png

    3. 验证扩容结果

    • df -h
      查看扩容的根分区大小。


      node1-根分区扩容后.png

      从上面可以看到根分区扩容成功,重启后系统也工作正常,原磁盘数据未见损坏。

    相关文章

      网友评论

        本文标题:CentOS7中基于LVM扩展根分区

        本文链接:https://www.haomeiwen.com/subject/dufhgxtx.html