RHEL 8磁盘管理与逻辑卷扩展指南
1. 文件系统日志与挂载
在每次写入磁盘时,系统会将相关信息记录在磁盘上(日志和记录不需要在同一设备上),这本质上是一种将数据“提交”到文件系统的意图。记录的信息量是可配置的,范围从完全不记录,到记录所谓的“元数据”(如所有权、时间戳信息等),再到记录“元数据”和要写入文件的数据块。日志更新后,系统会将实际数据写入文件系统的相应区域,并在日志中标记数据已提交。
系统崩溃后,使用日志可以非常快速地使文件系统重新上线,将原本可能需要数分钟的
fsck
检查时间缩短至数秒,并且大大降低了数据丢失或损坏的可能性。
1.1 挂载文件系统
在新磁盘驱动器的Linux分区上创建新文件系统后,需要挂载它才能访问和使用。为此,需要创建一个挂载点,即文件系统将被挂载到的目录或文件夹。以下是具体步骤:
1. 创建挂载点目录:
# mkdir /backup
-
使用
mount命令手动挂载文件系统:
# mount /dev/sdb1 /backup
-
运行不带参数的
mount命令查看当前所有挂载的文件系统:
# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
.
.
/dev/sdb1 on /backup type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
1.2 配置RHEL 8自动挂载文件系统
为了使新文件系统在系统启动时自动挂载,需要在
/etc/fstab
文件中添加一个条目。
fstab
条目的格式如下:
<device> <dir> <type> <options> <dump> <fsck>
各字段含义如下:
| 字段 | 描述 |
| ---- | ---- |
|
<device>
| 要挂载文件系统的设备 |
|
<dir>
| 作为文件系统挂载点的目录 |
|
<type>
| 文件系统类型(如xfs、ext4等) |
|
<options>
| 额外的文件系统挂载选项,例如将文件系统设为只读或控制是否允许任何用户挂载文件系统。运行
man mount
查看完整选项列表。设置为
defaults
将使用文件系统的默认设置(rw, suid, dev, exec, auto, nouser, async) |
|
<dump>
| 决定是否将文件系统的内容包含在
dump
实用程序执行的任何备份中。此设置很少使用,可将其值设为0禁用 |
|
<fsck>
| 系统崩溃后是否由
fsck
检查文件系统以及检查文件系统的顺序。对于如XFS这样的日志文件系统,应将其设为0表示不需要检查 |
以下是一个配置为自动挂载
/backup
分区的
fstab
文件示例:
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=b4fc85a1-0b25-4d64-8100-d50ea23340f7 /boot xfs defaults 0 0
/dev/mapper/rhel-home /home xfs defaults 0 0
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/sdb1 /backup xfs defaults 0 0
这样,每次系统重启时,
/backup
文件系统都会自动挂载。
1.3 使用Cockpit添加磁盘
除了使用命令行工具管理存储外,还可以使用Cockpit Web控制台配置新的存储设备。具体操作流程如下:
graph TD;
A[登录Cockpit控制台] --> B[选择Storage选项];
B --> C[滚动到Drives部分找到新添加的存储];
C --> D[选择新驱动器显示Drive屏幕];
D --> E[点击Create Partition按钮];
E --> F[指定分区空间、文件系统类型等设置];
F --> G[点击Create partition按钮提交更改];
-
登录Cockpit控制台,选择
Storage选项。 -
滚动到
Storage页面底部,直到Drives部分可见,选择新驱动器以显示Drive屏幕。 -
点击
Create Partition按钮,在对话框中指定要分配给此分区的空间、文件系统类型(建议使用XFS)以及可选的标签、文件系统挂载点和挂载选项。 -
如果新分区未使用所有可用空间,后续可以在驱动器上添加其他分区。要更改文件系统是否只读或在启动时挂载等设置,将
Mounting菜单选项更改为Custom并调整切换按钮设置。 -
选择设置后,点击
Create partition按钮提交更改。创建过程完成后,新分区将添加到磁盘,相应的文件系统将被创建并挂载到指定的挂载点,同时/etc/fstab文件将进行相应更改。
2. 逻辑卷管理(LVM)概述
创建固定分区和文件系统的一种替代方法是使用逻辑卷管理(LVM)来创建由一个或多个物理或虚拟磁盘或分区的空间组成的逻辑磁盘。使用LVM的优点是可以根据需要向逻辑卷添加或删除空间,而无需将数据分散到多个文件系统中。
2.1 LVM组件
LVM由以下组件组成:
-
卷组(VG)
:高级容器,包含一个或多个逻辑卷和物理卷。
-
物理卷(PV)
:表示存储设备,如磁盘驱动器或其他存储介质。
-
逻辑卷(LV)
:相当于磁盘分区,可以包含文件系统。
-
物理扩展(PE)
:每个物理卷(PV)被划分为大小相等的块,称为物理扩展。
-
逻辑扩展(LE)
:每个逻辑卷(LV)被划分为大小相等的块,称为逻辑扩展。
例如,创建一个名为
VolGroup001
的新卷组,需要分配物理磁盘空间,如
/dev/sda1
、
/dev/sdb1
和
/dev/sdb2
这三个磁盘分区,它们成为
VolGroup001
中的物理卷。然后可以在卷组内创建一个名为
LogVol001
的逻辑卷,由这三个物理卷组成。如果
LogVol001
空间不足,可以添加更多磁盘分区作为物理卷,并将它们分配给卷组和逻辑卷。
2.2 获取逻辑卷信息
以在标准RHEL 8安装中为
/
文件系统添加空间为例,在对LVM设置进行任何更改之前,需要先收集信息。
1. 运行
mount
命令输出有关挂载点的信息,例如根文件系统的条目:
/dev/mapper/rhel-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
-
使用
vgdisplay命令获取卷组信息:
# vgdisplay
--- Volume group ---
VG Name rhel
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size <189.67 GiB
PE Size 4.00 MiB
Total PE 48555
Alloc PE / Size 48555 / <189.67 GiB
Free PE / Size 0 / 0
VG UUID RasoLO-Ibja-WBYz-tZLW-zAgO-9uCw-QQRHaE
从上述输出可以看出,
rhel
卷组的物理扩展大小为4.00MB,总共有189.67GB可分配给逻辑卷。目前已分配了48555个物理扩展,等于总容量189.67GB。如果要增加
rhel
卷组中任何逻辑卷的空间,需要添加一个或多个物理卷。
-
使用
vgs工具快速查看系统中卷组的可用空间:
# vgs
VG #PV #LV #SN Attr VSize VFree
rhel 2 3 0 wz--n- 197.66g 96.00m
-
使用
lvdisplay命令获取卷组中逻辑卷的信息:
# lvdisplay
--- Logical volume ---
LV Path /dev/rhel/swap
LV Name swap
VG Name rhel
LV UUID fwOZsF-ROwu-6eLe-2KDR-JZ0d-Pn4o-K5B0Vb
LV Write Access read/write
LV Creation host, time rhel80desktop, 2019-02-14 11:12:07 -0500
LV Status available
# open 2
LV Size <3.98 GiB
Current LE 1018
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
--- Logical volume ---
LV Path /dev/rhel/home
LV Name home
VG Name rhel
LV UUID PxuxY5-Zups-dUrD-g74j-3wjF-2e12-hO6YsZ
LV Write Access read/write
LV Creation host, time rhel80desktop, 2019-02-14 11:12:07 -0500
LV Status available
# open 1
LV Size 135.69 GiB
Current LE 34737
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
--- Logical volume ---
LV Path /dev/rhel/root
LV Name root
VG Name rhel
LV UUID Ee19Br-aCkG-u5gy-HlMY-PBtB-PMFf-kY302H
LV Write Access read/write
LV Creation host, time rhel80desktop, 2019-02-14 11:12:07 -0500
LV Status available
# open 1
LV Size 50.00 GiB
Current LE 12800
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
从上述输出可知,
rhel
卷组中50GB的空间分配给了逻辑卷
root
(用于
/
文件系统),135.69GB分配给了
home
卷组(用于
/home
),3.98GB分配给了
swap
(用于交换空间)。
-
使用
pvdisplay命令获取提供空间的设备信息(即哪些设备用作物理卷):
# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name rhel
PV Size 189.67 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 48555
Free PE 0
Allocated PE 48555
PV UUID ANrf7v-lSzK-peFM-0mq0-6lOh-JhYx-3Z5dlO
显然,逻辑卷
rhel
控制的空间是通过位于
/dev/sda2
的物理卷提供的。
2.3 从命令行向卷组添加额外空间
假设已向系统添加了一个新磁盘,操作系统将其识别为
/dev/sdb
,并且该磁盘是一个不包含任何现有分区的新磁盘。如果存在现有分区,应先备份这些分区,然后使用
fdisk
实用程序从磁盘中删除分区。
2.3.1 删除现有分区
以下是删除
/dev/sdb
上现有分区的示例:
# fdisk -l /dev/sdb
Disk /dev/sdb: 8 GiB, 8589934592 bytes, 16777216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xbd09c991
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 5678545 5676498 2.7G 83 Linux
/dev/sdb2 5679104 16777215 11098112 5.3G 83 Linux
# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): d
Partition number (1,2, default 2): 1
Partition 1 has been deleted.
Command (m for help): d
Selected partition 2
Partition 2 has been deleted.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
删除分区后,务必从
/etc/fstab
文件中删除这些文件系统的条目,以免系统在下次重启时尝试挂载它们。
2.3.2 创建物理卷
磁盘准备好后,使用
pvcreate
命令将其转换为物理卷(如果存在dos签名,也会将其擦除):
# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
如果创建失败并显示 “Device /dev/
excluded by a filter” 消息,可能需要在创建物理卷之前使用
wipefs
命令擦除磁盘:
# wipefs -a /dev/sdb
/dev/sdb: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20
50 41 52 54
/dev/sdb: 8 bytes were erased at offset 0x1fffffe00 (gpt): 45 46 49
20 50 41 52 54
/dev/sdb: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdb: calling ioctl to re-read partition table: Success
2.3.3 扩展卷组
创建物理卷后,使用
vgextend
命令将其添加到卷组(这里是
rhel
):
# vgextend rhel /dev/sdb
Volume group "rhel" successfully extended
2.3.4 扩展逻辑卷
新的物理卷已添加到卷组,准备分配给逻辑卷。例如,要将逻辑卷
home
的大小扩展7GB,需要提供逻辑卷的路径(可从
lvdisplay
命令获取,这里是
/dev/rhel/home
):
# lvextend -L+7G /dev/rhel/home
Size of logical volume rhel/home changed from 135.69 GiB (34737
extents) to 142.69 GiB (36529 extents).
Logical volume rhel/home successfully resized.
2.3.5 调整文件系统大小
最后一步是调整逻辑卷上的文件系统大小,以使用额外的空间。假设默认的RHEL 8安装使用XFS文件系统,可以使用
xfs_growfs
实用程序:
# xfs_growfs /home
meta-data=/dev/mapper/rhel-home isize=512 agcount=4, agsize=8892672
blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=35570688, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=17368, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 35570688 to 37405696
如果文件系统类型是
ext2
、
ext3
或
ext4
,则应使用
resize2fs
实用程序进行文件系统调整:
# resize2fs /dev/rhel/home
2.4 使用Cockpit向卷组添加额外空间
除了命令行工具,还可以使用Cockpit Web界面中的
Storage
页面访问逻辑卷信息并进行卷组和逻辑卷的更改。具体操作流程如下:
graph TD;
A[检查Cockpit服务] --> B{Storage选项是否列出};
B -- 否 --> C[安装cockpit - storaged包并重启Cockpit服务];
C --> D[重新登录Cockpit界面];
B -- 是 --> D;
D --> E[点击要扩展的卷组关联的文件系统];
E --> F[点击 + 按钮添加物理卷];
F --> G[选择要添加的新驱动器并点击Add按钮];
G --> H[滚动到要扩展的逻辑卷并点击展开信息];
-
如果
Storage选项未列出,需要安装cockpit-storaged包并重启Cockpit服务:
# dnf install cockpit-storaged
# systemctl restart cockpit.socket
重启Cockpit服务后,重新登录Cockpit界面,此时
Storage
选项应该可见。
2. 在
Storage
页面,点击与要扩展的卷组关联的文件系统。
3. 在结果屏幕上,点击
+
按钮添加物理卷,选择要添加到卷组的新驱动器,然后点击
Add
按钮。
4. 返回卷组屏幕,滚动到要扩展的逻辑卷并点击它以展开更多信息。
3. 总结
本文介绍了RHEL 8系统中文件系统的日志记录、挂载,以及逻辑卷管理(LVM)的相关知识和操作。通过文件系统日志,系统在崩溃后能快速恢复,减少数据丢失风险。挂载文件系统可手动操作,也可配置自动挂载。使用LVM可以灵活管理磁盘空间,根据需要扩展逻辑卷。添加磁盘和扩展卷组既可以通过命令行工具完成,也可以借助Cockpit Web控制台实现。掌握这些知识和操作,能够更高效地管理RHEL 8系统的磁盘存储。
| 操作类型 | 命令行工具 | Cockpit Web控制台 |
|---|---|---|
| 添加磁盘并分区 |
fdisk
、
pvcreate
、
vgextend
、
lvextend
、
xfs_growfs
或
resize2fs
|
登录Cockpit,选择
Storage
,按流程操作
|
| 挂载文件系统 |
mount
| 配置挂载点和选项 |
| 自动挂载配置 |
修改
/etc/fstab
文件
| 配置时自动更新 |
超级会员免费看
34

被折叠的 条评论
为什么被折叠?



