一、VM中进行扩容设置
必须要关闭当前CentOS,不然扩展按钮是灰色的。
输入值必须大于当前磁盘容量。然后点击扩展,等待扩展完成会提示一个弹框,点击确定,继续确定。
二、操作CentOS扩容------磁盘分区
第一步设置完成。那就启动 CentOS,进入开始操作:
1.df -h
查看磁盘。发现啥都没变/dev/mapper/centos-root
容量17G,哈哈。
[root@centos1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
https://www.zhihu.com/search?q=devtmpfs&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A3141338916%7D 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/https://www.zhihu.com/search?q=centos-swap&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A3141338916%7D: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 (https://www.zhihu.com/search?q=util-linux&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A3141338916%7D 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 https://www.zhihu.com/search?q=response%20p&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A3141338916%7D
# 教程说明:直接回车
分区号 (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 https://www.zhihu.com/search?q=partition%20table&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A3141338916%7D 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 https://www.zhihu.com/search?q=remote&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A3141338916%7D host(192.点赞.收藏.+关注) at 23:26:05.
Type `help' to learn how to use Xshell https://www.zhihu.com/search?q=prompt&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A3141338916%7D.
很快就重启成功了,我们继续搞起。。。
画个重点:了解一下磁盘和卷组。
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 centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <19.00 GiB
PE Size 4.00 MiB
Total PE 4863
Alloc PE / Size 4863 / <19.00 GiB
Free 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/sda3
Physical volume "/dev/sda3" successfully created.
[root@centos1 ~]#
11. vgextend centos /dev/sda3
将物理卷添加到卷组中
[root@centos1 ~]# vgextend centos /dev/sda3
Volume 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=》2
Metadata Areas 2
# 教程说明:卷组元数据序列号 3=》4
Metadata Sequence No 4
# VG Access read/write
# VG Status resizable
# MAX LV 0
# Cur LV 2
# Open LV 2
# Max PV 0
# 教程说明:当前物理卷数目 1=》2
Cur PV 2
# 教程说明:激活的物理卷数目 1=》2
Act PV 2
# 教程说明:卷组总大小 '<19.00 GiB' =》'98.99 GiB'
VG Size 98.99 GiB
# PE Size 4.00 MiB
Total PE 25342
# Alloc PE / Size 4863 / <19.00 GiB
Free PE / Size 20479 / <80.00 GiB
VG 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/root
LV Name root
VG Name centos
LV UUID lnijLZ-BFbj-d0L8-gpil-s9GN-6Dk8-0LIKIH
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2021-09-29 16:10:31 +0800
LV Status available
# open 1
LV Size <96.00 GiB
Current LE 24575
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
输入lvs查看所有逻辑卷信息,可以看到上面看到的逻辑卷LV root,属于卷组VG centos。
输入vgs
,pvs
可以继续看到卷组和对应物理卷的更多信息。
[root@centos1 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <96.00g
swap centos -wi-ao---- 2.00g
[root@centos1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz--n- 98.99g 1020.00m
[root@centos1 ~]# pvs
PV 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-root
Size 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/sda2
VG Name centos
PV Size <19.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 4863
Free PE 0
Allocated PE 4863
PV UUID Y1Oc21-XEm2-8Oj6-AjfM-ZjV3-SX4l-UFWnjw
--- Physical volume ---
PV Name /dev/sda3
VG Name centos
PV Size 80.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 20479
Free PE 255
Allocated PE 20224
PV 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 ~]#