RAID与LVM磁盘阵列技术

时间:2023-03-08 20:00:00

RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列)

RAID概念:

RAID技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果

1. RAID 0 (最少2块) 

概念:RAID 0技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理硬盘中。
优点:RAID 0技术能够有效地提升硬盘数据的吞吐速度,在最理想的状态下,硬盘设备的读写性能会提升数倍
缺点:不具备数据备份和错误修复能力,若任意一块硬盘发生故障将导致整个系统的数据都受到破坏

RAID与LVM磁盘阵列技术

2. RAID 1(最少2块)

概念:RAID 1技术把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用。
优点:RAID 1有极高的安全性,当一块硬盘坏掉后完全不会影响到系统的数据,推荐应用场景:系统盘,对于读写速度要求不高的情景下使用
缺点:贵,浪费!设备利用率下降,加入RAID 1的硬盘越多,资源利用率越低

 RAID与LVM磁盘阵列技术

3. RAID 5(最少3块)

概念:RAID 5技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。RAID 5磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上。
   RAID 5技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试重建损坏的数据。
优点:其中任何一块硬盘损坏后不至于出现致命缺陷,可以通过奇偶校验和及时恢复数据
缺点:容错率相对较低,只能容许有一块磁盘的损坏,如果超过1块以上就完了

RAID与LVM磁盘阵列技术

4.  RAID 10(最少4块)

概念:顾名思义,RAID 10技术是RAID 1+RAID 0技术的一个“组合体”。
   RAID 10技术需要至少4块硬盘来组建,其中先分别两两制作成RAID 1磁盘阵列,以保证数据的安全性;然后再对两个RAID 1磁盘阵列实施RAID 0技术,进一步提高硬盘设备的读写速度
优点:只要坏的不是同一组中的所有硬盘,那么最多可以损坏50%的硬盘设备而不丢失数据。
缺点:成本较高,在不考虑成本的情况下是最优的选择。

  

RAID与LVM磁盘阵列技术

  

创建RAID:

mdadm命令用于管理Linux系统中的软件RAID硬盘阵列,格式为“mdadm [参数] <RAID设备名称> [选项] [成员设备名称]”。

mdadm命令的常用参数和作用:

参数	作用
-a 检测设备名称
-n 指定设备数量
-l 指定RAID级别
-C 创建
-v 显示过程
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 停止RAID磁盘阵列
-x 指定备份盘个数

  

  • 创建raid 10:

-C参数代表创建一个RAID阵列卡;-v参数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0就是创建后的RAID磁盘阵列的名称;-l 10参数则代表RAID 10方案;而-n 4参数代表使用4块硬盘来部署这个RAID磁盘阵列,最后再加上4块硬盘设备的名称就搞定了。

[root@zhangjh ~]# mdadm -Cv /dev/md0 -l 10 -n 4 /dev/sd[b-e]
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 20954624K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
  • 把创建好的raid磁盘阵列格式化
[root@zhangjh ~]# mkfs.ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
2621440 inodes, 10477312 blocks
523865 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2157969408
320 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624 Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
  • 创建挂载点然后把硬盘设备进行挂载操作。挂载成功后可看到可用空间为40GB。
[root@zhangjh ~]# mkdir /raid_mount
[root@zhangjh ~]# mou
mount mount.nfs mountpoint mousetweaks
mount.fuse mount.nfs4 mountstats
[root@zhangjh ~]# mount /dev/md0 /raid_mount/
[root@zhangjh ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.0G 15G 17% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 918M 80K 918M 1% /dev/shm
tmpfs 918M 8.9M 909M 1% /run
tmpfs 918M 0 918M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /boot
/dev/md0 40G 49M 38G 1% /raid_mount
  • 最后,查看/dev/md0磁盘阵列的详细信息,并把挂载信息写入到配置文件中,使其永久生效。
[root@zhangjh ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat May 26 11:33:43 2018
Raid Level : raid10
Array Size : 41909248 (39.97 GiB 42.92 GB)
Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent Update Time : Sat May 26 12:51:55 2018
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0 Layout : near=2
Chunk Size : 512K Name : zhangjh:0 (local to host zhangjh)
UUID : 71c316b2:ee22cd6c:378cb2c4:3039fc9e
Events : 17 Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 3 active sync /dev/sde
[root@zhangjh ~]# echo "/dev/md0 /raid_mount ext4 defaults 0 0" >> /etc/fstab

  

故障处理:

  在确认有一块物理硬盘设备出现损坏而不能继续正常使用后,应该使用mdadm -r 命令将其移除,然后查看RAID磁盘阵列的状态,可以发现状态已经改变。

  mdadm /dev/md0 -f /dev/sdb    #-f 模拟设备损坏
[root@zhangjh ~]# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
[root@zhangjh ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat May 26 11:33:43 2018
Raid Level : raid10
Array Size : 41909248 (39.97 GiB 42.92 GB)
Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent Update Time : Sat May 26 13:42:20 2018
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0 Layout : near=2
Chunk Size : 512K Name : zhangjh:0 (local to host zhangjh)
UUID : 71c316b2:ee22cd6c:378cb2c4:3039fc9e
Events : 19 Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 3 active sync /dev/sde 0 8 16 - faulty /dev/sdb #状态已经改变成faulty(有错误的) 

在RAID 10级别的磁盘阵列中,当RAID 1磁盘阵列中存在一个故障盘时并不影响RAID 10磁盘阵列的使用。当购买了新的硬盘设备后再使用mdadm命令来予以替换即可,在此期间我们可以在/RAID目录中正常地创建或删除文件。由于我们是在虚拟机中模拟硬盘,所以先重启系统,然后再把新的硬盘添加到RAID磁盘阵列中。

[root@zhangjh ~]# umount /raid_mount/
重启 [root@zhangjh ~]# mdadm -D /dev/md0           #磁盘损坏,可以看到下面标红处显示的状态是removed
/dev/md0:
Version : 1.2
Creation Time : Sat May 26 11:33:43 2018
Raid Level : raid10
Array Size : 41909248 (39.97 GiB 42.92 GB)
Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 3
Persistence : Superblock is persistent Update Time : Sat May 26 21:48:40 2018
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0 Layout : near=2
Chunk Size : 512K Name : zhangjh:0 (local to host zhangjh)
UUID : 71c316b2:ee22cd6c:378cb2c4:3039fc9e
Events : 25 Number Major Minor RaidDevice State
0 0 0 0 removed        #损坏的sdb盘
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 3 active sync /dev/sde [root@zhangjh ~]# mdadm /dev/md0 -a /dev/sdb      #检测新加入磁盘并加入md0阵列中
mdadm: added /dev/sdb [root@zhangjh ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat May 26 11:33:43 2018
Raid Level : raid10
Array Size : 41909248 (39.97 GiB 42.92 GB)
Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent Update Time : Sat May 26 13:50:30 2018
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1 Layout : near=2
Chunk Size : 512K Rebuild Status : 4% complete #修复进度4% Name : zhangjh:0 (local to host zhangjh)
UUID : 71c316b2:ee22cd6c:378cb2c4:3039fc9e
Events : 29 Number Major Minor RaidDevice State
4 8 16 0 spare rebuilding /dev/sdb #修复中的sdb
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 3 active sync /dev/sde

  

  

LVM逻辑卷管理器:
  •  LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整

RAID与LVM磁盘阵列技术

  • 物理卷处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列,这都可以。卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。这就是LVM的核心理念。
  • 部署LVM时,需要逐个配置物理卷、卷组和逻辑卷。常用的部署命令如下所示:
功能/命令	物理卷管理	卷组管理 	逻辑卷管理
扫描      pvscan      vgscan      lvscan
建立      pvcreate vgcreate lvcreate
显示      pvdisplay vgdisplay lvdisplay
删除      pvremove vgremove lvremove
扩展           vgextend lvextend
缩小           vgreduce lvreduce

  

  •  创建逻辑卷

第1步:硬盘建立物理卷

[root@zhangjh ~]# pvcreate /dev/md0
WARNING: ext4 signature detected on /dev/md0 at offset 1080. Wipe it? [y/n] y
Wiping ext4 signature on /dev/md0.
Physical volume "/dev/md0" successfully created

第2步:把硬盘加入到storage卷组中,然后查看卷组的状态。

[root@zhangjh ~]# vgcreate storage /dev/md0
Volume group "storage" successfully created
[root@zhangjh ~]# vgdisplay
--- Volume group ---
VG Name storage
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 39.96 GiB
PE Size 4.00 MiB
Total PE 10231
Alloc PE / Size 0 / 0
Free PE / Size 10231 / 39.96 GiB
VG UUID TFd8PC-tCS3-NeOq-Xl96-UX8n-ifuI-EsZSjI

第3步:分出一个约为10G的逻辑卷设备并查看逻辑卷状态。  

这里需要注意切割单位的问题。在对逻辑卷进行切割时有两种计量单位。第一种是以容量为单位,所使用的参数为-L。例如,使用-L 150M生成一个大小为150MB的逻辑卷。另外一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为4MB。例如,使用-l 37可以生成一个大小为37×4MB=148MB的逻辑卷。

[root@zhangjh ~]# lvcreate -n zjh_dir -L 10G storage
Logical volume "zjh_dir" created
[root@zhangjh ~]# lvdisplay
--- Logical volume ---
LV Path /dev/storage/zjh_dir
LV Name zjh_dir
VG Name storage
LV UUID lGd2v7-ZS3Z-ByzV-Q0Ai-v8ig-5558-uWxamh
LV Write Access read/write
LV Creation host, time zhangjh, 2018-05-26 16:35:14 +0800
LV Status available
# open 0
LV Size 10.00 GiB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 4096
Block device 253:2

第4步:把生成好的逻辑卷进行格式化,然后挂载使用。

[root@zhangjh ~]# mkfs.ext4 /dev/storage/zjh_dir
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
root@zhangjh ~]# mkdir linshiceshi
[root@zhangjh ~]# mount /dev/storage/zjh_dir linshiceshi/

第5步:查看挂载状态,并写入到配置文件,使其永久生效。

[root@zhangjh ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.0G 15G 17% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 918M 80K 918M 1% /dev/shm
tmpfs 918M 8.9M 909M 1% /run
tmpfs 918M 0 918M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /boot
/dev/mapper/storage-zjh_dir 9.8G 37M 9.2G 1% /root/linshiceshi
[root@zhangjh ~]# echo "/dev/storage/zjh_dir /root/linshiceshi ext4 defaults 0 0" >> /etc/fstab

  

  •  扩容逻辑卷:

只要卷组中有足够的资源,就可以一直为逻辑卷扩容, 扩展前一定要记得卸载设备和挂载点的关联。

[root@zhangjh ~]# umount /root/linshiceshi

第1步:把上一个实验中的逻辑卷 zjh_dir 扩展至15G。

[root@zhangjh ~]# lvextend -L 15G /dev/storage/zjh_dir
Extending logical volume zjh_dir to 15.00 GiB
Logical volume zjh_dir successfully resized

第2步:检查硬盘完整性,并重置硬盘容量。

[root@zhangjh ~]# e2fsck -f /dev/storage/zjh_dir
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/storage/zjh_dir: 11/655360 files (0.0% non-contiguous), 83137/2621440 blocks [root@zhangjh ~]# resize2fs /dev/storage/zjh_dir
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/storage/zjh_dir is mounted on /root/linshiceshi; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 2
The filesystem on /dev/storage/zjh_dir is now 3932160 blocks long.

  

第3步:重新挂载硬盘设备并查看挂载状态。

[root@zhangjh ~]# mount -a
[root@zhangjh ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.0G 15G 17% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 918M 80K 918M 1% /dev/shm
tmpfs 918M 8.9M 909M 1% /run
tmpfs 918M 0 918M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /boot
/dev/mapper/storage-zjh_dir 15G 41M 14G 1% /root/linshiceshi

  

  • 缩小逻辑卷:

相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其丢失数据的风险更大。所以在生产环境中执行相应操作时,一定要提前备份好数据。另外Linux系统规定,在对LVM逻辑卷进行缩容操作之前,要先检查文件系统的完整性(当然这也是为了保证我们的数据安全)。在执行缩容操作前记得先把文件系统卸载掉。

[root@zhangjh ~]# umount /root/linshiceshi/

第1步:检查文件系统的完整性。

[root@zhangjh ~]# e2fsck -f /dev/storage/zjh_dir
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/storage/zjh_dir: 134/983040 files (0.0% non-contiguous), 105047/3932160 blocks

第2步:把逻辑卷 zjh_dir 的容量减小到8G。

[root@zhangjh ~]# resize2fs /dev/storage/zjh_dir 8G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/storage/zjh_dir to 2097152 (4k) blocks.
The filesystem on /dev/storage/zjh_dir is now 2097152 blocks long. [root@zhangjh ~]# lvreduce -L 8G /dev/storage/zjh_dir
WARNING: Reducing active logical volume to 8.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce zjh_dir? [y/n]: y
Reducing logical volume zjh_dir to 8.00 GiB
Logical volume zjh_dir successfully resized

第3步:重新挂载文件系统并查看系统状态。

[root@zhangjh ~]# mount -a
[root@zhangjh ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.0G 15G 17% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 918M 80K 918M 1% /dev/shm
tmpfs 918M 8.9M 909M 1% /run
tmpfs 918M 0 918M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /boot
/dev/mapper/storage-zjh_dir 7.8G 38M 7.4G 1% /root/linshiceshi
  • 逻辑卷快照:

LVM还具备有“快照卷”功能,该功能类似于虚拟机软件的还原时间点功能。例如,可以对某一个逻辑卷设备做一次快照,如果日后发现数据被改错了,就可以利用之前做好的快照卷进行覆盖还原。

LVM的快照卷功能有两个特点: 快照卷的容量必须等同于逻辑卷的容量;

               快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。

首先查看卷组的信息。

[root@zhangjh ~]# vgdisplay 

  --- Volume group ---
VG Name storage
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 39.96 GiB
PE Size 4.00 MiB
Total PE 10231
Alloc PE / Size 2048 / 8.00 GiB
Free PE / Size 8183 / 31.96 GiB
VG UUID TFd8PC-tCS3-NeOq-Xl96-UX8n-ifuI-EsZSjI

通过卷组的输出信息可以清晰看到,卷组中已经使用了 8.813G 的容量,空闲容量还有 31.96 GB。接下来用重定向往逻辑卷设备所挂载的目录中写入一个文件。  

[root@zhangjh ~]# echo "hahahahahahahahahaxxxxxxxxxxxxxx" > /root/linshiceshi/readme.txt
[root@zhangjh ~]# ls -l /root/linshiceshi/readme.txt
-rw-r--r--. 1 root root 33 May 26 17:24 /root/linshiceshi/readme.txt

第1步:使用-s参数生成一个快照卷,使用-L参数指定切割的大小。另外,还需要在命令后面写上是针对哪个逻辑卷执行的快照操作。

[root@zhangjh ~]# lvcreate -L 8183m -s -n SNAPSHOT /dev/storage/zjh_dir
Rounding up size to full physical extent 7.99 GiB
Logical volume "SNAPSHOT" created
[root@zhangjh ~]# lvdisplay
--- Logical volume ---
LV Path /dev/storage/zjh_dir
LV Name zjh_dir
VG Name storage
LV UUID lGd2v7-ZS3Z-ByzV-Q0Ai-v8ig-5558-uWxamh
LV Write Access read/write
LV Creation host, time zhangjh, 2018-05-26 16:35:14 +0800
LV snapshot status source of
SNAPSHOT [active]
LV Status available
# open 1
LV Size 8.00 GiB
Current LE 2048
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 4096
Block device 253:2 --- Logical volume ---
LV Path /dev/storage/SNAPSHOT
LV Name SNAPSHOT
VG Name storage
LV UUID 8WQ4VL-7J4S-c3fG-2fJS-HG0v-DpFA-xyYcw8
LV Write Access read/write
LV Creation host, time zhangjh, 2018-05-26 17:28:19 +0800
LV snapshot status active destination for zjh_dir
LV Status available
# open 0
LV Size 8.00 GiB
Current LE 2048
COW-table size 7.99 GiB
COW-table LE 2046
Allocated to snapshot 0.00%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 4096
Block device 253:3

第2步:在逻辑卷所挂载的目录中创建一个100MB的垃圾文件,然后再查看快照卷的状态。可以发现存储空间占的用量上升了。

[root@zhangjh ~]# dd if=/dev/zero of=/root/linshiceshi/files count=2 bs=1G

2+0 records in
2+0 records out
2147483648 bytes (2.1 GB) copied, 323.427 s, 6.6 MB/s [root@zhangjh linshiceshi]# lvdisplay --- Logical volume ---
LV Path /dev/storage/SNAPSHOT
LV Name SNAPSHOT
VG Name storage
LV UUID 8WQ4VL-7J4S-c3fG-2fJS-HG0v-DpFA-xyYcw8
LV Write Access read/write
LV Creation host, time zhangjh, 2018-05-26 17:28:19 +0800
LV snapshot status active destination for zjh_dir
LV Status available
# open 0
LV Size 8.00 GiB
Current LE 2048
COW-table size 7.99 GiB
COW-table LE 2046
Allocated to snapshot 25.13%      #此处可以看到,写入的2G数据已经占了4分之一
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 4096
Block device 253:3

第3步:为了校验SNAP快照卷的效果,需要对逻辑卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设备与目录的挂载。

[root@zhangjh ~]# umount /root/linshiceshi

[root@zhangjh ~]# lvconvert --merge /dev/storage/SNAPSHOT
Merging of volume SNAPSHOT started.
zjh_dir: Merged: 75.2%
zjh_dir: Merged: 80.4%
zjh_dir: Merged: 84.3%
zjh_dir: Merged: 89.1%
zjh_dir: Merged: 94.0%
zjh_dir: Merged: 99.7%
zjh_dir: Merged: 100.0%
Merge of snapshot into logical volume zjh_dir has finished.
Logical volume "SNAPSHOT" successfully removed

第4步:快照卷会被自动删除掉,并且刚刚在逻辑卷设备被执行快照操作后再创建出来的 2G 的垃圾文件也被清除了。

[root@zhangjh ~]# mount -a
[root@zhangjh ~]# ll /root/linshiceshi/files
ls: cannot access /root/linshiceshi/files: No such file or directory
  • 删除逻辑卷操作:
  •   必须要依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒。

第1步:取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。

[root@zhangjh ~]# umount linshiceshi/
[root@zhangjh ~]# vim /etc/fstab
#/dev/storage/zjh_dir /root/linshiceshi ext4 defaults 0 0

第2步:删除逻辑卷设备。

[root@zhangjh ~]# lvremove /dev/storage/zjh_dir
Do you really want to remove active logical volume zjh_dir? [y/n]: y
Logical volume "zjh_dir" successfully removed

第3步:删除卷组,此处只写卷组名称即可,不需要设备的绝对路径。

[root@zhangjh ~]# vgremove storage
Volume group "storage" successfully removed

第4步:删除物理卷设备。

[root@zhangjh ~]# pvremove /dev/md0
Labels on physical volume "/dev/md0" successfully wiped