磁盘存储与文件系统

磁盘存储与文件系统

  1. 添加存储
  2. 识别存储
  3. 存储分区
  4. 分区格式化
  5. 分区(永久)挂载

磁盘存储

设备号 作用 举例
主设备号 major number 表示设备类型 sda
次设备号 minor number 标识同一类型下的不同设备 sda1,sda2 中的 1,2

设备文件类型:

  • 块设备(b)
  • 字符设备(c)

磁盘设备命名

image-20241106114851826

添加磁盘不重启识别

1
2
3
4
5
6
7
8
9
echo '- - -' > /sys/class/scsi_host/host0/scan
echo '- - -' > /sys/class/scsi_host/host1/scan
echo '- - -' > /sys/class/scsi_host/host2/scan
# host 默认是32个

for i in $(ls /sys/class/scsi_host/)
do
	echo '- - -' > /sys/class/scsi_host/$i/scan
done

硬盘

支持 Nvme 协议硬盘速度是最快的

SATA:SATA 数据端口与电源端口是分开的,即需要两条线,一条数据线,一条电源线 -

SAS:SAS 是一整条线,数据端口与电源端口是一体化的,SAS 中是包含供电线的,而 SATA 中不包 含供电线。SATA 标准其实是 SAS 标准的一个子集,SATA 硬盘可以插入 SAS 主板上,反之不行。

1
2
3
# 磁盘测速
dd | hdparm -t /dev/sda
dd | hdparm -t /dev/nvme0n1

LFF:3.5 寸

SFF:2.5 寸

CHS:24 bit

扇区:sector

柱面:cylinder

分区:Partition

最大寻址空间:8 GB

前 10 位表示 cylinder,中间 8 位表示 head,后面 6 位表示 sector

LBA:48 bit

144 petabytes

LBA = (((C heads-per-cylinder) + H) sectors-per-track) + S -1

必看命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 查看设备信息
lsblk
lsblk -f		# 文件系统 filesystem
lsblk -p		# 设备全路径 path
# 查看磁盘分区
fdisk -l
# 查看块设备属性
blkid

# 查看磁盘容量 Disk Free
df -lh
df -Th

# 查看目录容量 Disk Usage
du -sh

# 文件复制与转换
dd
bs=size			# 指定块的大小
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST  bs=N count=N
seek=n			# 写时,跳过前面的n块
skip=n			# 读时,跳过前面的n块

# 备份/dev/sdx全盘数据,并利用gzip压缩,保存到指定路径
dd if=/dev/sdx | gzip >/path/to/image.gz

存储分区

image-20241107113045829

磁盘分区的优点:

  • 数据管理:通过分区,用户可以将不同类型的文件存放在不同的分区中,便于分类管理和查找。

  • 系统安全:将操作系统和用户数据分别存放在不同的分区中,可以在系统崩溃或需要重装时保护用户数据 不受影响。

  • 性能优化:合理的分区策略可以减少磁盘碎片,提高磁盘的访问速度和效率。

  • 多操作系统支持:通过分区,用户可以在同一台计算机上安装并运行多个操作系统,满足不同的应用需 求。

MBR:Master Boot Record GPT
BOIS UEFI
4 个主分区 128 个分区
32 位的 LBA 64 位 LBA
最大可寻址的存储空间只有 2TB 最大可寻址的存储空间只有 9.4ZB

MBR:Master Boot Record

硬盘的第一个扇区(0 道 0 头 1 扇区)512bytes。

  • 446 bytes: boot loader 启动相关

  • 64 bytes:分区表,其中每 16 bytes 标识一个分区;所以只有四个主分区

  • 2 bytes: 55AA,标识位

image-20241107085425000

MBR 分区表最多支持 4 个主分区,或者 3 个主分区和 1 个扩展分区(扩展分区下可以创建多个逻辑分区)。

  1. 主分区:主要是用来启动操作系统的,它主要放的是操作系统的启动或引导程序,/boot 分区最好放在主分区上;
  2. 扩展分区是不能使用的,它只是做为逻辑分区的容器存在的,先创建一个扩展分区,在扩展分区之上创建逻辑分区;
  3. 我们真正存放数据的是主分区和逻辑分区,大量数据都放在逻辑分区中。

image-20241106184456864

GPT

image-20241106185104413

  • 保护 MBR 区域: 位于磁盘的第一个扇区(LBA0),主要用于兼容性考虑。这个区域存储了一份传统的 MBR 信息,以防止不 支持 GPT 的硬盘管理工具错误识别并破坏硬盘中的数据。
  • 容灾功能:磁盘的 “首尾两部分” 分别保存一份相同的分区表, 并有 CRC 校验位。

分区实践

1
partprobe			# 来刷新分区表,使系统立即识别分区的变化,而无需重启。

fdisk:MBR 分区

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
fdisk <disk>		# 进入分区页面

p					# 打印分区情况
n					# 添加分区
d					# 删除分区
q					# 退出
w					# 保存更改
t					# 更改分区类型

v					# 检验分区

gdisk:GPT 分区

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
gdisk <disk>		# 进入分区页面

p					# 打印分区情况
n					# 添加分区
d					# 删除分区
q					# 退出
w					# 保存更改
t					# 更改文件系统类型

v					# 检验分区

非交互分区

fdisk,gdisk 都可以

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 1
echo -e "n\n\n\n\n\nw\ny\n" | gdisk /dev/nvme0n1

# 2
fdisk /dev/sdb <<EOF
n



+50G
w
EOF

parted 分区

通常用于处理大型磁盘,特别是 在需要更复杂的分区布局时。

1
parted <disk>

文件系统基础

存储设备上组织文件的方法。存储文件的方法和数据结构。

1
2
3
4
# 查看当前操作系统支持的文件系统
ls /lib/modules/$(uname -r)/kernel/fs
# 查看当前操作系统可用的文件系统;被选择了才是可用的。
cat /proc/filesystems

linux 文件系统

ext4 最大 16TB 文件;适合中小型数据存储、个人计算机、一般的服务器环境,或那些包含大量小文件的系统。它的兼容性较高,稳定性和易用性较好,适用于大多数 Linux 用户。
xfs 最大 8EB 文件;适合大型数据库、数据仓库、高并发环境和需要处理大文件的场景,特别适合企业级或数据密集型的服务器应用。XFS 的并发性和快速恢复使其在大规模、高性能环境中表现优异。
swap 虚拟内存
iso9660 光盘
tmpfs 基于内存的文件系统,通常挂载到/tmp

win 文件系统

FAT32 4GB 的文件
NTFS 16EB 的文件

网络文件系统

NFS:Network File System,即网络文件系统

RAW:裸文件系统

没被格式化

直接对磁盘进行读写

  • 数据库存储:一些数据库系统(如 Oracle)允许将数据文件直接存储在裸设备上,以提高 I/O 性能和数 据安全性。这是因为裸设备可以绕过操作系统的文件系统层,减少数据读写时的系统开销。
  • 特定应用需求:某些应用程序可能需要直接访问磁盘硬件,以实现特定的功能或性能要求。在这种情况 下,裸设备提供了一个直接访问磁盘的途径。

FAT 文件系统

便携式存储设备(如 U 盘、SD 卡)

文件系统管理

格式化

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
-L							# 标签 Lable
mkfs -t TYPE <device>		# 默认ext2

mke2fs -t TYPE <device>		# 默认ext2

# mkfs -t TYPE的简写
mkfs.ext4
mkfs.xfs
mkfs.vfat

tune2fs						# 更改ext文件系统参数

dumpe2fs					# 显示ext文件系统信息

xfs_info					# 显示xfs文件系统信息

e2label						# 更改ext文件系统标签

findfs						# 查找分区

挂载

/etc/fstab:自动挂载文件

1
2
3
4
5
6
7
8
9
mount
mount -a			# 挂载/etc/fstab中的设备

umount
-f					# 强制
-l					# 延迟卸载,等分区不忙时
-n					# 不写入日志

findmnt				# 查找

image-20241106200313744

持久挂载

  1. 打开/etc/fstab 文件
  2. 添加挂载信息
  3. 保存并关闭文件
  4. 验证挂载配置
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 应该更改了/etc/fstab,所以使用命令让 systemd 重新加载其缓存的配置
systemctl daemon-reload


mount -a
	#fstab新增条目有效,如果在中间修改了挂载选项,则此命令无效
mount -o remount <device>
	# 删除|修改 /etc/fstab 条目不生效的场景,上面两条命令不生效,先umount再挂载
umount <device>
	# 删除fstab条目后,使用umount卸载
1
2
3
4
5
<文件系统设备> <挂载点> <文件系统类型> <挂载选项> <dump> <fsck>
UUID=6e9983be-5ce1-4c50-9a8b-2d5f07164fb6 /home  ext4    defaults        1 2
# 挂载选项
# dump 是否备份 1:每天;2:隔一天
# fsck 是否进行文件系统检查 0:不检查;1:启动前检查(根文件系统使用);2:启动后检查

image-20241106201844552

文件系统异常修复

一定不要在挂载状态下执行下面命令修复

1
2
3
4
5
6
fsck	# ext
-a		# 自动修复
-r		# 交互修复

e2fsck
xfs_repair

swap:交换分区

防止 因内存不足而导致的系统崩溃或性能下降。

配置过多 swap 空间会造成存储设备处于分配状态但闲置,造成浪费,过多 swap 空间还会掩盖 内存泄露。内存泄露是指程序运行时分配了内存却没有释放,导致系统的内存使用量不断增加。

优化性能,可以将 swap 分布存放, 或 高性能磁盘存放

image-20241107094941110

swap 开启与关闭

1
2
3
4
5
6
# 开启swap
swapon -a
swapon -s	# 显示已使用交换设备的摘要
swapon -p	# 定制swap优先级
# 关闭swap
swapoff -a

/proc/sys/vm/swappiness 的值越高,表示内核越倾向于使用 Swap;值越低,表示内核越倾向于保留物理内存。

创建 swap 分区/文件

centos 中,swap 通过分区实现

ubuntu 中,swap 通过文件实现

CentOSUbuntu 都支持使用 swap 分区和 swap 文件作为交换空间。

swap 分区 适合需要更高性能和稳定性的服务器和长期使用的系统。

swap 文件 更灵活,适合需要动态调整内存需求的桌面环境或开发环境。

swap 分区

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 创建一个分区给swap使用
gdisk / fdisk

# 格式化交换分区
mkswap <device>

# 应用
swapon -a

# 在fstab添加swap
UUID=a93dc00b-f6cc-4475-a665-f793d2eabd96 none           swap    defaults        0 0

swap 文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 创建一个文件给swap使用
dd if=/dev/zero of=/swap.img bs=1G count=3

# 格式化交换文件
mkswap <file>

# 应用
swapon -a

# 在fstab添加swap
/swap.img       none    swap    sw,pri=-1      0       0

移动介质

挂载点通常 在/media 或/mnt 下 。

  • 访问前,介质必须被挂载
  • 摘除时,介质必须被卸载
  • 按照默认设置,非根用户只能挂载某些设备(光盘、DVD、软盘、USB 等等)
1
lsusb		# yum -y install dosfstools usbutils

RAID:磁盘阵列

HBA 卡(Host Bus Adapter)主机总线适配器,传输数据;虽然 HBA 卡可以集成 RAID 功能,但与专业的 RAID 卡 相比,这类 HBA RAID 卡的 RAID 性能通常较低,特别是在支持 RAID 5、RAID 6 等需要较高计算需求的情况下。

RAID 卡,数据保护与优化性能;

  • IT 模式(Initiator Target),软件层面:卡不带磁盘阵列系统,需要进入系统使用软件重组。
  • IR 模式(Integrated RAID),硬件层面:卡自带磁盘阵列系统,进入操作系统,已经组好 RAID。

提高 IO 能力,磁盘并行读写

提高耐用性,磁盘冗余算法来实现

硬 RAID 类型

名称 特点
RAID-0 读写并行, 速度是最快
没有冗余功能,也不具备容错能力
RAID-1 镜像(Mirroring)
它将数据同时写入两个磁盘,实现数据的完全冗余。
RAID-4 奇偶校验码存放在独立的奇偶校验盘上
对数据按块访问
RAID-5 分布式奇偶校验
综合性能最佳的数据保护解决
RAID-6 与 5 类似
容错两个磁盘的故障
需要更多的磁盘空 间,成本更高,且写入性能相对较差。
RAID-10 RAID-1+RAID-0
RAID-01 RAID-0+RAID-1A
RAID-30|50|60|100
JBOD 大容量
将多个独立的磁盘驱动器安装在一个底板上,形成一个逻 辑上的大磁盘组。
RAID7 独立存储计算机
价格高昂
性能最高
RAID-2 汉明码(Hamming Code)校验
错误修正码
对数据按位访问
被淘汰
RAID-3 把数据分 n 块,放在 n 个盘上,第 n+1 放校验容错信息
对数据按位访问
被淘汰

image-20241107165543439

  • 系统盘: Raid1
  • 重要数据:Raid10 +热备盘 + CacheCade
  • 一般数据,不做 raid

软 RAID:mdadm

multiple devices admin

标准的软件 RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)管理工具。

1
2
3
4
mdadm能够执行创建、管理、监控RAID设备的任务,它使用Linux中的md驱动。具体来说,mdadm具备
以下基本功能:
    创建(create)RAID设备。 构建(build)RAID设备。    组装(assemble)RAID设备。
    扩展(grow)RAID设备。 				  管理(manage)RAID设备。   监控(monitor)RAID设备。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
mdadm <device>

-C				# 创建
-A				# 装配
-F				# 监控
-D				# 信息
-r				# 移除
-a				# 添加
-G|--grow		# 调整参数
-S				# 停止

-n N			# 用N个块设备创建
-l N			# RAID等级
-a {yes|no}		# 自动创建
-c chunk_size	# chunk大小
-x N			# 热备份盘个数

cat /proc/mdstat
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 创建
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc -x 1 /dev/sdd

mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/nvme0n{1,2,3,4}p1

[root@loong ~]# lsblk /dev/md0
NAME
    MAJ:MIN RM SIZE RO TYPE  MOUNTPOINTS
md0   9:0    0   4G  0 raid5

mkfs.xfs /dev/md0

nvme0n1
└─nvme0n1p1        linux_raid_member 1.2              loong:0                    a5596195-c0ad-5fae-d9fe-c0f4e7b5a0b8
  └─md0            xfs                                                           68692b1f-6299-4ab4-abca-3b63c5447989
nvme0n2
└─nvme0n2p1        linux_raid_member 1.2              loong:0                    a5596195-c0ad-5fae-d9fe-c0f4e7b5a0b8
  └─md0            xfs                                                           68692b1f-6299-4ab4-abca-3b63c5447989
nvme0n3
└─nvme0n3p1        linux_raid_member 1.2              loong:0                    a5596195-c0ad-5fae-d9fe-c0f4e7b5a0b8
  └─md0            xfs                                                           68692b1f-6299-4ab4-abca-3b63c5447989
nvme0n4
└─nvme0n4p1        linux_raid_member 1.2              loong:0                    a5596195-c0ad-5fae-d9fe-c0f4e7b5a0b8
  └─md0            xfs                                                           68692b1f-6299-4ab4-abca-3b63c5447989
nvme0n5
└─nvme0n5p1
nvme0n6
└─nvme0n6p1

cat /proc/mdstat		# mdadm日志

# 查看详细信息
mdadm -D /dev/md0

# 增加一块新磁盘
mdadm -G /dev/md0 -n 4 -a /dev/nvme0n5p1

模拟磁盘故障

将故障盘换成新盘,自动恢复数据

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# 标记故障盘
mdadm /dev/md0 -f /dev/nvme0n5p1
#会用空闲盘顶上

# 移除故障标识的磁盘
mdadm /dev/md0 -r /dev/nvme0n5p1

# 增加一块新磁盘
mdadm -G /dev/md0 -n 4 -a /dev/nvme0n6p1

# 生成配置文件
mdadm -D -s >> /etc/mdadm.conf

# 停止
mdadm -S /dev/md0
# 基于配置启动
mdadm -A -s /dev/md0
# 强制启动
mdadm -R /dev/md0

热备份:快速恢复数据

mdadm 中,-x 选项用于指定热备盘(hot spare)。热备盘是一个备用磁盘,当 RAID 阵列中的某个磁盘发生故障时,热备盘会自动替换故障盘,从而帮助阵列快速恢复正常状态,提高数据的可用性和容错性。

热备盘仅在 RAID 阵列中存在故障磁盘时才会被激活,平时处于备用状态。

LVM:逻辑卷管理器

在多个物理设备间重新组织文件系统

弹性的更改LVM的容量

实现过程

  • 将设备指定为物理卷
  • 用一个或者多个物理卷来创建一个卷组,物理卷是用固定大小的物理区域(Physical Extent, PE)来定义的
  • 在物理卷上创建的逻辑卷, 是由物理区域(PE)组成
  • 可以在逻辑卷上创建文件系统并挂载

PV(Physical Volume,物理卷)

VG(Volume Group,卷组)

LV(Logical Volume,逻辑卷)

PE(Physical Extent,物理区域):物理卷中可用于分配的最小存储单元。PE的大小是可配置的,默认为4MB。

LE(Logical Extent,逻辑区域):逻辑卷中可用于分配的最小存储单元。一个LE对应一个PE。

image-20241107191007401

LVM分卷

lvm2

pv格式化

1
2
3
4
5
6
# 查看pv信息
pvs
pvdisplay		# 详细信息

# 创建pv
pvcreate /dev/sd{b,c,e,f,g,d}1

创建VG

1
2
3
4
5
6
7
# 查看vg信息
vgs
vgdisplay		# 详细信息

# 创建vg
vgcreate -s 16M vgname /dev/sdb1 /dev/sd{c,e,f,g,d}1
# -s size指定PE大小

创建LV

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 查看lv信息
lvs
lvdisplay		# 详细信息
lvscan			# 查看具体路径

# 创建LV
lvcreate -l 100 -n lvname vgname
# -L size 指定大小
# -l N 指定LE个数
# -n 名字

lvcreate -l 100 -n lv1 testvg
lvcreate -L 5G -n lv2 testvg
lvcreate -l 20%free -n lv3 testvg
lvcreate -l 10%VG -n lv4 testvg

lvscan

LVM管理

大小管理

扩展

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
vgextend
lvextend

# 扩展卷组
vgextend nvlvm /dev/nvme0n6p1

# 扩展逻辑卷
lvextend -L +2G /dev/nvlvm/lvol0

# 扩容文件系统
resize2fs /dev/nvlvm/lvol0
xfs_growfs MOUNTPOINT
1
2
3
4
5
# 扩展卷组
vgextend nvlvm /dev/nvme0n6p1

# 一步到位(逻辑卷,文件系统)
lvresize -r -l +100%FREE /dev/nvlvm/lvol0

缩减

缩减有数据损坏的风险,建议先备份再缩减,不支持在线缩减,要先取消挂载,xfs文件系统不支 持缩减

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
vgreduce
lvreduce

1. 取消挂载
umount

2. 文件系统检测
e2fsck -f /dev/VG_NAME/LV_NAME
xfs_repair /dev/sdb1

3. 缩减文件系统
resize2fs /dev/nvlvm/lvol0 size		# 到多少大小
### XFS 文件系统不支持直接缩减大小需要通过备份数据、删除并重新创建分区或逻辑卷、重新格式化和恢复数据的方式来缩减文件系统。

4. 缩减逻辑卷
lvreduce -L 3G /dev/nvlvm/lvol0

5. 重新挂载
mount

# 一步到位(文件系统,逻辑卷)
lvreduce  -L 1G -r dev/nvlvm/lvol0

# 缩减卷组
vgreduce nvlvm /dev/nvme0n6p1

xfs缩减

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 先备份数据
apt install xfsdump

# 挂载点后面不要加/
xfsdump -f data.img /data

# 卸载文件系统
umount /data

# 缩减逻辑卷
lvreduce -L 10G /dev/vg0/lv0

# 格式化
mkfs.xfs -f /dev/vg0/lv0

# 重新挂载
mount /dev/vg0/lv0 /data

# 还原数据
xfsrestore -f data.img /data

删除

1
lvremove /dev/VG_NAME/LV_NAME

数据迁移

1
pvmove /dev/sdb1	# 将sdb1数据迁移走

跨主机迁移

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
1. 在旧系统中,umount 所有卷组上的逻辑卷

2 禁用卷组
    vgchange -a n vg0
    lvdisplay

3 导出卷组
    vgexport vg0
    pvscan
    vgdisplay
1
2
3
4
5
6
7
8
新主机上操作
4 拆下旧硬盘在目标计算机上,并导入卷组:
	vgimport vg0

5 启用卷组
    vgchange -ay vg0

6 mount 所有卷组上的逻辑卷

卸下一块存储

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 迁移要卸下存储中的分卷的所有数据
pvmove /dev/sdb*

#从 vg 中删除
vgreduce vg /dev/sdb*

# 删除 pv
pvremove /dev/sdb*

# 卸下存储

lvm快照:一次性使用

对逻辑卷(LV)进行备份或创建数据的时间点副本。

分配一定的空间给快照。当原逻辑卷中的数 据发生变化时,变化的数据会被复制到快照区域,而未变化的数据则继续由原逻辑卷和快照共享。

原理:保留旧数据(变动前的数据)

image-20241107204308914

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
1. 创建快照:
 使用lvcreate命令并添加-s参数来创建一个快照。同时,可以使用-L参数指定快照的大小,以及-n参数指定快照的名称。

2 挂载快照:
 将快照挂载到一个空目录上,以便访问快照中的数据。快照通常以只读方式挂载。

3 备份数据:
 在快照挂载后,可以使用常规的备份工具(如rsync、tar等)对快照中的数据进行备份。

4 恢复数据(可选):
 如果需要从快照恢复数据,可以先卸载原始逻辑卷,然后使用lvconvert --merge命令将快照合并到主逻辑卷中。这将把快照时的数据状态应用到主逻辑卷上。

5 删除快照:
 完成备份或数据恢复后,可以使用lvremove命令删除快照。

注意事项

1
2
3
4
5
6
7
8
快照大小:
 在创建快照时,需要评估原逻辑卷中可能发生变化的数据量,并据此设置快照的大小。如果快照大小设置过小,可能无法容纳所有变化的数据,导致快照失效。

快照与卷组:
 快照和原逻辑卷必须位于同一个卷组(VG)中,因为快照需要共享原逻辑卷的物理存储区域(PE)。

快照状态:
 可以通过lvscan命令查看系统中逻辑卷和快照的状态。如果快照处于inactive状态,可能是因为原逻辑卷中的数据变化量超过了快照的大小限制。

快照使用

1
2
3
4
5
6
7
#-s 表示快照
#-L 100M 表示大小,大小取决于你要修改多少文件
#-p r 表示该卷只读
lvcreate -n lv1_snapshot -s -L 100M -p r /dev/testvg/lv1

mount /dev/testvg/lv1_snapshot /mount/lvm_snapshot/
# 快照内容与原内容一样,其实此时快照分区没有内容,看到的内容都来自源分区

还原

1
2
3
4
5
6
# 先卸载
umount /mount/lvm
umount /mount/lvm_snapshot/

lvconvert --merge /dev/testvg/lv1_snapshot
# 恢复之后快照就没有了,是一次性的