Chinaunix首页 | 论坛 | 博客
  • 博客访问: 139749
  • 博文数量: 43
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 501
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-24 15:28
文章分类

全部博文(43)

文章存档

2015年(18)

2014年(25)

我的朋友

分类: LINUX

2014-11-26 09:11:50

RAID 简介

RAID 是英文Redundant Array of Independent Disks 的缩写,翻译成中文意思是“独立磁盘冗余阵列”,有时也简称磁盘阵列(Disk Array)。

简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份的技术。

组成磁盘阵列的不同方式称为RAID级别(RAID Levels),常见的RAID Level 包括raid0, raid1, raid5, raid10。



一,准备工作


1.在Linux 系统里使用fdisk –l 命令查看所有的物理磁盘


fdisk –l [sda,sdb,sdc...]


2.安装mdadm

mdadm 是multiple devices admin 的简称,它是Linux下的一款标准的软件RAID 管理工具。

查看是否安装了mdadm软件   (如果未安装,则使用yum 方式安装。)

# rpm -qa|grep mdadm

准备工作完毕,下面可以着手创建raid 了。


二,创建RAID1


2.1 新建分区

创建RAID0 需要两块硬盘,所以我们拿/dev/sdb 和/dev/sdc 来实验。

# fdisk /dev/sdb        //对sdb 进行分区

输入"m", 获取帮助,输入"p", 查看分区前磁盘状态

输入"n" 新建分区,这里我们将整个磁盘都划分成一个分区,然后输入"p" 查看分区情况

2.2 修改分区类型

默认新建分区的类型是Linux,代号83,我们需要将其修改为raid 类型。输入"t" ,然后输入"L" 列出所有的文件格式,这里我们选择"fd Linux raid auto", 输入"fd",然后再输入"p" 查看分区情况,这是分区格式已经变成了Linux raid autodetect.

2.3 保存分区

输入"w" 保存分区。   (使用同样方法对/dev/sdc 进行分区操作)

2.4 查看现在的状态

# fdisk -l /dev/sdb /dev/sdc

2.3  开始创建RAID1 (重点)

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

说明:

-C  --create   创建阵列;

-a  --auto    同意创建设备,如不加此参数时必须先使用mknod 命令来创建一个RAID设备,不过推荐使用-a yes参数一次性创建;

-l   --level   阵列模式,支持的阵列模式有 linear, raid0, raid1, raid4, raid5, raid6, raid10, multipath, faulty, container;

-n     --raid-devices    阵列中活动磁盘的数目,该数目加上备用磁盘的数目应该等于阵列中总的磁盘数目;

/dev/md1     阵列的设备名称;

/dev/sd{b,c}1  参与创建阵列的磁盘名称;


2.4 查看raid1 状态

# cat /proc/mdstat

# mdadm -D /dev/md1


说明:Raid Level : 阵列级别;

   Array Size : 阵列容量大小;

   Raid Devices : RAID成员的个数;

   Total Devices : RAID中下属成员的总计个数,因为还有冗余硬盘或分区,也就是spare,为了RAID的正常运珩,随时可以推上去加入RAID的;

   State : clean, degraded, recovering 状态,包括三个状态,clean 表示正常,degraded 表示有问题,recovering 表示正在恢复或构建;

   Active Devices : 被激活的RAID成员个数;

   Working Devices : 正常的工作的RAID成员个数;

   Failed Devices : 出问题的RAID成员;

   Spare Devices : 备用RAID成员个数,当一个RAID的成员出问题时,用其它硬盘或分区来顶替时,RAID要进行构建,在没构建完成时,这个成员也会被认为是spare设备;

   UUID : RAID的UUID值,在系统中是唯一的;



2.5  创建RAID 配置文件/etc/mdadm.conf

RAID 的配置文件为/etc/mdadm.conf,默认是不存在的,需要手工创建。

该配置文件的主要作用是系统启动的时候能够自动加载软RAID,同时也方便日后管理。但不是必须的,推荐对该文件进行配置。

我们这里需要创建这个文件,测试中发现,如果没有这个文件,则reboot 后,已经创建好的md1 会自动变成md127。

/etc/mdadm.conf 文件内容包括:

由DEVICE 选项指定用于软RAID的所有设备,和ARRAY 选项所指定阵列的设备名、RAID级别、阵列中活动设备的数目以及设备的UUID号。


2.5.1 创建/etc/mdadm.conf

# echo DEVICE /dev/sd{b,c}1 >> /etc/mdadm.conf

# echo mdadm -D /dev/md1  >> /etc/mdadm.conf   (这个追加的内容是不标准的,最后一定要修改格式)

2.5.2 修改配置文件  (一定要是如下的格式)

当前生成的/etc/mdadm.conf 文件内容并不符合所规定的格式,所以也是不生效的,这时需要手工修改该文件内容为如下格式:

# cat /etc/mdadm.conf

DEVICE /dev/sdb1 /dev/sdc1

ARRAY /dev/md1 level=raid1 num-devices=2 UUID=5160ea40:cb2b44f1:c650d2ef:0db09fd0

2.6 格式化磁盘阵列

# mkfs.ext4 /dev/md1

2.7 建立挂载点并挂载

# mkdir /raid1

# mount /dev/md1 /raid1/

#df -Th         //查看最终是否挂载成功

2.8  写入/etc/fstab

为了下次开机还能正常使用我们的RAID设备,需要将挂载的信息写入/etc/fstab 文件中。

追加末尾内容:/dev/md1             /raid1                  ext4    defaults        0 0


到此为止,磁盘阵列raid1 已经配置完毕。(raid5配置类似,只是在创建磁盘阵列时,多了一个硬盘设备,把raid1改为raid5就行了)

重启之后,运行:df -Th  查看磁盘阵列已经挂载上,说明配置成功。


三  RAID维护



RAID 做好之后,还需要进行日常的维护操作,比如其中一块物理硬盘损坏,我们需要进行更换故障磁盘的操作,下面我们将模拟raid5 中磁盘损坏来讲解软RAID 的维护操作。

3.1 模拟磁盘损坏

在实际中,当软RAID 检测到某个磁盘有故障时,会自动标记该磁盘为故障磁盘,并停止对故障磁盘的读写操作。在这里我们将/dev/sdh1 模拟为出现故障的磁盘,命令如下:

# mdadm /dev/md5 -f /dev/sdh1



3.2 查看重建状态

在上面创建RAID 5过程中,我们设置了一个热备盘,所以当有标记为故障磁盘的时候,热备盘会自动顶替故障磁盘工作,阵列也能够在短时间内实现重建。通过查看"/proc/mdstat" 文件可以看到当前阵列的状态

3.3 查看之前写入的测试数据是否还在

#cd /raid5
#ls   如果有数据显示,说明数据正常,未丢失。


3.4 重建完毕后查看阵列状态

cat /proc/mdstat

当前的RAID 设备又恢复了正常。


3.5   移除损坏的磁盘

移除刚才模拟出现故障的/dev/sdh1,操作如下:  mdadm /dev/md5 -r /dev/sdh1


3.6 再次查看md5的状态

mdadm -D /dev/md5    

/dev/sdh1 已经移除了。


3.7  新加热备磁盘

如果是实际生产中添加新的硬盘,同样需要对新硬盘进行创建分区的操作,这里我们为了方便,将刚才模拟损坏的硬盘再次新加到raid5 中。

 mdadm /dev/md5 -a /dev/sdh1

3.8  查看raid5 阵列状态

cat /proc/mdstat

/dev/sdh1 已经变成了热备盘。

3.9 查看测试数据

#ls /raid5   如果数据还和原来的一样  说明数据没有丢失



四 向RAID中增加存储硬盘


如果现在已经做好的RAID 空间还是不够用的话,那么我们可以向里面增加新的硬盘,来增加RAID 的空间。


4.1 在虚拟机中添加物理硬盘

上面我们已经在虚拟机中添加了八块硬盘,这里需要模拟新增硬盘,所以首先将虚拟机关闭,然后在存储里再次新增一块5GB的硬盘。然后分区等等操作,这里不再赘述。


4.2 向RAID 中新加一块硬盘

# mdadm /dev/md5 -a /dev/sdj1


查看此时的RAID 状态    mdadm -D /dev/md5  


默认情况下,我们向RAID 中增加的磁盘,会被默认当作热备盘,我们需要把热备盘加入到RAID 的活动盘中。


4.3 热备盘转换成活动盘

# mdadm -G /dev/md5 -n4


查看此时的RAID 状态    mdadm -D /dev/md5  


/dev/sdj1 已经变成了活动盘,但是Array Size : 10465280 (9.98 GiB 10.72 GB) 并没有变大,这是因为构建没有完成,图中也可以看出Status 为clean, reshaping。

等RAID 完成构建后,RAID的容量就会改变为(4-1)x 5GB,查看进度可以参考Reshape Status,也可以参考/proc/mdstat.


构建完毕后的RAID 状态: mdadm -D /dev/md5

Array Size : 15697920 (14.97 GiB 16.07 GB),磁盘容量已经增加了。

4.4 扩容文件系统

RAID 构建完毕后,阵列容量增加,但是文件系统还没有增加,这时我们还需要对文件系统进行扩容。

# df –TH

# resize2fs /dev/md5

# df –TH

文件系统已经扩容到15G,而且测试数据正常,未丢失,新增物理硬盘成功。


4.5   修改RAID 配置文件/etc/mdadm.conf

4.6   reboot 测试


重启系统后,一切正常,Linux下配置软RAID成功。



















阅读(1274) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~