要理解物理卷(PV)与卷组(VG),我们首先需要明白为什么 Linux 要使用 LVM(逻辑卷管理),而不是直接使用传统的硬盘分区。 在传统方式下,如果你把一块硬盘划分为一个分区(比如 /dev/sdb1,大小 10G),这个分区的边界就死死固定在这一块物理硬盘上了。如果以后磁盘满了,想要扩容非常麻烦。 LVM 的核心思想是:“屏蔽物理硬盘的界限,把多块硬盘(或分区)打散,揉成一个巨大的虚拟存储池。” 在这个过程中,PV 和 VG 就是搭建这个“存储池”的关键两步:
- 什么是物理卷(PV - Physical Volume)?
- 比喻:把买来的“砖头”贴上标签,表示它已经被清理干净,随时可以用来盖房子了。
- 解释:真正的物理硬盘(如 /dev/sdb)或者硬盘分区(如 /dev/sdb1),在 Linux 底层只是原始的存储介质。只有通过 pvcreate 命令将它们初始化之后,系统才会给它们划分为一个个微小的存储单元(称为 PE,Physical Extent,默认 4MB),让它们变成 LVM 能够识别和管理的“标准化构件”。这个被初始化的分区或硬盘,就叫做物理卷(PV)。
- 什么是卷组(VG - Volume Group)?
- 比喻:把所有的“砖头”堆在一起,砌成一个巨大的“蓄水池”或“大资源池”。
- 解释:卷组(VG)是将一个或多个物理卷(PV)组合在一起形成的“虚拟大硬盘”。
- 比如你在任务中,把 3 个 10G 的 PV(/dev/sdb1、/dev/sdc1、/dev/sdd1)加入到了名为 vg_store 的卷组中。
- 此时,vg_store 这个卷组就变成了一个拥有 30G 总容量的超级大资源池。在这个池子里,系统不再关心数据具体是在第一块硬盘还是第三块硬盘上,只看总剩余空间。
整体层次与流程一览
LVM 的工作逻辑是自下而上构建的,一共分为四层:
【4. 挂载目录】 /data (用户真正存取文件的地方)
▲
【3. 逻辑卷 (LV)】 lv_data (从资源池切出的 25G 虚拟分区)
▲
【2. 卷组 (VG)】 vg_store (30G 的总“资源池”/大水池)
/ |
【1. 物理卷 (PV)】 sdb1 sdc1 sdd1 (3个 10G 的“标准化构件”) | | | 【0. 物理磁盘】 /dev/sdb /dev/sdc /dev/sdd (真正的物理硬件)
总结
- 创建 PV(物理卷):告诉系统:“这几块磁盘/分区我要用来做 LVM 了,请把它们格式化并标记为可管理的物理卷。”
- 创建 VG(卷组):把这几个 PV 聚合在一起,打包成一个统一调配的容量大池子(在你的题目里叫 vg_store),方便下一步从这个池子里自由划出指定大小(如 25G)的逻辑卷(LV)使用。
这个任务的核心是 LVM(逻辑卷管理) 的完整配置流程。简单来说,它的逻辑是将多块物理硬盘的分区组合成一个大的“存储池”(卷组),然后再从这个池子里划出指定大小的逻辑卷来使用。以下是任务拆解与全流程分步详解:
– 1. 前置准备:添加虚拟硬盘在虚拟机软件(如 VMware)中给 VM-LinuxA 添加 3 块 20G 的 SCSI 虚拟硬盓,开机后系统通常识别为 /dev/sdb、/dev/sdc、/dev/sdd。
– 2. 磁盘分区与类型修改题目要求对 3 块硬盘分别划分 10G 物理分区,并将类型改为 LVM (8e)。使用 fdisk 对三块盘分别操作(以 /dev/sdb 为例):fdisk /dev/sdb进入交互界面后依次输入: * n(新建分区) * p(主分区) * 1(分区号选择 1) * 按 Enter(起始扇区默认) * +10G(指定分区大小为 10G) * t(修改分区类型) * 8e(HEX 代码 8e 代表 Linux LVM) * w(保存并退出)> 注意:对 /dev/sdc 和 /dev/sdd 重复上述交互过程,最终将得到三个分区:/dev/sdb1、/dev/sdc1、/dev/sdd1(每个 10G,类型 8e)。>
– 3. 创建物理卷(PV)与卷组(VG)三个 10G 分区相加共有 30G 空间,完全满足创建 25G 逻辑卷的要求。 * 初始化物理卷(PV):
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1
- 创建卷组(VG)vg_store: vgcreate vg_store /dev/sdb1 /dev/sdc1 /dev/sdd1
- 可以使用 vgs 或 vgdisplay vg_store 检查卷组大小(约 30G)。
– 4. 创建逻辑卷(LV)与格式化 * 从 vg_store 中创建容量为 25G 的逻辑卷 lv_data:
lvcreate -L 25G -n lv_data vg_store - 格式化为 XFS 文件系统: *
mkfs.xfs /dev/vg_store/lv_data5.
- 挂载与永久挂载配置 * 创建挂载点并手动挂载: mkdir -p /datamount /dev/vg_store/lv_data /data
- 配置 /etc/fstab 实现开机自动挂载: 使用 vim /etc/fstab 编辑文件,在最末尾手动追加以下这一行内容:* /dev/mapper/vg_store-lv_data /data xfs defaults 0 0
- 验证挂载配置: umount /datamount -adf -h /data 如果 mount -a 无任何报错且 df -h 能查看到 /data 容量为 25G,说明配置正确无误。
说明:
在 Linux(特别是 RHEL / CentOS / Rocky / AlmaLinux 等)系统中,
firewalld启动后,默认使用的 Zone(区域)通常是public。在默认的
public区域配置中,系统预设允许了两个服务通过防火墙:
ssh(用于远程管理)dhcpv6-client(用于自动获取 IPv6 地址的客户端服务)你可以通过运行
firewall-cmd --zone=public --list-services查看,默认输出通常就是:dhcpv6-client ssh。在这个背景下,要满足题目中 “仅开放 http 与 ssh” 的严格要求,原因如下:
1. 满足“仅开放(Only Allow)”的严格安全与考试标准
题目要求“仅开放 http 与 ssh”(Only HTTP and SSH)。
- 如果你只执行了
firewall-cmd --add-service=http和放行ssh,此时防火墙开放的服务实际上是:**ssh、http以及dhcpv6-client**。- 这就不符合“仅开放”的要求了。在网络系统管理竞赛(或企业高安全基线要求)中,自动化评分脚本或审核人员会检查当前开放的服务列表。如果列表中存在
dhcpv6-client,该项测试就会被扣分。2. 最小权限原则(Principle of Least Privilege)与安全加固
- 减少攻击面:如果服务器不需要通过 DHCPv6 自动获取 IPv6 地址(比如使用了静态 IP 或者根本没启用 IPv6),保留
dhcpv6-client入站/出站放行规则属于不必要的端口暴露(DHCPv6 使用 UDP 546/547 端口)。- 移除不需要的默认服务是 Linux 系统安全加固(System Hardening)的标准规范。
补充:完整的配置命令参考
为了彻底满足“仅开放 http 和 ssh”的要求,完整的规范操作命令如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16# 1. 启动并开机自启防火墙 systemctl start firewalld systemctl enable firewalld # 2. 移除默认存在的 dhcpv6-client firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client # 3. 添加题目要求的 http 服务(ssh 默认已存在,若没有则需添加) firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=ssh # 4. 重新加载防火墙配置使其生效 firewall-cmd --reload # 5. 验证当前开放的服务(输出应严格只有:http ssh) firewall-cmd --zone=public --list-services
| |
