一、LVM逻辑卷

LVM 是 Logical Volume Manager(逻辑卷管理)的简写,它是 Linux 环境下对磁盘分区进行管理的⼀种机制; 安装 Linux 操作系统时遇到的⼀个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空 间; 普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小; 随着 Linux 的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小,即动态调整磁盘容量,从而提高磁盘管理的灵活性。

1、运行原理

2、LVM相关概念

2.1、PV(Physical Volume):物理卷

处于 LVM 最底层,可以是物理硬盘或者分区,整个硬盘,或使用fdisk 等⼯具建⽴的普通分区,包许多默认 4MB 大小的 PE(Physical Extent,基本单元)。

2.2、PE(Physical Extend):物理区域

PV 中可以用于分配的最小存储单元,可以在创建 PV 的时候制定(默认为 4MB),如 1M, 2M, 4M, 8M, 32M, 64M… 组成同⼀VG 中所有 PV 的 PE大小应该相同。

2.3、VG(Volume Group):卷组

建立在 PV 之上,可以含有一个到多个 PV,一个或多个物理卷组合而成的整体。

2.4、LV(Logical Volume):逻辑卷

建立在 VG 之上,相当于原来分区的概念,不过大小可以动态改变。从卷组中分割出的一块空间,用于建立文件 系统。

3、管理命令

4、构建LVM逻辑卷

创建分区:fdisk /dev/sdb

创建物理卷:pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3

创建卷组:vgcreate testvg /dev/sdb1 /dev/sdb2 /dev/sdb3

创建逻辑卷:lvcreate -n testlv testvg -L 2G mkdir

格式化:mkfs.xfs /dev/mapper/testvg-testlv 

挂载:mkdir /testlv

           mount /dev/mapper/testvg-testlv /testlv/

查看:df -Th

5、扩容LVM逻辑卷

1、基于XFS文件系统的lv扩容

①lvextend /dev/testvg/testlv  -L +2G

②xfs_growfs /dev/testvg/testlv

③df -Th  查看

2、基于EXT文件系统的lv扩容

①lvextend /dev/testvg2/testlv2 -L +2G

②e2fsck -f /dev/testvg2/testlv2

③umount /testlv2

④e2fsck -f /dev/testvg2/testlv2 

⑤res

⑥resize2fs /dev/testvg2/testlv2 

⑦mount /dev/testvg2/testlv2 /testlv2/

⑧df -Th

6、VG扩容

①划分分区:fdisk /dev/sdc

扩容:vgextend [卷组名] /dev/sdc1

查询:vgdisplay

7、删除lv、vg、pv

按创建顺序倒删。

二、磁盘配额

1、概述

针对用户和组,用于配置用户和组在该磁盘的使用容量限制。

配额类型:

  • usrquota:支持对用户的磁盘配额

  • grpquota:支持对组的磁盘配额

限制类型:

  • 软限制:指定一个软性的配额数据值,用户超过这个数据时,系统给出警告信息,可以打破数据值。容量大小;inode节点(文件数量)

  • 硬限制:指定一个硬性的配额值,禁止用户超过这个限制。容量大小;inode节点(文件数量) 

2、配置命令

2.1、quota命令

查看磁盘配额:quota -v -u [用户]

2.2、xfs_quota命令

查看磁盘配额:xfs_quota -x -c 'report -bi' /testlv

2.3、xfs配额

①挂载并启用配额:mount -o usrquota,grpquota /挂载磁盘 /挂载点

②永久挂载参数:/dev/sdb1 /mail xfs defaults,usrquota,grpquota 0 0

③编辑用户配额:xfs_quota -x -c 'limit -u bsoft:30M bhard:50M isft:3 ihard:5 用户名' /挂载目录

④编辑组配额:xfs_quota -x -c 'limit -g bsoft:30M bhard:50M isft:3 ihard:5 组名' /挂载目录

2.4、ext4配额

①挂载:mount -o defaults,usrquota,grpquota /挂载磁盘 /挂载点

永久挂载:/dev/sdb1 /mail ext4 defaults,usrquota,grpquota,defaults 0 0

②生成配额文件:quotacheck /挂载点

③启用配额;关闭配额命令用quotaoff:quotaon -ugv /挂载点

④针对用户配额:edquota -u 用户名

⑤针对组配额:edquota -g 组名

⑥修改配置文件例:/dev/sdd1 0 30M 50M 0 8 10

三、磁盘检测与修复

1、fsck命令

检查并修复Linux文件系统

例:fsck.ext4 -y /dev/sdb4

2、xfs_repair命令

执行自动修复,修复前先卸载分区

例:xfs_repair  /dev/sdb1

3、badblocks命令

查询设备的坏区块

例:badblocks /dev/mapper/testvg-testlv

四、文件系统备份与恢复

1、xfsdump命令

①备份整个分区

交互式:xfsdump -f [备份存放路径] [要备份的的设备或挂载点]

非交互式:xfsdump -f [备份存放路径] [要备份的的设备或挂载点] -L [会话标签名] -M [设备标签名]

②备份分区中某个目录或文件

xfsdump -f [备份存放路径] -s [要备份的目录或文件的相对路径] -L [会话标签名] -M [设备标签名]

③查看已备份的文件系统

每次备份成功后,都会在/var/lib/xfsdump/inventory 目录下生成档案信息,详细记录备份的信
息,如挂载点、挂载设备、会话标签、设备标签、备份目录等相关信息。

cd /var/lib/xfsdump/inventory

xfsdump -I

注意:

  • xfsdump不支持没有挂载的文件系统备份,所以只能备份已挂载的文件系统;

  • xfsdump必须使用root的权限才能操作;

  • xfsdump只能备份xfs文件系统;

  • xfsdump备份下来的数据只能让xfsrestore来解析;

  • xfsdump是通过文件系统的UUID来分辨备份档案的,因此不能备份两个具有相同UUID的文件系统

2、xfsrestore命令

恢复文件系统数据

xfsrestore -f [已备份文件路径] [恢复后的文件路径]

例:xfsrestore -f /opt/dump_sdb1 /sdb1

五、RAID类型

1. RAID 0(条带化)

  • 原理:数据分割为块,交替写入多块磁盘(条带化)。

  • 优点

    • 极致性能:读写速度接近磁盘数量的倍数。

    • 100%容量利用率:无冗余开销。

  • 缺点

    • 无冗余:任意一块磁盘故障即数据全损。

  • 适用场景

    • 临时数据处理(如视频渲染缓存)。

    • 对速度要求极高且数据可丢失的场景(如科研计算中间结果)。


2. RAID 1(镜像)

  • 原理:数据完全复制到另一块磁盘(镜像)。

  • 优点

    • 高可靠性:允许一块磁盘故障。

    • 读取速度提升:可从任意磁盘读取。

  • 缺点

    • 容量利用率50%:存储成本翻倍。

    • 写入速度无提升:需同时写入两块磁盘。

  • 适用场景

    • 关键系统盘(如操作系统、数据库日志文件)。

    • 小型企业文件服务器(预算有限但需基本冗余)。


3. RAID 5(分布式奇偶校验)

  • 原理:数据条带化分布,奇偶校验信息轮流存储在所有磁盘。

  • 优点

    • 平衡性能与冗余:允许一块磁盘故障,容量利用率为 (N-1)/N(如4盘利用75%)。

    • 读取性能高:多盘并行读取。

  • 缺点

    • 写入性能较低:每次写入需计算并更新奇偶校验。

    • 重建时间长:大容量磁盘重建期间二次故障风险高。

  • 适用场景

    • 中型文件服务器(如企业文档共享)。

    • 虚拟机存储(兼顾IOPS与成本)。


4. RAID 6(双分布式奇偶校验)

  • 原理:类似 RAID 5,但使用两组独立奇偶校验。

  • 优点

    • 更高容错:允许两块磁盘同时故障。

    • 大容量场景更安全:降低重建期间的故障风险。

  • 缺点

    • 写入性能更低:双重校验计算增加开销。

    • 容量利用率 (N-2)/N(如6盘利用66%)。

  • 适用场景

    • 大容量归档存储(如医疗影像、监控视频)。

    • 云存储后端(需应对多盘故障风险)。


5. RAID 10(镜像+条带化)

  • 原理:先镜像(RAID 1)再条带化(RAID 0)。

  • 优点

    • 高性能+高可靠:读写速度接近 RAID 0,允许每组镜像中一块磁盘故障。

    • 重建速度快:仅需复制镜像盘。

  • 缺点

    • 容量利用率50%:成本较高。

    • 最少4块磁盘:扩展需偶数递增。

  • 适用场景

    • 高事务数据库(如MySQL、Oracle)。

    • 虚拟化平台(ESXi、KVM)的存储池。


其他 RAID 类型

  • RAID 50/60:RAID 5/6与RAID 0结合,适合超大规模存储(需至少6盘)。

  • RAID 01(条带化+镜像):先条带化再镜像,故障容错性低于 RAID 10,已较少使用。

对比总结

选择建议

  1. 性能优先 → RAID 0(无冗余)或 RAID 10(有冗余)。

  2. 预算有限+基本冗余 → RAID 5。

  3. 大容量+高容错 → RAID 6。

  4. 关键业务高可用 → RAID 10。


注意事项

  • RAID 不是备份:无法防止误删除、病毒攻击,需额外备份方案。

  • 硬件 RAID vs 软件 RAID

    • 硬件 RAID:依赖 RAID 卡,性能稳定,支持缓存加速。

    • 软件 RAID(如Linux mdadm):灵活,成本低,但占用CPU资源。

  • SSD与RAID:SSD的磨损均衡机制可能与RAID冲突,建议优先选用企业级SSD并禁用磁盘缓存。

附录:xfs常用命令

xfs_admin: 调整 xfs 文件系统的各种参数
xfs_copy: 拷贝 xfs 文件系统的内容到一个或多个目标系统(并行方式)
xfs_db: 调试或检测 xfs 文件系统(查看文件系统碎片等)
xfs_check: 检测 xfs 文件系统的完整性
xfs_bmap: 查看一个文件的块映射
xfs_repair: 尝试修复受损的 xfs 文件系统
xfs_fsr: 碎片整理
xfs_quota: 管理 xfs 文件系统的磁盘配额
xfs_metadump: 将 xfs 文件系统的元数据 (metadata) 拷贝到一个文件中
xfs_mdrestore: 从一个文件中将元数据 (metadata) 恢复到 xfs 文件系统
xfs_growfs: 调整一个 xfs 文件系统大小(只能扩展)
xfs_logprint: print the log of an XFS filesystem
xfs_mkfile: create an XFS file
xfs_info: expand an XFS filesystem
xfs_ncheck: generate pathnames from i-numbers for XFS
xfs_rtcp: XFS realtime copy command
xfs_freeze: suspend access to an XFS filesystem
xfs_io: debug the I/O path of an XFS filesystem

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐