一、VM中进行扩容设置
必须要关闭当前CentOS,不然扩展按钮是灰色的。
输入值必须大于当前磁盘容量。然后点击扩展,等待扩展完成会提示一个弹框,点击确定,继续确定。
第一步设置完成。那就启动 CentOS,进入开始操作:
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 ~]#
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 ~]#
fdisk /dev/sda
,对新加的磁盘进行分区操作(选择新增的磁盘)。 后面的参数就上面查询到的盘,当前因为是扩容就这一个。- [root@centos1 ~]# fdisk /dev/sda
- 欢迎使用 fdisk (util-linux 2.23.2)。
-
- 更改将停留在内存中,直到您决定将更改写入磁盘。
- 使用写入命令前请三思。
-
-
- 命令(输入 m 获取帮助):
如果是多个盘需要注意区分,比如下面就是我后面又研究不 扩容盘,添加盘的情况。命令大致等同,最后不要合并上去就行
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 额外功能(仅限专家使用)
输入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个可用空间,没有扩展分区。
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 获取帮助):
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
。简单说重启就好了。
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(Logical Volume Manager)卷组是Linux系统中的一种逻辑存储管理机制。它可以将多个物理硬盘或分区抽象成一个逻辑卷,从而方便地进行存储管理。LVM卷组允许动态地增加、删除和合并物理卷,以及动态地调整逻辑卷的大小,而不需要关心物理硬盘或分区的位置和数量。
LVM的基本组成部分包括:
LVM的主要优点是提供了更灵活的存储管理方式,可以动态地增加、删除、合并和移动存储空间,而不需要关心物理硬盘或分区的位置和数量。此外,LVM还支持快照、镜像和迁移等高级存储功能,能够满足不同应用场景的需求。
~~~~~~~~~~ 看的一脸懵 ~~~~~
磁盘(Disk)是计算机的一种存储设备,它通常由一个或多个 platters(盘片)组成,可以存储数据和信息。磁盘可以分区(Partition),将一个磁盘分成多个部分,每个部分都可以有不同的文件系统,以便更好地管理和使用存储空间。
联系:卷组和磁盘都与存储有关,磁盘是物理上的,卷组是逻辑上的。卷组是由多个物理卷组成的逻辑存储设备,而磁盘是一种物理存储设备,可以分区并被卷组使用。在LVM中,卷组的物理卷可以来自磁盘的一个分区或整个磁盘,而卷组可以由多个物理卷组成。
区别:卷组是LVM中的逻辑存储设备,它由一个或多个物理卷组成,可以被看作是一个逻辑上的硬盘,主要用于存储和管理数据。磁盘是计算机的一种存储设备,它可以被分区,每个分区可以拥有不同的文件系统。
磁盘和分区是物理层面的,用于更好地管理存储空间,不同的分区可以拥有不同的文件系统。
而卷组和逻辑卷是逻辑层面的,用于提供更灵活和可扩展的存储管理方式。
卷组是一组物理卷的集合,逻辑上是一个整体。它们可以被用来创建逻辑卷,多逻辑卷进行逻辑管理。
物理卷就可以理解为多少个接入点,顺着接入点就一定能找到一个存放数据的磁盘。卷组可以动态地增加、删除、合并和移动物理卷,从而方便地进行存储容量的管理。
逻辑卷是由卷组中的物理卷动态分配而来,可以被格式化为文件系统并像普通的物理硬盘分区一样使用。但主要还是管理存储空间,不管理文件,要跟文件系统要区分。(卷组->物理卷->逻辑卷->文件系统)
文件系统主要用于存储和访问文件,管理着计算机的存储设备(如硬盘、分区、文件等)和文件。Linux支持多种文件系统,如Ext4、XFS、Btrfs等。逻辑卷可以用来作为文件系统的基础,从而提供更灵活的文件系统构建方式。
平时会有给Linux服务器 挂载,挂盘,加盘,扩容之类的,差不多就是干了这事。
在挂盘操作中,会将某个磁盘增加到卷组,并新增逻辑卷或增加空间到已有逻辑卷中,从而扩展系统的存储容量。这种挂盘操作是动态的,可以方便地增加、删除、合并和移动存储空间,而不需要关心物理硬盘或分区的位置和数量。
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
参数查看帮助文档。
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
输出信息翻译:
pvcreate /dev/sda3
创建物理卷。- [root@centos1 ~]# pvcreate /dev/sda3
- Physical volume "/dev/sda3" successfully created.
- [root@centos1 ~]#
vgextend centos /dev/sda3
将物理卷添加到卷组中- [root@centos1 ~]# vgextend centos /dev/sda3
- Volume group "centos" successfully extended
- [root@centos1 ~]#
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 ~]#
我们想要把扩容的空间添加到根目录/
下,就得先找到逻辑卷文件系统。
输入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 ~]#
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)
分配成功
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
说明都已经从物理卷分配到了逻辑卷
此时只是文件系统所在的逻辑卷的存储空间扩大了,但是文件系统管理文件时还是不知晓扩容了,所以需要让它知道一下。
(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 数据块已经扩大
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 ~]#