RAID各个级别的优缺点

    RAID:Redundant Arrays of Inexpensive(Independent) Disks
                    介绍:
                        多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供

                        提高IO能力
                            磁盘并行读写
                        提高耐用性
                            磁盘冗余来实现
                        RAID的实效方式:
                            外接式磁盘阵列:通过扩展卡提供适配能力
                            内接式RAID:主板集成RAID控制器,按照OS前在BIOS里面配置
                            软件RAID:通过OS实现
                    RAID级别:
                        RAID-0:
                            读、写性能提升
                            可用空间:N*min(S1,S2,...)
                            无容错能力
                            最少磁盘数:2, 2+
                            特点:
                                优点:读、写性能提升,不存在校验,不会占太多CPU资源,设计、使用和配置比较简单;
                                缺点:无冗错能力,不能用于对数据安全性要求高的环境;
                                可用空间:N (硬盘个数) *min (s1,s2...取决于最小的硬盘空间)
                                适用领域:视频生成和编辑、图形编辑,其它需要大的传输宽带的操作

                        RAID-1:
                            读性能提升、写性能略有下降
                            可用空间:1*min(S1,S2,...)
                            有冗余能力
                            最少磁盘数:2, 2N
                            特点:
                                磁盘数:最低2个,2n个,n大于等于1
                                优点:
                                    读性能提升、写性能略有下降,具有100%数据冗余,提供最高的数据安全保障,理论上可实现2倍的读取效率设计和使用较简单;
                                缺点:
                                    开销大,空间利用率只有50%,在写性能方面提升不大;
                                有冗余能力
                                可用空间:1*min (s1,s2...由最小硬盘的空间决定)
                                适用领域:财务、金融等高可用、高安全的数据存储环境
                        RAID-2:
                            采用校验冗余
                                把数据分散为位或块,加入汉明码,间隔写入到磁盘阵列的每个磁盘中在成员磁盘上的地址都一样
                            采用并行存取的方式
                            花费大、成本昂贵

                        RAID-3:
                            数据块被分成更小的块,并行传输到各个成员磁盘上,同时计算xor校验数据存放到专用的校验磁盘上;
                            xor算法:(异或)
                                相同为假、不同为真

                            特点:
                                磁盘数:最低3个
                                优点:
                                    读写性能都较好,当磁盘损坏时,对整体吞吐量影响较小,减少了开销;
                                缺点:
                                    控制器设计复杂,采用并行的存取方式,主轴同步时吞吐量没有提高,校验磁盘的写性能有瓶颈;
                                适用领域:
                                    视频生成和图形、视频编辑等;需要高吞吐量的应用环境;

                        RAID-4:
                            多块数据盘异或运算值存于专用校验盘
                            校验存储在固定磁盘
                            最少需要3块硬盘;
                            数据交叉存储在2块硬盘中,再由第3块硬盘存储数据的校验码;
                            校验码是由2块硬盘中的chunk块按位进行异或运算后而得的值;
                            其中1块硬盘坏了不影响文件数据读写操作,数据还可以恢复,但就是有些慢;即使坏了1块硬盘仍然继续在线工作时,称为降级模式,此时数据没有保障,风险较大;所以要马上用新硬盘替换坏硬盘,暂定业务,用2块可用盘进行计算,按位校验恢复数据到新硬盘即可,当所有数据都恢复到新硬盘后,就能继续正常工作了;但是万一在恢复过程中也是有风险的;
                            RAID4还有一个固有缺点:用单块盘作为存放校验码,无论前面哪块盘访问数据,校验盘都得被访问;即集中存放校验码的校验盘访问压力过大,很容易造成性能瓶颈;所以,尽早发现坏盘损坏,就能尽早更换;可以在接1块新硬盘当做空闲备用盘。
                             异或运算,存储校验码:
                            例如:1101,0110按位校验,校验码为:1011  
                        RAID-5:
                            读、写性能提升
                            可用空间:(N-1)*min(S1,S2,...)
                            有容错能力:允许最多1块磁盘损坏
                            最少磁盘数:3, 3+
                            校验有序的存储在不同磁盘
                            采用独立存取的阵列方式,校验信息被均匀的分散到阵列的各个磁盘上;
                            相对于RAID-4把校验码存放在一块硬盘上,而RAID-5是将3块盘循环轮流作存放校验码。左对称即校验码存放各盘的顺序是先在前2块盘存数据,第3块盘存校验码,依次类推,右对称相反。 
                            特点:
                                磁盘数:最低3个
                                优点:
                                    读性能较高,中等的写特性,校验信息的分布方式存取,避免出现写操作的瓶颈;
                                缺点:
                                    控制器设计复杂,磁盘重建的过程比较复杂;
                                可用空间:(N-1)*min(S1,S2,...其中的最小空间)
                                有容错能力:1块磁盘
                                适用领域:文件服务器、email服务器、web服务器等环境,数据库应用;

                        RAID-6:
                            读、写性能提升
                            可用空间:(N-2)*min(S1,S2,...)
                            有容错能力:允许最多2块磁盘损坏
                            最少磁盘数:4, 4+
                            有两个校验


                        组合不同级别的RAID
                        组合不同级别的RAID的目的
                            从RAID0到RAID6,不同级别的RAID在性能、冗余、价格等方面做了不同程度的折中;
                            重点介绍:
                            RAID-10、RAID-01、RAID-50

                        RAID-10:
                            读、写性能提升
                            可用空间:N*min(S1,S2,...)/2
                            有容错能力:每组镜像最多只能坏一块
                            最少磁盘数:4, 4+
                            先使用RAID 1连接两块磁盘,在使用RAID 0连接4块磁盘
                            特点:
                                磁盘数:最低4个,2n个,n大于等于2;
                                优点:
                                    读性能很高,写性能比较好,数据安全性好,允许同时有N个磁盘失效;
                                缺点:
                                    利用率只有50%,开销大;
                                可用空间:N*min(S1,S2,...其中最小空间)/2;
                                有容错能力:每组镜像最多只能坏一块;
                                适用领域:多用于要求高可用性和高安全性的数据库应用;

                        RAID-01:
                            多块磁盘先实现RAID0,再组合成RAID1
                            同RAID 10 ,只不过是先采用RAID 0
                            先分成两组做成RAID-0,再把组成的RAID-0做成RAID-1;不符合常用方法,每一组有一块坏的硬盘可能性大;

                        RAID-50:
                            多块磁盘先实现RAID5,再组合成RAID0
                            是RAID5和RAID0的结合,先实现RAID5,再条带化;(先做RAID-5在做RAID-0,最少6块盘,每组允许坏1块盘,空间利用率灵活)、RAID7(某家公司的私有技术,实际是文件服务器)

                            特点:
                                磁盘数:最低6个;
                                优点:
                                    比RAID5有更好的读性能,比相同容量的RAID5重建时间更短,可以容许N个磁盘同时失效;
                                缺点:
                                    设计复杂,比较难实现;同一个RAID5组内的两个磁盘失效会导致整个阵列失效;
                                适用领域:大型数据库服务器、应用服务器、文件服务器等应用;

                        JBOD:Just a Bunch Of Disks
                            功能:将多块磁盘的空间合并一个大的连续空间使用
                            可用空间:sum(S1,S2,...)
                        RAID7
                            可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式
                        常用级别:
                            RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD

                        常用RAID级别的比较:RAID-0,RAID-1,RAID-5,RAID-10,RAID-50,JBOD
                            RAID-0性能最好;
                            RAID-1冗余度最高;
                            相同可用容量下,RAID-1和RAID-10开销最高;

                    软件RAID和硬件RAID
                        软件RAID:功能都依赖于主机cpu完成,没有第三方的控制处理器和I/O芯片;
                        硬件RAID:有专门的RAID控制处理器和I/O处理芯片来处理RAID任务,不需占用主机cpu资源;

                Centos 6上的软件RAID的实现:
                        结合内核中的md(multi devices)模块即将多个硬盘组织成单个磁盘使用的模块;

                        mdadm工具:模式化的工具;管理模式,跟踪模式;            

                    mdadm命令:模式化工具
                        命令的语法格式:
                            mdadm [mode] <raiddevice> [options] <component-devices>        

                                <raiddevice>:/dev/md#:指明raid设备,重启后会变,因此可挂载uuid使用;
                                <component-devices>:任意块设备;            
                        模式:
                            创建模式:-C
                                    -n #:使用#个块设备来创建此RAID;
                                    -l #:指明要创建的RAID的级别;
                                    -a {yes|no}:是否自动创建目标RAID设备的设备文件;
                                    -c CHUNK_SIZE:指明块大小;默认为512k;
                                    -x #:指明冗余空闲盘的个数(不支持冗余能力的RAID级别没有意义);
                            -D:显示RAID的详细信息;
                                mdadm -D /dev/md#

                            装配:-A
                            监控:-F
                            管理:-f(人为损坏),-r(移除),-a(添加)
                                -f:布局指定磁盘为损坏;
                                -a:添加磁盘;
                                -r:移除磁盘;

                            观察md的状态:
                                cat /proc/mdstat

                            停止md设备:
                                mdadm -S /dev/md#

                        watch命令:持续动态观察
                            -n #:刷新间隔,单位是秒;

                            watch -n# 'COMMAND'                    

                        mdamd支持的级别:LINEAR(JBOD),RAID0,RAID1,RAID4,RAID5,RAID6,RAID10

                    练习:
                        1、创建一个可用空间为10G的RAID1设备,要求chunk大小为128K,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录下;
                        步骤:
                            1.先创建3个磁盘分区,并调整分区类型为raid类型;
                            2.再创建raid设备;
                            3.格式化raid设备;
                            4.挂载raid设备;
                        ]# fdisk /dev/sdb
                        s输入n-->l-->-->+10G-->t-->9-->fd-->n-->l-->-->+10G-->t-->10-->fd-->-->l-->-->+10G-->t-->11-->fd-->w
                        ]# partx -a /dev/sdb:创建分区后通知内核识别;
                        ]# mdadm -C /dev/md0 -n 2 -l 1 -a yes -c 128K -x 1 /dev/sdb{5,6,7}
                        ]# cat /proc/mdstat:查看md设备;
                        ]# mke2fs -t ext4 /dev/md0
                        ]# mkdir /myraid
                        ]# mount /dev/md0 /myraid
                        ]# df -lh:查看磁盘分区使用情况;
                        ]# blkid /dev/md0:查看raid设备UUID;
                        ]# mdadm -D /dev/md0:查看raid详细信息;
                        ]# mdadm /dev/md0 -f /dev/sdb5:标记为sdb5设备损坏,此时空闲盘自动替换上;
                        ]# cat /proc/mdstat
                        ]# watch -n1 'cat /proc/mdstat':每一秒钟查看一次,cat执行的命令;

猜你喜欢

转载自blog.csdn.net/dengjh195814/article/details/85792613