一、VM中进行扩容设置
必须要关闭当前CentOS,不然扩展按钮是灰色的。
输入值必须大于当前磁盘容量。然后点击扩展,等待扩展完成会提示一个弹框,点击确定,继续确定。


二、操作CentOS扩容——磁盘分区
第一步设置完成。那就启动 CentOS,进入开始操作:
1.df -h查看磁盘。发现啥都没变/dev/mapper/centos-root容量17G,哈哈。
 
[root@centos1 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 3.9G     0  3.9G    0% /dev
tmpfs                    3.9G     0  3.9G    0% /dev/shm
tmpfs                    3.9G   12M  3.9G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G   13G  4.8G   72% /
/dev/sda1               1014M  154M  861M   16% /boot
tmpfs                    782M     0  782M    0% /run/user/0
[root@centos1 ~]# 2. fdisk -l, 查看磁盘分区。这回看到了,第一行就已经输出了磁盘 /dev/sda:107.4 GB
 
[root@centos1 ~]# fdisk -l磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ac81b设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节[root@centos1 ~]# 3. fdisk /dev/sda,对新加的磁盘进行分区操作(选择新增的磁盘)。 后面的参数就上面查询到的盘,当前因为是扩容就这一个。
 
[root@centos1 ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助):如果是多个盘需要注意区分,比如下面就是我后面又研究不 扩容盘,添加盘的情况。命令大致等同,最后不要合并上去就行


4. 输入p查看分区信息,可以看到只有两个分区。Blocks加起来也就20G左右。但磁盘却最上面显示了107.4G,说明存在待分区的磁盘空间。
 
命令(输入 m 获取帮助):p磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ac81b设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM命令(输入 m 获取帮助):可以看到输入 m 有命令提示,本着探索精神看一眼都有啥(已汉化并修正描述~):
命令(输入 m获取帮助):m
a 切换可引导标志
b 编辑BSD磁盘标签
c 切换DOS兼容性标志
d 删除分区
g 创建一个新的 空GPT分区表
G 创建一个IRIX (SGI)分区表
l 列出已知的分区类型
m 打印输出这个命令菜单
n 添加新分区
o 创建一个新的空DOS分区表
p 打印分区表
q 不保存更改就退出
s 创建一个新的空Sun 磁盘标签
t 修改分区的系统id
u 改变显示/输入单位
v 验证分区表
w 将表写入磁盘并退出
x 额外功能(仅限专家使用)
5.将为自由空间进行分区。
输入n,新建分区,
继续输入p或直接回车,分区类型我们使用默认的——主分区。
继续输入3或直接回车,分区号使用默认的——3
起始 扇区,直接回车默认,我们不需要分太多。
Last 扇区,直接回车默认,我们不需要分太多。
最后输出“分区 ?已设置为 Linux 类型,大小设为 ?GiB”就表示分区成功了,这两个❓值可能跟实际的分区号和你自己扩容的大小相关。
命令(输入 m 获取帮助):n
Partition type:p   primary (2 primary, 0 extended, 2 free)e   extended
# 教程说明:直接回车
Select (default p): 
Using default response p
# 教程说明:直接回车
分区号 (3,4,默认 3):3
# 教程说明:直接回车
起始 扇区 (41943040-209715199,默认为 41943040):
将使用默认值 41943040
# 教程说明:直接回车
Last 扇区, +扇区 or +size{K,M,G} (41943040-209715199,默认为 209715199):
将使用默认值 209715199
分区 3 已设置为 Linux 类型,大小设为 80 GiB命令(输入 m 获取帮助):在 CentOS 中进行磁盘分区时,有两种类型可以选择:主分区(Primary)和 扩展分区(Extended)。
主分区(Primary):
主分区是磁盘上的基本分区,它可以被文件系统直接使用。每个硬盘驱动器只能包含最多4个主分区,其中包含一个 活动分区(活动分区是引导 操作系统的分区)。
扩展分区(Extended):
扩展分区是一个特殊的类型的分区,它允许在硬盘上创建更多的逻辑分区。每个硬盘驱动器只能有一个扩展分区,并且它可以包含多个 逻辑分区。逻辑分区是文件系统的一部分,但它们必须通过扩展分区进行访问。
上面打印的信息“ p primary (2 primary, 0 extended, 2 free)”表示该磁盘上有2个主分区和2个可用空间,没有扩展分区。
6. 输入p查看一下分区结果。可以看到新增了一个 /dev/sda3分区。Blocks的大小是80G左右。
 
命令(输入 m 获取帮助):p磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ac81b设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM
/dev/sda3        41943040   209715199    83886080   83  Linux命令(输入 m 获取帮助):7. 输入w ,将前面的分区操作写入磁盘,表示保存生效。如果放弃就输入q。
 
命令(输入 m 获取帮助):w
# 教程说明:打印已经修改成功!
The partition table has been altered!# 教程说明:调用ioctl()重新读取分区表。
Calling ioctl() to re-read partition table.# 教程说明:重启生效。
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@centos1 ~]# WARING:看到警告不要慌,英文没看懂,中文就看到“设备或资源忙”!心想是不是失败了。
确实失败,分区完之后想要读取这个新的分区,结果读不到,告诉你它现在还是用的旧的,如果要用新的就执行partprobe(8)或kpartx(8)或reboot。简单说重启就好了。
8. 输入reboot,重启CentOS,使配置生效
 
[root@centos1 ~]# reboot
Connection closing...Socket close.Connection closed by foreign host.Disconnected from remote host(192.点赞.收藏.+关注) at 23:26:05.Type `help' to learn how to use Xshell prompt.
很快就重启成功了,我们继续搞起。。。
画个重点:了解一下磁盘和卷组。
LVM
LVM(Logical Volume Manager)卷组是Linux系统中的一种逻辑存储管理机制。它可以将多个物理硬盘或分区抽象成一个逻辑卷,从而方便地进行存储管理。LVM卷组允许动态地增加、删除和合并物理卷,以及动态地调整逻辑卷的大小,而不需要关心物理硬盘或分区的位置和数量。
LVM的基本组成部分包括:
- 物理卷(Physical Volume,PV):是指LVM中的物理存储设备,如硬盘或分区。在使用LVM之前,需要将物理存储设备初始化为LVM物理卷,并给它们分配一个唯一的标识符。
- 卷组(Volume Group,VG):由一个或多个物理卷组成的逻辑组。在LVM中,物理卷可以被分配到一个或多个卷组中,卷组中的物理卷可以动态地添加、删除或合并,从而方便地进行存储容量的管理。
- 逻辑卷(Logical Volume,LV):逻辑卷是指LVM中的逻辑存储设备,它是由卷组中的物理卷动态分配而来。逻辑卷可以被格式化为文件系统,并像普通的物理硬盘分区一样使用。
LVM的主要优点是提供了更灵活的存储管理方式,可以动态地增加、删除、合并和移动存储空间,而不需要关心物理硬盘或分区的位置和数量。此外,LVM还支持快照、镜像和迁移等高级存储功能,能够满足不同应用场景的需求。
~~~~~~~~~~ 看的一脸懵 ~~~~~
卷组跟磁盘、分区有什么联系和区别?
磁盘(Disk)是计算机的一种存储设备,它通常由一个或多个 platters(盘片)组成,可以存储数据和信息。磁盘可以分区(Partition),将一个磁盘分成多个部分,每个部分都可以有不同的文件系统,以便更好地管理和使用存储空间。
联系:卷组和磁盘都与存储有关,磁盘是物理上的,卷组是逻辑上的。卷组是由多个物理卷组成的逻辑存储设备,而磁盘是一种物理存储设备,可以分区并被卷组使用。在LVM中,卷组的物理卷可以来自磁盘的一个分区或整个磁盘,而卷组可以由多个物理卷组成。
区别:卷组是LVM中的逻辑存储设备,它由一个或多个物理卷组成,可以被看作是一个逻辑上的硬盘,主要用于存储和管理数据。磁盘是计算机的一种存储设备,它可以被分区,每个分区可以拥有不同的文件系统。
~~~ 有点苗苗了哈,总结一下 ~~~~~
磁盘和分区是物理层面的,用于更好地管理存储空间,不同的分区可以拥有不同的文件系统。
而卷组和逻辑卷是逻辑层面的,用于提供更灵活和可扩展的存储管理方式。
卷组是一组物理卷的集合,逻辑上是一个整体。它们可以被用来创建逻辑卷,多逻辑卷进行逻辑管理。
物理卷就可以理解为多少个接入点,顺着接入点就一定能找到一个存放数据的磁盘。卷组可以动态地增加、删除、合并和移动物理卷,从而方便地进行存储容量的管理。
逻辑卷是由卷组中的物理卷动态分配而来,可以被格式化为文件系统并像普通的物理硬盘分区一样使用。但主要还是管理存储空间,不管理文件,要跟文件系统要区分。(卷组->物理卷->逻辑卷->文件系统)
文件系统主要用于存储和访问文件,管理着计算机的存储设备(如硬盘、分区、文件等)和文件。Linux支持多种文件系统,如Ext4、XFS、Btrfs等。逻辑卷可以用来作为文件系统的基础,从而提供更灵活的文件系统构建方式。
~~~ 接地气点 ~~~~~:
平时会有给Linux服务器 挂载,挂盘,加盘,扩容之类的,差不多就是干了这事。
在挂盘操作中,会将某个磁盘增加到卷组,并新增逻辑卷或增加空间到已有逻辑卷中,从而扩展系统的存储容量。这种挂盘操作是动态的,可以方便地增加、删除、合并和移动存储空间,而不需要关心物理硬盘或分区的位置和数量。
~~~常用命令:~~~~~~~ 知道了VG,PV,LV,看一下常用命令: ~~~~~
VG相关命令:卷组(Volume Group,VG)
- vgcreate:创建卷组。
- vgdisplay:显示卷组信息。
- vgrename:重命名卷组。
- vgremove:删除卷组。
- vgextend [选项] VG名称 PV名称1 [PV名称2 ...]: 添加新的物理卷(Physical Volume)。
- vgs:显示系统中的所有卷组信息。
- vgscan:扫描系统以查找卷组。
- vgchange:改变卷组的属性。
- vgsplit:将卷组拆分为两个卷组。
- vgmerge:将两个卷组合并为一个卷组。
- vgreduce:缩减卷组大小
PV相关命令:物理卷(Physical Volume,PV)
- pvcreate:创建物理卷。
- pvdisplay:显示物理卷信息。
- pvremove:从卷组中移除物理卷。- pvmove /dev/sdb1 /dev/sdb将把- /dev/sdb1中的数据移动到- /dev/sdb中,从而缩减- /dev/sdb1的大小。
 
- pvreduce: 缩减磁盘卷的大小
LV相关命令:逻辑卷(Logical Volume,LV)
- lvcreate:创建逻辑卷。
- lvdisplay:显示逻辑卷信息。
- lvrename:重命名逻辑卷。
- lvremove:删除逻辑卷。
- lvreduce: 缩减逻辑卷的大小
- lvextend:扩展逻辑卷的大小
以上命令的使用方法可以在命令行中输入命令后加上 --help 参数查看帮助文档。
三、操作CentOS扩容——卷组扩容
9. vgdisplay查看当前的卷组。VG Name是centos
 
[root@centos1 ~]# vgdisplay--- Volume group ---VG Name               centosSystem ID             Format                lvm2Metadata Areas        1Metadata Sequence No  3VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                2Open LV               2Max PV                0Cur PV                1Act PV                1VG Size               <19.00 GiBPE Size               4.00 MiBTotal PE              4863Alloc PE / Size       4863 / <19.00 GiBFree  PE / Size       0 / 0   VG UUID               aISHGf-rAs9-4VKV-IGMH-1eQk-AscS-a1t6aM[root@centos1 ~]#  vgdisplay输出显示了关于卷组(Volume Group)的信息,卷组的名称为"centos",它由一个物理卷组成,该物理卷的大小为19.00 GiB 
 
输出信息翻译:
- VG Name:卷组的名称。
- Format:卷组的格式,这里是lvm2。
- Metadata Areas:卷组元数据区域的数目。
- Metadata Sequence No:卷组元数据序列号。
- VG Access:卷组的访问方式,这里是read/write,表示可以读取和写入。
- VG Status:卷组的状态,这里是resizable,表示可以调整大小。
- MAX LV:最大逻辑卷数目。
- Cur LV:当前逻辑卷数目。
- Open LV:打开的逻辑卷数目。
- MAX PV:最大物理卷数目。
- Cur PV:当前物理卷数目。
- Act PV:激活的物理卷数目。
- VG Size:卷组的总大小。
- PE Size:物理Extent的大小。
- Total PE:总物理Extent数目。
- Alloc PE / Size:已分配的物理Extent数目及对应的大小。
- Free PE / Size:未分配的物理Extent数目及对应的大小。
- VG UUID:卷组的唯一标识符。
10.pvcreate /dev/sda3创建物理卷。
 
[root@centos1 ~]# pvcreate  /dev/sda3Physical volume "/dev/sda3" successfully created.
[root@centos1 ~]# 11. vgextend centos /dev/sda3将物理卷添加到卷组中
 
[root@centos1 ~]# vgextend centos /dev/sda3Volume group "centos" successfully extended
[root@centos1 ~]# 12.vgdisplay 查看添加结果。
 
注释掉未改变的,先看最重要的Free PE / Size未分配的变成了是80G左右。
[root@centos1 ~]# vgdisplay--- Volume group ---
#  VG Name               centos
#  System ID             
#  Format                lvm2
# 教程说明:卷组元数据区域的数目 1=》2Metadata Areas        2
# 教程说明:卷组元数据序列号 3=》4Metadata Sequence No  4
#  VG Access             read/write
#  VG Status             resizable
#  MAX LV                0
#  Cur LV                2
#  Open LV               2
#  Max PV                0
# 教程说明:当前物理卷数目 1=》2Cur PV                2
# 教程说明:激活的物理卷数目 1=》2Act PV                2
# 教程说明:卷组总大小 '<19.00 GiB' =》'98.99 GiB'VG Size               98.99 GiB
#  PE Size               4.00 MiBTotal PE              25342
#  Alloc PE / Size       4863 / <19.00 GiBFree  PE / Size       20479 / <80.00 GiBVG UUID               aISHGf-rAs9-4VKV-IGMH-1eQk-AscS-a1t6aM[root@centos1 ~]# 13. 分配到逻辑卷之前,先要查看一下逻辑卷名称。
我们想要把扩容的空间添加到根目录/下,就得先找到逻辑卷文件系统。
输入df -h,看到挂载点是根目录/的文件系统是/dev/mapper/centos-root
[root@centos1 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 3.9G     0  3.9G    0% /dev
tmpfs                    3.9G     0  3.9G    0% /dev/shm
tmpfs                    3.9G   12M  3.9G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G   13G  4.8G   72% /
/dev/sda1               1014M  154M  861M   16% /boot
tmpfs                    782M     0  782M    0% /run/user/0
[root@centos1 ~]# 可以看到只有两个文件系统。其他带 tmp的都临时的,可以不用管。
输入lvs /dev/mapper/centos-root看一下根目录对应的文件系统的逻辑卷信息。【!这个是操作完成后写教程后补的,已经扩容了】
[root@centos1 ~]# lvdisplay /dev/mapper/centos-root--- Logical volume ---LV Path                /dev/centos/rootLV Name                rootVG Name                centosLV UUID                lnijLZ-BFbj-d0L8-gpil-s9GN-6Dk8-0LIKIHLV Write Access        read/writeLV Creation host, time localhost.localdomain, 2021-09-29 16:10:31 +0800LV Status              available# open                 1LV Size                <96.00 GiBCurrent LE             24575Segments               2Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           253:0
输入lvs查看所有逻辑卷信息,可以看到上面看到的逻辑卷LV root,属于卷组VG centos。
输入vgs,pvs可以继续看到卷组和对应物理卷的更多信息。
[root@centos1 ~]# lvsLV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot centos -wi-ao---- <96.00g                                                    swap centos -wi-ao----   2.00g                                                    
[root@centos1 ~]# vgsVG     #PV #LV #SN Attr   VSize  VFree   centos   2   2   0 wz--n- 98.99g 1020.00m
[root@centos1 ~]# pvsPV         VG     Fmt  Attr PSize   PFree   /dev/sda2  centos lvm2 a--  <19.00g       0 /dev/sda3  centos lvm2 a--  <80.00g 1020.00m
[root@centos1 ~]# 
14. lvextend -L +79G /dev/mapper/centos-root 分配Free空间到逻辑卷
 
数字大小看上面自己的,12步看到Free PE / Size 20479 / <80.00 GiB,不足80G,所以写个79
[root@centos1 ~]# lvextend -L +79G /dev/mapper/centos-rootSize of logical volume centos/root changed from <17.00 GiB (4351 extents) to <96.00 GiB (24575 extents).Logical volume centos/root successfully resized.
[root@centos1 ~]# 看到详细信息,逻辑卷 centos/root 从 <17.00 GiB (4351 extents) to <96.00 GiB (24575 extents)分配成功 
 
15.pvdisplay查看分配结果
 
[root@centos1 ~]# pvdisplay--- Physical volume ---PV Name               /dev/sda2VG Name               centosPV Size               <19.00 GiB / not usable 3.00 MiBAllocatable           yes (but full)PE Size               4.00 MiBTotal PE              4863Free PE               0Allocated PE          4863PV UUID               Y1Oc21-XEm2-8Oj6-AjfM-ZjV3-SX4l-UFWnjw--- Physical volume ---PV Name               /dev/sda3VG Name               centosPV Size               80.00 GiB / not usable 4.00 MiBAllocatable           yes PE Size               4.00 MiBTotal PE              20479Free PE               255Allocated PE          20224PV UUID               S5deMQ-Ldz9-s3Kp-YldN-fIzG-aFFm-jHdG8b[root@centos1 ~]# 可以看到,一共两个物理卷,都在 centos 卷组下(VG name),然后看到我们最开始的分区/dev/sda3有PV Size 80.00 GiB,已分配块Allocated PE 20224,计算一下20224*4/1024=79G,而未分配块Free PE 255,计算一下255*4 =1024MB
说明都已经从物理卷分配到了逻辑卷
16. 扩容文件系统
此时只是文件系统所在的逻辑卷的存储空间扩大了,但是文件系统管理文件时还是不知晓扩容了,所以需要让它知道一下。
(1) cat /etc/fstab | grep centos-root查看文件系统类型
[root@centos1 ~]# cat /etc/fstab | grep centos-root
/dev/mapper/centos-root /                       xfs     defaults        0 0
[root@centos1 ~]# 可以看到是 xfs ,所以使用 xfs_growfs 命令。
如果是Ext4 文件系统,可以使用resize2fs命令来扩展文件系统。
(2) xfs_growfs /dev/mapper/centos-root扩容文件系统。
[root@centos1 ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=1113856 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4455424, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4455424 to 25164800
[root@centos1 ~]# 可以看到 data 数据块已经扩大
17. df -h查看最终成果
 
[root@centos1 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 3.9G     0  3.9G    0% /dev
tmpfs                    3.9G     0  3.9G    0% /dev/shm
tmpfs                    3.9G   12M  3.9G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   96G   13G   84G   13% /
/dev/sda1               1014M  154M  861M   16% /boot
tmpfs                    782M     0  782M    0% /run/user/0
[root@centos1 ~]#