RAID简介与软RAID实现

写在前面:

博客书写牢记5W1H法则:What,Why,When,Where,Who,How。



本篇主要内容:

● RAID简介及各RAID级别特点

● 软RAID的创建使用



RAID简介

最早时候RAID为Redundant Arrays of Inexpensive Disks,即廉价磁盘冗余阵列;后将Inexpensive替换为Independent,即独立磁盘冗余阵列。

   优势:

(1)易于灵活的进行容量扩展

(2)“虚拟化”使可管理性极大的增强

(3)“磁盘分块”技术带来性能提高

(4)通过冗余、热备、热换提高可靠性

   磁盘冗余:

(1)镜像冗余使用磁盘镜像技术;

(2)磁盘镜像是一个简单的设备虚拟化技术,每个I/O操作都会在两个磁盘上执行;

(3)磁盘冗余可提高磁盘的读性能

   校验冗余:

(1)根据冗余算法计算阵列中成员磁盘上数据校验信息,将校验信息保存在其他的磁盘资源上;

(2)保证磁盘可靠性;

(3)和镜像冗余比较,校验冗余的开销更小

   异或算法(XOR);

相同为假,不同为真

   特点:

提高IO能力

磁盘并行读写

提高耐用性

磁盘冗余来实现

级别:多块磁盘组织在一起的工作方式不尽相同

   RAID的实现方式:

(1)外接式磁盘阵列:通过扩展卡提供适配能力

(2)内接式RAID:主板集成RAID控制器

(3)Software RAID:消耗主机资源,IO大时严重影响主机性能。

   RAID级别:

组成RAID阵列的不同方式,不同RAID级别:

不同的存储性能;

不同的数据可靠性;

不同的存储成本

RAID 0:条带式数据分布在各个磁盘上,strip

RAID 1:以镜像为冗余方式,mirror

RAID 3:数据块划分为更小的块并行传输到各个成员磁盘,计算的XOR校验放到专用校验磁盘上

RAID 5:独立存取,校验信息均匀分散到阵列的各个磁盘上

RAID 10:先镜像,再整体条带

RAID 50:先RAID5,再整体条带

补充:JBOD(Just a Bunch Of Disks)可实现多块磁盘合并为一个大的连续空间。

RAID级别 RAID 0 RAID 1 RAID 3 RAID 5 RAID 10
别名 条带 镜像 专用奇偶位条带 分布奇偶位条带 镜像阵列条带
容错性
冗余类型 镜像 奇偶校验 奇偶校验 镜像
备盘
读性能 较单盘略高
随机写性能 低,叫单盘差不多 最低,比单盘还低
连续写
磁盘数 2+ 2N,N>=1 3+ 3+ 2N,N>=2
可用容量 全部N 50% N-1 N-1 50%

   软RAID实现:

mdadm(MD adm)

manage MD devices aka Linux Software RAID

mdadm [mode] <raiddevice> [options] <component-devices>

-C, --create:创建模式

-n #: 使用#个活动块设备来创建此RAID;

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

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

-c CHUNK_SIZE: 指明块大小;4K整数倍

-x #: 指明空闲盘(替补盘)的个数;

-D:显示raid的详细信息;

mdadm -D /dev/md#

-A, --assemble:装配

-F, --follow, --monitor:监控

-S, --stop:停用MD设备,释放所有磁盘

mdadm -S /dev/md#

管理模式

-f, --force:标记指定磁盘为坏

-a, --add:添加磁盘

-r, --remove:移除磁盘

<raiddevice>: /dev/md#

<component-devices>: 任意块设备或分区

观察MD状态:

cat /proc/mdstat

watch

-n #:刷新间隔,单位为秒

watch -n# `COMMAND`

实例:

#创建5个100M大小的磁盘分区,修改分区类型为fd(Linux raid auto)

[[email protected] ~]# fdisk /dev/sda
...省略步骤...记得修改分区类型为fd
[[email protected] ~]# partx -a /dev/sda
[[email protected] ~]# fdisk -l /dev/sda
...省略部分输出...看重点
/dev/sda5            8513        8526      112423+  fd  Linux raid autodetect
/dev/sda6            8527        8540      112423+  fd  Linux raid autodetect
/dev/sda7            8541        8554      112423+  fd  Linux raid autodetect
/dev/sda8            8555        8568      112423+  fd  Linux raid autodetect
/dev/sda9            8569        8582      112423+  fd  Linux raid autodetect

#创建MD设备/dev/md0,其中4块活动设备,RAID级别为5,自动创建,tunck大小为1M,1块备用盘,使用/dev/sda5-9 5块盘分区

[[email protected] ~]# mdadm -C /dev/md0 -n 4 -l 5 -a yes -c 1M  -x 1 /dev/sda{5,6,7,8,9}
mdadm: /dev/sda5 appears to contain an ext2fs file system
       size=5253220K  mtime=Tue Mar 15 13:50:48 2016
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[[email protected] ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue Mar 15 19:19:04 2016
     Raid Level : raid5
     Array Size : 328704 (321.05 MiB 336.59 MB)
  Used Dev Size : 109568 (107.02 MiB 112.20 MB)
   Raid Devices : 4
  Total Devices : 5
    Persistence : Superblock is persistent

    Update Time : Tue Mar 15 19:19:15 2016
          State : clean 
 Active Devices : 4
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 1024K

           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : b477152a:6867fa49:d72e3b5c:efbe2709
         Events : 18

    Number   Major   Minor   RaidDevice State
       0       8        5        0      active sync   /dev/sda5
       1       8        6        1      active sync   /dev/sda6
       2       8        7        2      active sync   /dev/sda7
       5       8        8        3      active sync   /dev/sda8

       4       8        9        -      spare   /dev/sda9

#格式化并挂载使用,存入文件

[[email protected] ~]# mkfs.ext4 /dev/md0
...省略输出...
[[email protected] ~]# mkdir /mnt/md0
[[email protected] ~]# mount /dev/md0 /mnt/md0
[[email protected] ~]# cd /mnt/md0
[[email protected] md0]# dd if=/dev/zero of=datafile bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.287878 s, 364 MB/s
[[email protected] md0]# ls -l 
total 102413
-rw-r--r-- 1 root root 104857600 Mar 15 19:26 datafile
drwx------ 2 root root     12288 Mar 15 19:20 lost+found

#查看可用空间:(4-1)*100M=300M

[[email protected] md0]# df -h /dev/md0
Filesystem      Size  Used Avail Use% Mounted on
/dev/md0        303M  103M  185M  36% /mnt/md0

#制坏其中一块活动设备,备用设备立即启用。查看数据无损失

[[email protected] md0]# mdadm /dev/md0 -f /dev/sda8
mdadm: set /dev/sda8 faulty in /dev/md0
[[email protected] md0]# mdadm -D /dev/md0
...省略部分输出...
          State : clean 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 1
  Spare Devices : 0
  ...省略部分输出...
    Number   Major   Minor   RaidDevice State
       0       8        5        0      active sync   /dev/sda5
       1       8        6        1      active sync   /dev/sda6
       2       8        7        2      active sync   /dev/sda7
       4       8        9        3      active sync   /dev/sda9

       5       8        8        -      faulty   /dev/sda8
[[email protected] md0]# ls -lh
total 101M
-rw-r--r-- 1 root root 100M Mar 15 19:26 datafile
drwx------ 2 root root  12K Mar 15 19:20 lost+found

#继续制坏

[[email protected] md0]# mdadm /dev/md0 -f /dev/sda9
mdadm: set /dev/sda9 faulty in /dev/md0
[[email protected] md0]# mdadm -D /dev/md0
...省略部分输出...状态变成了clean,degraded
          State : clean, degraded 
 Active Devices : 3
Working Devices : 3
 Failed Devices : 2
  Spare Devices : 0
...省略部分输出...
    Number   Major   Minor   RaidDevice State
       0       8        5        0      active sync   /dev/sda5
       1       8        6        1      active sync   /dev/sda6
       2       8        7        2      active sync   /dev/sda7
       6       0        0        6      removed

       4       8        9        -      faulty   /dev/sda9
       5       8        8        -      faulty   /dev/sda8

#移除制坏的设备

[[email protected] md0]# mdadm  /dev/md0 -r /dev/sda9
mdadm: hot removed /dev/sda9 from /dev/md0
[[email protected] md0]# mdadm  /dev/md0 -r /dev/sda8
mdadm: hot removed /dev/sda8 from /dev/md0
[[email protected] md0]# mdadm -D /dev/md0
...省略部分输出...
          State : clean, degraded 
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0
...省略部分输出...
    Number   Major   Minor   RaidDevice State
       0       8        5        0      active sync   /dev/sda5
       1       8        6        1      active sync   /dev/sda6
       2       8        7        2      active sync   /dev/sda7
       6       0        0        6      removed

#做数据改动

[[email protected] md0]# dd if=/dev/zero of=datafile2 bs=1M count=80
80+0 records in
80+0 records out
83886080 bytes (84 MB) copied, 0.1969 s, 426 MB/s
[[email protected] md0]# ls -lh
total 181M
-rw-r--r-- 1 root root 100M Mar 15 19:26 datafile
-rw-r--r-- 1 root root  80M Mar 15 19:41 datafile2
drwx------ 2 root root  12K Mar 15 19:20 lost+found

#模拟添加新硬盘,查看同步状态

[[email protected] md0]# mdadm /dev/md0 -a /dev/sda9
mdadm: added /dev/sda9
[[email protected] md0]# mdadm /dev/md0 -a /dev/sda8
mdadm: added /dev/sda8
[[email protected] md0]# mdadm -D /dev/md0
...省略部分输出...状态变成了clean, degraded, recovering
          State : clean, degraded, recovering 
 Active Devices : 3
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 2
...省略部分输出...
 Rebuild Status : 72% complete
...省略部分输出...
    Number   Major   Minor   RaidDevice State
       0       8        5        0      active sync   /dev/sda5
       1       8        6        1      active sync   /dev/sda6
       2       8        7        2      active sync   /dev/sda7
       4       8        9        3      spare rebuilding   /dev/sda9

       5       8        8        -      spare   /dev/sda8

#稍后片刻,同步数据完成

[[email protected] md0]# mdadm -D /dev/md0
...省略部分输出...
          State : clean 
 Active Devices : 4
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 1
...省略部分输出...
    Number   Major   Minor   RaidDevice State
       0       8        5        0      active sync   /dev/sda5
       1       8        6        1      active sync   /dev/sda6
       2       8        7        2      active sync   /dev/sda7
       4       8        9        3      active sync   /dev/sda9

       5       8        8        -      spare   /dev/sda8

#实验完成,打扫战场。/dev/md0会自动消失的

[[email protected] ~]# umount /dev/md0
[[email protected] ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0

#如果后悔了,现在还能装载回来

[[email protected] ~]# mdadm -A /dev/md0 /dev/sda{5..9}
mdadm: /dev/md0 has been started with 4 drives and 1 spare.
[[email protected] ~]# mount /dev/md0 /mnt/md0
[[email protected] ~]# ls /mnt/md0
datafile  datafile2  lost+found
时间: 2024-10-11 05:28:40

RAID简介与软RAID实现的相关文章

常用RAID简介及软RAID的实现

常用RAID简介及软RAID的实现 一.什么是RAID? 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有"独立磁盘构成的具有冗余能力的阵列"之意. 磁盘阵列是由很多价格较便宜的磁盘,组成一个快速,超大容量的外存储器系统.它在阵列控制器的控制和管理下,实现快速,并行或交叉存取,并有较强的容错能力. 二.RAID的优势 1.提高传输速率.RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量. 2.通过数据校验提供容错

RAID原理及软RAID的实现方式

  1. 什么是RAID  2. RAID的实现方式  3. RAID的级别及特点  4. 软RAID的实现方式 1. 什么是RAID ??RAID全称:Redundant Arrays of Inexpensive(Independent) Disks??实现原理:通过多个磁盘合成一个"阵列"来提供更好的性能.冗余,或者两者都提供??RAID的级别:多块磁盘组织在一起的工作方式有所不同,通过工作方式不同来区分.如RAID0 , RAID1 , RAID4 , RAID5 , RAID

Raid 介绍以及软raid的实现

RAID: old Redundant Arrays of Inexpensive Disks (廉价磁盘冗余阵列) new Redundant Arrays of Independent Disks (独立磁盘冗余阵列) Berkeley: A case for Redundent Arrays of Inexpensive Disks RAID 功能: 提高IO能力:磁盘并行读写: 提高耐用性:磁盘冗余来实现.但是raid不能取代数据备份,raid只是减少磁盘对于数据的影响.人为操作数据无法

RAID存储和软RAID案例

二那么这些做好的存储系统是怎么运作的 那就要分为硬件RAID和软件RAID 硬件RAID: 有专门的硬件,就是厂商已经帮我们做好了存储系统,不过在用之前要在BIOS配置好 (1)       一般来说内核都能识别得到,识别后为,例如第一个存储系统 /dev/sda第二个存储系统为/dev/sdb ,当然内核是不知道存储系统里面有多少个硬盘,它只认为那是一个大的硬盘 (2)       但是如果内核识别不了的话,就要装驱动程序,驱动程序是厂商发行的时候回配给的 一般来说做好的存储系统,都有自己自带

RAID原理及软RAID的配置

一. RAID:独立冗余磁盘阵列: 也被称为廉价磁盘冗余阵列(Redundant Array of Inexpensive Disk)多个独立的物理磁盘按照不同的方式组合起来,形成一个虚拟的磁盘. 二.生产环境中为什么要使用RAID?RAID有哪些优势? 1.RAID在容量和管理上的优势 易于灵活的进行容量扩展 "虚拟化"使可管理性极大的增强 2.RAID在性能上的优势 磁盘分块技术带来的性能提高 3.RAID在可靠性和可用性上的优势 通过冗余技术和热备.热换提升力可靠性 三.RAID

RAID基础及软RAID实现方式

Linux软RAID配置

RAID卡一般分为硬RAID卡和软RAID卡两种,通过用硬件来实现RAID功能的就是硬RAID,独立的RAID卡,主板集成的RAID芯片都是硬RAID.通过软件并使用CPU的RAID卡是指使用CPU来完成RAID的常用计算,软件RAID占用CPU资源较高,绝大部分服务器设备是硬件RAID. 一:Raid级别 raid0: 多个磁盘的容量大小相加.最后的容量就是多个磁盘容量的大小. 优点:扩大了磁盘的空间容量 缺点:没有数据冗余,一块磁盘坏掉,导致所有数据无法正常访问,此时就丢失了一个磁盘的数据量

Linux系统下磁盘配额、软RAID及LVM的配置与管理

Linux系统下磁盘配额.软RAID及LVM的 配置与管理 一.设定文件系统配额 1.概述:配额是操作系统的一个可选的功能, 它允许管理员以文件系统为单元, 限制分派给用户或组成员所使用的磁盘空间大小或是使用的总文件数量.这经常被用于那些分时操作的系统上, 对于这些系统而言, 通常希望限制分派到每一个用户或组的资源总量, 从而可以防止某个用户占用所有可用的磁盘空间. 2.配置文件系统配额(基于用户): (1)配置配额前准备工作: 1)备份/home目录,创建分区,进行挂载,将/home目录下的数

Linux学习笔记之 RAID介绍,及centos6上软RAID的实现

RAID:Redundant Arrays of Inexpensive Disk 廉价冗余磁盘阵列,通过对多块硬盘按不同的方式组织起来,来提高IO能力,或提高耐用性等.RAID可分为软RAID和硬RAID,软RAID通过软件实现,硬RAID使用专业的RAID卡和磁盘组成. RAID级别:多块磁盘组织在一起的工作方式有所不同.常见的RAID级别有RAID0,RAID1,RAID2,RAID3,RAID4,RAID5,RAID6,RAID10,RAID01. RAID0:striping 条带化数