当前位置: 首页 > news >正文

Linux运维新人自用笔记(inode索引节点、删除文件原理、raid10、lvm逻辑卷)

内容全为个人理解和自查资料梳理,欢迎各位大神指点!

每天学习较为零散。

day22

一、inode索引节点

 Linux/Unix 文件系统中用于 ​​描述文件元数据的核心数据结构​​,每个文件或目录都有一个唯一的 inode。存储文件的属性信息和block的位置信息。

root@xun-virtual-machine:/a1# ll -i my_sdb1/
total 4128 drwxr-xr-x 2 root root   22  6月 21 07:17 ./
131083 drwxr-xr-x 3 root root 4096  6月 21 22:17 ../131 -rw-r--r-- 1 root root    0  6月 21 07:17 test.txtInode:inode 编号(唯一标识)
Links:硬链接计数(删除文件需此值为 0)
Size:文件大小(字节)
Blocks:占用的磁盘块数
Access/Modify/Change:访问、修改、元数据变更时间root@xun-virtual-machine:~# stat /a1/my_sdb1/File: /a1/my_sdb1/Size: 22        	Blocks: 0          IO Block: 4096   directory
Device: 811h/2065d	Inode: 128         Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2025-06-21 07:23:36.745910932 +0800
Modify: 2025-06-21 07:17:47.519913904 +0800
Change: 2025-06-21 07:17:47.519913904 +0800Birth: 2025-06-21 07:08:02.960096000 +0800
root@xun-virtual-machine:~# 

 inode(索引节点)存储文件的元数据(如权限、所有者、大小等),每个文件或目录都会占用一个 inode。如果 inode 耗尽,即使磁盘空间充足,也无法创建新文件。

inode 耗尽(IUse%=100%)

No space left on device 错误,但 df -h 显示磁盘空间充足

小文件过多(如日志、缓存、邮件)占满 inode

#​​查看文件系统的 inode 使用情况​​ Filesystem:磁盘分区或存储设备。
Inodes:该文件系统分配的 inode 总数。
IUsed:已使用的 inode 数量。
IFree:剩余的可用 inode 数量。
IUse%:inode 使用百分比(接近 100% 时需警惕)。
Mounted on:挂载点路径。root@xun-virtual-machine:~# df -i
Filesystem       Inodes  IUsed    IFree IUse% Mounted on
tmpfs            495179   1006   494173    1% /run
/dev/sda3       1277952 237512  1040440   19% /
tmpfs            495179      1   495178    1% /dev/shm
tmpfs            495179      5   495174    1% /run/lock
/dev/sda2             0      0        0     - /boot/efi
/dev/sdb1      10485248      4 10485244    1% /a1/my_sdb1
tmpfs             99035    137    98898    1% /run/user/1000
/dev/sr0              0      0        0     - /media/xun/Ubuntu 22.04.5 LTS amd64#查找占用 inode 的目录
sudo find / -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n#删除临时文件
sudo rm -rf /tmp/*# 限制日志大小,清理旧日志
sudo journalctl --vacuum-size=100M  # 保留大于 1MB 的文件,删除小文件
sudo find /path -type f -size +1M -delete # 分配 200 万个 inode,扩展 inode 数量(需重新格式化)
sudo mkfs.ext4 -N 2000000 /dev/sdb1 

二、删除文件的原理

删除文件并不是立即擦除磁盘数据,而是 ​​解除文件名与 inode 的关联​​,并标记 inode 和数据块为“可复用”。实际数据仍留在磁盘上,直到被新数据覆盖。

删除流程

1.解除目录项绑定

文件名存储在目录的 ​​目录项(dentry)​​ 中,删除文件时,系统会从目录中移除该文件名到 inode 的映射。

2.减少 inode 的硬链接计数

每个 inode 记录 ​​硬链接数(Links)​​,表示有多少个文件名指向它

删除文件时,Links 值减 1。

若 Links > 1:仍有其他文件名指向该 inode,数据保留。

若 Links = 0:inode 和数据块被标记为“可复用”。

3.释放磁盘空间​

文件系统将 inode 和对应的数据块标记为“未使用”,但数据未被清除(可通过工具恢复)。

空间何时被新数据覆盖取决于文件系统的实现和后续写入操作。

#列出已删除但被进程占用的文件
#只有进程关闭文件后,inode 和空间才会真正释放。root@xun-virtual-machine:~# lsof +L1
lsof: WARNING: can't stat() fuse.portal file system /run/user/1000/docOutput information may be incomplete.
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfsOutput information may be incomplete.
COMMAND    PID     USER   FD   TYPE DEVICE SIZE/OFF NLINK   NODE NAME
apache2    959     root   10u   REG    8,3        0     0 786481 /tmp/.ZendSem.rYkrqn (deleted)
apache2    998 www-data   10u   REG    8,3        0     0 786481 /tmp/.ZendSem.rYkrqn (deleted)
apache2    999 www-data   10u   REG    8,3        0     0 786481 /tmp/.ZendSem.rYkrqn (deleted)
apache2   1000 www-data   10u   REG    8,3        0     0 786481 /tmp/.ZendSem.rYkrqn (deleted)
apache2   1001 www-data   10u   REG    8,3        0     0 786481 /tmp/.ZendSem.rYkrqn (deleted)
apache2   1002 www-data   10u   REG    8,3        0     0 786481 /tmp/.ZendSem.rYkrqn (deleted)
mysqld    1030    mysql    6u   REG    8,3        0     0 786472 /tmp/#786472 (deleted)
mysqld    1030    mysql    7u   REG    8,3        0     0 786473 /tmp/#786473 (deleted)
mysqld    1030    mysql    8u   REG    8,3        0     0 786482 /tmp/#786482 (deleted)

 恢复

 # 从进程的文件描述符恢复
cp /proc/<PID>/fd/<FD> recovered_file 

彻底删除 

 # 覆盖 3 次后删除
shred -n 3 -z -u file.txt 

三、RAID 10

适合需要 ​​低延迟、高可用性​​ 的场景。

RAID 10 是 RAID 1(镜像)和 RAID 0(条带化)的组合,需至少 4 块磁盘。

镜像(RAID 1)​​:数据完全复制到另一块盘(冗余)

​条带化(RAID 0)​​:数据分块写入多组镜像对(提升性能)。

容量利用率​​:50%

容错能力:允许每组 RAID 1 中损坏 1 块盘(最多同时损坏 50% 的磁盘,但不可同组全坏)。

创建 RAID​

​参数​​作用​
-C 或 --create创建一个新的 RAID 设备。
-v 或 --verbose显示详细操作信息(便于调试)。
/dev/md0指定 RAID 设备名称(通常为 /dev/md*)。
-a yes自动创建设备文件(若 /dev/md0 不存在)。
-n 4 或 --raid-devices=4指定 RAID 中活跃磁盘数量(此处为 4 块盘)。
-l 10 或 --level=10设置 RAID 级别为 RAID 10(镜像+条带化)。
-D显示陈列详细信息
-f移除设备

[root@626nmn ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 19.5G  0 part ├─centos-root 253:0    0 19.5G  0 lvm  /└─centos-swap 253:1    0   48M  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk 
sdc               8:32   0   10G  0 disk 
sdd               8:48   0   10G  0 disk 
sde               8:64   0   10G  0 disk 
sr0              11:0    1  4.4G  0 rom  [root@626nmn ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 10476544K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.[root@626nmn ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE   MOUNTPOINT
sda               8:0    0   20G  0 disk   
├─sda1            8:1    0  500M  0 part   /boot
└─sda2            8:2    0 19.5G  0 part   ├─centos-root 253:0    0 19.5G  0 lvm    /└─centos-swap 253:1    0   48M  0 lvm    [SWAP]
sdb               8:16   0   10G  0 disk   
└─md0             9:0    0   20G  0 raid10 
sdc               8:32   0   10G  0 disk   
└─md0             9:0    0   20G  0 raid10 
sdd               8:48   0   10G  0 disk   
└─md0             9:0    0   20G  0 raid10 
sde               8:64   0   10G  0 disk   
└─md0             9:0    0   20G  0 raid10 
sr0              11:0    1  4.4G  0 rom    
[root@626nmn ~]# fdisk -l /dev/md0 Disk /dev/md0: 21.5 GB, 21455962112 bytes, 41906176 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes#格式化文件系统
[root@626nmn ~]# mkfs.xfs /dev/md0 
meta-data=/dev/md0               isize=512    agcount=16, agsize=327296 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5236736, imaxpct=25=                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0#挂载
[root@626nmn a1]# mount /dev/md0 /a1/my_md0/#/dev/md0  xfs  20G 50%的使用率所以20G
[root@626nmn a1]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  475M     0  475M   0% /dev
tmpfs                   tmpfs     487M     0  487M   0% /dev/shm
tmpfs                   tmpfs     487M  7.8M  479M   2% /run
tmpfs                   tmpfs     487M     0  487M   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        20G  3.4G   17G  18% /
/dev/sda1               xfs       497M  130M  368M  27% /boot
tmpfs                   tmpfs      98M     0   98M   0% /run/user/0
/dev/md0                xfs        20G   33M   20G   1% /a1/my_md0#查看raid10的状态,显示陈列详细信息
[root@626nmn a1]# mdadm -D /dev/md0 
/dev/md0:Version : 1.2Creation Time : Sat Jun 21 20:54:49 2025Raid Level : raid10Array Size : 20953088 (19.98 GiB 21.46 GB)Used Dev Size : 10476544 (9.99 GiB 10.73 GB)Raid Devices : 4Total Devices : 4Persistence : Superblock is persistentUpdate Time : Sat Jun 21 21:06:04 2025State : clean Active Devices : 4Working Devices : 4Failed Devices : 0Spare Devices : 0Layout : near=2Chunk Size : 512KConsistency Policy : resyncName : 626nmn:0  (local to host 626nmn)UUID : a9098818:2e24a9ea:20a80cb7:eab6146bEvents : 17Number   Major   Minor   RaidDevice State0       8       16        0      active sync set-A   /dev/sdb1       8       32        1      active sync set-B   /dev/sdc2       8       48        2      active sync set-A   /dev/sdd3       8       64        3      active sync set-B   /dev/sde

移除一块硬盘 (假设硬盘损坏)

[root@626nmn a1]# mdadm /dev/md0 -f /dev/sdd
mdadm: set /dev/sdd faulty in /dev/md0
[root@626nmn a1]# mdadm -D /dev/md0 
/dev/md0:Version : 1.2Creation Time : Sat Jun 21 20:54:49 2025Raid Level : raid10Array Size : 20953088 (19.98 GiB 21.46 GB)Used Dev Size : 10476544 (9.99 GiB 10.73 GB)Raid Devices : 4Total Devices : 4Persistence : Superblock is persistentUpdate Time : Sat Jun 21 21:22:14 2025State : clean, degraded Active Devices : 3Working Devices : 3Failed Devices : 1Spare Devices : 0Layout : near=2Chunk Size : 512KConsistency Policy : resyncName : 626nmn:0  (local to host 626nmn)UUID : a9098818:2e24a9ea:20a80cb7:eab6146bEvents : 19Number   Major   Minor   RaidDevice State0       8       16        0      active sync set-A   /dev/sdb1       8       32        1      active sync set-B   /dev/sdc-       0        0        2      removed3       8       64        3      active sync set-B   /dev/sde

添加新硬盘 ,查看/dev/md0 已恢复

[root@626nmn ~]# mdadm /dev/md0 -a /dev/sdd
mdadm: added /dev/sdd[root@626nmn ~]# mdadm -D /dev/md0 
/dev/md0:Version : 1.2Creation Time : Sat Jun 21 20:54:49 2025Raid Level : raid10Array Size : 20953088 (19.98 GiB 21.46 GB)Used Dev Size : 10476544 (9.99 GiB 10.73 GB)Raid Devices : 4Total Devices : 4Persistence : Superblock is persistentUpdate Time : Sat Jun 21 21:26:34 2025State : clean Active Devices : 4Working Devices : 4Failed Devices : 0Spare Devices : 0Layout : near=2Chunk Size : 512KConsistency Policy : resyncName : 626nmn:0  (local to host 626nmn)UUID : a9098818:2e24a9ea:20a80cb7:eab6146bEvents : 40Number   Major   Minor   RaidDevice State0       8       16        0      active sync set-A   /dev/sdb1       8       32        1      active sync set-B   /dev/sdc4       8       48        2      active sync set-A   /dev/sdd3       8       64        3      active sync set-B   /dev/sde

四、lvm逻辑卷

允许动态调整磁盘空间,提供比传统分区更灵活的存储管理方式。适合需要动态调整存储、跨磁盘管理、快照备份的环境。

PV(Physical Volume,物理卷)​实际的磁盘或分区(如 /dev/sdb1),需先转换为 LVM 可识别的格式。
​VG(Volume Group,卷组)​由多个 PV 组成的一个存储池,VG 是 LVM 管理的基本单位。
​LV(Logical Volume,逻辑卷)​从 VG 中划分出的逻辑存储单元,可格式化为文件系统(如 /dev/vg01/lv_data)。
​PE(Physical Extent,物理块)​LVM 的最小存储单元(默认 4MB),VG 的存储空间由多个 PE 组成。

​​物理卷(Physical Volume, PV)​​

  • 实际的物理存储设备(如 /dev/sdb、/dev/sdc1)。
  • 通过 pvcreate 命令初始化,使其能被 LVM 识别。
  • PV 被划分为多个 ​​物理块(Physical Extent, PE)​​(默认 4MB)。

​​卷组(Volume Group, VG)​​

  • 由多个 PV 组成的存储池,VG 是 LVM 管理的基本单位。
  • VG 的存储空间是所有 PV 的 PE 总和。
  • 通过 vgcreate 创建,如 vgcreate vg01 /dev/sdb /dev/sdc。

​​逻辑卷(Logical Volume, LV)​​

  • 从 VG 中划分出的逻辑存储单元,可格式化为文件系统(如 /dev/vg01/lv_data)。
  • LV 由多个 ​​逻辑块(Logical Extent, LE)​​ 组成,LE 与 PE 一一对应。
  • 通过 lvcreate 创建,如 lvcreate -L 50G -n lv_data vg01。

LVM 的数据存储原理​​

物理卷(PV)的初始化,​​当执行 pvcreate /dev/sdb 时:在 /dev/sdb 上创建 ​​LVM 元数据​​(描述 PV 的属性和 PE 分布)。将磁盘划分为多个 ​​PE​​(默认 4MB),PE 是 LVM 的最小存储单元。

卷组(VG)的组成​​VG 是多个 PV 的集合,所有 PV 的 PE 被合并为一个统一的存储池。
​​VG 的容量 = 所有 PV 的 PE 数量 × PE 大小​​。例如:/dev/sdb(100GB) + /dev/sdc(100GB) → VG 容量 ≈ 200GB(实际略少,元数据占用少量空间)。

逻辑卷(LV)的创建​​,LV 是从 VG 中分配的连续或非连续的 LE 集合。
​​LE 和 PE 的映射关系​​:每个 LE 对应一个 PE,LE 是逻辑层面的块,PE 是物理层面的块。LVM 通过 ​​映射表​​ 维护 LE 和 PE 的关系(存储在 VG 的元数据中)。

​对比维度​​普通硬盘(传统分区)​​LVM 逻辑卷​
​存储管理方式​直接对物理磁盘分区(如 /dev/sda1)。抽象为三层结构:物理卷(PV)→ 卷组(VG)→ 逻辑卷(LV)。
​扩展性​分区大小固定,扩容需重新分区(可能丢失数据)。动态调整 LV 大小(在线扩容/缩减,无需卸载文件系统)。
​跨磁盘管理​ 单块磁盘独立使用,无法合并多块磁盘空间。多块磁盘合并为卷组(VG),统一分配 LV。
​快照功能​ 不支持。支持创建快照(基于写时复制),用于备份或测试。
​数据迁移​需手动复制数据到新磁盘。支持在线迁移(pvmove),无需停机。
​冗余与高可用​依赖硬件 RAID 或手动备份。可与软件 RAID(如 mdadm)结合,实现冗余+灵活性。
​文件系统调整​调整分区大小需格式化。文件系统可独立调整(如 resize2fs 或 xfs_growfs)。
​适用场景​简单存储需求(如个人电脑、单磁盘服务器)。企业级存储、云计算、数据库等需要灵活性和高可用的场景。
​复杂度​简单易用。需掌握 PV/VG/LV 概念和命令(如 lvcreatelvextend)。
​性能开销​无额外开销。 轻微元数据管理开销(可忽略不计)。

1、物理卷(PV)管理​

先创建物理卷

​指令​​作用​​示例​
pvcreate初始化物理磁盘为 PVpvcreate /dev/sdb /dev/sdc
pvdisplay查看 PV 详细信息pvdisplay /dev/sdb
pvs简要列出所有 PVpvs
pvremove删除 PV(需先移除 VG)pvremove /dev/sdb
pvmove迁移 PV 数据到其他磁盘pvmove /dev/sdb /dev/sdd
pvscan扫描系统中所有 PVpvscan
#查看服务器上现有的卷组信息
[root@626nmn ~]# vgsVG     #PV #LV #SN Attr   VSize   VFreecentos   1   2   0 wz--n- <19.51g 4.00m# 初始化 PV
[root@626nmn ~]# pvcreate /dev/sdbPhysical volume "/dev/sdb" successfully created.#查看磁盘信息
[root@626nmn ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 19.5G  0 part ├─centos-root 253:0    0 19.5G  0 lvm  /└─centos-swap 253:1    0   48M  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
sr0              11:0    1  4.4G  0 rom  #简要列出所有 PV
[root@626nmn ~]# pvsPV         VG     Fmt  Attr PSize   PFree /dev/sda2  centos lvm2 a--  <19.51g  4.00m/dev/sdb          lvm2 ---   20.00g 20.00g#扫描系统中所有 PV
[root@626nmn ~]# pvscanPV /dev/sda2   VG centos          lvm2 [<19.51 GiB / 4.00 MiB free]PV /dev/sdb    VG vg01            lvm2 [<20.00 GiB / <20.00 GiB free]Total: 2 [39.50 GiB] / in use: 2 [39.50 GiB] / in no VG: 0 [0   ]#查看 PV 详细信息
[root@626nmn ~]# pvdisplay--- Physical volume ---PV Name               /dev/sda2VG Name               centosPV Size               19.51 GiB / not usable 3.00 MiBAllocatable           yes PE Size               4.00 MiBTotal PE              4994Free PE               1Allocated PE          4993PV UUID               thSYdw-QPCC-JphJ-DXVA-ceck-b3NT-veDkCB--- Physical volume ---PV Name               /dev/sdbVG Name               vg01PV Size               20.00 GiB / not usable 4.00 MiBAllocatable           yes PE Size               4.00 MiBTotal PE              5119Free PE               5119Allocated PE          0PV UUID               CRfbPG-5eQR-eqfQ-NBuE-M9c3-HPf8-YbsJk2删除 PV(需先移除 VG)
[root@626nmn ~]# pvremove /dev/sdbLabels on physical volume "/dev/sdb" successfully wiped.

2、卷组(VG)管理​

 再创建卷组

​指令​​作用​​示例​
vgcreate创建卷组vgcreate vg01 /dev/sdb /dev/sdc
vgextend扩展 VG(添加新 PV)vgextend vg01 /dev/sdd
vgreduce缩减 VG(移除 PV)vgreduce vg01 /dev/sdb
vgdisplay查看 VG 详细信息vgdisplay vg01
vgs简要列出所有 VGvgs
vgremove删除 VGvgremove vg01
vgrename重命名 VGvgrename vg01 vg_new
#先创建物理卷
[root@626nmn ~]# pvcreate /dev/sdbPhysical volume "/dev/sdb" successfully created.#创建卷组 卷名 磁盘
[root@626nmn ~]# vgcreate vg1  /dev/sdbVolume group "vg1" successfully created#查询列出所有的vg
[root@626nmn ~]# vgsVG     #PV #LV #SN Attr   VSize   VFree  centos   1   2   0 wz--n- <19.51g   4.00mvg1      1   0   0 wz--n- <20.00g <20.00g#移除vg
[root@626nmn ~]# vgremove vg1Volume group "vg1" successfully removed

3、逻辑卷(LV)管理​

最后创建逻辑卷 

​指令​​作用​​示例​
lvcreate创建 LVlvcreate -L 50G -n lv_data vg01
lvextend扩展 LV 容量lvextend -L +20G /dev/vg01/lv_data
lvreduce缩减 LV 容量(谨慎操作!)lvreduce -L 30G /dev/vg01/lv_data
lvdisplay查看 LV 详细信息lvdisplay /dev/vg01/lv_data
lvs简要列出所有 LVlvs
lvremove删除 LVlvremove /dev/vg01/lv_data
lvrename重命名 LVlvrename vg01 lv_data lv_new
lvresize调整 LV 大小(自动扩展/缩减文件系统)lvresize -L 60G /dev/vg01/lv_data
lvcreate -s创建 LV 快照lvcreate -L 10G -s -n lv_snap /dev/vg01/lv_data

lvcreate -L <大小> -n <LV名称> <VG名称> 

参数​​说明​​示例​
-L / --size指定逻辑卷大小(支持 KMGT-L 10G(10GB)
-l / --extents指定 PE(物理块)数量(如 -l 100%FREE-l 100%FREE(占用全部剩余空间)
-n / --name指定逻辑卷名称-n lv_data
-s / --snapshot创建快照卷(需指定源 LV)-s -n lv_snap /dev/vg01/lv_data
--type指定 LV 类型(如 linearstripedmirror--type striped -i 2(条带化,2块磁盘)
-i / --stripes条带化数量(需配合 --type striped-i 2(跨 2 块磁盘分布数据)
-I / --stripesize条带大小(默认 64KB)-I 128k(128KB 条带)

 

#-n 逻辑卷命名 -l 50%VG 从卷组 vg1 中分配 ​​50% 的剩余空间​​给新逻辑卷  vg1目标卷组名称
[root@626nmn ~]# lvcreate -n lv01 -l 50%VG vg1Logical volume "lv01" created.
[root@626nmn ~]# lvsLV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot centos -wi-ao---- <19.46g                                                    swap centos -wi-ao----  48.00m                                                    lv01 vg1    -wi-a----- <10.00g    #移除逻辑卷(注意用绝对路径形式)
[root@626nmn ~]# lvremove /dev/vg1/lv01 
Do you really want to remove active logical volume vg1/lv01? [y/n]: yLogical volume "lv01" successfully removed#-L 指定vg1中的2G内存  作为lv02的大小
[root@626nmn ~]# lvcreate -n lv02 -L 2G vg1Logical volume "lv02" created.

 挂载

[root@626nmn ~]# mkdir /a1/lv03
[root@626nmn ~]# mkfs.ext4 /dev/vg1/lv03
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
196608 inodes, 786432 blocks
39321 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=805306368
24 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done [root@626nmn ~]# mount /dev/vg1/lv03  /a1/lv03/# 永久挂载(写入/etc/fstab)
echo "/dev/vg1/lv03 /a1/lv03 ext4 defaults 0 0" >> /etc/fstab

 5、lvm扩容

先创建lvm

[root@626nmn ~]# pvcreate /dev/sdbPhysical volume "/dev/sdb" successfully created.
[root@626nmn ~]# vgcreate vg1 /dev/sdb Volume group "vg1" successfully created
[root@626nmn ~]# lvcreate -n lv03 -L 2G vg1Logical volume "lv03" created.

 情况一、当卷组容量足够

[root@626nmn ~]# vgsVG     #PV #LV #SN Attr   VSize   VFree  centos   1   2   0 wz--n- <19.51g   4.00mvg1      1   1   0 wz--n- <20.00g <18.00g#逻辑卷直接动态调整到3G
[root@626nmn ~]# lvextend -L 3G /dev/vg1/lv03 Size of logical volume vg1/lv03 changed from 2.00 GiB (512 extents) to 3.00 GiB (768 extents).Logical volume vg1/lv03 successfully resized.
[root@626nmn ~]# lvsLV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot centos -wi-ao---- <19.46g                                                    swap centos -wi-ao----  48.00m                                                    lv03 vg1    -wi-a-----   3.00g  #查看磁盘挂载点及大小和文件系统
[root@626nmn ~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  475M     0  475M   0% /dev
tmpfs                   tmpfs     487M     0  487M   0% /dev/shm
tmpfs                   tmpfs     487M  7.7M  479M   2% /run
tmpfs                   tmpfs     487M     0  487M   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        20G  3.4G   17G  18% /
/dev/sda1               xfs       497M  130M  368M  27% /boot
tmpfs                   tmpfs      98M     0   98M   0% /run/user/0
/dev/mapper/vg1-lv03    ext4      2.9G  9.0M  2.8G   1% /a1/lv03#xfs文件系统类型 用 xfs_growfs
#resize2fs更新ext4 文件系统大小
[root@626nmn ~]# resize2fs /dev/mapper/vg1-lv03 
resize2fs 1.42.9 (28-Dec-2013)
The filesystem is already 786432 blocks long.  Nothing to do!

 情况二、卷组不够添加新磁盘

[root@626nmn ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 19.5G  0 part ├─centos-root 253:0    0 19.5G  0 lvm  /└─centos-swap 253:1    0   48M  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
└─vg1-lv03      253:2    0    3G  0 lvm  
sdc               8:32   0   10G  0 disk 
sr0              11:0    1  4.4G  0 rom  #将新加的sdc直接添加到vg1中
[root@626nmn ~]# vgextend vg1 /dev/sdcPhysical volume "/dev/sdc" successfully created.Volume group "vg1" successfully extended#vg1内存从20g增加到30g
[root@626nmn ~]# vgsVG     #PV #LV #SN Attr   VSize   VFree centos   1   2   0 wz--n- <19.51g  4.00mvg1      2   1   0 wz--n-  29.99g 26.99g[root@626nmn ~]# lvsLV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot centos -wi-ao---- <19.46g                                                    swap centos -wi-ao----  48.00m                                                    lv03 vg1    -wi-a-----   3.00g                                                    #增加逻辑卷内存大小到10g
[root@626nmn ~]# lvextend -L 10G   /dev/vg1/lv03 Size of logical volume vg1/lv03 changed from 3.00 GiB (768 extents) to 10.00 GiB (2560 extents).Logical volume vg1/lv03 successfully resized.
[root@626nmn ~]# lvsLV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot centos -wi-ao---- <19.46g                                                    swap centos -wi-ao----  48.00m                                                    lv03 vg1    -wi-a-----  10.00g  #挂载
[root@626nmn ~]# mount /dev/mapper/vg1-lv03  /a1/lv03/[root@626nmn ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  475M     0  475M   0% /dev
tmpfs                   tmpfs     487M     0  487M   0% /dev/shm
tmpfs                   tmpfs     487M  7.7M  479M   2% /run
tmpfs                   tmpfs     487M     0  487M   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        20G  3.4G   17G  18% /
/dev/sda1               xfs       497M  130M  368M  27% /boot
tmpfs                   tmpfs      98M     0   98M   0% /run/user/0
/dev/mapper/vg1-lv03    ext4      2.9G  9.0M  2.8G   1% /a1/lv03#resize2fs更新ext4 文件系统大小
[root@626nmn ~]# resize2fs /dev/mapper/vg1-lv03 

 6、清理lvm环境 

#修改永久挂载配置文件
[root@626nmn ~]# vim /etc/fstab #取消挂载
umount /a1/lv02#先删逻辑卷
[root@626nmn ~]# lvremove /dev/vg1/lv02 
Do you really want to remove active logical volume vg1/lv02? [y/n]: yLogical volume "lv02" successfully removed#再删卷组
[root@626nmn ~]# vgremove vg1Volume group "vg1" successfully removed#最后删物理卷
[root@626nmn ~]# pvremove /dev/sdb Labels on physical volume "/dev/sdb" successfully wiped.[root@626nmn ~]# lvsLV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot centos -wi-ao---- <19.46g                                                    swap centos -wi-ao----  48.00m                                                    [root@626nmn ~]# vgsVG     #PV #LV #SN Attr   VSize   VFreecentos   1   2   0 wz--n- <19.51g 4.00m[root@626nmn ~]# pvsPV         VG     Fmt  Attr PSize   PFree/dev/sda2  centos lvm2 a--  <19.51g 4.00m#mkfs.xfs 将 /dev/sdb 格式化为 ​​XFS 文件系统​​
[root@626nmn ~]# mkfs.xfs /dev/sdb
meta-data=/dev/sdb               isize=512    agcount=4, agsize=1310720 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242880, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0[root@626nmn ~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  475M     0  475M   0% /dev
tmpfs                   tmpfs     487M     0  487M   0% /dev/shm
tmpfs                   tmpfs     487M  7.7M  479M   2% /run
tmpfs                   tmpfs     487M     0  487M   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        20G  3.4G   17G  18% /
/dev/sda1               xfs       497M  130M  368M  27% /boot
tmpfs                   tmpfs      98M     0   98M   0% /run/user/0
/dev/sdb                xfs        20G   33M   20G   1% /a1/my_md0

文件系统调整​

​指令​​作用​​示例​
mkfs格式化 LV 为文件系统mkfs.xfs /dev/vg01/lv_data
resize2fs调整 ext4 文件系统大小(需先扩展 LV)resize2fs /dev/vg01/lv_data
xfs_growfs扩展 XFS 文件系统(需先扩展 LV)xfs_growfs /dev/vg01/lv_data

监控与维护​

​指令​​作用​​示例​
lsblk查看块设备层级(含 LVM)lsblk
df -h查看挂载点及空间使用df -h /mnt/data
vgcfgbackup备份 VG 元数据vgcfgbackup vg01
vgcfgrestore恢复 VG 元数据vgcfgrestore -f /etc/lvm/backup/vg01 vg01

 

http://www.lryc.cn/news/574246.html

相关文章:

  • Python基础(​​FAISS​和​​Chroma​)
  • 十四天机器学习入门——决策树与随机森林:从零构建智慧决策模型
  • 本地文件深度交互新玩法:Obsidian Copilot的深度开发
  • 从Java API调用者到架构思考:我的Elasticsearch认知升级之路
  • RealSense 相机 | 读取IMU | 解决权限问题 | 提供示例程序
  • 用于算法性能预测的 GNN 框架
  • python基于微信小程序的广西文化传承系统
  • C#采集电脑硬件(CPU、GPU、硬盘、内存等)温度和使用状况
  • 【Java高频面试问题】数据结构篇
  • 一键内网穿透,无需域名和服务器,自动https访问
  • 阿里云无影:开启云端办公娱乐新时代
  • 布瑞琳BRANEW:高端洗护领航者,铸就品质生活新典范
  • 异步IO框架io_uring实现TCP服务器
  • 程序包androidx.fragment.app不存在 import androidx.fragment.app
  • 智慧园区数字孪生最佳交付实践:沉淀可复用场景模板,实现快速部署与定制化开发
  • 【每天一个知识点】CITE-seq 技术
  • 后端开发两个月实习总结
  • 深度学习:PyTorch卷积神经网络(CNN)之图像入门
  • 记录MySQL中功能强大的函数使用
  • 构建高性能网络服务:从Reactor模式到现代服务器架构设计
  • 【实时Linux实战系列】实时任务优先级的设置
  • leetcode83.删除排序链表中的重复元素
  • js逻辑:【增量更新机制】
  • STM32 串口通信②:蓝牙模块HC-05控制单片机
  • 国产免费的k8s管理平台
  • 相机标定与3D重建技术通俗讲解
  • springboot开发项目 SLF4J+Logback日志框架集成【最终篇】
  • 用 EXCEL/WPS 实现聚类分析:赋能智能客服场景的最佳实践
  • Linux笔记---线程控制
  • 用安卓手机,怎样远程管理孩子iPhone屏幕使用时间?