一.磁盘阵列(Redundant Arrays of Independent Disks,RAID) 有“独立磁盘构成的具有冗余能力的阵列”之意。

磁盘阵列是由很多价格较便宜的磁盘,以硬件(RAID卡)或软件(MDADM)形式组合成一个容量巨大的磁盘组,利用多个磁盘组合在一起,提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。 磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据。
注:RAID可以预防数据丢失,但是它并不能完全保证你的数据不会丢失,所以使用RAID的同时还是注意备份重要的数据.

二.RAID创建方式

RAID的创建有两种方式:软RAID(通过操作系统软件来实现)和硬RAID(使用硬件阵列卡);了解raid1、raid5和raid10。不过随着云的高速发展,供应商一般可以把硬件问题解决掉。

三.RAID磁盘阵列特点

对磁盘高速存取(提速): RAID将普通硬盘组成一个磁盘阵列,在主机写入数据,RAID控制器把主机要写入的数据分解为多个数据块,然后并行写入磁盘阵列;主机读取数据时,RAID控制器并行读取分散在磁盘阵列中各个硬盘上的数据,把它们重新组合后提供给主机。由于采用并行读写操作,从而提高了存储系统的存取速度。
扩容。
数据冗余

四.RAID类型

raid级别:raid 0 raid 1 raid5 raide 10 raid 01

RAID 0

0 :(stripe)条带模式,至少需要两块硬盘,每一份数据平均分成多份存储在多个磁盘 中,且都处于一个水平条带上

优点:读写速度提高,用了多少块盘就是多少倍 缺点:无冗余能力(也称容错能力) 空间利用率:多个磁盘的总和,100%

RAID 1

1:(mirror)镜像模式,磁盘数量需要2的倍数,两个磁盘中存储的数据完全一致,当一 个盘损坏时,数据依然可以进行读写

优点:有冗余能力

缺点:磁盘利用率 只有50%,写的速度下降

RAID 5

5:check code校验码模式,至少需要三块硬盘,每一次存储数据时,采用条带模式存 储到n-1数量的磁盘中,另外一个磁盘存放的是其他几个磁盘中的数据以某种加密方式之 后得出的加密数据,且每一次存储,存储加密数据的磁盘都是不断变化的,当其中任何 一个盘的数据损坏时,都可以通过加密方式和其余两块磁盘的数据来得知另外一个盘的 数据,具有较高的冗余能力

优点:读写速度快,有冗余能力

缺点:磁盘利用率为n-1/n,两个磁盘损坏时,数据将丢失

组合起来用RAID10

10:mirror+stripe模式,至少需要4快硬盘,先将两块硬盘组成Raid1,然后将两组 Raid1组合成Raid0,存储一分数据时,每一Raid1的组合存储的数据都是均分的,然后 Raid1组合再用mirror模式存储

优点:读写速度快,冗余能力强

缺点:磁盘利用率为50%

组合起来用RAID01

RAID01 是先做条带化再作镜像,本质是对物理磁盘实现镜像

优点:读写速度快,冗余能力强

缺点:磁盘利用率为50%,安全性能比10差

比较:

RAID10和RAID01的比较

两者最重要的区别在于:RAID10的底层是镜像RAID1,而镜像就保证了当有一块硬盘比如A1损坏时,并不影响他的写功能,读性能可能稍微有所降低(大概降低1/8)。但是RAID01的底层是条带RAID0,而条带就导致了只要有一块硬盘比如左边的Disk0中的A1损坏时,那么整个左边的RAID0就不能使用了,所以整个RAID01就变成了只有右边的RAID0可以使用了,也就是从RAID01变成了RAID0,读性能马上降低一般,写性能没有影响,可靠性变得最差。仅仅凭借这一点,我们就绝不应该使用RAID01,而应该选择RAID10

五.RAID命令

命令:mdadm (需要下载)
    #功能:创建/管理/删除 磁盘阵列
    #语法格式:
    mdadm [模式] <磁盘阵列名称> [选项] <组成设备>
    #模式:

  assemble:将以前定义的某个阵列加入当前在用阵列。
create:创建一个新的阵列,每个设备具有超级块
manage: 管理阵列,比如增加或移除
misc:允许单独对阵列中的某个设备做操作,比如抹去超级块或 终止在用的阵列。
follow or Monitor:监控磁盘阵列的状态
grow:改变磁盘阵列容量或阵列中的设备数目

  

选项:

 -A:加入一个以前定义的阵列
-C:创建一个新的阵列 (重要)
-D:打印一个或多个设备的详细信息
-E:打印设备上的超级块的内容
-h:帮助信息,用在以上选项后,则显示该选项信息
-v:显示细节
-b:较少的细节。用于-D和-E选项
-f, --force 强制执行
-c:指定配置文件,缺省为 /etc/mdadm.conf
-s:扫描配置文件或 /proc/mdstat以搜寻丢失的信息。

  

create 或 build 使用的选项:

 -c:指定块大小,单位 kb. 缺省为 64.
-l,:设定RAID模式.(非常重要)
-n=:指定阵列中可用设备数目。
-x :指定初始阵列的热备盘数目。
-a, --auto{=no,yes,md,mdp,part,p}{NN} :创建RAID同时是否创建设备。

  

例:使用sdb sdc 创建raid0
mdadm -C /dev/md0 -l 0 -n 2 /dev/sd{b,c}1
raid查看方法

cat /proc/mdstat       mdadm --detail /dev/mdXXX

  

删除raid (删除raid前需要卸载对应的挂载点)

mdadm --stop /dev/mdXXXX

  

Linux中raid磁盘阵列的更多相关文章

  1. 末学者笔记--Linux中RAID磁盘阵列及centos7启动过程

    <一>RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便 ...

  2. Linux系统——Raid磁盘阵列

    Raid磁盘阵列 作用:解决磁盘速度.安全问题 Raid原理 Raid0 写入速度极快,有几块硬盘,写入速度就近似几倍,但是安全性极差,只要一块盘坏了,所有盘的数据全部坏掉,最少两块硬盘组合 性价比最 ...

  3. Linux下RAID磁盘阵列的原理与搭建

    RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有"独立磁盘构成的具有冗余能力的阵列"之意. 磁盘阵列是由很多价格较 ...

  4. linux查看Raid磁盘阵列信息

    软件raid:只能通过Linux系统本身来查看 cat /proc/mdstat 可以看到raid级别,状态等信息. 硬件raid: 最佳的办法是通过已安装的raid厂商的管理工具来查看,有cmdli ...

  5. 了解linux下RAID(磁盘阵列)创建和管理

    现在的操作系统,不论是windows 还是linux都具有raid的功能,RAID 分为硬件 RAID 和软件 RAID, 硬件 RAID 是通过 RAID 卡来实现的,软件RAID是通过软件实现的, ...

  6. Linux中LVM2原理

    一.LVM原理 [MD]:Multi Device 多设备 Mdadm是一个用户空间工具,是RAID的管理工具,与真正的RAID工作没有太大关系.真正的RAID集成在linux内核中 [DM]Devi ...

  7. Linux中LVM2原理及制作LVM2

    Linux中LVM2原理及制作LVM2 一.LVM原理 [MD]:Multi Device 多设备 Mdadm是一个用户空间工具,是RAID的管理工具,与真正的RAID工作没有太大关系.真正的RAID ...

  8. Linux 中磁盘阵列RAID10损坏以及修复

    在Linux 中磁盘阵列RAID10配置中我们已经正确配置了RAID10 ,一般来说在RAID10中最多允许50%的磁盘损毁,当然除了,同一磁盘RAID1中的硬盘设备全部损毁. 这次我们讨论一下:假设 ...

  9. Linux系统的RAID磁盘阵列

    RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便宜的磁盘,以硬件( ...

随机推荐

  1. OpenCV:图像的开运算与闭运算

    导包: import numpy as np import cv2 import matplotlib.pyplot as plt def show(image): plt.imshow(image) ...

  2. Android开发与Sequoyah的安装问题

    首次接触Android开发,在搭建开发环境时遇到困难,写出来和大家分享分享. 使用的ide为捆绑了adt插件和android sdk的eclipse adt bundle,无需安装android sd ...

  3. iOS常用算法之两个有序数组合并, 要求时间复杂度为0(n)

    思路: 常规思路: 先将一个数组作为合并后的数组, 然后遍历第二个数组的每项元素, 一一对比, 直到找到合适的, 就插入进去; 简单思路: 设置数组C, 对比A和B数组的首项元素, 找到最小的, 就放 ...

  4. CSAPP 2-2 整数的表示和运算

    目录 1 整数表示 1 整数表示 编码整数有2种方式: 一种只能表示非负数(大于0的数), 另一种能够表示负数.零和正数. (1) 整型数据类型: C和C++都支持有符号(默认)和无符号数, Java ...

  5. pymysql增删改查操作

    表结构 CREATE TABLE `students` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFA ...

  6. 读书笔记_python网络编程3(5)

    5. 网络数据与网络错误 应该如何准备需要传输的数据? 应该如何对数据进行编码与格式化? Py程序需要提供哪些类型的错误? 5.1. 字节与字符串 PC与网卡都支持将字节作为通用传输单元.字节将8比特 ...

  7. Linux系统学习 七、网络基础—常用网络命令

    1.ifconfig                 #查看网络(设置IP临时生效) 2.hostname [主机名]            #查看或设置主机名       默认的是localhost ...

  8. [ Python入门教程 ] Python文件基本操作_shutil模块

    shutil模块是对os模块中文件操作的补充,提供文件和目录的移动.复制.打包.压缩.解压等功能 shutil常用函数   shutil.copyfile(src, dst)   复制文件, 如果ds ...

  9. 《转》crontab 定时任务

    命令格式 crontab [-u user] file crontab [-u user] [-e | -l | -r | -i ] 命令参数 -u user:用来设定某个用户的crontab服务,例 ...

  10. python做中学(四)main函数的用法

    什么场景下会有main函数? 当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行. main函数的作用? __name__ == '__main_ ...