天天看点

Centos 上软raid 介绍和配置

**

Raid 介绍**

RAID 的全称为Redundant Arrays of Inexpensive(Independent) Disks,是 1988年由加利福尼亚大学伯克利分校发明的。

Raid 可以将多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供。

RAID实现的方式:

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

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

3. 安装OS前在BIOS里配置

4. 软件RAID:通过OS实现

*

raid 常用级别*

raid 常用级别有 raid0,raid1,raid5,raid6,raid10,raid 50。

raid 0 两块磁盘同时读写,数据分开放在不同的磁盘里,主要是为了提升读写性能,但是并无冗余能力(容错能力),磁盘中任何一个坏掉都会导致数据丢失,生产中都不会单独使用raid 0。

raid 1 相当于对磁盘做镜像,这样其中一个磁盘坏掉了对数据不会有任何影响,磁盘利用率只有1/2,虽然这大大保证数据安全,但是却比较浪费。性能表现:写性能下降,读性能提升。

raid 5 是用磁盘其中一个磁盘的空间做数据校验,但是校验码是分散的储存在不同的磁盘上的,如果其中有一个磁盘坏掉后可以通过校验值恢复数据,磁盘利用率为 (n-1)/n,性能表现读写效率都有提升。

raid 6 是拿出整体磁盘中两块磁盘的空间来做数据校验,校验值也是分散储存在不同磁盘上的,磁盘利用率为 (n-2)/n 。

raid 10 就是先做raid 1 后再做raid 0 ,这样既保证了数据的完全备份,也提高了数据的读写效率,容错率高。

Centos 上软raid 配置说明

Centos 上软件raid是结合内核中的md(multi devices)来实现的。

RAID设备可命名为/dev/md0、 /dev/md1、 /dev/md2、/dev/md3等

通过命令mdadm 可以建立软raid

命令的语法格式: mdadm [mode] <raiddevice> [options]
-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
           
软RAID配置示例:
mdadm -C /dev/md5 -a yes -l  -n  -x  /dev/sd{b,c,d,e} 
**(-C /dev/md5 表示创建名称为/dev/md5 的raid ,-l  表示创建raid  ,-n  表示用 个硬盘 ,-x  表示用一个备份)**
 用文件系统对每个RAID设备进行格式化
mke2fs -j /dev/md0
使用mdadm检查RAID设备的状况
mdadm --detail|D /dev/md0
增加新的成员: mdadm –G /dev/md0 –n4 -a /dev/sdf116
模拟磁盘故障 mdadm /dev/md0 -f /dev/sda1
移除磁盘 mdadm /dev/md0 –r /dev/sda1
• 在备用驱动器上重建分区
• mdadm /dev/md0 -a /dev/sda1
 mdadm、 /proc/mdstat及系统日志信息
           

**

Centos 上配置 Raid 5 实例**

centos6.9 上使用sdb1,sdc1,sdd1,sde1 来建立raid5 ,前提要保证该四个硬盘系统类型为 Linux raid autodetect ,如果不是通过fdisk 来改变。

第一步:

[[email protected]]#fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): t     ###表示要改变类型
Partition number (-): 
Hex code (type L to list codes): fd   ###fd 是raid 的类型

Command (m for help): p       ### 查看是否改变成功

Disk /dev/sdb:  GB,  bytes
 heads,  sectors/track,  cylinders
Units = cylinders of  *  =  bytes
Sector size (logical/physical):  bytes /  bytes
I/O size (minimum/optimal):  bytes /  bytes
Disk identifier: 

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1                             +  fd  Linux raid autodetect
其余的磁盘也是通过一样的方法来改变。
           

第二步:

创建raid 5

`mdadm -C  /dev/md5  -l 5 -n 3 -x1 /dev/sd{b,c,d,e}1` (创建名称为/dev/md5 的raid ,-l  表示raid5 , -n  表示 个硬盘,-x  表示一块硬盘做后备 )
           

2.2

mkfs.ext4 /dev/md5

格式化raid5

2.3 通过

mdadm -D /dev/md5

来查看状态

“`

Centos 上软raid 介绍和配置

可以看到sdb1 sdc1 sdd1 和sde1 都已经加入raid5 中,sde1 是在备份状态。

2.4 通过

mount /dev/md5 /mnt

把raid 挂载到/mnt 下后就可以对raid5 来读写文件了 ,这时候我们可以在/mnt 写任意文件。至此raid5 的创建已经

2.6 为了验证raid 5 对磁盘的容错功能,模拟其中一个硬盘

mdadm /dev/md5 -f /dev/sdb1 模拟sdb1 磁盘损坏

Centos 上软raid 介绍和配置

此时我们比较mnt 里面的文件,发现虽然sdb1 此时已经损坏 ,但是mnt 里面的文件却没有任何丢失!

2.7

mdadm /dev/md5 -r /dev/sdb1 移除坏掉的sdb1 磁盘。

如果加入新磁盘可以通过命令: mdadm -a /dev/sdx /dev/raid5 。

至此raid 5 模拟磁盘损坏和新增磁盘结束。

继续阅读