欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux中raid磁盘阵列

程序员文章站 2022-06-21 09:02:44
RAID是将把好几块硬盘通过一定组合方式把它组合起来,成为一个新的硬盘阵列组,从而使它能够达到高性能硬盘的要求. ......

一.磁盘阵列(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%

Linux中raid磁盘阵列

raid 1

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

优点:有冗余能力

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

Linux中raid磁盘阵列

raid 5

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

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

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

Linux中raid磁盘阵列

组合起来用raid10

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

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

缺点:磁盘利用率为50%

Linux中raid磁盘阵列

 

 

组合起来用raid01

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

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

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

Linux中raid磁盘阵列

比较:

 Linux中raid磁盘阵列

 

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