磁盘阵列 RAID
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了磁盘阵列 RAID相关的知识,希望对你有一定的参考价值。
简介
Redundant Arrays of Inexpensive Disks :廉价冗余磁盘阵列 Redundant Arrays of Independent Disks :独立冗余磁盘阵列 Berkeley: A case for Redundent Arrays of Inexpensive Disks RAID 提高IO能力: 磁盘并行读写; 提高耐用性; 磁盘冗余来实现 级别:多块磁盘组织在一起的工作方式有所不同; RAID实现的方式: 外接式磁盘阵列:通过PCI扩展卡提供适配能力 内接式RAID:主板集成RAID控制器 Software RAID:软件RAID
级别:level
RAID-0:0, 条带卷,strip; RAID-1: 1, 镜像卷,mirror; RAID-2 .. RAID-5: RAID-6 RAID10 RAID01 RAID-0: 读、写性能提升; 可用空间:N*min(S1,S2,...),按最小一块磁盘容量的n倍 无容错能力 最少磁盘数:2, 2+ 降低了耐用性;非关键数据,中间的过程数据,丢了没关系 RAID-1: 读性能提升、写性能略有下降; 可用空间:1*min(S1,S2,...);最小一块磁盘容量就是RAID后的大小, 有冗余能力 最少磁盘数:2, 2+ RAID-4: 最少3块磁盘;其中一块盘存储校验码,其它存储数据 允许其中任意块盘坏掉,降级模式, 1101, 0110, 1011 异或(数字相同则为0,数字不同则为1) 坏了一块,换新盘重做好RAID4之前不允许再坏; 校验盘访问压力大,很容易造成性能瓶颈; RAID-5: 每块盘分出一部分做校验盘;轮流做校验盘,一般用左对称 读、写性能提升 可用空间:(N-1)*min(S1,S2,...) 有容错能力:1块磁盘,降级使用 最少磁盘数:3, 3+ RAID-6: 两块盘做校验盘,校验码存两次, 读、写性能提升 可用空间:(N-2)*min(S1,S2,...) 有容错能力:2块磁盘 最少磁盘数:4, 4+ 混合类型 RAID-10: 先两两做成RAID1,再做RAID0;底层1,上层0, 每一组RAID1镜像只能坏一个。 读、写性能提升 可用空间:N*min(S1,S2,...)/2;空间利用率50% 有容错能力:每组镜像最多只能坏一块; 最少磁盘数:4, 4+ RAID-01:不推荐 先分成两组,每组做RAID0,再两组做RAID1; 只能允许一侧坏, 空间利用率50% RAID-50:不推荐,冗余比RAID5还差;对性能要求高,数据不重要, RAID7:独有技术,性能好,价格贵,文件存储技术; JBOD:Just a Bunch Of Disks 功能:将多块磁盘的空间合并一个大的连续空间使用;不同于RAID0, 可用空间:sum(S1,S2,...) 常用级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
软件RAID实现方式
CentOS 6上的软件RAID的实现: 结合内核中的md(multi devices) mdadm:模式化的工具 命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices> 支持的RAID级别:LINEAR(线性), RAID0, RAID1, RAID4, RAID5, RAID6, RAID10; 模式: 创建:-C 装配: -A 监控: -F 管理:-f;-r;-a <raiddevice>: /dev/md# 设备 <component-devices>: 任意块设备 -C: 创建模式 -n #: 使用#个块设备来创建此RAID; -l #:指明要创建的RAID的级别; -a {yes|no}:自动创建目标RAID设备的设备文件; -c CHUNK_SIZE: 指明块大小; -x #: 指明空闲盘的个数;(冗余) 例如:创建一个10G可用空间的RAID5; 创建四块分区的RAID0: # mdadm -Cv /dev/md0 -a yes -n 4 -l 0 /dev/sdb /dev/sdc /dev/sdd /dev/sde -D:显示raid的详细信息; mdadm -D /dev/md# 管理模式: -f: 标记指定磁盘为损坏; -a: 添加磁盘 -r: 移除磁盘
例:
# fdisk /dev/sda #针对/dev/sda硬盘 p #查看 n #创建 +10G n #创建 +10G n #创建 +10G n #创建 +10G l #查看,选fd Linux raid auto t #改格式 7 #针对第七块盘 fd #选择 fd Linux raid auto 才可以测试软raid t 8 fd t 9 fd t 10 fd w #保存退出 # partx -a /dev/sda #刷新磁盘分区;重新加载 # partx -a /dev/sda 直到全部识别 创建RAID5 # mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sda{7,8,9,10} 观察md的状态: # cat /proc/mdstat # ll /dev | grep "md" 格式化: # mke2fs -t ext4 /dev/md0 挂载 # mkdir /mydata # mount /dev/md0 /mydata 查看是否挂载完成 # mount 开机自启动 # blkid /dev/md0 #查看UUID编号 # vim /etc/fstab `UUID编号` /mydata ext4 defaults,acl 0 0 显示raid的详细信息: # mdadm -D /dev/md0 搞坏一个: # mdadm /dev/md0 -f /dev/sda7 #标记损坏 观察md的状态:会发现重新做同步, # watch -n1 ‘cat /proc/mdstat‘ 显示raid的详细信息:发现同步已完成,数据已修改 # mdadm -D /dev/md0 可以再坏一块盘,成降级使用 # cp /etc/fstab /mydata # cat /mydata/fstab # mdadm /dev/md0 -f /dev/sda8 #此时sda7和sda8已损坏 显示raid的详细信息:da7和sda8已损坏 # mdadm -D /dev/md0 把坏的盘移除: # mdadm /dev/md0 -r /dev/sda7 # mdadm /dev/md0 -r /dev/sda8 显示raid的详细信息:发现只剩下sda9和sda10 # mdadm -D /dev/md0 ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Fri May 8 09:20:35 2017 Raid Level : raid5 Array Size : 41909248 (39.97 GiB 42.92 GB) Used Dev Size : 20954624 (19.98 GiB 21.46 GB) Raid Devices : 3 Total Devices : 2 Persistence : Superblock is persistent Update Time : Fri May 8 09:23:51 2017 State : clean, degraded(降级) Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric #:左对称 Chunk Size : 512K Rebuild Status : 0% complete Name : linuxprobe.com:0 (local to host linuxprobe.com) UUID : 44b1a152:3f1809d3:1d234916:4ac70481 Events : 49 Number Major Minor RaidDevice State 3 8 10 0 active sync /dev/sda10 2 0 0 2 removed 4 8 9 2 active sync /dev/sda9 再把第七块盘加进去 # mdadm /dev/md0 -a /dev/sda7 显示raid的详细信息:发现 # mdadm -D /dev/md0 停止md设备: # mdadm -S /dev/md#
练习:
1:CentOS 6安装xfs格式的分区 CentOS 6安装xfs格式的分区需要安装 # yum install xfsprogs # xfs格式化工具; # yum install xfsdump # 备份和恢复xfs文件系统,可不用 创建RAID0:(/dev/sdb /dev/sdc /dev/sdd /dev/sde) # mdadm -Cv /dev/md0 -a yes -n 4 -l 0 /dev/sdb /dev/sdc /dev/sdd /dev/sde 格式化分区:mkfs.xfs deiver # mkfs.xfs /dev/md0 挂载: # mkdir /data # mount /dev/md0 /data/ 开机自动挂载: # blkid /dev/md0 #查看UUID编号 /dev/md0: UUID="e6db3bb2-3b4c-42fc-b213-f57518cedc08" TYPE="xfs" # vim /etc/fstab UUID=e6db3bb2-3b4c-42fc-b213-f57518cedc08 /data xfs defaults,acl 0 0 2:创建一个可用空间为10G的RAID1设备,要求其chunk大小为128k,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录; 3:创建一个可用空间为10G的RAID10设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录。
本文出自 “毛虫小臭臭” 博客,请务必保留此出处http://moerjinrong.blog.51cto.com/11124564/1969411
以上是关于磁盘阵列 RAID的主要内容,如果未能解决你的问题,请参考以下文章