以下场景我们经常会遇到:
扩容操作不影响系统已经存在的数据,最好不用重启系统。
分区:磁盘上的区域划分,例如windows中常见的C,D,E盘
扩容:增加分区的大小
扇区(sector):读写磁盘上的数据的最小单位,一般是512bytes
xfs,ext2,ext3,ext4:linux系统中常见的文件系统格式,xfs可以通过xfs_growfs命令调整文件系统,但是只能增大,不能缩小;ext2,ext3,ext4格式的文件系统可以通过resize2fs命令调整大小,增大和缩小都支持
LVM:Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。
PV:物理卷(Physical Volume)
VG:卷组(Volume Group)
LV:逻辑卷(Logical Volume)
PE:物理块(Physical Extent)
LE:逻辑块(Logical Extent)
LVM的LV代替了传统磁盘管理方式中的PV,使磁盘空间的扩展和压缩变得容易。最明显的优势是LV中的空间可以来自于多个不同的PV。
扩容前提:可用空间紧挨着被扩充分区结束扇区的位置
fdisk -l
找到要扩容的磁盘和分区情况,我要对/dev/sda1扩容fdisk /dev/sda
修改磁盘分区,输入m
显示帮助信息d
删除要扩容的分区,只有一个分区时会直接删除,多个分区时按提示输入分区号n
新建分区p
选择主分区或者输入e
选择扩展分区,一般选择p
,注意linux系统中主分区最多只能有4个,建立4个主分区后将无法再新增分区回车
输入默认的第一个和最后一个扇区号y
w
保存修改partprobe
重新侦测分区,可能报错,这个时候需要重启系统resize2fs
命令,xfs系统使用xfs_growfs
,通过mount
命令可以查看文件系统的类型df-h
命令检查分区是否已经扩容fdisk /dev/sda
的n
命令创建新分区,步骤和传统磁盘扩容中描述的一致partprobe
重新侦测分区,假设新增的分区为/dev/sda3pvcreate /dev/sda3
创建PVpvdisplay
查看新创建的PVvgdisplay
查看当前的VG信息vg_extend centos /dev/sda3
df -h
找到要增加的LV的名称,假设是/dev/mapper/centos-rootlvextend -l +100%FREE /dev/mapper/centos-root
将VG中的剩余空间全部添加到指定的LV,也可以使用lvextend -L +30G /dev/mapper/centos-root
增加指定的大小resize2fs
命令,xfs系统使用xfs_growfs
,通过mount
命令可以查看文件系统的类型,例如resize2fs /dev/mapper/centos-root
或者xfs_growfs /dev/mapper/centos-root
df-h
命令检查分区是否已经扩容新增分区的方式不是任何情况都适用的。例如某个磁盘当前已经有了4个主分区,此时如果再扩容则无法使用LVM(新增分区)的方式。此时可以将空间增加到特定的PV
扩容前提:可用空间紧挨着被扩充分区结束扇区的位置
d
,再根据提示输入4
删除要扩容的分区n
新建分区p
选择主分区或者输入e
选择扩展分区,主要需要与删除前的分区属性一致回车
输入默认的第一个和最后一个扇区号y
t
修改分区类型4
选择要修改的分区8e
将分区类型改为linux LVMw
保存修改partprobe
重新侦测分区,可能报错,这个时候需要重启系统pvresize /dev/sda4
调整PV的大小resize2fs
命令,xfs系统使用xfs_growfs
,通过mount
命令可以查看文件系统的类型,例如resize2fs /dev/mapper/centos-root
或者xfs_growfs /dev/mapper/centos-root
df-h
命令检查分区是否已经扩容