使用 RAID 与 LVM 磁盘阵列技术

1. RAID(独立冗余磁盘阵列)

RAID 技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果 。
RAID 技术所具备的冗余备份机制以及带来的硬盘吞吐量的提升 。也就是说, RAID 不仅降低了硬盘设备损坏后丢失数据的几率,还提升了硬盘设备的读写速度,所以它在绝大多数运营商或大中型企业中得以广泛部署和应用。

1.1 RAID 0

RAID 0 技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理硬盘中。
在这里插入图片描述

1.2 RAID 1

把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用 .

在这里插入图片描述

1.3 RAID 5

RAID5 技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。
RAID 5 磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上,这样的好处是其中任何一设备损坏后不至于出现致命缺陷;

在这里插入图片描述

1.4 RAID 10

RAID 10 技术需要至少 4 块硬盘来组建,其中先分别两两制作成 RAID 1 磁盘阵列,以保证数据的安全性;然后再对两个 RAID 1 磁盘阵列实施 RAID 0 技术,进一步提高硬盘设备的读写速度。这样从理论上来讲,只要坏的不是同一组中的所有硬盘,那么最多可以损坏 50%的硬盘设备而不丢失数据。

在这里插入图片描述

1.5 部署磁盘阵列

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

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

新建一个RAID10的独立磁盘冗余阵列,-C 参数代表创建一个 RAID 阵列卡; -v 参数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0就是创建后的RAID磁盘阵列的名称; -a yes 参数代表自动创建设备文件; -n 4 参数代表使用 4 块硬盘来部署这个RAID 磁盘阵列;而-l 10 参数则代表 RAID 10 方案;最后再加上 4 块硬盘设备的名称

[root@localhost ~]# cd /dev
[root@localhost dev]# find sd*
sda
sda1
sda2
sdb
sdb1
sdb2
sdc
sdd
sde
sdf
[root@localhost dev]# mdadm -Cv /dev/md10 -a yes -n 4 -l 10 sdc sdd sde sdf
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/md10 started.

格式化RAID磁盘阵列

[root@localhost dev]# mkfs.ext4 /dev/md10

创建挂载点并把硬盘设备进行挂载操作

[root@localhost /]# mkdir RAID
[root@localhost /]# mount /dev/md10 /RAID
[root@localhost /]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   18G  3.9G   14G  23% /
devtmpfs               985M     0  985M   0% /dev
tmpfs                  994M   80K  994M   1% /dev/shm
tmpfs                  994M  8.9M  986M   1% /run
tmpfs                  994M     0  994M   0% /sys/fs/cgroup
/dev/sdb1              2.0G   33M  2.0G   2% /data
/dev/sda1              497M  125M  373M  26% /boot
/dev/md10               40G   49M   38G   1% /RAID

查看磁盘阵列详细信息,挂载信息写入配置文件中。

[root@localhost /]# mdadm -D /dev/md10 
[root@localhost /]# echo "/dev/md10 /RAID ext4 defaults 0 0"  >> /etc/fstab

1.6 损坏磁盘阵列及修复

移除sdc

[root@localhost /]# mdadm /dev/md10 -f /dev/sdc
mdadm: set /dev/sdc faulty in /dev/md10
[root@localhost /]# mdadm -D /dev/md10

这时可以添加硬盘,添加之后需要重启
先解除挂载
umount /RAID
再把新硬盘添加到磁盘阵列中
mdadm /dev/md10 -a /dev/sdg
再查看时发现sdg取代了sdc的位置
mdadm -D /dev/md10

1.7 磁盘阵列+备份盘

创建一个raid5的磁盘阵列+备份盘

[root@localhost dev]# mdadm -Cv /dev/md5 -a yes -n 3 -x 1 -l 5 sdb sdc sdd sde
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954624K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
[root@localhost dev]# mdadm -D md5
md5:
        Version : 1.2
  Creation Time : Fri Apr 24 22:10:16 2020
  ....
  Number   Major   Minor   RaidDevice State
  0       8       16        0  active sync   /dev/sdb
  1       8       32        1      active sync   /dev/sdc
  4       8       48        2      active sync   /dev/sdd
  3       8       64        -      spare   /dev/sde

格式化为ext4

[root@localhost dev]# mkfs.ext4 md5

将配置文件更新以免重启时磁盘配置失效

[root@localhost dev]# echo "/dev/md5 /RAID ext4 defaults 0 0" >> /etc/fstab

创建挂载目录

[root@localhost /]# mkdir RAID

自动检查/etc/fstab 文件夹中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作

[root@localhost /]# mount -a

这时移除磁盘阵列中的一个硬盘,再查看磁盘阵列,会发现备份盘已经自动顶替并开始了数据同步

[root@localhost /]# mdadm /dev/md5 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md5
[root@localhost /]# mdadm -D /dev/md5
...
Number   Major   Minor   RaidDevice State
3       8       64        0      spare rebuilding   /dev/sde
1       8       32        1      active sync   /dev/sdc
4       8       48        2      active sync   /dev/sdd
0       8       16        -      faulty   /dev/sdb

2. LVM(逻辑卷管理器)

在硬盘分好区或者部署为 RAID |磁盘阵列之后,再想修改硬盘分区大小就不容易了。 LVM 可以允许用户对硬盘资源进行动态调整。

在这里插入图片描述

功能/命令物理卷管理卷组管理逻辑卷管理
扫描pvscanvgscanlvscan
建立pvcreatevgcreatelvcreate
显示pvdisplayvgdisplaylvdisplay
删除pvremovevgremovelvremove
扩展vgextendlvextend
缩小vgreducelvreduce
  1. 让新添加的两块硬盘设备支持 LVM 技术
[root@localhost dev]# pvcreate sdb sdc
  Physical volume "/dev/sdb" successfully created
  Physical volume "/dev/sdc" successfully created

  1. 把两块硬盘设备加入到 storage 卷组中,然后查看卷组的状态。
vgcreate storage /dev/sdb /dev/sdc
vgdisplay
  1. 切割出一个约为 150MB 的逻辑卷设备。
lvcreate -n vo -l 37 storage
lvdisplay
  1. 把生成好的逻辑卷进行格式化,然后挂载使用。
mkfs.ext4 /dev/storage/vo
mkdir linuxprobe
mount /dev/storage/vo /linuxprobe

  1. 查看挂载状态,并写入到配置文件,使其永久生效
df -h
echo "/dev/storage/vo /linuxprobe ext4 defaults 0 0" >> /etc/fstab

2.1 扩容逻辑卷

  1. 卸载设备和挂载点的关联。
umount /linuxprobe/
  1. 逻辑卷 vo 扩展至 290MB
lvextend -L 290M /dev/storage/vo
  1. 检查硬盘完整性,并重置硬盘容量。
e2fsck -f /dev/storage/vo
resize2fs /dev/storage/vo
  1. `重新挂载硬盘设备并查看挂载状态
mount -a
df -h

2.2 缩小逻辑卷

  1. 卸载设备和挂载点的关联
umount /linuxprobe/
  1. 检查文件系统的完整性。
[root@localhost ~]# e2fsck -f /dev/storage/vo 
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/vo: 11/74000 files (0.0% non-contiguous), 15507/299008 blocks
  1. 逻辑卷 vo 的容量减小到 120MB。
[root@localhost ~]# resize2fs /dev/storage/vo 120M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/storage/vo to 122880 (1k) blocks.
The filesystem on /dev/storage/vo is now 122880 blocks long.
[root@localhost ~]# lvreduce -L 120M /dev/storage/vo
  WARNING: Reducing active logical volume to 120.00 MiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vo? [y/n]: y
  Reducing logical volume vo to 120.00 MiB
  Logical volume vo successfully resized

  1. 重新挂载文件系统并查看系统状态。
[root@localhost ~]# mount -a
[root@localhost ~]# df -h
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root    18G  3.9G   14G  23% /
devtmpfs                985M     0  985M   0% /dev
tmpfs                   994M   80K  994M   1% /dev/shm
tmpfs                   994M  8.9M  986M   1% /run
tmpfs                   994M     0  994M   0% /sys/fs/cgroup
/dev/sda1               497M  119M  379M  24% /boot
/dev/mapper/storage-vo  113M  1.6M  103M   2% /linuxprobe

2.3 逻辑卷快照

➢ 快照卷的容量必须等同于逻辑卷的容量;
➢ 快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。
首先查看卷组的信息。接下来用重定向往逻辑卷设备所挂载的目录中写入一个文件。

[root@localhost ~]# vgdisplay
[root@localhost ~]# ll > /linuxprobe/aaa.txt
  1. 使用-s 参数生成一个快照卷,使用-L 参数指定切割的大小。另外,还需要在命令后面写上是针对哪个逻辑卷执行的快照操作。
[root@localhost ~]# lvcreate -L 120M -s -n SNAP /dev/storage/vo
  Logical volume "SNAP" created
  1. 在逻辑卷所挂载的目录中创建一个 100MB 的垃圾文件,然后再查看快照卷的状态。可以发现存储空间占的用量上升了。
[root@localhost linuxprobe]# dd if=/dev/zero of=file.txt count=1 bs=100M
1+0 records in
1+0 records out
104857600 bytes (105 MB) copied, 0.744574 s, 141 MB/s
[root@localhost linuxprobe]# df -h
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root    18G  3.9G   14G  23% /
devtmpfs                985M     0  985M   0% /dev
tmpfs                   994M   80K  994M   1% /dev/shm
tmpfs                   994M  8.9M  986M   1% /run
tmpfs                   994M     0  994M   0% /sys/fs/cgroup
/dev/sda1               497M  119M  379M  24% /boot
/dev/mapper/storage-vo  113M  102M  2.4M  98% /linuxprobe
  1. 为了校验 SNAP 快照卷的效果,需要对逻辑卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设备与目录的挂载。
[root@localhost /]# umount /linuxprobe/
[root@localhost storage]# lvconvert --merge /dev/storage/SNAP 
  Merging of volume SNAP started.
  vo: Merged: 28.0%
  vo: Merged: 100.0%
  Merge of snapshot into logical volume vo has finished.
  Logical volume "SNAP" successfully removed

  1. 快照卷会被自动删除掉,并且刚刚在逻辑卷设备被执行快照操作后再创建出来的 100MB 的垃圾文件也被清除了。
[root@localhost storage]# mount -a
[root@localhost storage]# cd /linuxprobe/
[root@localhost linuxprobe]# ll
total 14
-rw-r--r--. 1 root root   674 Apr 26 14:02 aaa.txt
drwx------. 2 root root 12288 Apr 26 10:20 lost+found

2.4 删除逻辑卷

提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒

  1. 取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数
[root@localhost /]# umount /linuxprobe/
 [root@localhost linuxprobe]# vim /etc/fstab
  1. 删除逻辑卷设备,需要输入 y 来确认操作。
[root@localhost /]# lvremove /dev/storage/vo 
Do you really want to remove active logical volume vo? [y/n]: y\
  Logical volume "vo" successfully removed
  1. 删除卷组,此处只写卷组名称即可,不需要设备的绝对路径。
[root@localhost /]# vgremove storage
  Volume group "storage" successfully removed
  1. 删除物理卷设备。
[root@localhost /]# pvremove /dev/sdb /dev/sdc
  Labels on physical volume "/dev/sdb" successfully wiped
  Labels on physical volume "/dev/sdc" successfully wiped
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值