前言

企业真实场景由于硬盘常年大量读写,由于磁盘空间不足,需添加调整硬盘空间或者新硬盘,新添加的硬盘需要经过格式化、分区才能被Linux系统所使用,虚拟机CentOS 7 Linux模拟LVM调整/根分区的容量大小的方法。不需要关机。

LVM扩容方法,是通过添加新的磁盘或者磁盘分区来建立新的PV,再将PV(Physical Volume)加入到VG(Volume group)中,从而扩大VG空间,再对相关的LV(Logical volume逻辑卷)进行扩容,最后增加文件系统空间完成整个扩容工作。这种方法比较适合使用本地存储的物理机,因为磁盘空间都是固定的,只能通过增加硬盘来增加磁盘空间,这种方法可以在线完成,无需停机重启。

  • 查看Linux系统磁盘分区信息,df -h发现根分区才10GB,需要扩容到20GB,可以将/data分区压缩10G给/根分区使用,如图所示

  • 执行df -Th查看磁盘分区文件系统格式,/和/data/均为XFS文件系统,如图所示:

  • XFS文件系统磁盘扩容,采用传统resize2fs指令压缩/data/分区空间,执行如下命令:resize2fs -p /dev/mapper/centos-data 60G,将其空间压缩成60GB,报错信息如下:(原因是XFS不支持直接动态Resize2FS缩容)

  • 如果要缩小/data/目录空间,就需要对/data/分区重新格式化、重做,那么提前备份/data/目录数据,然后删除/data/ LVM信息。指令如下:

mkdir -p /tmp/`date +%F`

\cp -a /data/* /tmp/`date +%F`

umount /dev/mapper/centos-data

lvremove /dev/mapper/centos-data

  • 释放了/data/分区的空间之后,此时可以直接给/根分区扩容了,直接设置为40GB和刷新空间,命令操作如下:

lvextend -L 20G /dev/mapper/centos-root

xfs_growfs /dev/mapper/centos-root

  • 然后将剩余的空间继续划分给/data/分区,同时格式化,操作的方法和指令如下:

lvcreate -l +100%free -n data centos

mkfs.xfs /dev/mapper/centos-data

mount /dev/mapper/centos-data /data/

\cp -a /data/* /tmp/`date +%F`/* /data/

  • 根据如上所有的方法和指令,根分区/空间扩容成功,执行df -h命令,如图所示:

1.1 LVM分区Linux磁盘扩容实战二

企业真实场景由于硬盘常年大量读写,由于磁盘空间不足,需添加调整硬盘空间或者新硬盘,新添加的硬盘需要经过格式化、分区才能被Linux系统所使用,虚拟机CentOS 7 Linux模拟LVM增加/根分区的容量大小的方法。不需要关机。

LVM扩容方法,是通过添加新的磁盘或者磁盘分区来建立新的PV,再将PV加入到VG中,从而扩大VG空间,再对相关的LV进行扩容,最后增加文件系统空间完成整个扩容工作。这种方法比较适合使用本地存储的物理机,因为磁盘空间都是固定的,只能通过增加硬盘来增加磁盘空间,这种方法可以在线完成,无需停机重启。

  • 查看Linux系统磁盘分区信息,df -h发现根分区才40GB,需要扩容到60GB,可以将新添加的硬盘(20GB)空间给/根分区,如图所示:

  • 执行df -Th查看磁盘分区文件系统格式,/根分区为XFS文件系统,如图所示:

  • 添加完新硬盘之后,通过fdisk -l查看不到,需要执行如下指令,然后发现新硬盘设备名称为:/dev/sdb。

echo "- - -"> /sys/class/scsi_host/host0/scan

echo "- - -"> /sys/class/scsi_host/host0/scan

  • 创建PV卷,命令操作如下:

pvcreate /dev/sdb

  • 显示原Linux系统磁盘VG卷组,操作的方法和指令如下:

vgdisplay

  • 将新的PV扩展进VG centos,命令操作如下,如图所示:

vgextend centos /dev/sdb

vgs

vgscan

  • 将centos卷组上的root逻辑卷增加容量,命令操作如下,如图所示:

lvextend -l +100%free /dev/centos/root

xfs_growfs /dev/mapper/centos-root

  • 根据如上所有方法和步骤,根分区/扩容完成,成功扩容到60GB,执行df -h指令,如图所示:

1.1LVM分区Linux磁盘扩容实战三

企业真实场景由于硬盘常年大量读写,由于磁盘空间不足,需添加调整硬盘空间或者新硬盘,新添加的硬盘需要经过格式化、分区才能被Linux系统所使用,虚拟机CentOS 7 Linux模拟LVM调整/根分区的容量大小的方法。不需要关机。

LVM扩容方法,是通过添加新的磁盘或者磁盘分区来建立新的PV,再将PV加入到VG中,从而扩大VG空间,再对相关的LV进行扩容,最后增加文件系统空间完成整个扩容工作。这种方法比较适合使用本地存储的物理机,因为磁盘空间都是固定的,只能通过增加硬盘来增加磁盘空间,这种方法可以在线完成,无需停机重启。

  • 查看Linux系统磁盘分区信息,df -h发现根分区才20GB,需要扩容到40GB,可以将/data分区压缩20G给/根分区使用,如图所示:

  • 执行df -Th查看磁盘分区文件系统格式,/和/data/均为EXT4文件系统,如图所示:

  • EXT4文件系统磁盘扩容,采用传统resize2fs指令压缩/data/分区空间,执行如下命令,将其空间压缩成60GB,如图所示:

umount /data/

e2fsck -f /dev/mapper/centos-data

resize2fs -p /dev/mapper/centos-data 60G

  • 释放了/data/分区的空间之后,此时可以直接给/根分区扩容了,直接设置为40GB和刷新空间,命令操作如下:

lvreduce -L 60G /dev/mapper/centos-data

lvextend -l +100%free /dev/centos/root

resize2fs /dev/mapper/centos-root

根据如上所有的方法和指令,根分区/空间扩容成功,执行df -h命令,如图所示:

1.1LVM分区Linux磁盘扩容实战四

企业真实场景由于硬盘常年大量读写,由于磁盘空间不足,需添加调整硬盘空间或者新硬盘,新添加的硬盘需要经过格式化、分区才能被Linux系统所使用,虚拟机CentOS 7 Linux模拟LVM增加/根分区的容量大小的方法。不需要关机。

LVM扩容方法,是通过添加新的磁盘或者磁盘分区来建立新的PV,再将PV加入到VG中,从而扩大VG空间,再对相关的LV进行扩容,最后增加文件系统空间完成整个扩容工作。这种方法比较适合使用本地存储的物理机,因为磁盘空间都是固定的,只能通过增加硬盘来增加磁盘空间,这种方法可以在线完成,无需停机重启。

  • 查看Linux系统磁盘分区信息,df -h发现根分区才40GB,需要扩容到60GB,可以将新添加的硬盘(20GB)空间给/根分区,如图所示:

  • 执行df -Th查看磁盘分区文件系统格式,/根分区为EXT4文件系统,如图所示:

  • 添加完新硬盘之后,通过fdisk -l查看不到,需要执行如下指令,然后发现新硬盘设备名称为:/dev/sdb。

echo "- - -"> /sys/class/scsi_host/host0/scan

echo "- - -"> /sys/class/scsi_host/host0/scan

  • 创建PV卷,命令操作如下:

pvcreate /dev/sdb

  • 显示原Linux系统磁盘VG卷组,操作的方法和指令如下:

vgdisplay

  • 将新的PV扩展进VG centos,命令操作如下,如图所示:

vgextend centos /dev/sdb

vgs

vgscan

  • 将centos卷组上的root逻辑卷增加容量,命令操作如下,如图所示:

lvextend -l +100%free /dev/centos/root

resize2fs /dev/mapper/centos-root

  • 根据如上所有方法和步骤,根分区/扩容完成,成功扩容到60GB,执行df -h指令,如图所示:

1.1基于GPT格式磁盘分区

MBR分区标准决定了MBR只支持在2TB以下的硬盘,为了支持能使用大于2T硬盘空间,需使用GPT格式进行分区。创建大于2TB的分区,需使用parted工具。

在企业真实环境中,通常一台服务器有多块硬盘,整个硬盘容量为10T,需要基于GTP格式对10T硬盘进行分区,操作步骤如下:

parted -s   /dev/sdb  mklabel gpt        设置分区类型为gpt格式;

mkfs.ext3  /dev/sdb                    基于Ext3文件系统类型格式化;

mount     /dev/sdb  /data/             挂载/dev/sdb设备至/data/目录。

  • 如图7-12所示,假设/dev/sdb 为10T硬盘,使用GPT格式来格式化磁盘:

图7-12  假设/dev/sdb为10T设备

  • 执行命令:parted -s  /dev/sdb  mklabel gpt,如图7-13所示:

图7-13  设置/dev/sdb为GPT格式磁盘

  • 基于mkfs.ext3  /dev/sdb格式化磁盘,如图7-14所示:

图7-14  格式/dev/sdb磁盘

parted命令行也可以进行分区,如图7-15(a)、7-15(b)、7-15(c)所示:

partedàselect /dev/sdbàmklabel gptàmkpart primary 0  -1àprint

mkfs.ext3  /dev/sdb1

mount     /dev/sdb1  /data/

图7-15(a)parted工具执行GPT格式分区

图7-15(b)parted工具执行GPT格式分区

图7-15(c) parted工具执行GPT格式分区

免责声明

本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本平台和发布者不为此承担任何责任。