linux之RAID知识总结

简介:

 RAID的简单介绍

RAIDRedundant Array of Inexpensive 的缩成,称为廉价冗余磁盘阵列。原理是利用数组方式来做磁盘组,配合数据分散排列的设计,提升数据的安全性。其中磁盘阵列是有很多便宜、容量较小、稳定性较高、速度较慢的磁盘组合成一个大型的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能

  目前RAID技术大致分为两种:基于硬件的RAID技术的硬RAID和基于软件RAID技术的软RAID.

软件RAID:是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成raid阵列。

硬件RAID:是在服务器的bos界面进行RAID级别的配置,然后内核通过RAID适配器把RAID识别为sd接口的硬盘。

RAID 级别的介绍

  随着RAID技术经过不断的发展,现已有RAID 0  RAID 6 七种基本的RAID 级别,同时还有RAID 0RAID 1的组合形式,称为RAID10。其中的级别并不代表技术的高低。接下来就简单介绍一下RAID级别的组合方式和特性。

1、         RAID0

RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上(如上图),因此具有很高的数据传输率,但它没有数据冗余,因此出错几率较大,一旦其中一块磁盘坏掉,数据将无法恢复。因此RAID0不能应用于数据安全性高的场合。

2、         RAID1

 

   它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据(如上图)。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。

3、         RAID4

 

RAID4是将数据条块化分布于不同的硬盘上,区别在于RAID 4使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息,如上图前两块存放数据,第三块磁盘则存放前两块的异或校验码。如果一块磁盘失效,奇偶盘及其他数据盘可以重  新产生数据;如果奇偶盘失效则不影响数据使用。RAID 4对于大量的连续数据可提供很好的传输率,但对于随机数据来说,奇偶盘会成为写操作的瓶颈。

4、         RAID5

 

RAID5  RAID4 之间最大的区别就是校验信息均匀分布在各个磁盘上也就是三个磁盘轮流做为校验盘,如上图所示,这样就避免了RAID 4中出现的瓶颈问题。如果其中一块磁盘出现故障,那么由于有校验信息,所以所有数据仍然可以保持不变。如果可以使用备用磁盘,那么在设备出现故障之后,将立即开始同步数据。如果两块磁盘同时出现故障,那么所有数据都会丢失。RAID5 可以经受一块磁盘故障,但不能经受两块或多块磁盘故障。

5、         RAID10

RAID10实际是将RAID 0RAID 1标准结合的产物,在连续地以位或字节为单位分割数据并且并行读/写多个磁盘的同时,为每一块磁盘作磁盘镜像进行冗余。它的优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样也更高,而且磁盘的利用率比较低。

mdadm命令详解

   Linux中式通过mdadm来创建和维护软RAID的,mdadm是一个模式化的命令,因此有很多的模式。具体模式和选项如下:

Assemble 装配模式;Create  创建模式 Follow or Monitor  监控模式(运行特性);Grow 增长模式;Manage 管理模式

mdadm 模式化命令如下:

-C 创建模式

    -a yes 可以自动创建不存在的设备

    -n 表示使用几块磁盘创建

    -x  表示使用几块空闲盘 spare disks

    -c  指定块大小 默认64KB

    -l   指定级别

-p   layout

-D 查看详细信息

-S 停止raid设备

-A 装配模式(装配已停下的设备)

-F 监控模式

--add,--fail --remove 自动工作在监控模式下

--examine --scan 扫描当前设备信息

--fail简写成-f 可以模拟设备坏掉

--add 新增一块磁盘

--remove 删除一块磁盘

创建软一个RAID的步骤如下:

  创建软RAID的设备可以是任意设备或是分区,一般应该是把多块磁盘的分区做成RAID。这里我们就以一个磁盘上的多个分区创建软RAID为例进行讲解。

 例一:在磁盘/dev/sda中创建一个6GRAID0具体的操作步骤如下:

1、分析6GRAID

根据RAID0的特性,我们可以创建为两个3G或是三个2G抑或六个1G的分区,这里我们就以两个3G为例进行讲解。

2、创建分区

使用“fdisk“命令在磁盘/dev/sda中创建两个3G的分区,并调整分区标识类型id fd,然后查看我们创建的分区。操作如下图:

 

                                创建分区

          调整分区类

                             查看创建好的分区

3、创建RAID

   分区创建完成后不要像平时操作那样直接格式化分区,应该直接创建RAID.

  在创建RAID之前应该先使用partprobe 命令来使我们的分区能够被识别。然后再使用如下命令进行创建。

mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda6 /dev/sda7

其中-C是指创建模式下的命令, -a如果没有设备也可自动创建,-n 指定几块磁盘 –l 指定raid级别。

4、格式化raid并挂载

格式化:mke2fs /dev/md0

挂载:mkdir /mt 创建一个目录载到     

挂载成功后,切换到mt目录下查看会有lost+foud

创建一个具有空闲盘的RAID5并模拟磁盘的坏掉

   我们先来创建一个2GRAID5并具有一块空闲盘。

1、分析创建2GRAID5需要建立几个分区,根据RAID5的特性我们需要建立三个1G的分区,因为还需要一个空闲盘,所以我们这里要建立四个1G的分区。

2、创建分区,具体步骤和创建RAID0是一样的,这里就不做详细说明。

3、创建RAID5

  mdadm -C /dev/md0 -a yes -l 5 -n 3 –x 1 /dev/sda6 /dev/sda7

  其中-x表示创建几块空闲磁盘

  然后用mdadm –D /dev/md0查看RAID5的详细信息如下

4.格式化并挂载到/mt目录下,操作和RAID0一样,在此就不重复了。

5、模拟一块坏掉的磁盘

   我们先拷贝一个文件到挂载目录/mt下,是为了查看磁盘坏掉对文件数据是否有影响

cp /etc/fstab  /mt,

 

接下来我们模拟/dev/sda5坏掉

然后用mdadm –D /dev/md0查看详细信息如下:

 

 接下来我们看看拷贝的文件是否受影响

  由此可知在RAID5中当坏掉一块盘时,因为有一块空闲盘顶替了坏掉的磁盘,所以我们数据仍然存在,并不会丢失。

  那我们现在再模拟/dev/sda6坏掉,也就说我们已经坏掉了两块盘。然后查看数据是否丢失,具体操作如下面的截图。

   由图可知我们的数据并没有丢失,这就和RAID5的特性有关系了,RAID5是允许坏掉一块磁盘的,所以即使剩余两块磁盘,数据还是不会丢失的。

接下来简单介绍一下怎么生成RAID的配置文件。

  前面已经提到的—examine –scan 选项是扫描当前设备信息。生成配置文件其实很简单,只需把扫描的设备信息保存到一个文件中即可,具体如下:

mdadm --examine –scan /dev/md0 >> /etc/mdadm.conf


 本文转自  沐木小布丁  51CTO博客,原文链接:http://blog.51cto.com/sxhxt/907707

相关文章
|
Linux
Linux下安装中文输入法总结
Linux下安装中文输入法总结
2405 0
|
2月前
|
存储 缓存 关系型数据库
Mysql专栏 - Linux底层交互和Raid存储架构
Mysql专栏 - Linux底层交互和Raid存储架构
77 0
|
4月前
|
存储 机器学习/深度学习 安全
Linux加强篇007-使用RAID与LVM磁盘阵列技术
山重水复疑无路,柳暗花明又一村
230 0
Linux加强篇007-使用RAID与LVM磁盘阵列技术
|
8月前
|
Linux
14.2.2 【Linux】software, hardware RAID
14.2.2 【Linux】software, hardware RAID
89 0
|
8月前
|
安全 Linux 数据安全/隐私保护
14.2 【Linux】软件磁盘阵列(Software RAID)
14.2 【Linux】软件磁盘阵列(Software RAID)
88 0
|
10月前
|
Linux 计算机视觉
【Linux】(超详细步骤)构建软RAID磁盘阵列
【Linux】(超详细步骤)构建软RAID磁盘阵列
738 1
|
10月前
|
存储 Linux
Linux廉价磁盘冗余队列(RAID)
通过几篇文章的介绍,来到了RAID的学习,本篇文章将介绍RAID,以及学会创建RAID,并且使用它,下面就进入学习吧。
90 0
|
11月前
|
存储 SQL 缓存
Mysql专栏 - Linux底层交互和Raid存储架构
​ 在专栏之前的几篇文章中,我们总结了缓冲池,缓存页,redo log,undo log,以及数据页和数据行在底层是如何进行存储的,后续介绍了表空间,段,区等概念。这一节比较特殊,讲述的是和Linux有关的交互原理,因为多数的mysql都是部署在linux的服务器上面,本节会简单介绍一下linux是如何处理mysql的请求的,以及linux系统会带来哪些问题
159 0
Mysql专栏 - Linux底层交互和Raid存储架构
|
负载均衡 Linux 应用服务中间件
Linux下各种锁地理解和使用以及总结解决一下epoll惊群问题(面试常考)
Linux下各种锁地理解和使用以及总结解决一下epoll惊群问题(面试常考)
Linux下各种锁地理解和使用以及总结解决一下epoll惊群问题(面试常考)
|
缓存 Linux
linux下常用命令—个人总结
linux下常用命令—个人总结