RAID杂记

<h1 align = "center">RAID简述和Linux软RAID配置</h1>
PS:仅为课程练习,原理和配置可能有误,仅供参考,谢谢;

1.RAID功能简述

    RAID,全称(Redundant Arrays of Inexpensive Disk或Redundant Arrays of Independent Disk),现在一般多用于后面那个称呼,独立磁盘冗余阵列。RAID的基础概念大致是将多个硬盘组合起来,成为一个硬盘阵列。该阵列给用户的感知,跟之前单独一个硬盘或逻辑分区一样,但是却能大大提高磁盘的冗余性及读写IO速度;
    由于现在IT行业的快速发展,人们的工作和生活越来越离不开IT互联网,与之对应产生的是海量的数据;家庭个人如何音频、视频,企业方面如何多年累积的业务数据等;特别是一些大中型的互联网公司,他们经过过年发展积累了海量的数据,如果使用传统的独立硬盘进行数据存储,不仅价格昂贵,而且其冗余性和读写速度都不能达到企业级应用的需求;而RAID根据其组合模式的不同,可以提供不同的冗余和数据处理速度加快等功能,给企业及个人提供了多样化的选择;

2.RAID的实现方式

    RAID的实现方式大致分为三种:

       - 软件RAID,通过系统软件的方式实现RAID,这种方式没有硬件可靠,企业级应用不推荐使用
       - 内接式硬件RAID:主板集成RAID控制器,一般是家庭电脑上主板集成的RAID控制卡,用于个人或家庭使用,负载能力一般,不推荐用于企业环境;
       - 外接式磁盘阵列控制卡:这是一块独立的板卡,由专业的生成厂商生产;将其插在主板的PCI接口;价格虽然较为昂贵,但是可靠性却大大提升,一般用于企业环境;

       
          
    硬件RAID需要通过磁盘阵列控制卡的控制实现,RAID(磁盘阵列)控制卡可以看作是一个智能的设备,它拥有自己独立的CPU和内存,通过集成或借用主板上的SCSI控制器来管理硬盘;RAID控制卡的CPU还有缓存,这使得它在存取速度方面更快,但是断电后有一定风险丢失数据,所以建议在采购RAID控制卡优先考虑有备用电源的产品型号;

3.RAID的分类

    RAID经过多年的发展,已经有好几种不同的档次,如RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6。还有混合RAID如何:RAID-7,RAID-10,RAID-50,RAID-60。每种档次有相应的优缺点,不同的档次在两个目标间获取平衡,分别是增加数据可靠性及磁盘IO读写性能;在创建RAID的时候,建议选择容量相同的磁盘,因为RAID默认会取每个磁盘中最低容量的磁盘为标准进行RAID创建;用户可以根据自己的实际需求,选择相应的RAID模式,下面我们来介绍几种常用RAID之间的特点:

      - RAID0:RAI0,又称为条带卷;由两个或两个以上的磁盘组成,写入数据时将数据分割块块(chunk)分别存入到每个磁盘,因为读写都可以并行处理,所以IO速度是RAID中最快的,但是无容错能力,一旦其中一块磁盘数据损坏,所有磁带的数据将会丢失;它的可用空间为N*min(S1,S2,…)。
      - RAID1:RAID1,又称为镜像卷;由两个或两个以上的磁盘组成,如果是两个磁盘组成RAID1,其中一个作为主盘,另一个作为镜像盘;数据存入时,在拷贝到主盘的同时,拷贝相应的副本到镜像盘,这样当有一个磁盘故障时,由于另一个磁盘数据一模一样,所以不会影响到数据的正常性;RAID1是各种RAID中容错力最好的,但是相应的其写入性能因为要拷贝副本到另外的磁盘可能会导致略有下降,读取数据时能从多个磁盘进行取数,所以读取速度会相应提高,磁盘的使用率却很低,只有组成RAID的磁盘容量的一半;它的可用空间为:1*min(S1,S2,……)。
      - RAID5:RAID是RAID0和RAID1的折中方案,它拥有比RAID0更好的容错力和比RADID更好的读写速度和空间利用率;
      RAID5最少需要三块硬盘组成,有容错能力,RAID5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,当其中一个磁盘损坏时,可通过其它磁盘的数据和奇偶信息去恢复损坏的数据;RAID5可以理解成是在RAID0的基础上加了奇偶检验功能,所以写入速度比单独写入一块硬盘的速度略慢;要注意的是,数据块(chunks)和校验位必须要按顺序即默认为左对称的方式排放。它的可用空间为:(N-1)*min(S1,S2,……)。
       -RAID10:RA10最少由4块硬盘组成,它的基本原理是,先4块硬盘两两先做成2个RAID1,然后这两个RAID1阵列再继续做出RAID0模式;读写性能有提升,有容错能力,前提是不要一组镜像盘同时故障,如果两组镜像盘各坏一个,不会损坏数据;可用空间为:N*min(S1,S2,……)/2。

4.Linux上的软RAID创建

    准备:在linux系统上进行RAID创建时,得先用fdisk或其它分区命令分好相应的分区,并设置成RAID模式(rd);并用partx等其他命令重新扫描系统分区;

    4.1 mdadm:这是一个模式化命令,该命令可用于RAID的创建,修改,删除等功能,支持的RAID级别:LINEAR,RAID0,RAID1,RAID4,RAID5,RAID6,RAID10;
    命令格式:mdadm [mode] <raiddevice> [option] <compoent-device>
    -C:创建模式
      -n #:使用#个块设备来创建此RAID;
      -l #:指明要创建的RAID的级别;
      -a {yes|no}:自动创建目标RAID设备的设备文件;
      -c CHUNK_SIZE:指明块大小;
      -x #:指明空闲盘的个数;

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

    管理模式:

      -f:标记指定磁盘为损坏;
      -a:添加磁盘
      -r:移除磁盘
  
   -n#:使用#个块设备来创建此RAID;

    4.2 RAID5创建实例
    4.2.1 使用mdadm命令,创建一个RAID5这列,要求有一块空闲盘,块(chunk)大小为1024KB;

[[email protected] ~]# mdadm /dev/md0 -C -n 3 -x 1 -a yes -c 1024 -l 5 /dev/sdb{8,9,10,11}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

    4.2.2 查看RAID创建进度

[[email protected] ~]# cat /proc/mdstat
Personalities : [raid0] [raid6] [raid5] [raid4]
md0 : active raid5 sdb10[4] sdb11[3](S) sdb9[1] sdb8[0]
      20963328 blocks super 1.2 level 5, 1024k chunk, algorithm 2 [3/2] [UU_]
      [=====>...............]  recovery = 25.3% (2654452/10481664) finish=10.6min speed=12210K/sec

unused devices: <none>

    4.2.3 查看RAID详细信息,下面状态显示RAID正在建设中,建好后状态为clean;

[[email protected] ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Fri Aug 28 22:47:07 2015
     Raid Level : raid5                           #RAID类型
     Array Size : 20963328 (19.99 GiB 21.47 GB)   #可用空间
  Used Dev Size : 10481664 (10.00 GiB 10.73 GB)   #已经使用空间,这是RAID的特性,默认会有(N分之1)的磁盘空间用于存放奇偶校验数据
   Raid Devices : 3                               #正在使用的磁盘数量
  Total Devices : 4                               #全部磁盘数量,包括热备盘(空闲盘)
    Persistence : Superblock is persistent

    Update Time : Fri Aug 28 22:52:34 2015
          State : clean, degraded, recovering
 Active Devices : 2
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 2

         Layout : left-symmetric
     Chunk Size : 1024K

 Rebuild Status : 37% complete                   #阵列创建进度

           Name : localhost:0  (local to host localhost)
           UUID : 7c8befd9:3e9304b6:574c2ee8:5cba5476
         Events : 7                              #下面信息是RAID里面每个磁盘的详细信息

    Number   Major   Minor   RaidDevice State
       0       8       24        0      active sync   /dev/sdb8
       1       8       25        1      active sync   /dev/sdb9
       4       8       26        2      spare rebuilding   /dev/sdb10

       3       8       27        -      spare   /dev/sdb11

    4.2.5 将RAID中的/dev/sdb10人工设置为故障,查看/dev/sdb11空闲盘,是否会顶替上来并同步修复RAID;

[[email protected] ~]# mdadm  /dev/md0 -f /dev/sdb10
mdadm: set /dev/sdb10 faulty in /dev/md0
[[email protected] ~]#
[[email protected] ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Fri Aug 28 22:47:07 2015
     Raid Level : raid5
     Array Size : 20963328 (19.99 GiB 21.47 GB)
  Used Dev Size : 10481664 (10.00 GiB 10.73 GB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Fri Aug 28 23:03:32 2015
          State : clean, degraded, recovering
 Active Devices : 2
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 1024K

 Rebuild Status : 2% complete

           Name : localhost:0  (local to host localhost)
           UUID : 7c8befd9:3e9304b6:574c2ee8:5cba5476
         Events : 20

    Number   Major   Minor   RaidDevice State
       0       8       24        0      active sync   /dev/sdb8
       1       8       25        1      active sync   /dev/sdb9
       3       8       27        2      spare rebuilding   /dev/sdb11  #空闲盘已经顶替故障盘

       4       8       26        -      faulty   /dev/sdb10  #人工设置改磁盘为故障盘成功
[[email protected] ~]# 

    4.2.6 将故障磁盘从RAID5中移除

[[email protected] ~]# mdadm /dev/md0 -r /dev/sdb10
mdadm: hot removed /dev/sdb10 from /dev/md0
[[email protected] ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Fri Aug 28 22:47:07 2015
     Raid Level : raid5
     Array Size : 20963328 (19.99 GiB 21.47 GB)
  Used Dev Size : 10481664 (10.00 GiB 10.73 GB)
   Raid Devices : 3
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Fri Aug 28 23:10:43 2015
          State : clean, degraded, recovering
 Active Devices : 2
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 1024K

 Rebuild Status : 49% complete

           Name : localhost:0  (local to host localhost)
           UUID : 7c8befd9:3e9304b6:574c2ee8:5cba5476
         Events : 28                                    #sdb10已从RAID中移除

    Number   Major   Minor   RaidDevice State
       0       8       24        0      active sync   /dev/sdb8
       1       8       25        1      active sync   /dev/sdb9
       3       8       27        2      spare rebuilding   /dev/sdb11

    4.2.7 使用watch命令以1秒为频率,刷新查看RAID建设进度;

[[email protected] ~]# watch -n1 ‘cat /proc/mdstat‘   # -n:该参数可设置刷新频率,我这里是每一秒刷新一次
Every 1.0s: cat /proc/mdstat                                                                                                Fri Aug 28 23:13:43 2015

Personalities : [raid0] [raid6] [raid5] [raid4]
md0 : active raid5 sdb11[3] sdb9[1] sdb8[0]
      20963328 blocks super 1.2 level 5, 1024k chunk, algorithm 2 [3/2] [UU_]
      [=============>.......]  recovery = 69.8% (7325076/10481664) finish=4.2min speed=12276K/sec

unused devices: <none>

Every 1.0s: cat /proc/mdstat                                                                                                Fri Aug 28 23:13:54 2015

Personalities : [raid0] [raid6] [raid5] [raid4]
md0 : active raid5 sdb11[3] sdb9[1] sdb8[0]
      20963328 blocks super 1.2 level 5, 1024k chunk, algorithm 2 [3/2] [UU_]
      [==============>......]  recovery = 71.1% (7457696/10481664) finish=4.1min speed=12246K/sec

unused devices: <none>

Every 1.0s: cat /proc/mdstat                                                                                                Fri Aug 28 23:14:02 2015

Personalities : [raid0] [raid6] [raid5] [raid4]
md0 : active raid5 sdb11[3] sdb9[1] sdb8[0]
      20963328 blocks super 1.2 level 5, 1024k chunk, algorithm 2 [3/2] [UU_]
      [==============>......]  recovery = 71.9% (7540228/10481664) finish=4.0min speed=12071K/sec

unused devices: <none>

    4.2.8 将创建后的RAID5阵列格式化为ext4文件系统,标签为backup,并将其开机挂载至/backup目录;

[[email protected] ~]# mke2fs -t ext4 -L ‘backup‘ /dev/md0    #格式为ext4,并设置标签为backup
mke2fs 1.41.12 (17-May-2010)
文件系统标签=backup
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=256 blocks, Stripe width=512 blocks
1310720 inodes, 5240832 blocks
262041 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=0
160 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, 1605632, 2654208,
    4096000

正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[[email protected] ~]# blkid /dev/md0
/dev/md0: LABEL="backup" UUID="659e5e0a-2c9f-4594-ab0d-79f2fa4bc21a" TYPE="ext4" 

[[email protected] ~]# mkdir /backup
[[email protected] ~]# vim /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sat Jun  6 17:46:53 2015
#
# 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=d9a42d69-b340-4919-a77c-f1558e13df64 /                       ext4    defaults        1 1
UUID=a8e05a48-5d7c-46ad-bcd8-f7f4e1f7d108 /boot                   ext4    defaults        1 2
UUID=6951543d-8f16-421e-a71d-f309de85ebeb /home                   ext4    defaults        1 2
UUID=02a750c9-4a3c-4579-a2f0-4c4ce05806bc /myshare                ext4    defaults        1 2
UUID=6835964f-44e4-4cdb-9a06-678484a11eeb 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
UUID=659e5e0a-2c9f-4594-ab0d-79f2fa4bc21a /backup                 ext4    defaults        0 0
~
~                                                                                                                                                   

:wq  

[[email protected] /]# mount -a
[[email protected] /]# df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       9.5G  4.2G  4.9G  46% /
tmpfs           250M   72K  250M   1% /dev/shm
/dev/sda1        93M   26M   63M  29% /boot
/dev/sda3       3.8G  8.6M  3.6G   1% /home
/dev/sr0        3.8G  3.8G     0 100% /media/cdrom
/dev/md0         20G   44M   19G   1% /backup         #已经挂载上

    4.2.9 删除RAID

[[email protected] /]# umount /dev/md0       #1、首先取消挂载
[[email protected] /]# df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       9.5G  4.2G  4.9G  46% /
tmpfs           250M   72K  250M   1% /dev/shm
/dev/sda1        93M   26M   63M  29% /boot
/dev/sda3       3.8G  8.6M  3.6G   1% /home
/dev/sr0        3.8G  3.8G     0 100% /media/cdrom

[[email protected] /]# mdadm -S /dev/md0    #2、停止RAID,可以发现已经没有md0了
mdadm: stopped /dev/md0
[[email protected] /]# mdadm -D /dev/md0
mdadm: cannot open /dev/md0: No such file or directory
[[email protected] /]# cat /proc/mdstat
Personalities : [raid0] [raid6] [raid5] [raid4]
unused devices: <none>

[[email protected] /]# ls /dev | grep md
md

    

原文地址:http://blog.51cto.com/zhongle21/2087335

时间: 2024-10-14 05:10:03

RAID杂记的相关文章

Linux基本功杂记——[013]——『mdadm Raid &amp; LVM』

>FOR FREEDOM!< {A} Introduction Here's a short description of what is supported in the Linux RAID drivers. RAID is not a guarantee for data integrity, it just allows you to keep your data if a disk dies. The current RAID drivers in Linux support the

软件raid 5

软件raid 5的实现 RAID 5 是一种存储性能.数据安全和存储成本兼顾的存储解决方案. RAID 5可以理解为是RAID 0和RAID 1的折中方案.RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高.RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢.同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低,是目前运用较多

软件RAID 0

软件RAID 0的实现 RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能.RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求.这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能. RAID 0的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复.RAID0运行时只要其中任一块硬盘出现问题就会导致整个数据的故障.一般不建

23、磁盘管理—磁盘阵列(RAID)实例详解

磁盘阵列(RAID)实例详解 raid技术分类 软raid技术 硬raid技术 Raid和lvm的区别 为什么选择用raid RAID详解 RAID-0 RAID-1 RAID-5 Raid-10 Raid的管理 案例:创建一个raid10+冗余盘 磁盘阵列(RAID)实例详解 Raid(磁盘阵列)级别介绍 Raid有"廉价磁盘冗余阵列"的意思,就是利用多块廉价的硬盘组成磁盘组,让数据分部储存在这些硬盘里面,从而达到读取和写入加速的目的:也可以用作数据的冗余,当某块硬盘损毁后,其他硬盘

RAID实现

实现软raid1.fdisk t fd //修改磁盘分区类型fd2.创建raid设备     创建一个RAID5,5块儿硬盘4块做RAID,1块儿做空闲硬盘(顶替硬盘使用)    mdadm -C /dev/md0 -a yes -l 5  -n 4 -x1 /dev/sd{b,c,d,e,f}         -n #: 使用#个块设备来创建此RAID         -l #:指明要创建的RAID的级别         -a {yes|no}:自动创建目标RAID设备的设备文件       

RAID 的常用模式 及mdadm 命令的应用

一,RAID:独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法.通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能.因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错.整个 RAID 由于选择的等级(level 仅用于标识磁盘的组合方式的不同) 不同,而使得整合后的磁盘具有不同的功能, 基本常见的 level 有这几种 "RAID0(条带),

RAID的使用详解

概念: RAID(Redundant Array Independent Disk)独立磁盘冗余阵列.当时为了使用廉价的性能比较差的小容量磁盘代替昂贵的性能较好的大容量磁盘,在1987年美国加州大学伯克利分校,就创造出了RAID阵列,其主要工作机制是将多个小容量磁盘组织成一个大容量的磁盘进行使用. RAID常见的level: RAID0: RAID0机制:当数据要存放在磁盘中时,将数据平均分为n份,每个磁盘存放1/n的数据量,这样大大提高了数据写入和读出磁盘的能力,所有的磁盘都存放这有效的数据,

磁盘阵列RAID的功能作用介绍

RAID是一个我们经常能见到的名词.但却因为很少能在实际环境中体验,所以很难对其原理能有很清楚的认识和掌握.RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立磁盘冗余阵列.RAID就是一种由多块硬盘构成的冗余阵列.虽然RAID包含多块硬盘,但是在操作系统下是作为一个独立的大型存储设备出现.上海天盾数据恢复中心的专家告诉我们,利用RAID技术于存储系统的好处主要有以下三种: 1.通过把多个磁盘组织在一起作为一个逻辑卷提供磁盘跨越功能; 2.

raid基础及linux软raid之dmadm

RAID  0 : 条带         性能提升:读,写  n         冗余能力(容错能力):无         空间利用率: nS         至少2块磁盘    1 : 镜像         性能提升:写性能有所下降,读性能提升         冗余能力:有         空间利用率: 1/2         至少2块磁盘  2 :   3 :   4 :   5 :          性能表现:读写提升         冗余能力:有         空间利用率:(n-1)/