NipGeihou's blog NipGeihou's blog
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档

NipGeihou

我见青山多妩媚,料青山见我应如是
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档
  • Linux

    • CentOS

    • Ubuntu

    • 环境安装

    • 常用命令

    • 常用软件

    • 最佳实践

    • 通用

      • 磁盘管理与文件系统
        • 概念
        • fdisk命令(<2TB)
          • 创建分区 - n
          • MBR
        • parted命令(>2TB)
          • 切换磁盘格式
          • 打印磁盘信息
          • 创建分区
        • 软硬链接
          • 软链接(快捷方式)
          • 硬链接
        • 文件系统格式化
          • VFS - 抽象类
          • 文件系统
          • 日志文件系统
          • mkfs - 格式化
          • fsck - 修复文件系统
          • dumpe2fs、xfs_info - 查看文件系统属性
          • tune2fs - 开机检查系统文件
          • lsblk - 列出所有设备及文件系统信息
          • 最佳实践
        • 文件系统挂载
          • 临时挂载
          • 开机挂载
          • df - 检查挂载点使用情况
          • du - 显示磁盘空间大小,文件大小
        • buff和cache
        • swap交换分区
        • RAID
          • 概念
          • RAID 0
          • RAID 1
          • RAID 3
          • RAID 5
          • RAID 10(企业方案)
          • 硬RAID与软RAID
          • 硬RAID
          • 软RAID
          • 创建 - RAID 10
          • 故障修复
          • 重启
          • 卸载(删除)
          • 创建备份盘
        • LVM
          • RAID的缺点
          • 常见名词
          • 原理
          • 常用命令
          • 创建
          • 卸载
      • Oh My ZSH
      • 开启BBR
      • Shell笔记
  • Docker

  • 云原生

  • Kubernetes

  • KubeSphere

  • K3S

  • 笔记

  • PVE

  • 维修

  • DevOps

  • 云服务

  • 路由器

  • Hyper-V

  • Windows

  • macOS

  • 运维
  • Linux
  • 通用
NipGeihou
2025-05-02
目录

磁盘管理与文件系统

# 概念

一个没有分区的 (MBR) 硬盘可划分:

  • 主分区(primary partition)
  • 扩展分区(extended)
    • 扩展分区又可再划分逻辑分区(Logical)
Note

目前主流使用的 GPT 分区表,不再区分主分区、扩展分区、逻辑分区,所有分区都是等价的。

Linux 一切皆文件,磁盘设备在系统中以文件形式展示:

设备 设备在 Linux 的文件名
IDE 接口硬盘 /dev/hd[a-d]
SCSI/SATA/USB 接口硬盘 /dev/sd[a-p]
NVMe 固态硬盘 /dev/nvme0n1
U 盘 /dev/sd[a-p]
软盘 dev/fd[0-1]

分区文件

/dev/sda1 # 第1(a)个硬盘的分区1
/dev/sda2 # 第1(a)个硬盘的分区2

系统默认分区 1-4 留给了主分区和扩展分区, 4个主分区 或 3主+1扩展

# fdisk 命令 (<2TB)

Warning

下文基于一块 PCIE 的 NVME 固态硬盘,在 Ubuntu24.04 中实践,与网上教程在出入,未知是硬盘不同还是操作系统不同导致。

# 打印磁盘列表
fdisk -l

image.png

# 操作磁盘 /dev/sdb
fdisk /dev/sdb
# 进入操作页面后 按 m 获取帮助
Help:

  GPT
   M   enter protective/hybrid MBR

  Generic
   d   delete a partition # 删除一个分区
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition # 创建一个分区
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition # 打印当前分区信息

  Misc
   m   print this menu # 打印帮助
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit # 写入并退出
   q   quit without saving changes # 放弃修改退出

  Create a new label
   g   create a new empty GPT partition table # 创建一个GPT格式的分区
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty MBR (DOS) partition table # 创建一个MBR格式的分区
   s   create a new empty Sun partition table

# 创建分区 - n

  • 这视乎磁盘的格式(MBR、GPT)显示的操作流程不同
  • 根据 fdisk -l 中显示的 Disklabel type 决定创建的是 MBR 分区还是 GPT 分区。

# MBR

主分区

# 输入要创建的分区类型:p-主分区 e-扩展分区
p # 创建主分区
# 输入分区号 1-4
回车 # 默认1
# 输入起始扇区,默认2048
回车 # 默认2048
# 输入扇区大小
回车 # 方式1:使用最后一个扇区(可用全部扇区)
+1G # 方式2:指定大小 (K,M,G)

p # 打印当前分区信息,检查创建的分区是有无误
w # 保存并退出

扩展分区

Note

只能创建 1 个扩展分区

# 输入要创建的分区类型:p-主分区 e-扩展分区
e # 创建扩展分区
# 输入分区号 2-4(前面已创建分区1)
回车 # 默认2
# 输入起始扇区,默认前一个分区结束扇区的后一个扇区
回车 # 默认
# 输入扇区大小
回车 # 方式1:使用最后一个扇区(可用全部扇区)
+1G # 方式2:指定大小 (K,M,G)

p # 打印当前分区信息,检查创建的分区是有无误
w # 保存并退出

逻辑分区

Note

只有创建了扩展分区后,才可以创建逻辑分区。逻辑分区在扩展分区内。

# 输入要创建的分区类型:p-主分区 l-逻辑分区
l # 创建逻辑分区
# 输入分区号 逻辑分区从5开始
回车 # 默认 5
# 输入起始扇区,默认前一个分区结束扇区的后一个扇区
回车 # 默认
# 输入扇区大小
回车 # 方式1:使用最后一个扇区(可用全部扇区)
+1G # 方式2:指定大小 (K,M,G)

p # 打印当前分区信息,检查创建的分区是有无误
w # 保存并退出

# parted 命令 (>2TB)

# 操作磁盘 /dev/sdb
parted /dev/sdb

帮助

align-check TYPE N                       check partition N for TYPE(min|opt) alignment
help [COMMAND]                           print general help, or help on COMMAND
mklabel,mktable LABEL-TYPE               create a new disklabel (partition table) # 创建一个新的disklabel(分区表)
mkpart PART-TYPE [FS-TYPE] START END     make a partition # 创建分区
name NUMBER NAME                         name partition NUMBER as NAME
print [devices|free|list,all]            display the partition table, or available devices, or free space, or all
      found partitions
quit                                     exit program
rescue START END                         rescue a lost partition near START and END
resizepart NUMBER END                    resize partition NUMBER
rm NUMBER                                delete partition NUMBER
select DEVICE                            choose the device to edit
disk_set FLAG STATE                      change the FLAG on selected device
disk_toggle [FLAG]                       toggle the state of FLAG on selected device
set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
type NUMBER TYPE-ID or TYPE-UUID         type set TYPE-ID or TYPE-UUID of partition NUMBER
unit UNIT                                set the default unit to UNIT
version                                  display the version number and copyright information of GNU Parted

# 切换磁盘格式

# 切换gpt格式
mklabel gpt

# 打印磁盘信息

print
# or
p

# 创建分区

mkpart [part-type name fs-type] start end

# 创建一个主分区,从0到500扇区
mkpart primary 0 500

# 软硬链接

# 软链接(快捷方式)

类似于 Windows 的快捷方式,可以快捷的指向另一个文件的特殊文件 (夹)

ln -s 源文件绝对路径 快捷方式绝对路径
  • 生成的链接文件,通过 ls -l 查看标识为 lrwxrwxrwx ,其中第一位 l 表示链接文件
  • 删除快捷方式,不影响原文件
  • 当原文件被删除时,访问快捷方式会提示 没有那个文件或目录
  • 场景:
    • 起别名:原文件名过长,在同目录链接一个简写名字的快捷方式
    • 链接到 bin 目录
# 查看快捷方式文件存储的内容:为目标文件路径
readlink 快捷方式路径

# 硬链接

文件系统有一个名为 inode区域 的地方,中文叫索引节点,里面存储了文件的元信息,如:创建信息、修改信息、文件大小…… 但不包括文件名,而是通过 Inode 作为唯一标识。

# 查看文件元信息
stat README.md
# ———————————— output start ————————————
  文件:README.md
  大小:4791            块:16         IO 块大小:4096   普通文件
设备:259,2     Inode: 27321233    硬链接:1
权限:(0644/-rw-r--r--)  Uid: ( 1000/nipgeihou)   Gid: ( 1000/nipgeihou)
访问时间:2025-03-13 01:39:05.618190787 +0800
修改时间:2024-08-08 14:13:05.000000000 +0800
变更时间:2025-03-13 01:39:05.618190787 +0800
创建时间:2025-03-13 01:39:05.618190787 +0800
# ———————————— output end ————————————

一般情况下,一个 inode 对应一个文件名,而硬链接则将同一个 inode 对应多个文件名。

硬链接的特点

  • 目录文件夹,不支持硬链接(软链接支持)
  • 不得跨文件系统
  • 硬链接数据量的增加,回增加 inode 号码的计数
  • 删除源文件,不会导致链接文件失效
ln 源文件绝对路径 硬链接文件绝对路径

软硬链接区别

  • 软链接是一个特殊的文件,文件内容为源文件的路径,因此源文件不见了自然就失效了。
  • 硬链接更像是多个变量(文件)指向同一个指针,只有所有变量都被删除了,才会释放文件。

# 文件系统格式化

image.png

# VFS - 抽象类

这并不是一个具体的文件系统,而是一个接口,通过调用接口的方式,实现不同文件系统之间的交互。

# 文件系统

Linux:

  • ext2
  • ext3:centos 5
  • ext4:centos 6
  • xfs:centos 7 网络共享文件系统
  • nfs:network file system
  • smb:server message block 服务消息块 集群文件系统
  • gfs:google file system
  • ocfs:oracle cluster file system 分布式文件系统
  • ceph:为了存储的可靠性喝扩展性的分布式文件系统 交换文件系统
  • swap

# 日志文件系统

日志文件系统(英语:Journaling file system)是一种文件系统。在发生变化时,它先把相关的信息写入一个被称为日志的区域,然后再把变化写入主文件系统。在文件系统发生故障(如内核崩溃或突然停电)时,日志文件系统更容易保持一致性,并且可以较快恢复。

# mkfs - 格式化

针对磁盘分区进行格式化文件系统

mkfs.ext4 分区路径

# fsck - 修复文件系统

默认读取 /etc/fstab 开机挂载文件中每行最后一位,是 1 时检查

fsck -t 文件系统类型 设备名

# dumpe2fs、xfs_info - 查看文件系统属性

  • dumpe2fs :适用于 ext2、ext3、ext4
  • xfs_info :适用于 xfs

# tune2fs - 开机检查系统文件

# 关闭sdb分区文件系统自检
tune2fs -c -1 /dev/sdb

# lsblk - 列出所有设备及文件系统信息

lsblk -f # 列出分区的文件系统类型

# 最佳实践

# 前置:已创建磁盘分区

# 列出分区的文件系统类型
lsblk -f 

# 格式化nvme1n1p1分区为ext4
mkfs.ext4 /dev/nvme1n1p1

# 检查
lsblk -f 

# 关闭文件系统自检
tune2fs -c -1 /dev/nvme1n1p1

# 文件系统挂载

Linux 下设备不挂载的话,无法使用。

# 临时挂载

# 前置:磁盘已分区、格式化,针对已格式化的分区操作

# 显示系统所有挂载设备信息
mount -l

# 挂载
mount 设备路径 挂载路径
#mount /dev/sdb5 /mnt

# 查看挂载的磁盘使用情况
df -hT

# 取消挂载(必须没有人在使用时才可取消)
umount 挂载路径
# umount /mnt

# 挂载,只读方式
mount -o ro /dev/sdb5 /mnt
# 挂载,禁止执行二进制文件
mount -o noexec /dev/sdb5 /mnt

-o 参数详解

async	以异步方式处理文件IO,加速写入,数据会先写入缓冲区,提高系统性能,存在数据丢失风险。
sync	所有IO操作同步处理,数据同步写入磁盘,性能较弱,提高数据读写安全性
atime/noatime	文件被访问时,是否修改其时间戳,否时可提高磁盘IO速度
defaults	默认参数,覆盖了 rw,suid,dev,exec,auto,nouser,async等
exec/noexec	是否允许执行挂载点内的可执行命令,使用了noexec,提升磁盘安全性
ro	只读
rw	读写
att2	在磁盘上存储内连扩展属性,提升磁盘性能
inode64	允许在文件系统的任意位置创建inode
noquota	强制关闭文件系统的限额功能

# 开机挂载

mount 命令只会临时生效,系统重启后失效,配置 /etc/fstab 文件可实现永久挂载。

nano /etc/fstab

# 追加
设备路径 挂载路径 分区格式 defaults 0 0
# /dev/sdb5 /mnt xfs defaults 0 0

# 第一列:设备的名字,设备名称,可以是文件系统,也可以是设备名称,NFS远程网络文件系统
mount /dev/sdb5 /mnt
mount 192.168.1.15:/home/nfs /mnt -o nolock # 挂载nfs文件系统,且不加锁

# 第二列:挂载点

# 第三列:Linux支持的文件系统类型
ext3 ext4 nfs swap

# 第四列:挂载的功能选项(-o),默认是用defaults

# 第五列:dump
表示将整个文件夹内容备份,一般不对挂载点备份,默认为0

# 第六列:fsck 磁盘检查
默认都是0,不对磁盘检查,根文件系统,默认是检查的
# 读取/etc/fstab,使其生效
mount -a

# df - 检查挂载点使用情况

df
-i 显示已inode数量

# du - 显示磁盘空间大小,文件大小

Linux 文件存储最小单位是 4k ,也就是 8 个扇区

# 显示文件大小,以kb mb显示单位
du -h 

# 显示当前目录所有的文件大小
du -h * 

# 显示目录中所有文件大小
du -a 

# 指定文件夹深度
du -ah --max-depth=1 /opt/

# 显示当前目录下所有文件,除.pyc文件外
du -ah --exclude='*.pyc' /opt/

# buff 和 cache

  • buffers:缓冲区,加速写入数据;写入时先将数据存储到内存中,达到一定量时再写入磁盘。
  • cached:缓存,加速读取数据;读取时,会存储数据到内存,再次读取时直接从内存读取。
# 查看buff/cache
free -m

# !!仅做演示,一般情况下无需释放、清除

# 释放cache
echo 1 > /proc/sys/vm/drop_caches
# 等效
sysctl -w vm.drop_caches=1

# 清除目录缓存和inodes
echo 2 > /proc/sys/vm/drop_caches
# 等效
sysctl -w vm.drop_caches=2

# 清除内存页的缓存
echo 3 > /proc/sys/vm/drop_caches
# 等效
sysctl -w vm.drop_caches=3

# 将内存缓冲区的数据写到磁盘中,也可用作释放缓存
sync

# swap 交换分区

swap 是 Linux 系统磁盘管理的一块特殊的分区,当实际的物理内存不足时,操作系统从整个内存中,取出一部分暂时没在使用的内存,拿出来放到交换分区,从而提供给当前正在使用的程序,可以使用更多的内存。

# 以合适的单位显示内存使用情况
free -h

# 创建一个分区;略

# 将分区改为swap类型 fdisk下操作
t # 修改分区类型
1 # 选择分区
82 # 要更改的类型
w # 写入

# 检查
lsblk -f

# 设置swap
mkswap swap分区路径
# mkswap /dev/sdc1

# 检查
free -m

# 关闭swap分区
swapoff swap分区路径
# swapoff /dev/sdc1

# 检查
free -m

# RAID

独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或资料冗余,或是两者同时提升。

image.png

饮水机和磁盘的关系

  • Standalone 独立模式:一个
模式 饮水机 磁盘
Standalone 独立模式 1 台饮水机,1 桶水,提供服务 1 台服务器,1 块硬盘,提供服务
hot swap 热备份模式 1 台饮水机,2 桶水,水桶 1 污染、损坏时,水桶 2 随时接替工作 1 台服务器,2 块硬盘,硬盘 1 损坏时,硬盘 2 接替工作
cluster 集群模式 多台饮水机,多个水桶,1 对 1,同时提供服务,坏了一台,还有其他可用 多台服务器,多个硬盘,1 对 1,同时提供服务,坏了一台,还有其他可用,提高读写效率

# 概念

# RAID 0

image.png

  • 原理:将数据分割,依次写入到多个磁盘
  • 优点:写入速度翻倍
  • 缺点:任意一个硬盘坏了,因数据不完整,变相导致全部数据丢失。
  • 场景:适用于追求极致性能,不关注数据安全,如游戏、电影等可重复下载的资源。

# RAID 1

image.png

  • 原理:将同一份数据存储到多个磁盘中
  • 优点:数据冗余,数据安全
  • 缺点:磁盘利用率低,成本高
  • 场景:注重数据安全,如商业数据、高价值数据

# RAID 3

image.png

前置知识

  • 异或 ^ 操作:数字相同则为 0,数字不同则为 1。
  • 只要知道异或结果,任何一个值都能被反推出来
  • 原理:至少需要 3 块硬盘,其中一块用于存储异或结果,任意一个盘故障,都可以通过其他盘 + 异或结果反推出该盘的数据。
  • 优点:具备 RAID 0 的优点,同时具备一点的安全冗余
  • 缺点:最多同时损坏 1 个硬盘,超出时数据无法恢复

# RAID 5

image.png

  • 原理:与 RAID 3 类似,但校验码不是存储在同一块硬盘,而是分散存储在每块硬盘中。
  • 优点:与 RAID 3 类似
  • 缺点:与 RAID 3 类似

# RAID 10(企业方案)

image.png

  • 原理:先做镜像卷 RAID 1 将所有硬盘分为两组,再做 RAID 0 执行条带化操作分割数据
  • 优点:同时具备 RAID 0 和 RAID 1 的优点,读写快、安全
  • 缺点:成本高

# 硬 RAID 与软 RAID

硬 RAID 是通过硬件实现的磁盘阵列,软 RAID 则为软件实现的。

区别

  • 软 raid 会额外消耗 CPU 资源,造成服务器压力
  • 硬 raid 更稳定,软 raid 可能会造成磁盘发热过量,造成损毁
  • 硬 raid 兼容性更好,软 raid 兼容性依赖于操作系统
  • 硬 raid 完胜

# 硬 RAID

需要 RAID 阵列卡,todo

# 软 RAID

搭建 RAID 10 实践:

# 创建 - RAID 10
# 前置:插入4块硬盘

# 检查
fdisk -l

# 创建raid
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
# -C 创建RAID阵列
# -v 显示创建过程
# /dev/md0 标识raid阵列的名字
# -a yes 自动创建阵列名字
# -n 4 使用4块硬盘创建
# -l 10 表示raid级别

# 至此多了一个/dev/md0磁盘,之后的操作当普通磁盘分区使用即可

# 格式化
mkfs.xfs /dev/md0

# 挂载
mkdir /myraid
mount /dev/md0 /myraid

# 检查挂载
mount -l

# 检查挂载空间使用情况
df -hT

# 检查raid阵列信息
mdadm -D /dev/md0

# 故障修复
# 模拟挂掉一块硬盘
mdadm /dev/md0 -f /dev/sdd

# 检查raid阵列信息
mdadm -D /dev/md0

# 即使挂掉一个硬盘 也不会影响阵列的使用,只需重新购买一块新的硬盘加入阵列

# 新硬盘加入前,需要先取消挂载
umount /dev/md0

# 将新磁盘添加到阵列中
mdadm /dev/md0 -a /dev/sdd

# 检查raid阵列信息,可以看到备份进度(rebuild status)
mdadm -D /dev/md0
# 重启
# 创建raid配置文件,保存raid配置
echo DEVICE /dev/sb[b-e] > /etc/mdadm.conf
cat /etc/mdadm.conf

# 扫描磁盘阵列信息,追加到这个文件
mdadm -Ds >> /etc/mdadm.conf
cat /etc/mdadm.conf

# 取消raid10的挂载
umcount /myraid

# 暂停raid10
mdadm -S /dev/md0

# 检查磁盘阵列是否还存在
mdadm -D /dev/md0

# 再次启动raid10
mdadm -A /dev/md0

# 此时可以正常看到raid10的信息
mdadm -D /dev/md0
# 卸载(删除)
# 取消raid10的挂载
umcount /myraid

# 停止raid服务
mdadm -S /dev/md0

# 卸载raid10中所有的磁盘信息
mdadm --misc --zero-superblock /dev/sdb
mdadm --misc --zero-superblock /dev/sdc
mdadm --misc --zero-superblock /dev/sdd
mdadm --misc --zero-superblock /dev/sde

# 删除raid的配置文件
rm /etc/mdadm.conf

# 删除开机自动挂载配置
nano /etc/fstab
# 创建备份盘

备份盘会在工作盘出现故障时,替换其位置

mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde

# -n 指定3块硬盘
# -l 指定raid级别为 raid 5
# -x 1 指定一个备份盘
# /dev/sd[b-e] 代表指定使用的四块硬盘

# 检查
mdadm -D /dev/md0

# 格式化
mfs.xfs -f /dev/md0

# 挂载
mount /dev/md0 /myraid

# 模拟挂掉一块硬盘
mdadm /dev/md0 -f /dev/sdb

# 检查:可见正在rebuild到备份盘
mdadm -D /dev/md0

# LVM

# RAID 的缺点

  • 配置好的磁盘阵列组,容量大小就固定下来了,出现磁盘容量不够用时,扩容磁盘空间比较麻烦,需要先卸载再操作。
  • 不同的磁盘分区,相对独立,空间利用率低
  • 某个分区满了,无法直接扩容,需要重新分区,分配容量
  • 合并分区,需要格式化存盘,需要数据备份

逻辑卷管理器(英语:Logical Volume Manager,缩写为 LVM),是 Linux 核心所提供的逻辑卷管理(Logical volume management)功能。它在硬盘的硬盘分区之上,又建立一个逻辑层,以方便系统管理硬盘分割系统。

# 常见名词

  • PP(physical partition),物理分区,lvm 直接创建在物理分区之上
  • PV(physical volume),物理卷,处于 lvm 的最底层,一般一个 PV 对应一个 PP
  • PE(physical extends),物理区域,PV 中可以用于分配的最小存储单位,同一个 VG 所有的 PV 中 PE 大小相同,例如 1M、2M
  • VG(volume group),卷组,卷组创建在 PV 之上,可以划分为多个 PV
  • LE(logical extends),逻辑扩展单元,LE 是组成 LV 的基本单元,一个 LE 对应一个 PE
  • LV(logical volume),逻辑卷,创建在 VG 之上,是一个可以动态扩容的分区概念

image.png

# 原理

  • LVM 动态扩容大小,其实就是通过互相交换 PE 的过程,达到能够弹性扩容分区大小
  • 想要减少容量,就是剔除 PE 的大小
  • 想要扩大容量,就是把其他的 PE 添加到自己的 LV 当中
  • PE 默认大小一般都是 4M,LVM 最多可创建 65534 个 PE,因此 LVM 最大的 VG 卷组单位是 256G
  • LV 逻辑卷的概念,可理解为普通的分区概念, /dev/sda

# 常用命令

# pv 物理卷
pvcreate 创建物理卷
pvscan 扫描物理卷信息
pvdispaky 显示各个物理卷详细参数
pvremove 删除物理卷

# vg 卷组
vgcreate
vgscan
vgdisplay
vgreduce 缩小卷组,把物理卷从卷组中移除
vgextend 扩大卷组,把新的物理卷加入到卷组中
vgremove 删除整个卷组

# lv 逻辑卷
lvcreate
lvscan
lvs
lvdisplay 扩容
lvextend 缩小
lvremove 删除逻辑卷

# 创建

# 创建pv,创建/dev/sdb、/dev/sdc物理卷
pvcreate /dev/sdb /dev/sdc

# 创建卷组,创建vg1卷组,添加/dev/sdb、/dev/sdc进入
vgcreate vg1 /dev/sdb /dev/sdc

# 扫描pv(打印列表)
pvs
pvdispaky

# 扫描vg(打印列表)
vgs
vgdisplay

# 扩容
# 再创建一个物理卷
pvcreate /dev/sdd

# 卷组添加物理卷(扩容)
vgextend vg1 /dev/sdd

# 打印,查看容量
vgdisplay

# 卷组移除物理卷(缩容)
vgreduce vg1 /dev/sdd

# 删除物理卷(不用)
pvremove /dev/sdd

# 创建lv逻辑卷
lvcreate -n lv1 -L +500M vg1

# 扫描逻辑卷
lvs
lvdisplay

# 格式化逻辑卷
mkfs.xfs /dev/vg1/lv1

# 查看分区
lsblk -f

# 之后就可以当作一个普通分区使用

# 挂载
mkdir /vg1_vl1
mount /dev/vg1/lv1 /vg1_vl1

# 永久挂载
略


# lvm扩容
# 卸载设备
unmount /vg1_vl1

# lvm扩容
lvextend -L +10G /dev/vg1/lv1

# 重新挂载
mount /dev/vg1/lv1 /vg1_vl1

# 调整xfs文件大小,否则读取不到扩容后的容量
xfs_growfs /dev/vg1/lv1

# 检查容量大小
df -hT

# 卸载

# 卸载设备
unmount /vg1_vl1

# 删除lv逻辑卷
lvremove /dev/vg1/lv1

# 删除vg卷组
vgremove vg1

# 删除pv物理卷
pvs # 扫描有哪些物理卷
pvremove /dev/sdb /dev/sdc
上次更新: 2025/05/14, 00:27:25
Linux单网卡多IP实践
Oh My ZSH

← Linux单网卡多IP实践 Oh My ZSH→

最近更新
01
元器件
05-23
02
iSCSI服务搭建
05-10
03
网络测试 - iperf3
05-02
更多文章>
Theme by Vdoing | Copyright © 2018-2025 NipGeihou | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式