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

RAID概念:

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

1. RAID 0 (最少2块) 

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

2. RAID 1(最少2块)

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

 

3. RAID 5(最少3块)

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

4.  RAID 10(最少4块)

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

  

  

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

  • 物理卷处于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

  

  

                

  

RAID与LVM磁盘阵列技术的更多相关文章

  1. 使用RAID与LVM磁盘阵列技术。

    7.2 LVM逻辑卷管理器 前面学习的硬盘设备管理技术虽然能够有效地提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署为RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了.换句话说,当 ...

  2. 第7章 使用RAID与LVM磁盘阵列技术

    章节简述: 您好,此章节为新增加的知识内容,正在努力的排版完善,预习2016年9月中旬完成,感谢您的支持,QQ群:340829. 7.1  磁盘冗余阵列 1988年由加利福尼亚大学伯克利分校发表的文章 ...

  3. Linux 就该这么学 CH07 使用RAID和LVM磁盘阵列技术

    1 RAID (独立冗余磁盘阵列) RAID 技术通过把多个硬盘设备组合成一个容量更大.安全性更好的磁盘阵列,并把数据切割成多个区段之后分别存在各个不同的物理硬盘设备上,然后利用分散读写计数来提升磁盘 ...

  4. RAID和LVM磁盘阵列

    RAID磁盘冗余阵列 CPU的处理性能保持着高速增长,Intel公司在2017年最新发布的i9-7980XE处理器芯片更是达到了18核心36线程.但与此同时,硬盘设备的性能提升却不是很大,因此逐渐成为 ...

  5. linux入门系列13--磁盘管理之RAID、LVM技术

    前一篇文章学习了磁盘分区.格式化.挂载等相关知识,本文将讲解RAID和LVM技术. 磁盘管理操作主要是运维人员用的较多,如果只是单纯的开发人员,可以先略过本文.但是在很多小公司里往往都是一人多用,运维 ...

  6. RAID磁盘阵列技术

    RAID磁盘阵列技术 1.RAID概述 RAID(Redundant Array of Independent Disk),从字面意思讲的是基于独立磁盘的具有冗余的磁盘阵列,其核心思想是将多块独立磁盘 ...

  7. Linux - RAID和LVM

    什么是 RAID 磁盘阵列全名是『 Redundant Arrays of Inexpensive Disks, RAID 』,英翻中的意思是:容错式廉价磁盘阵列. RAID 可以透过一个技术(软件或 ...

  8. RAID和LVM

    EXT家族支持度最广,但创建文件系统慢修复慢存储容量有限 XFS同样是日志文件系统:容量大,支持大存储高性能,创建/修复文件系统快inode与block都是系统需要用到时,才动态配置产生 基本分区(静 ...

  9. RAID独立冗余磁盘阵列

    独立冗余磁盘阵列(Redundant Array OF Independent Disks,RAID)开始于20世纪80年代美国加州大学伯克利分校的一个研究项目,当时RAID被称为廉价冗余磁盘阵列(R ...

随机推荐

  1. js加密,三种编码方式

      ·escape(69个):*/@+-._0-9a-zA-Z     ·encodeURI(82个):!#$&’()*+,/:;=?@-._~0-9a-zA-Z     ·encodeURI ...

  2. [Freemarker] 在Java中简单实现对Freemarker的引用

    Demo目录结构 ├─src │ ├─main │ │ ├─java │ │ │ └─demo │ │ │ └─freemarker │ │ │ ├─main │ │ │ │ Test.java │ ...

  3. android打开文件、保存对话框、创建新文件夹对话框(转载)

    转载地址:点击打开 这是一个简单的只有3个按钮的程序,3个按钮分别对应三种工作的模式(保存.打开和文件夹选择).封装的SimpleFileDialog.java的内容如下: package com.e ...

  4. hibernate课程 初探单表映射1-10 JUnit测试

    三大注解: 1 @Test 2 @Before 3 @After 执行顺序213 demo.java package hibernate_001; import org.junit.After; im ...

  5. 约瑟夫环问题及PHP代码实现

    php实现猴子选大王 <?php /** * @param $n 猴子数量 * @param $m 出列的那个数 */ function king($n,$m){ $monkeys = rang ...

  6. Java 使用正则表达式取出图片地址以及跳转的链接地址,来判断死链(一)

    任务:通过driver的getPageSource()获取网页的源码内容,在把网页中图片链接地址和跳转的url地址进行过滤,在get每个请求,来判断是否是死链 如图: 获取网页源码中所有的href,以 ...

  7. 【洛谷1337】[JSOI2004] 吊打XXX(模拟退火经典题)

    点此看题面 大致题意: 一个平面上有\(n\)个点,每个点有1个权值,现在要选择平面上的一个点,使这\(n\)个点的权值乘上到达选定点的距离之和最小. 模拟退火 我们可以用模拟退火来做这道题. 先将\ ...

  8. iptables 防火墙详解

    一:前言   防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防 ...

  9. Count Numbers(矩阵快速幂)

    Count Numbers 时间限制: 8 Sec  内存限制: 128 MB提交: 43  解决: 19[提交] [状态] [讨论版] [命题人:admin] 题目描述 Now Alice want ...

  10. python实现链表中倒数第k个结点

    题目描述 输入一个链表,输出该链表中倒数第k个结点 第一种实现: # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # ...