19、RHEL 8磁盘管理与逻辑卷扩展指南

RHEL 8磁盘管理与逻辑卷扩展指南

1. 文件系统日志与挂载

在每次写入磁盘时,系统会将相关信息记录在磁盘上(日志和记录不需要在同一设备上),这本质上是一种将数据“提交”到文件系统的意图。记录的信息量是可配置的,范围从完全不记录,到记录所谓的“元数据”(如所有权、时间戳信息等),再到记录“元数据”和要写入文件的数据块。日志更新后,系统会将实际数据写入文件系统的相应区域,并在日志中标记数据已提交。

系统崩溃后,使用日志可以非常快速地使文件系统重新上线,将原本可能需要数分钟的 fsck 检查时间缩短至数秒,并且大大降低了数据丢失或损坏的可能性。

1.1 挂载文件系统

在新磁盘驱动器的Linux分区上创建新文件系统后,需要挂载它才能访问和使用。为此,需要创建一个挂载点,即文件系统将被挂载到的目录或文件夹。以下是具体步骤:
1. 创建挂载点目录:

# mkdir /backup
  1. 使用 mount 命令手动挂载文件系统:
# mount /dev/sdb1 /backup
  1. 运行不带参数的 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按钮提交更改];
  1. 登录Cockpit控制台,选择 Storage 选项。
  2. 滚动到 Storage 页面底部,直到 Drives 部分可见,选择新驱动器以显示 Drive 屏幕。
  3. 点击 Create Partition 按钮,在对话框中指定要分配给此分区的空间、文件系统类型(建议使用XFS)以及可选的标签、文件系统挂载点和挂载选项。
  4. 如果新分区未使用所有可用空间,后续可以在驱动器上添加其他分区。要更改文件系统是否只读或在启动时挂载等设置,将 Mounting 菜单选项更改为 Custom 并调整切换按钮设置。
  5. 选择设置后,点击 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)
  1. 使用 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 卷组中任何逻辑卷的空间,需要添加一个或多个物理卷。

  1. 使用 vgs 工具快速查看系统中卷组的可用空间:
# vgs
  VG #PV #LV #SN Attr VSize VFree
  rhel 2 3 0 wz--n- 197.66g 96.00m
  1. 使用 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 (用于交换空间)。

  1. 使用 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[滚动到要扩展的逻辑卷并点击展开信息];
  1. 如果 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 文件 配置时自动更新
【事件触发一致性】研究多智能体网络如何通过分布式事件驱动控制实现有限时间内的共识(Matlab代码实现)内容概要:本文围绕多智能体网络中的事件触发一致性问题,研究如何通过分布式事件驱动控制实现有限时间内的共识,并提供了相应的Matlab代码实现方案。文中探讨了事件触发机制在降低通信负担、提升系统效率方面的优势,重点分析了多智能体系统在有限时间收敛的一致性控制策略,涉及系统模型构建、触发条件设计、稳定性收敛性分析等核心技术环节。此外,文档还展示了该技术在航空航天、电力系统、机器人协同、无人机编队等多个前沿领域的潜在应用,体现了其跨学科的研究价值和工程实用性。; 适合人群:具备一定控制理论基础和Matlab编程能力的研究生、科研人员及从事自动化、智能系统、多智能体协同控制等相关领域的工程技术人员。; 使用场景及目标:①用于理解和实现多智能体系统在有限时间内达成一致的分布式控制方法;②为事件触发控制、分布式优化、协同控制等课题提供算法设计仿真验证的技术参考;③支撑科研项目开发、学术论文复现及工程原型系统搭建; 阅读建议:建议结合文中提供的Matlab代码进行实践操作,重点关注事件触发条件的设计逻辑系统收敛性证明之间的关系,同时可延伸至其他应用场景进行二次开发性能优化。
【四旋翼无人机】具备螺旋桨倾斜机构的全驱动四旋翼无人机:建模控制研究(Matlab代码、Simulink仿真实现)内容概要:本文围绕具备螺旋桨倾斜机构的全驱动四旋翼无人机展开,重点研究其动力学建模控制系统设计。通过Matlab代码Simulink仿真实现,详细阐述了该类无人机的运动学动力学模型构建过程,分析了螺旋桨倾斜机构如何提升无人机的全向机动能力姿态控制性能,并设计相应的控制策略以实现稳定飞行精确轨迹跟踪。文中涵盖了从系统建模、控制器设计到仿真验证的完整流程,突出了全驱动结构相较于传统四旋翼在欠驱动问题上的优势。; 适合人群:具备一定控制理论基础和Matlab/Simulink使用经验的自动化、航空航天及相关专业的研究生、科研人员或无人机开发工程师。; 使用场景及目标:①学习全驱动四旋翼无人机的动力学建模方法;②掌握基于Matlab/Simulink的无人机控制系统设计仿真技术;③深入理解螺旋桨倾斜机构对飞行性能的影响及其控制实现;④为相关课题研究或工程开发提供可复现的技术参考代码支持。; 阅读建议:建议读者结合提供的Matlab代码Simulink模型,逐步跟进文档中的建模控制设计步骤,动手实践仿真过程,以加深对全驱动无人机控制原理的理解,并可根据实际需求对模型控制器进行修改优化。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值