RAID简介

一,什么是raid?

RAID(Redundant Arrays of Independent Disks)中文叫磁盘阵列。

简单来讲就是把很多的硬盘组织在一起来使用。

       RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求。常用的RAID级别有以下几种:NRAID,JBOD,RAID0,RAID1,RAID10,RAID3,RAID5等。目前经常使用的是RAID5和RAID10。

本文主要介绍常用的RAID0,RAID1,RAID10,RAID4,RAID5


①RAID 0

RAID 0即Data Stripping(数据分条技术)。整个逻辑盘的数据是被分条(stripped)分布在多个物理磁盘上,可以并行读/写,提供最快的速度,但没有冗余能力。我们通过RAID 0可以获得更大的单个逻辑盘的容量,且通过对多个磁盘的同时读取获得更高的存取速度。RAID 0首先考虑的是磁盘的速度和容量,忽略了安全,只要其中一个磁盘出了问题,那么整个阵列的数据都会不保了。

130323110528241.png


优点:对数据的读写有很大提升

缺点:不提供冗余能力

至少2块磁盘


②RAID 1

RAID 1,又称镜像方式,也就是数据的冗余。在整个镜像过程中,只有一半的磁盘容量是有效的(另一半磁盘容量用来存放同样的数据)。同RAID 0相比,RAID 1首先考虑的是安全性,容量减半、速度不变。

1.png


优点:对数据的读取性能提升;具有冗余能力,当磁盘中的一块坏掉后,不会损失任何数据

缺点:对数据的写入的性能下降,空间的利用率低,仅有1/2

所需磁盘数:至少两块


③RAID 10

为了达到既高速又安全,出现了RAID 10(或者叫RAID 0 1),可以把RAID 10简单地理解成由多个磁盘组成的RAID 0阵列再进行镜像。


10.png


优点:对数据的读写性能都有很大的提升,并且对数据有冗余能力每一个组的任何一个磁盘损坏不会影响数据的损失,并且更换磁盘修复时,不用遍历整个磁盘

缺点:空间利用率低仅有1/2,同组的磁盘同时损坏时就会造成整个磁盘阵列的数据崩溃

所需磁盘数:至少四个



④RAID 4

在RAID0的基础思想上引入了校验码的概念,也就是拿出一块磁盘来存放校验码,以备磁盘损坏的时候,能通过校验盘来找回数据。

4.png

优点:采用校验技术;有一个特定的磁盘作为数据的完全存储,其他的磁盘采用条带技术,进行对数据的读写性能都有提高并且磁盘利用率高,磁盘损坏一个或者是校验盘损坏也不会造成数据的流失,可以重新计算为(n-1)/n(n代表磁盘个数)

缺点:校验码盘访问量大的性能很大程度的牵制着整个磁盘阵列的性能校验码盘很有可能会成为性能的瓶颈,并且修复损坏磁盘的数据的需要遍历整个阵列,修复慢,性能损失大

所需磁盘数:至少三个磁盘



⑤RAID5

在RADI4基础上的进行了改良,让所有盘都能用来存放校验码。

5.png


优点:采用校验技术;与RAID不同的是每个磁盘都是校验盘,轮替的当做校验盘的功能,降低了对单个磁盘的巨大的访问量,使其读写性能在RAID4 的基础上又了提高;与RAID4相同磁盘的损坏个数只能有一个,校验盘损坏也不会造成数据的流失,都可以重新计算

缺点: 修复损坏磁盘的数据的需要遍历整个阵列,修复慢,性能损失大,相对RAID4有很大的改善

需要磁盘数:至少三块



二,RAID有硬件和软件实现的方式,下面为大家带来软件创建一个可用空间为5G的RAID1设备的步骤:


工具:mdadm模式化工具

命令:                命令的语法格式:madadm [mode] <raiddevice> [optiongs] <component-devices>

                          支持的RAID级别:LINEAE,RAID0,RAID1,RAID4,RAID5,RAID6,RAID10

                          模式:

                              创建:-C

                              装配:-A

                              监控:-F

                              管理:-f, -r,-c

                              <raiddevice>:/dev/md#

                              <component-devices>:任意块设备

                              -C:创建模式

                                    -n #:使用#个快设备来创建此RAID

                                    -l #:指明要创建的RAID的级别

                                    -a {yes|no}:自动创建目标RAID设备的设备文件

                                    -c CHUNK_SIZE:指明块大小

                                    -x #:指明空闲盘的个数

                                    -D:显示raid的详细信息:mdadm -D /dev/md#

                                  管理模式:

                                    -f:标记制定磁盘为损坏

                                    -a:添加磁盘

                                    -r:移除磁盘

                        观察md的状态:

                            cat /proc/mdstat

                        停止md设备:

                            mdadm -S /dev/md#

环境:虚拟机下的CentOS 6.8 64位

[root@totooco6 ~]# cat /etc/issue
CentOS release 6.8 (Final)
Kernel \r on an \m


这里要用到的磁盘是sdb,sdc,sdd

[root@totooco6 ~]# fdisk -l | grep sd   
Disk /dev/sda: 16.1 GB, 16106127360 bytes
/dev/sda1   *           1          64      512000   83  Linux
/dev/sda2              64        1959    15215616   8e  Linux LVM
Disk /dev/sdb: 5368 MB, 5368709120 bytes
Disk /dev/sdc: 5368 MB, 5368709120 bytes
Disk /dev/sdd: 5368 MB, 5368709120 bytes

用fdisk工具分区,设置分区类型id为fd

[root@totooco6 ~]# fdisk -l | grep sd
Disk /dev/sda: 16.1 GB, 16106127360 bytes
/dev/sda1   *           1          64      512000   83  Linux
/dev/sda2              64        1959    15215616   8e  Linux LVM
Disk /dev/sdb: 5368 MB, 5368709120 bytes
/dev/sdb1               1         652     5237158+  fd  Linux raid autodetect
Disk /dev/sdc: 5368 MB, 5368709120 bytes
/dev/sdc1               1         652     5237158+  fd  Linux raid autodetect
Disk /dev/sdd: 5368 MB, 5368709120 bytes
/dev/sdd1               1         652     5237158+  fd  Linux raid autodetect

 mdadm -C /dev/md1 -n2 -l1 -ayes -x1 /dev/sd[b,c,d]1


[root@totooco6 ~]# mdadm -C /dev/md1 -n2 -l1 -ayes -x1 /dev/sd[b,c,d]1
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

查看一下创建进度

[root@totooco6 ~]# cat /proc/mdstat 
Personalities : [raid1] 
md1 : active raid1 sdd1[2](S) sdc1[1] sdb1[0]
      5233024 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>

已经完成,查看详细信息

[root@totooco6 ~]# mdadm -D /dev/md1
/dev/md1:
        Version : 1.2
  Creation Time : Fri Jun 10 11:06:42 2016
     Raid Level : raid1
     Array Size : 5233024 (4.99 GiB 5.36 GB)
  Used Dev Size : 5233024 (4.99 GiB 5.36 GB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent
    Update Time : Fri Jun 10 11:07:08 2016
          State : clean 
 Active Devices : 2
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 1
           Name : totooco6.8:1  (local to host totooco6.8)
           UUID : 8baef42a:f845df94:9addff79:32cef574
         Events : 17
    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        -      spare   /dev/sdd1

可以看到,raid1已经创建好,由/dev/sd1   /dev/sdc1  /dev/sdd1组成,其中sdd1是空闲盘。下面创建文件系统:

[root@totooco6 ~]# mkfs.ext4 /dev/md1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1308256 blocks
65412 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200, 884736
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

写入配置文件,不然重启之后会自动命名md1为md127

[root@totooco6 ~]# mdadm -Ds > /etc/mdadm.conf
[root@totooco6 ~]# cat /etc/mdadm.conf 
ARRAY /dev/md1 metadata=1.2 spares=1 name=totooco6.8:1 UUID=36371dde:0ae4fccc:8383159d:5d1b21fd

挂载相应目录

[root@totooco6 ~]# mkdir /md1
[root@totooco6 ~]# mount /dev/md1 /md1
[root@totooco6 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_totooco6-lv_root
                       13G  744M   12G   7% /
tmpfs                 497M     0  497M   0% /dev/shm
/dev/sda1             477M   28M  425M   7% /boot
/dev/mapper/testvg-testlv
                      2.9G  7.6M  2.7G   1% /users
/dev/md1              4.8G   10M  4.6G   1% /md1

为了让开机自动挂载,写入自动挂载文件/etc/fstab

[root@totooco6 ~]# echo /dev/md1 /md1 ext4 defaults 0 0  >> /etc/fstab

好了,文件夹/md1可以正常使用了.


                              注:本文部分资料和图片来自互联网


原创文章,作者:Net20_totooco,如若转载,请注明出处:http://www.178linux.com/18024

(0)
Net20_totoocoNet20_totooco
上一篇 2016-06-22
下一篇 2016-06-22

相关推荐

  • 第二周:文件管理练习

    1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 目录管理管理类命令 mkdir make directories mkdir [OPTION]… DIRECTORY… 注意:路径基名作为命令的作用对象时,基名之前的路径必须要存在;     -p:自动按需创建父目录…

    Linux干货 2016-09-23
  • Nginx反向代理的常用调度算法

    upstream 调度算法 1.rr 按客户端请求顺序把客户端的请求逐一分配到不同的后端的服务器,这相当于lvs中的rr算法。如果后端服务器岩机(默认情况下只检测80端口,如果后端报502,404,403,503,还是会直接返给用户),岩机服务器会被自动剔除,使用户访问不受影响,请求会分配给正常的服务器 2.weight(权重) 在轮询算法的基础上加上权重(…

    Linux干货 2016-06-01
  • linux之网络管理基础

    一.IP分配的概述 公式1 一个网段的主机数=2^主机位数-2 主机ID位数=32-网络ID位数 公式2 网络ID=IP与子网掩码 公式3 划分子网: 一个大网分成若干个小网 网络ID向主机位借位n,子网数2^n 公式4 损失IP-=(子网数2^n-1)*2 合并多个小子网成一个大的超网 如 172.16.0.0-172.31.0.0 就是主机ID向网络ID…

    Linux干货 2016-09-16
  • centos6.9实现网卡bonding

    centos6.9实现网卡bonding 为什么要用bonding  将多块网卡配置同一IP地址实际中是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡被修改为相同的MAC地址,这样可以实现多块网卡绑定同一IP地址,对外提供服务。用于网络负载均衡和网络冗余。 工作模式  bonding的模式:0-6,即:7种模式,这里我们…

    2017-08-20
  • 谈shell命令的神奇组合以及对脚本的影响

    shell命令是我们与机器交互的基本沟通翻译官。我们要告诉计算机的很多事情都由它来翻译,而shell的神奇之处就在于支持命令联合使用,现在我就来讲讲基本的命令组合引用。1.管道应用:命令 | 命令  ,前面的命令的结果可以直接作为后面命令的输出,省却了一个变量做存储。2.文本段落提取;我们可以用 组合命令 通常为 cat 某文件 | (head -…

    Linux干货 2017-04-02
  • 【Linux基础】计算机及操作系统基础

    【Linux基础】计算机及操作系统基础 计算机的组成及其功能 计算机的组成 简单来说,计算机应由两部分组成:第一部分:硬件 冯诺依曼结构体系 当前计算机主要是基于冯诺依曼体系结构设计的,在该体系中,计算机硬件由5个部件组成。分别是:运算器、控制器、存储器、输入设备和输出设备。而现今运算器和控制器一般集成在一起,叫中央处理器(Central Processin…

    Linux干货 2018-03-04