大茂名网

 找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 203|回复: 0

解析:-第7章 使用RAID与LVM磁盘阵列技术 2023/2/2 11:28:21

[复制链接]

1万

主题

1万

帖子

6万

积分

钻石元老

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
62908
发表于 2023-2-2 11:28 | 显示全部楼层 |阅读模式

马上注册登陆,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?用户注册

x
1 RAID 0Linux命令大全的相关资讯可以到我们网站了解一下,从专业角度出发为您解答相关问题,给您优质的服务!
RAID 0技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入各个物理硬盘中。这样一来,在比较理想的状态下,硬盘设备的读写性能会提升数倍,但是若任意一块硬盘发生故障,将导致整个系统的数据都受到破坏。通俗来说,RAID 0技术能够有效地提升硬盘数据的吞吐速度,但是不具备数据备份和错误修复能力。如图7-1所示,数据被分别写入到不同的硬盘设备中,即硬盘A和硬盘B设备会分别保存数据资料,比较终现提升读取、写入速度的效果。 图7-1 RAID 0技术示意图 2 RAID 1 尽管RAID 0技术提升了硬盘设备的读写速度,但它是将数据依次写入到各个物理硬盘中。也就是说,它的数据是分开存放的,其中任何一块硬盘发生故障都会损坏整个系统的数据。因此,如果生产环境对硬盘设备的读写速度没有要求,而是希望增加数据的安全性时,就需要用到RAID 1技术了。 在图7-2所示的RAID 1技术示意图中可以看到,它是把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用。 图7-2 RAID 1技术示意图 考虑到在进行写入操作时因硬盘切换带来的开销,因此RAID 1的速度会比RAID 0有微弱地降低。但在读取数据的时候,操作系统可以分别从两块硬盘中读取信息,因此理论读取速度的峰值可以是硬盘数量的倍数。另外,平时只要保证有一块硬盘稳定运行,数据就不会出现损坏的情况,可靠性较高。 RAID 1技术虽然十分注重数据的安全性,但是因为是在多块硬盘设备中写入了相同的数据,因此硬盘设备的利用率得以下降。从理论上来说,图7-2所示的硬盘空间的真可用率只有50%,由3块硬盘设备组成的RAID 1磁盘阵列的可用率只有33%左右;以此类推。而且,由于需要把数据同时写入到两块以上的硬盘设备,这疑也在一定程度上增大了系统计算功能的负载。 那么,有没有一种RAID方案既考虑到了硬盘设备的读写速度和数据安全性,还兼顾了成本问题呢际上,单从数据安全和成本问题上来讲,就不可能在保持原有硬盘设备的利用率且还不增加新设备的情况下,能大幅提升数据的安全性。刘遄老师也没有必要忽悠各位读者,下面将要讲解的RAID 5技术虽然在理论上兼顾了者(读写速度、数据安全性、成本),但际上更像是对这者的“相互妥协”。 3 RAID 5 如图7-3所示,RAID5技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。RAID 5磁盘阵列中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上。这样的好处是,其中任何一设备损坏后不至于出现致命缺陷。图7-3中P部分存放的就是数据的奇偶校验信息。换句话说,就是RAID 5技术际上没有备份硬盘中的真数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试重建损坏的数据。RAID这样的技术特性“妥协”地兼顾了硬盘设备的读写速度、数据安全性与存储成本问题。 图7-3 RAID5技术示意图 RAID 5比较少由3块硬盘组成,使用的是硬盘切割(D S)技术。相较于RAID 1级别,好处就在于保存的是奇偶校验信息而不是一模一样的文件内容,所以当重复写入某个文件时,RAID 5级别的磁盘阵列组只需要对应一个奇偶校验信息就可以,效率更高,存储成本也会随之降低。 4 RAID 10 RAID 5技术是出于硬盘设备的成本问题对读写速度和数据的安全性能有了一定的妥协,但是大部分企业更在乎的是数据本身的价值而非硬盘价格,因此在生产环境中主要使用RAID 10技术。 顾思义,RAID 10技术是RAID 1+RAID 0技术的一个“组合体”。如图7-4所示,RAID 10技术需要至少4块硬盘来组建,其中先分别两两制作成RAID 1磁盘阵列,以保证数据的安全性;然后再对两个RAID 1磁盘阵列施RAID 0技术,进一步提高硬盘设备的读写速度。这样从理论上来讲,只要坏的不是同一阵列中的所有硬盘,那么比较多可以损坏50%的硬盘设备而不丢失数据。由于RAID 10技术继承了RAID 0的高读写速度和RAID 1的数据安全性,在不考虑成本的情况下RAID 10的性能也超过了RAID 5,因此当前成为广泛使用的一种存储技术。 图7-4 RAID 10技术示意图 T 由于RAID 10是由RAID 1和RAID 0组成的,因此正确的叫法是“RAID一零”,而不是“RAID十”。 仔细查看图7-4可以发现,RAID 10是先对信息进行分割,然后再两两一组制作镜像。也就是先将RAID 1作为比较低级别的组合,然后再使用RAID 0技术将RAID 1磁盘阵列组合到一起,将它们视为“一整块”硬盘。而RAID 01则相反,它是先将硬盘分为两组,然后使用RAID 0作为比较低级别的组合,再将这两组RAID 0硬盘通过RAID 1技术组合到一起。 RAID 10技术和RAID 01技术的区别非常明显。在RAID 10中,任何一块硬盘损坏都不会影响到数据安全性,其余硬盘均会正常运作。但在RAID 01中,只要有任何一块硬盘损坏,比较低级别的RAID 0磁盘阵列马上会停止运作,这可能造成严重隐患。所以RAID 10远比RAID 01常见,很多主板甚至不支持RAID 01。 711 部署磁盘阵列 在具备了第6章的硬盘设备管理基础之后,再来部署RAID和LVM就变得十分轻松了。首先,需要在虚拟机中添加4块硬盘设备来制作一个RAID 10磁盘阵列,如图7-5所示。这里不再详述添加硬盘的步骤,大家自己操作就行。记得硬盘要用SCSI或SATA接口的类型,大小默认20GB就可以。 这几块硬盘设备是模拟出来的,不需要特意去买几块真的物理硬盘插到电脑上。需要注意的是,一定要记得在关闭系统之后,再在虚拟机中添加硬盘设备,否则可能会因为计算机架构的不同而导致虚拟机系统法识别新添加的硬盘设备。 当前,生产环境中用到的服务器一般都配备RAID阵列卡,尽管服务器的价格越来越便宜,但是我们没有必要为了做一个验而去单独购买一台服务器,而是可以学会使用命令在L系统中创建和管理软件RAID磁盘阵列,而且它涉及的理论知识和操作过程与生产环境中的完全一致。 命令用于创建、调整、监控和管理RAID设备,英文全称为“ ”,语法格式为“参数 硬盘称”。 图7-5 添加四块硬盘设备 命令中的常用参数及作用如表7-2所示。 表7-2 命令的常用参数和作用 参数 作用 - 检测设备称 - 指定设备数量 - 指定RAID级别 -C 创建 - 显示过程 - 模拟设备损坏 - 移除设备 -Q 查看摘要信息 -D 查看详细信息 -S 停止RAID磁盘阵列 接下来,使用命令创建RAID 10,称为“0”。 第6章中讲到,是L系统内核中用来给硬件命的服务,其命规则也非常简单。我们可以通过命规则猜测到第二个SCSI存储设备的称会是,然后依此类推。使用硬盘设备来部署RAID磁盘阵列很像是将几位同学组成一个班级,但总不能将班级命为吧。尽管这样可以一眼看出它是由哪些元素组成的,但是并不利于记忆和阅读。更何况如果使用10、50、100个硬盘来部署RAID磁盘阵列呢 此时,就需要使用中的参数了。其中,-C参数代表创建一个RAID阵列卡;-参数显示创建的过程,同时在后面追加一个设备称0,这样0就是创建后的RAID磁盘阵列的称;- 4参数代表使用4块硬盘来部署这个RAID磁盘阵列;而- 10参数则代表RAID 10方案;比较后再加上4块硬盘设备的称就搞定了。 [@ ~]# -C 0 - 4 - 10 : 2 : 2 : 512K : 20954112K : D 12 : 0 初始化过程大约需要1分钟左右,期间可以用-D参数进行查看。也可以用-Q参数查看简要信息: [@ ~]# -Q 0 0: 3997GB 10 4 , 0 U - 同学们可能会好奇,为什么4块20GB大小的硬盘组成的磁盘阵列组,可用空间只有3997GB呢 这里不得不提到RAID 10技术的原理。它通过两两一组硬盘组成的RAID 1磁盘阵列保证了数据的可靠性,其中每一份数据都会被保存两次,因此导致硬盘存在50%的使用率和50%的冗余率。这样一来,80GB的硬盘容量也就只有一半了。 等两分钟后,把制作好的RAID磁盘阵列格式化为E4格式: [@ ~]# 4 0 2 1443 (10-J-2022) C 10477056 4 2621440 F UUID: 168318-919-4211-4-44379 S : 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624 A : W : C (65536 ): W : 随后,创建挂载点,将硬盘设备进行挂载操作: [@ ~]# RAID [@ ~]# 0 RAID [@ ~]# - F S U A U% M 969M 0 969M 0% 984M 0 984M 0% 984M 96M 975M 1% 984M 0 984M 0% 17G 39G 14G 23% 0 67G 67G 0 100% 1 1014M 152M 863M 15% 197M 16K 197M 1% 42 197M 35M 194M 2% 0 0 40G 49M 38G 1% RAID 再来查看0磁盘阵列设备的详细信息,确认RAID级别(R L)、阵列大小(A S)和总硬盘数(T D)都是否正确: [@ ~]# -D 0 0: V : 12 C T : W J 13 08:24:58 2022 R L : 10 A S : 41908224 (3997 GB 4291 GB) U D S : 20954112 (1998 GB 2146 GB) R D : 4 T D : 4 P : S U T : T J 14 04:49:57 2022 S : A D : 4 W D : 4 F D : 0 S D : 0 L : =2 C S : 512K C P : N : :0 ( ) UUID : 289501:35709:7918977:5111 E : 17 N M M RD S 0 8 16 0 -A 1 8 32 1 -B 2 8 48 2 -A 3 8 64 3 -B 如果想让创建好的RAID磁盘阵列能够一直提供服务,不会因每次的重启操作而取消,那么一定要记得将信息添加到文件中,这样可以确保在每次重启后RAID磁盘阵列都是有效的。 [@ ~]# "0 RAID 4 0 0" [@ ~]# # # # C T J 21 05:03:40 2022 # # A , , '' # S (5), (8), (8) (8) # # A , ' -' # # 0 0 UUID=2664-91-4522-8-07430 0 0 0 0 9660 0 0 0 RAID 4 0 0 712 损坏磁盘阵列及修复 之所以在生产环境中部署RAID 10磁盘阵列,就是为了提高存储设备的IO读写速度及数据的安全性,但因为我们的硬盘设备是在虚拟机中模拟出来的,所以对于读写速度的改善可能并不直观。下面决定给同学们讲解一下RAID磁盘阵列损坏后的处理方法,以确保大家以后在步入运维岗位后不会因为突发事件而手忙脚乱。 在确认有一块物理硬盘设备出现损坏而不能再继续正常使用后,应该使用命令将其移除,然后查看RAID磁盘阵列的状态,可以发现状态已经改变: [@ ~]# 0 - : 0 [@ ~]# -D 0 0: V : 12 C T : T J 14 05:12:20 2022 R L : 10 A S : 41908224 (3997 GB 4291 GB) U D S : 20954112 (1998 GB 2146 GB) R D : 4 T D : 4 P : S U T : T J 14 05:33:06 2022 S : , A D : 3 W D : 3 F D : 1 S D : 0 L : =2 C S : 512K C P : N : :0 ( ) UUID : 810668:7627733:017041:12376 E : 19 N M M RD S 0 0 0 1 8 32 1 -B 2 8 48 2 -A 3 8 64 3 -B 0 8 16 刚刚使用的-参数是让硬盘模拟损坏的效果。为了能够彻底地将故障盘移除,还要再执行一步操作: [@ ~]# 0 - : 0 在RAID 10级别的磁盘阵列中,当RAID 1磁盘阵列中存在一个故障盘时并不影响RAID 10磁盘阵列的使用。当购买了新的硬盘设备后再使用命令予以替换即可,在此期间可以在RAID目录中正常地创建或删除文件。由于我们是在虚拟机中模拟硬盘,所以先重启系统,然后再把新的硬盘添加到RAID磁盘阵列中。 更换硬盘后再次使用-参数进行添加操作,系统默认会自动开始数据的同步工作。使用-D参数即可看到整个过程和进度(用百分比表示): [@ ~]# 0 - : [@ ~]# -D 0 0: V : 12 C T : T J 14 05:12:20 2022 R L : 10 A S : 41908224 (3997 GB 4291 GB) U D S : 20954112 (1998 GB 2146 GB) R D : 4 T D : 4 P : S U T : T J 14 05:37:32 2022 S : , , A D : 3 W D : 4 F D : 0 S D : 1 L : =2 C S : 512K C P : R S : 77% N : :0 ( ) UUID : 810668:7627733:017041:12376 E : 34 N M M RD S 4 8 16 0 1 8 32 1 -B 2 8 48 2 -A 3 8 64 3 -B 这时候可能会有学生举手提问了:“老师,我们机房的阵列卡上有30多块硬盘呢,就算知道硬盘发生了故障,我也不知道该替换哪一块啊,要是错拔了好设备那就麻烦了。”其不用担心,因为一旦硬盘发生故障,服务器上相应的指示灯也会变成红灯(或者变成一直闪烁的灯),如图7-6所示。 713 磁盘阵列+备份盘 RAID 10磁盘阵列中比较多允许50%的硬盘设备发生故障,但是存在这样一种极端情况,即同一RAID 1磁盘阵列中的硬盘设备若全部损坏,也会导致数据丢失。换句话说,在RAID 10磁盘阵列中,如果RAID 1中的某一块硬盘出现了故障,而我们正在前往修复的路上,恰巧该RAID 1磁盘阵列中的另一块硬盘设备也出现故障,那么数据就被彻底丢失了。刘遄老师可真不是乌鸦嘴,这种RAID 1磁盘阵列中的硬盘设备同时损坏的情况还真被我的学生遇到过。 在这样的情况下,该怎么办呢其,完全可以使用RAID备份盘技术来预防这类事故。该技术的核心理念就是准备一块足够大的硬盘,这块硬盘平时处于闲置状态,一旦RAID磁盘阵列中有硬盘出现故障后则会马上自动高替上去。这样很棒吧! 为了避免多个验之间相互发生冲突,我们需要保证每个验的相对单独性,为此需要大家自行将虚拟机还原到初始状态。另外,由于刚才已经演示了RAID 10磁盘阵列的部署方法,现在来看一下RAID 5的部署效果。部署RAID 5磁盘阵列时,至少需要用到3块硬盘,还需要再加一块备份硬盘(也叫热备盘),所以总计需要在虚拟机中模拟4块硬盘设备,如图7-7所示。 图7-7 重置虚拟机后,再添加四块硬盘设备 现在创建一个RAID 5磁盘阵列+备份盘。在下面的命令中,参数- 3代表创建这个RAID 5磁盘阵列所需的硬盘数,参数- 5代表RAID的级别,而参数- 1则代表有一块备份盘。当查看0(即RAID 5磁盘阵列的称)磁盘阵列的时候,就能看到有一块备份盘在等待中了。 [@ ~]# -C 0 - 3 - 5 - 1 : - : - : 512K : 20954112K : D 12 : 0 [@ ~]# -D 0 0: V : 12 C T : T J 14 06:12:32 2022 R L : 5 A S : 41908224 (3997 GB 4291 GB) U D S : 20954112 (1998 GB 2146 GB) R D : 3 T D : 4 P : S U T : T J 14 06:14:16 2022 S : A D : 3 W D : 4 F D : 0 S D : 1 L : - C S : 512K C P : N : :0 ( ) UUID : 0346:308:8514:21 E : 18 N M M RD S 0 8 16 0 1 8 32 1 4 8 48 2 3 8 64 现在将部署好的RAID 5磁盘阵列格式化为E4文件格式,然后挂载到目录上,之后就能够使用了: [@ ~]# 4 0 2 1443 (10-J-2022) C 10477056 4 2621440 F UUID: 016386-1126-4799-85-716242276 S : 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624 A : W : C (65536 ): W : [@ ~]# RAID [@ ~]# "0 RAID 4 0 0" 由3块硬盘组成的RAID 5磁盘阵列,其对应的可用空间是-1,也就是40GB。热备盘的空间不计算进来,平时完全就是在“睡觉”,只有在意外出现时才会开始工作。 [@ ~]# - [@ ~]# - F S U A U% M 969M 0 969M 0% 984M 0 984M 0% 984M 96M 974M 1% 984M 0 984M 0% 17G 39G 14G 23% 0 67G 67G 0 100% 1 1014M 152M 863M 15% 197M 16K 197M 1% 42 197M 35M 194M 2% 0 0 40G 49M 38G 1% RAID 比较后是见证奇迹的时刻!我们再次把硬盘设备移出磁盘阵列,然后迅速查看0磁盘阵列的状态,就会发现备份盘已经被自动高替上去并开始了数据同步。RAID中的这种备份盘技术非常用,可以在保证RAID磁盘阵列数据安全性的基础上进一步提高数据可靠性。所以,如果不差钱的话,还是买上一块备份盘以防万一吧。 [@ ~]# 0 - : 0 [@ ~]# -D 0 0: V : 12 C T : T J 14 06:12:32 2022 R L : 5 A S : 41908224 (3997 GB 4291 GB) U D S : 20954112 (1998 GB 2146 GB) R D : 3 T D : 4 P : S U T : T J 14 06:24:38 2022 S : A D : 3 W D : 3 F D : 1 S D : 0 L : - C S : 512K C P : N : :0 ( ) UUID : 0346:308:8514:21 E : 37 N M M RD S 3 8 64 0 1 8 32 1 4 8 48 2 0 8 16 是不是感觉很有意思呢另外考虑到篇幅限制,我们一直没有复制、粘贴RAID目录中文件的信息,有兴趣的同学可以自己动手试一下。里面的文件内容非常安全,不会出现丢失的情况。如果后面想再添加一块热备盘进来,使用-参数就可以了。 714 删除磁盘阵列 在生产环境中,RAID磁盘阵列部署后一般不会被轻易停用。但万一赶上了,还是要知道怎么将磁盘阵列删除。前面那种RAID 5+热备盘损坏的情况是比较复杂的,所以以这种情形来进行讲解是再好不过了。 首先,需要将所有的磁盘都设置成停用状态: [@ ~]# RAID [@ ~]# 0 - : 0 [@ ~]# 0 - : 0 [@ ~]# 0 - : 0 然后再逐一移除出去: [@ ~]# 0 - : 0 [@ ~]# 0 - : 0 [@ ~]# 0 - : 0 [@ ~]# 0 - : 0 如果着急,也可以用“ 0 - ”这一条命令搞定。但是,在早期版本的服务器中,这条命令中的-和-不能一起使用,因此保守起见,还是一步步地操作吧。 将所有的硬盘都移除后,再来查看磁盘阵列组的状态: [@ ~]# -D 0 0: V : 12 C T : F J 15 08:53:41 2022 R L : 5 A S : 41908224 (3997 GB 4291 GB) U D S : 20954112 (1998 GB 2146 GB) R D : 3 T D : 0 P : S U T : F J 15 09:00:57 2022 S : , FAILED A D : 0 F D : 0 S D : 0 L : - C S : 512K C P : N M M RD S 0 0 0 0 0 1 0 0 2 很棒!下面继续停用整个RAID磁盘阵列,咱们的工作就彻底完成了: [@ ~]# -- 0 : 0 [@ ~]# 0 : '0': N 在有一些老版本的服务器中,在使用--参数后依然会保留设备文件。这很明显是没有处理干净,这时再执行一下“ -- 0”命令即可。同学们可以记一下,以备不时之需。 出现问题大胆提问!
爱上大茂名,喜当大猫友,吃喝玩乐事,天天乐开怀!
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

QQ|客服:0668-2886677QQ:75281068|大茂微博|小黑屋|手机版|Archiver|大茂名网 ( 粤ICP备18149867号 )茂名市大茂科技有限公司 版权所有 

GMT+8, 2025-2-3 02:53 , Processed in 0.292114 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表