Raid 介绍以及软raid的实现
RAID:
old Redundant Arrays of Inexpensive Disks (廉价磁盘冗余阵列)
new Redundant Arrays of Independent Disks (独立磁盘冗余阵列)
Berkeley: A case for Redundent Arrays of Inexpensive Disks RAID
功能: 提高IO能力:磁盘并行读写; 提高耐用性:磁盘冗余来实现。但是raid不能取代数据备份,raid只是减少磁盘对于数据的影响。人为操作数据无法恢复。
级别:多块磁盘组织在一起的工作方式有所不同;
RAID实现的方式: 外接式磁盘阵列:通过扩展卡提供适配能力 内接式RAID:主板集成RAID控制器 Software RAID:
级别:level
RAID-0:0, 条带卷,strip;
RAID-1: 1, 镜像卷,mirror;
RAID-2
..
RAID-5:
RAID-6
RAID10
RAID01
RAID-0: 读、写性能提升; 可用空间:N*min(S1,S2,...)(所有磁盘中的最小值,下同) 无容错能力 最少磁盘数:2, 2+
RAID-1: 读性能提升、写性能略有下降; 可用空间:1*min(S1,S2,...) 有冗余能力 最少磁盘数:2, 2+
RAID-4: 1101, 0110, 1011 (对应位做亦或计算,相同得0,相反得1) 第三块做校验盘。 如果一块坏了,那就是降级进行使用。缺陷:单块盘做检验盘,该盘压力过大,是性能瓶颈。 改进方案:使用一块盘做空闲盘,热备
RAID-5: 读、写性能提升。 可用空间:(N-1)*min(S1,S2,...) 有容错能力:1块磁盘 最少磁盘数:3, 3+, 原理同raid4,也可有热备盘,与raid4区别,三块盘轮流做检验盘,有左对称和右对称方案; 多块盘做亦或运算,结果存放到校验盘,X1亦或X2亦或X3亦或X4
RAID-6: 读、写性能提升 可用空间:(N-2)*min(S1,S2,...) 有容错能力:2块磁盘 循环校验 最少磁盘数:4, 4+
- RAID-10: 读、写性能提升 可用空间:N*min(S1,S2,...)/2 有容错能力:每组镜像最多只能坏一块; 最少磁盘数:4, 4+
- RAID-01: 先做raid0,在做raid1,容错性没有raid10好。
- RAID-50,先做raid5再做raid0,最小磁盘数和raid5划分有关。
- RAID7:商业公司自己开发的,性能不错价格昂贵
- JBOD:Just a Bunch Of Disks 功能:将多块磁盘的空间合并一个大的连续空间使用,可以存放大型单个文件。可用空间:sum(S1,S2,...)
- 常用级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
- 选择Raid级别:RAID 012345 到底哪一种适合你,不只是成本问题,容错功能和传输性能的考虑以及未来之可扩充性都应该符合应用的需求。
实现方式:
硬件实现方式
软件实现方式
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 #: 指明空闲盘的个数;例如:创建一个6G可用空间的RAID5;
]# fdisk -l ##查看硬盘分区
新添加一块硬盘sdb
]# fdisk /dev/sdb ##进行硬盘分区,做raid5至少需要三块盘,热备需要第四块,分区完成后需要修改分区系统id,修改成软raid的id:fd。
]# partx /dev/sdb
# 1: 63- 6313544 ( 6313482 sectors, 3232 MB)
# 2: 6313545- 12627089 ( 6313545 sectors, 3232 MB)
# 3: 12627090- 18940634 ( 6313545 sectors, 3232 MB)
# 4: 18940635- 41929649 ( 22989015 sectors, 11770 MB)
# 5: 18940698- 25254179 ( 6313482 sectors, 3232 MB)
]# mdadm -C /dev/md0 -n 3 -l 5 -a yes /dev/sdb1 /dev/sdb2 /dev/sdb3
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
]# cat /proc/partitions ##创建完分区后可以再分区表中看到此分区。
major minor #blocks name
8 0 20971520 sda
8 1 512000 sda1
8 2 10240000 sda2
8 3 1048576 sda3
8 4 1 sda4
8 5 1048576 sda5
8 6 8119296 sda6
8 16 20971520 sdb
8 17 3156741 sdb1
8 18 3156772 sdb2
8 19 3156772 sdb3
8 20 1 sdb4
8 21 3156741 sdb5
9 0 6308864 md0
]# mke2fs -t ext4 /dev/md0 ##对此分区进行格式化
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
394352 inodes, 1577216 blocks
78860 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1619001344
49 block groups
32768 blocks per group, 32768 fragments per group
8048 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
]# mdadm -D /dev/md0 ##查看该raid详情
/dev/md0:
Version : 1.2
Creation Time : Sat Dec 10 09:50:50 2016
Raid Level : raid5 ##级别
Array Size : 6308864 (6.02 GiB 6.46 GB) ##阵列大小
Used Dev Size : 3154432 (3.01 GiB 3.23 GB) ##分区大小
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sat Dec 10 09:52:48 2016
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric ##左对称
Chunk Size : 512K ##Chunk(块)大小
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 13a8fd25:5be7dd96:4c771ae8:74ac609b
Events : 18
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 18 1 active sync /dev/sdb2
3 8 19 2 active sync /dev/sdb3
-D:显示raid的详细信息;
mdadm -D /dev/md#
管理模式:
-f: 标记指定磁盘为损坏;
-a: 添加磁盘
-r: 移除磁盘
观察md的状态:
cat /proc/mdstat
停止md设备:
mdadm -S /dev/md#
]# mkdir /mydata
]# mount /dev/md0 /mydata/
]# cp /etc/fstab .
]# ls
fstab lost+found
]# mdadm /dev/md0 -f /dev/sdb3
mdadm: set /dev/sdb3 faulty in /dev/md0
]# cat /proc/mdstat ##可以看到有一块盘已经丢失
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdb3[3](F) sdb2[1] sdb1[0]
6308864 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
unused devices: <none>
]# cat /mydata/fstab ##发现文件依然可以访问
#
# /etc/fstab
# Created by anaconda on Sat Dec 10 05:24:03 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=c4bee2fc-f632-4c0d-ad60-a70097b85da1 / ext4 defaults 1 1
UUID=99a8652d-1f4d-4798-8054-443ffb502393 /boot ext4 defaults 1 2
UUID=62afe289-b0a8-4fdd-b6e2-9701f59f5d36 /home ext4 defaults 1 2
UUID=d7bfc5f4-5a4c-4432-ad7a-abe6ea722c32 /var ext4 defaults 1 2
UUID=2293a8a9-530c-42d4-a5c8-846f23ed69c7 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
]# mdadm /dev/md0 -a /dev/sdb5 ##添加一个分区
mdadm: added /dev/sdb5
]# cat /proc/mdstat ##正在恢复分区。
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdb5[4] sdb3[3](F) sdb2[1] sdb1[0]
6308864 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
[=====>...............] recovery = 25.5% (806924/3154432) finish=1.3min speed=28818K/sec
Raid 介绍以及软raid的实现的更多相关文章
- Liunx软Raid实现
Liunx软Raid实现 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在配置软Raid之前,我们首先要了解一下什么是Raid,Raid又分哪几个系列?哪个又是最靠谱的组合?我们生 ...
- 硬RAID和软RAID
RAID简介: RAID是 Redundant Array of Independent Disks的简写,意为独立磁盘冗余阵列,简称磁盘阵列.基本思想是把多个相对便宜的硬盘结合起来,称为一个磁盘阵列 ...
- CentOS 配置软raid
v-box里面新建一个centos7.3的服务器 v-box中增加4块8GB容量的硬盘.(我增加的是nvme的ssd硬盘,普通硬盘也没有问题,容量大代表你需要等待的时间长,所以小点容量最好) 创建ra ...
- CentOS 6.3下配置软RAID(Software RAID)
一.RAID 简介 RAID 是英文Redundant Array of Independent Disks 的缩写,翻译成中文意思是“独立磁盘冗余阵列”,有时也简称磁盘阵列(Disk Array). ...
- 网易视频云技术分享:linux软raid的bitmap分析
网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点播等音视频的PAAS服务,在线教育.远程医疗.娱乐秀场.在线 ...
- LINUX中软RAID的实现方案
转自linux就该这么学 应用场景 Raid大家都知道是冗余磁盘的意思(Redundant Arrays of Independent Disks,RAID),可以按业务系统的需要提供高可用性和冗余性 ...
- (转)CentOS 6下配置软RAID图文详解
CentOS 6下配置软RAID图文详解 原文:http://blog.51cto.com/hujiangtao/1929620 一.RAID 简介 RAID 是英文Redundant Array o ...
- Linux 常见 RAID 及软 RAID 创建
RAID可以大幅度的提高磁盘性能,以及可靠性,这么好的技术怎么能不掌握呢!此篇介绍一些常见RAID,及其在Linux上的软RAID创建方法. mdadm 创建软RAID mdadm -C -v /de ...
- RAID、软RAID和硬RAID
RAID(redundant array of inexpensive disks):独立的硬盘冗余阵列,基本思想是把多个小硬盘组合在一起成为一个磁盘组,通过软件或硬件的管理达到性能提升或容量增大或增 ...
随机推荐
- - >code vs 1475 m进制转十进制
1475 m进制转十进制 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 查看运行结果 题目描述 Description 将m进制数n转化成一个 ...
- quickSort算法导论版实现
本文主要实践一下算法导论上的快排算法,活动活动. 伪代码图来源于 http://www.cnblogs.com/dongkuo/p/4827281.html // imp the quicksort ...
- Mahout之数据承载
转载自:https://www.douban.com/note/204399134/ 推荐数据的处理是大规模的,在集群环境下一次要处理的数据可能是数GB,所以Mahout针对推荐数据进行了优化. Pr ...
- Android 敏感 API 的说明
从中国的国情来看,Google 的诸多产品,包括 gmail,Android 官方市场 Google Play 正处于并将长期处于访问不了的状态.国内几亿网民也要生活,于是墙内出现了“百家争鸣”的场面 ...
- 【Java EE 学习 57】【酒店会员管理系统之分页模板书写】
分页一直是一个比较麻烦的问题,特别是在我做的这个系统中更是有大量的分页,为了应对该问题,特地写了一个模板以方便代码重用,该模板包括后台分页的模板.前端显示的模板两部分. 一.分页分析 分页需要三种类型 ...
- DDD建模案例----“视频课程”场景
接触领域驱动设计DDD有一年多的时间了,中间看过不少书,参与过一些讨论(ENode QQ群).目前对DDD的认知还停留在理论阶段,所以对领域建模非常感兴趣,这里说的建模是指以DDD的思想为指导再加上D ...
- AOJ 0033 Ball【DFS】
有一个筒,从A口可以放球,放进去的球可通过挡板DE使其掉进B管或C管里,现有带1-10标号的球按给定顺序从A口放入,问是否有一种控制挡板的策略可以使B管和C管中的球从下往上标号递增. 输入: 第一行输 ...
- winform快速开发平台 -> 工作流组件(仿GooFlow)
对于web方向的工作流,一直在用gooflow对于目前我的winform开发平台却没有较好的工作流组件. 针对目前的项目经验告诉我们.一个工作流控件是很必要的. 当然在winform方面的工作流第三 ...
- Unity中无GC Alloc的CalculateFrustumPlanes
如果你需要在逻辑层做一些预先的剔除操作,可能需要从MainCamera构建视锥体,然后进行简易相交测试,这时候在unity里面用到的函数接口是CalculateFrustumPlanes: names ...
- flume使用示例
flume的特点: flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统.支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受 ...