一、RAID 简介
RAID 是英文Redundant Array of Independent Disks 的缩写,翻译成中文意思是“独立磁盘冗余阵列”,有时也简称磁盘阵列(Disk Array)。
简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份的技术。
组成磁盘阵列的不同方式称为RAID级别(RAID Levels),常见的RAID Level 包括raid0, raid1, raid5, raid10。各level 对比如下:
RAID等级 | 最少硬盘 | 最大容错 | 可用容量 | 读取性能 | 写入性能 | 安全性 | 目的 | 应用产业 |
0 | 2 | 0 | n | n | n | 一个硬盘异常,全部硬盘都会异常 | 追求最大容量、速度 | 3D产业实时渲染、视频剪接高速缓存 |
1 | 2 | n-1 | 1 | n | 1 | 最高,一个正常即可 | 追求最大安全性 | 个人、企业备份 |
5 | 3 | 1 | n-1 | n-1 | n-1 | 高 | 追求最大容量、最小预算 | 个人、企业备份 |
10 | 4 | n/2 | n/2 | n | n/2 | 安全性高 | 综合RAID 0/1优点,理论速度较快 | 大型数据库、服务器 |
说明:n 代表硬盘总数
关于RAID的详细介绍,请参考:http://zh.wikipedia.org/wiki/RAID
二、系统环境
实验环境:Oracle VM VirtualBox
系统平台:CentOS release 6.3 (Final)
mdadm 版本:mdadm - v3.2.6 - 25th October 2012
三、设置磁盘
在Oracle VM VirtualBox 里模拟物理增加磁盘,在这篇文章中,我们将创建RAID0, RAID1, RAID5分区,RAID0 需要两块硬盘,RAID1 需要两块硬盘,RAID5需要四块硬盘,所以在这里添加了八块物理硬盘,每块5.00 GB.
在Linux 系统里使用fdisk –l 命令查看。
四、安装mdadm
mdadm 是multiple devices admin 的简称,它是Linux下的一款标准的软件RAID 管理工具。
4.1 查看是否安装了mdadm软件
# rpm -qa|grep mdadm
4.2 如果未安装,则使用yum 方式安装。
准备工作完毕,下面可以着手创建raid 了。
五、创建RAID0
5.1 新建分区
创建RAID0 需要两块硬盘,所以我们拿/dev/sdb 和/dev/sdc 来实验。
# fdisk /dev/sdb //对sdb 进行分区
输入"m", 获取帮助,输入"p", 查看分区前磁盘状态,其他Command action 具体含义请自行Google, Baidu。
输入"n" 新建分区,这里我们将整个磁盘都划分成一个分区,然后输入"p" 查看分区情况。
5.2 修改分区类型
默认新建分区的类型是Linux,代号83,我们需要将其修改为raid 类型。输入"t" ,然后输入"L" 列出所有的文件格式,这里我们选择"fd Linux raid auto", 输入"fd",然后再输入"p" 查看分区情况,这是分区格式已经变成了Linux raid autodetect.
5.3 保存分区
输入"w" 保存分区。
使用同样方法对/dev/sdc 进行分区操作。
5.4 同步分区情况
使用partprobe 命令同步分区情况。
5.5 查看现在的状态
# fdisk -l /dev/sdb /dev/sdc
5.6 开始创建RAID0
# mdadm -C /dev/md0 -ayes -l0 -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/md0 阵列的设备名称;
/dev/sd{b,c}1 参与创建阵列的磁盘名称;
5.7 查看raid0 状态
# cat /proc/mdstat
# mdadm -D /dev/md0
说明: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值,在系统中是唯一的;
5.8 创建RAID 配置文件/etc/mdadm.conf
RAID 的配置文件为/etc/mdadm.conf,默认是不存在的,需要手工创建。
该配置文件的主要作用是系统启动的时候能够自动加载软RAID,同时也方便日后管理。但不是必须的,推荐对该文件进行配置。
我们这里需要创建这个文件,测试中发现,如果没有这个文件,则reboot 后,已经创建好的md0 会自动变成md127。
/etc/mdadm.conf 文件内容包括:
由DEVICE 选项指定用于软RAID的所有设备,和ARRAY 选项所指定阵列的设备名、RAID级别、阵列中活动设备的数目以及设备的UUID号。
5.8.1 创建/etc/mdadm.conf
# echo DEVICE /dev/sd{b,c}1 >> /etc/mdadm.conf
# mdadm –Ds >> /etc/mdadm.conf
5.8.2 修改配置文件
当前生成的/etc/mdadm.conf 文件内容并不符合所规定的格式,所以也是不生效的,这时需要手工修改该文件内容为如下格式:
# cat /etc/mdadm.conf
DEVICE /dev/sdb1 /dev/sdc1
ARRAY /dev/md0 level=raid0 num-devices=2 UUID=5160ea40:cb2b44f1:c650d2ef:0db09fd0
5.9 格式化磁盘阵列
# mkfs.ext4 /dev/md0
5.10 建立挂载点并挂载
# mkdir /raid0
# mount /dev/md0 /raid0/
可以看到,/dev/md0 的可用大小为9.9G。
5.11 写入/etc/fstab
为了下次开机还能正常使用我们的RAID设备,需要将挂载的信息写入/etc/fstab 文件中。
然后reboot 测试开机是否自动挂载,raid0 创建完毕。
六、创建RAID1
和创建raid0 类似,我们拿/dev/sdd 和/dev/sde 这两块硬盘来做实验。
6.1 新建分区并修改分区类型
使用同样方法对/dev/sde 进行分区操作,分区结果如下:
6.2 开始创建RAID1
# mdadm -C /dev/md1 -ayes -l1 -n2 /dev/sd[d,e]1
6.3 查看raid1 状态
# cat /proc/mdstat
# mdadm -D /dev/md1
说明:Used Dev Size : RAID单位成员容量大小,也就是构成RAID的成员硬盘或分区的容量的大小;
可以看到,raid1 正在创建,待创建完毕,状态如下:
6.4 添加raid1 到RAID 配置文件/etc/mdadm.conf 并修改
# echo DEVICE /dev/sd{b,c}1 >> /etc/mdadm.conf
# mdadm –Ds >> /etc/mdadm.conf
6.5 格式化磁盘阵列
# mkfs.ext4 /dev/md1
6.6 建立挂载点并挂载
# mkdir /raid1
# mount /dev/md1 /raid1/
可以看到,/dev/md1 的可用大小为4.9G。
6.7 写入/etc/fstab
然后reboot 测试开机是否自动挂载,raid1 创建完毕。
七、创建RAID5
RAID5 至少需要三块硬盘,我们拿/dev/sdf, /dev/sdg, /dev/sdh, /dev/sdi 这四块硬盘来做实验,三块做为活动盘,另一块做为热备盘。
7.1 新建分区并修改分区类型
分区结果如下:
7.2 开始创建RAID5
# mdadm -C /dev/md5 -ayes -l5 –n3 -x1 /dev/sd[f,g,h,i]1
说明:"-x1" 或"--spare-devices=1" 表示当前阵列中热备盘只有一块,若有多块热备盘,则将"--spare-devices" 的值设置为相应的数目。
7.3 查看raid5 状态
# cat /proc/mdstat
# mdadm -D /dev/md5
说明:Rebuild Status : RAID 的构建进度;
4 8 113 2 spare rebuilding /dev/sdh1 注:未被激活,正在构建中的成员,正在传输数据;
3 8 129 - spare /dev/sdi1 热备盘
raid5 正在创建,而且速度很慢,待创建完毕,状态如下:
7.4 添加raid5 到RAID配置文件/etc/mdadm.conf 并修改
# echo DEVICE /dev/sd{f,g,h,i}1 >> /etc/mdadm.conf
# mdadm –Ds >> /etc/mdadm.conf
7.5 格式化磁盘阵列
# mkfs.ext4 /dev/md5
7.6 建立挂载点并挂载
# mkdir /raid5
# mount /dev/md5 /raid5/
raid5 的可用大小为9.9G,即(3-1)x 5G.
向 /raid5 里面写入测试数据:
# touch test_raid5.failed
# touch test_raid5.fail
# ls
7.7 写入 /etc/fstab
然后reboot 测试开机是否自动挂载,raid5 创建完毕。
八、RAID维护
RAID 做好之后,还需要进行日常的维护操作,比如其中一块物理硬盘损坏,我们需要进行更换故障磁盘的操作,下面我们将模拟raid5 中磁盘损坏来讲解软RAID 的维护操作。
8.1 模拟磁盘损坏
在实际中,当软RAID 检测到某个磁盘有故障时,会自动标记该磁盘为故障磁盘,并停止对故障磁盘的读写操作。在这里我们将/dev/sdh1 模拟为出现故障的磁盘,命令如下:
# mdadm /dev/md5 -f /dev/sdh1
8.2 查看重建状态
在上面创建RAID 5过程中,我们设置了一个热备盘,所以当有标记为故障磁盘的时候,热备盘会自动顶替故障磁盘工作,阵列也能够在短时间内实现重建。通过查看"/proc/mdstat" 文件可以看到当前阵列的状态,如下:
以上信息表明阵列正在重建,当一个设备出现故障或被标记故障时,相应设备的方括号后将被标以(F),如 "sdh1[4](F)"。
其中 "[3/2]" 的第一位数表示阵列所包含的设备数,第二位数表示活动的设备数,因为目前有一个故障设备,所以第二位数为2;
这时的阵列以降级模式运行,虽然该阵列仍然可用,但是不具有数据冗余;
而 "[UU_]" 表示当前阵列可以正常使用的设备是/dev/sdf1 和/dev/sdg1,如果是设备 “/dev/sdf1” 出现故障时,则将变成[_UU]。
8.3 查看之前写入的测试数据是否还在
数据正常,未丢失。
8.4 重建完毕后查看阵列状态
当前的RAID 设备又恢复了正常。
8.5 移除损坏的磁盘
移除刚才模拟出现故障的/dev/sdh1,操作如下:
8.6 再次查看md5的状态
/dev/sdh1 已经移除了。
8.7 新加热备磁盘
如果是实际生产中添加新的硬盘,同样需要对新硬盘进行创建分区的操作,这里我们为了方便,将刚才模拟损坏的硬盘再次新加到raid5 中。
8.8 查看raid5 阵列状态
/dev/sdh1 已经变成了热备盘。
8.9 查看测试数据
数据正常,未丢失。故障切换测试完毕。
九、向RAID中增加存储硬盘
如果现在已经做好的RAID 空间还是不够用的话,那么我们可以向里面增加新的硬盘,来增加RAID 的空间。
9.1 在虚拟机中添加物理硬盘
上面我们已经在虚拟机中添加了八块硬盘,这里需要模拟新增硬盘,所以首先将虚拟机关闭,然后在存储里再次新增一块5GB的硬盘。然后分区等等操作,这里不再赘述。
9.2 向RAID 中新加一块硬盘
# mdadm /dev/md5 -a /dev/sdj1
查看此时的RAID 状态
默认情况下,我们向RAID 中增加的磁盘,会被默认当作热备盘,我们需要把热备盘加入到RAID 的活动盘中。
9.3 热备盘转换成活动盘
# mdadm -G /dev/md5 -n4
查看此时RAID 状态
/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 状态:
Array Size : 15697920 (14.97 GiB 16.07 GB),磁盘容量已经增加了。
9.4 扩容文件系统
RAID 构建完毕后,阵列容量增加,但是文件系统还没有增加,这时我们还需要对文件系统进行扩容。
# df –TH
# resize2fs /dev/md5
# df –TH
文件系统已经扩容到15G,而且测试数据正常,未丢失,新增物理硬盘成功。
9.5 修改RAID 配置文件/etc/mdadm.conf
9.6 reboot 测试
重启系统后,一切正常,Linux下配置软RAID成功。
注:转载于
http://www.cnblogs.com/mchina/p/linux-centos-disk-array-software_raid.html
在Virtual Box 4.2.14, Red Hat Enterprise Linux Server release 6.4下试验成功
相关推荐
在CentOS 6.3环境下配置软RAID,主要涉及的是利用操作系统内的软件实现RAID功能,而不是依赖专门的硬件RAID控制器。 RAID有不同的级别,每个级别都有其特点和适用场景。常见的RAID级别包括: 1. RAID 0:条带化...
在 CentOS 6.3 中,默认的网络配置文件位于 /etc/sysconfig/network-scripts/ 目录下,其中 ifcfg-eth0 文件是我们需要编辑的文件。使用 vim 编辑器打开该文件,首次打开时会出现默认的配置信息。我们需要修改两个...
本文档是CentOS 6.3下配置iSCSI网络存储,内容详细,步骤清晰
centos6.3 httpd配置文件
远程安装 CentOS 6.3 并进行硬 RAID 配置 本文将指导用户如何远程安装 CentOS 6.3 操作系统,并在不同服务商的服务器上进行硬 RAID 配置。同时,本文还将详细介绍 CentOS 6.3 的安装过程和需求。 远程安装 CentOS ...
标题中的“CentOS 6.3 64位下载”涉及到的是Linux操作系统的一个特定版本——CentOS 6.3的64位安装镜像。CentOS(Community ENTerprise Operating System)是基于Red Hat Enterprise Linux(RHEL)的开源免费操作...
主要是针对配置centos6.3版本的安装、python26的安装、python26模块的安装、nginx服务的安装、hg安装、解决乱码问题及ftp问题,centos6.3版本的安装与配置,安装过程中的配置,安装包选择
Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了...
Centos_6.3__DNS 配置讲解
### CentOS 6.3 中安装 VMTools 的详细步骤与注意事项 #### 一、VMTools简介 VMTools 是由 VMware 公司开发的一款增强工具包,主要用于改善 VMware 虚拟机内的性能,并加强宿主机与虚拟机之间的交互能力。通过安装 ...
Centos6.3 yum安装lamp架构
### 安装CentOS 6.3系统的详细指南 #### 一、准备工作 在开始安装CentOS 6.3之前...通过以上详细的步骤,您应该能够顺利完成CentOS 6.3系统的安装,并进行一些基本的配置工作。这将有助于确保系统的稳定性和安全性。
【标题】"CentOS6.3" 在IT领域,CentOS是一个非常受欢迎的Linux发行版,主要用于服务器操作系统。CentOS 6.3是这个系列的一个重要版本,发布于2012年,提供了稳定和安全的环境,尤其适合企业级应用。这个版本基于...
centOS6.3-DVD-IOS的下载种子.
本指南将详细解释如何在 CentOS 6.3 环境下安装 Nginx,以及涉及到的源码编译与工具使用。 首先,确保系统是最新的。打开终端,输入以下命令更新系统软件包: ```bash yum update -y ``` 接下来,安装必要的构建...
CentOS 6.3安装配置LAMP服务器(Apache+PHP5+MySQL)
【CentOS6.3 Linux操作系统安装教程】 CentOS是一款基于Red Hat Enterprise Linux(RHEL)源代码重新编译而成的免费Linux发行版,以其稳定性和兼容性受到广大用户的青睐,尤其适合构建LAMP(Linux、Apache、MySQL、...
本文将详细介绍如何在 centos7 环境下实现软raid1,以提高系统的可用性和可靠性。 一、关闭 Selinux 在centos7 环境下,默认情况下 Selinux 是启用的,为了避免 Selinux 对 raid 的干扰,我们需要关闭 Selinux。...
在本文中,我们将深入探讨如何在CentOS 6.3操作系统上安装和配置WebLogic Server 10。WebLogic Server是Oracle公司的一款企业级Java应用服务器,它为开发和部署分布式Java应用程序提供了全面的平台。 首先,安装...
本文将详细介绍在CentOS 6.3上如何卸载旧版本的MySQL并安装新版本的过程。 首先,我们来了解一下卸载MySQL的步骤: 1. **检查已安装的MySQL组件**: 使用`rpm -qa | grep -i mysql`命令可以列出所有与MySQL相关的...