如何在Ubuntu 16.04使用mdadm创建RAIDlinux创建磁盘阵列列

Raid磁盘阵列及mdadm命令_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Raid磁盘阵列及mdadm命令
&&硬件raid和软件raid区别以及mdadm命令
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩6页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢Linux下使用mdadm创建软raid的一些命令
http://www.wenzk.net/bbs/thread-.html
创建raid:
mdadm --create /dev/md0 --raid-devices=4 --level=5 /dev/sdb
/dev/sdc /dev/sde /dev/sdf
当然,你也可以用分区来作为raid的一个设备,当然分区格式必须为:fd
mdadm --create /dev/md0 --raid-devices=4 --level=5 /dev/sdb1
/dev/sdc1 /dev/sde1 /dev/sdf1
--raid-devices=4&&#代表用于创建Raid的设备数目
--level=5& &&
&#代表Raid的级别,Linux支持Linux supports LINEAR md
devices, RAID0 (striping), RAID1 (mirroring), RAID4, RAID5, RAID6,
RAID10, MULTIPATH, and FAULTY
后面就是设备列表了。
然后可以用下面的命令看看Raid的状态:
mdadm --detail /dev/md0
&&&Version :
&&Creation Time : Tue Apr 15
11:38:34 2008
&&&Raid Level :
&&&Array Size :
(101.70 GiB 109.20 GB)
& & Device Size : .90
GiB 36.40 GB)
& &Raid Devices : 4
&&Total Devices : 4
Preferred Minor : 0
& & Persistence : Superblock is
persistent
& & Update Time : Tue Apr 15
11:38:34 2008
&& & State :
clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
&&Spare Devices : 1
&& &Layout :
left-symmetric
&&&Chunk Size :
Rebuild Status : 16% complete
807c3b4a:b2da7f50:a9a5ff6d:61d36983
&& &Events :
& & Number&
&RaidDevice State
&& &active
sync& &/dev/sdb
&& &active
sync& &/dev/sdc
&& &active
sync& &/dev/sde
rebuilding& &/dev/sdf
其他一些常用的命令:
mdadm /dev/md0 --fail
/dev/sdb&&#把sdb状态设置成fail,以便从RAID中删除
mdadm /dev/md0 --remove /dev/sdb #把sdb从RAID中删除
mdadm /dev/md0 --add /dev/sdb& &
#把sdb重新加入到RAID中来。
删除整个RAID:
mdadm /dev/md0 --fail /dev/sdb --remove /dev/sdb
mdadm /dev/md0 --fail /dev/sdc --remove /dev/sdc
mdadm /dev/md0 --fail /dev/sde --remove /dev/sde
mdadm /dev/md0 --fail /dev/sdf --remove /dev/sdf
mdadm --stop /dev/md0
mdadm --misc --zero-superblock /dev/sdb
mdadm --misc --zero-superblock /dev/sdc
mdadm --misc --zero-superblock /dev/sde
mdadm --misc --zero-superblock /dev/sdf
即: 先删除RAID中的所有设备,然后停止该RAID即可
具体参见 man mdadm
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Linux下如何用mdadm实现软件RAID
数据在现今企业中占有重要的地位,数据存储的安全性有而是人们使用计算机要注意的重要问题之一.通常情况下人们在服务器端采用各种冗余磁盘阵列RAID技术
来保护数据,中高档的服务器一般都提供了昂贵的硬件RAID控制器,但是很多中小企业没有足够的经费承受这笔开销.我们有没有方法可以通过软件来实现RAID呢?
实际上在Linux下可以通过软件来实现硬件的RAID功能,这样既节省了投资,又能达到很好的效果.今天就由我为大家介绍如何在网络环境中实现带有一块Spare-disk的软RAID1(数据镜像)阵列.
小提示:什么是RAID1(数据镜像)?RAID1是比较可靠的数据存储方式,每一个磁盘都具有一个对应的镜像盘.对任何磁盘的数据写入都会被复制镜像盘
中;系统可以从一组镜像盘中的任何一个磁盘读取数据,也就是说同一个数据会被重复写入两次,这样的磁盘镜像肯定会提高系统成本.因为我们所能使用的空间只
是所有磁盘容量总和的一半.
由于本文中会使用mdadm软件,而该软件一般情况下都会集成在Redhat
linux中,所以可以直接使用.如果系统中没有安装可以到http://www.cse.unsw.edu.au/~neilb/source
/mdadm来下载mdadm-xxx.tgz进行编译安装,也可以到http://www.cse.unsw.edu.au/~neilb
/source/mdadm/rpm下载mdadm-xxx.i386.rpm直接安装.
作为一个面向服务器的网络型操作系统,Linux对数据的安全和存取速度给予了高度重视,从2.4版内核开始Linux就实现了对软件RAID的支
持,这让我们可以不必购买昂贵的硬件RAID设备,就能享受到增强的磁盘I/O性能和可靠性,进一步降低了系统的总体拥有成本.下面就让我们看一个
Redhat Linux AS 4下的软件RAID配置实例吧.
● 操作系统为RedHat Linux AS 4;
● 内核版本为2.6.9-5.EL;
● 支持RAID0、RAID1、RAID4、RAID5、RAID6;
● 五块36GB SCSI接口的磁盘,其中RedHat AS 4安装在第一块磁盘,其它四块组成RAID
5用来存放Oracle数据库.
在RedHatAS4下实现软件RAID是通过mdadm工具实现的,其版本为1.6.0,它是一个单一的程序,创建、管理RAID都非常方便,而且也很
稳定.而在早期Linux下使用的raidtools,由于维护起来很困难,而且其性能有限,在RedHat AS
4下已经不支持了.
一.几种常用RAID的简介
RAID是冗余磁盘阵列(Redundant Array of
InexpensiveDisk)的简称.它是把多个磁盘组成一个阵列,当作单一磁盘使用.它将数据以分段(striping)的方式分散存储在不同的磁
盘中,通过多个磁盘的同时读写,来减少数据的存取时间,并且可以利用不同的技术实现数据的冗余,即使有一个磁盘损坏,也可以从其他的磁盘中恢复所有的数
据.简单地说,其好处就是:安全性高、速度快、数据容量大.
磁盘阵列根据其使用的技术不同而划分了等级,称为RAID level,目前公认的标准是RAID0~RAID
5.其中的level并不代表技术的高低,RAID 5并不高于RAID 4 ,RAID 0并不低于RAID
2,至于选择哪一种RAID需视用户的需求而定.下面分别对常用的RAID 0、RAID 1、RAID 5进行简单的介绍.
特点:它是将多个磁盘并列起来,成为一个大硬盘.在存取数据时,将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中.在所有的级别中,RAID
0的速度是最快的.但没有数据冗余,阵列中任何一个磁盘坏掉,意味着所有数据丢失.
磁盘利用数:n(假设有n个磁盘).
配置条件:最低两块磁盘,且分区大小尽量相同.
应用领域:对高磁盘容量及高速磁盘存取有特殊需求,而又不计较其高故障率的工作.当然,如果你正在使用集群,RAID 0
无疑是提高磁盘I/O性能的最好方法,因为在这种情况下,你就不用担心冗余的问题了.
特点:使用磁盘镜像(disk
mirroring)的技术,在一个磁盘上存放数据的同时也在另一个磁盘上写一样的数据.因为有了备份磁盘,所以RAID1的数据安全性在所有的RAID
级别上来说是最好的.尽管其写入数据的速度比较慢,但因其数据是以分段的方式作储存,因而在读取时,它几乎和RAID0有同样的性能.
磁盘利用数:n/2.
配置条件:最低两块磁盘,且分区大小尽量相同.
应用领域:数据库、金融系统等一些对数据有着高可靠性要求的领域.再者就是系统中写数据量比较少,而读数据量又比较多的情况下可以采用这一模式.
特点:以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个磁盘上.这样,任何一个磁盘损坏,都可以根据其他磁盘上的校验位来重建损坏的数据.并行读写数据,性能也很高.
磁盘利用数:n-1.
配置条件:最低三块硬盘,且分区大小尽量相同.
应用领域:适合于事务处理环境,如售票处、销售系统等.
&mdadm有6种模式,前两种模式:Create、Assemble用于配置和激活阵列;Manage模式用于操作在活动阵列中的设备;Follow或
Monitor模式允许管理员对活动阵列配置事件提醒和动作;Build模式用于对旧阵列使用旧版本的md驱动;还有Grow模式可以扩展阵列;剩下的是
Misc模式,它包括对多种内部的任务和没有指定特殊模式的一些操作.
1、准备磁盘
&只能使用Sofware
RAID格式的磁盘才能组成阵列,所以,首先我们要把做好磁盘格式.正如上面提到的,除了系统盘sda外,我们需要对sdb、sdc、sdd进行操作
a)对sdb进行分区
fdisk /dev/sdb
分区前状态:
n,划分区:
t,修改分区格式为fd:
b)同样的方法,对sdc、sdd进行分区和保存
最后状态如下:
2、创建阵列&mdadm可以支持LINEAR、RAID0
&(striping)、 RAID1(mirroring)、
RAID4、RAID5、RAID6和MULTIPATH的阵列模式.
创建命令格式如下:
mdadm [mode] [options]
例如:创建一个RAID 0设备:
mdadm &create &verbose /dev/md0 &level=0 &raid-devices=3
/dev/sdb1 /dev/sdc1 /dev/sdd1
&level表示创建的阵列模式,&raid-devices表示参与阵列的磁盘数量.
也可以这样表达,意思是一样的:
mdadm -Cv /dev/md0 -l0 -n3 /dev/sd[bcd]1
还可以增加-c128参数,指定chunk size为128K(默认64K)
&spare-devices是加入热备.
3、配置文件
&mdadm不采用/etc/mdadm.conf作为主要配置文件,它可以完全不依赖该文件而不会影响阵列的正常工作.
&该配置文件的主要作用是方便跟踪软RAID的配置.对该配置文件进行配置是有好处的,但不是必须的.推荐对该文件进行配置.
通常可以这样来建立:
echo DEVICE /dev/sd[bcd]1 &
/etc/mdadm.conf
mdadm -Ds&&&
/etc/mdadm.conf
mdadm &detail &scan && /etc/mdadm.conf
4、格式化阵列&后续,只要你把/dev/md0作为一个单独的设备来进行操作即可:
mkfs.ext3 /dev/md0
mkdir /mnt/test
mount /dev/md0 /mnt/test
5、若要开机自动挂载,请加入/etc/fstab中:
/dev/md0 & & &
& &/mnt/tes &
&defaults & &
四、监控和管理
&mdadm可以非常方便的对阵列进行监控和管理的操作,也包括了停止和启动阵列等常用维护.
/proc/mdstat
可以查看所有使用md驱动的阵列的状态:
mdadm &detail /dev/md0
查看指定阵列的详细信息(-D):
mdadm -S /dev/md0
停止指定阵列,并释放磁盘(&stop):
※注意:停止后,原组成阵列的磁盘将处于空闲状态,一旦吾操作这些磁盘,将不能再重启激活原阵列.
mdadm -A /dev/md0 /dev/sd[bcd]1
启动指定的阵列,也可理解为讲一个新阵列装配到系统中(&assemble):
若你已经在上面配置了/etc/mdadm.conf文件,也可用-s查找:
mdadm -As /dev/md0
&如果你没有配置/etc/mdadm.conf文件,而且又忘了某磁盘属于那个阵列,则你可以使用检测:(&examine)
mdadm -E /dev/sdb1
获得UUID后,也可以这样激活阵列:
mdadm -Av /dev/md0 &uuid=8ba8e8:e040da0e:f0b3fec8
可以看到,只要磁盘没有损坏,这样装配是非常方便的:
5、添加及删除磁盘
&mdadm可以在Manage模式下,对运行中的阵列进行添加及删除磁盘.常用于标识failed磁盘,增加spare(冗余)磁盘,以及替换磁盘等.
例如:原来状态是:
则可以使用&fail指定坏磁盘,并&remove走:
mdadm /dev/md0 &fail /dev/sdc1 &remove /dev/sdc1
等待同步完成后,结果:
※需要注意的是,对于某些阵列模式,如RAID0等,是不能用&fail和&remove的.
增加一个新的阵列用磁盘
mdadm /dev/md0 &add /dev/sdc1
※需要注意的是,对于某些阵列模式,如RAID0等,是不能用&add的.
&在Follow或Monitor状态下,可以使用mdadm对阵列进行监控,例如当阵列出现问题的时候,发送邮件给管理员;或者当磁盘出现问题的时候进行自动的磁盘替换.
nohup mdadm &monitor &mail=sysadmin &delay=300 /dev/md0
上述定义:没300秒监控一次,当阵列出现错误,会发送邮件给sysadmin用户.由于monitor启动后是不会自动退出的,所以需要加上nohup和&,使之持续在后台运行.
&在Follow模式下,是允许共享冗余磁盘的.
&例如,我们有两个阵列:/dev/md0、/dev/md1,而/dev/md0里面有一个spare磁盘.当我们在/etc/mdadm.conf中定义类似:
DEVICE &/dev/sd*
ARRAY & /dev/md0 level=raid1 num-devices=3
spare-group=database &
& UUID=410a299e:4cdd535e:169d3df4:48b7144a
ARRAY &/dev/md1 level=raid1 num-device=2
spare-group=database &
& UUID=59b6e564:739d4d28:ae0aa308:71147fe7
也就是定义一个spare-group组.并运行上面的monitor模式命令.这样,当组成/dev/md1的其中一个磁盘出现问题的时候,mdadm会自动从/dev/md0上移走spare磁盘,并加入/dev/md1中,而不需要人工干预.(请注意,能实现这样工作的,只有在该阵列支持冗余的情况下才能实现,如raid1、raid5等.而对于raid0等阵列模式,是无效的)
1、增加spare磁盘
&可以通过在创建的时候指定冗余磁盘:
mdadm -Cv /dev/md0 -l1 -n2 -x1 /dev/sd[bcd]1
-x(&spare-devices)参数用于指定冗余磁盘的数量,结果:
&另外,对于full的阵列(例如已经有2个磁盘的RAID1),则直接使用-add参数,mdadm会自动把冗余的磁盘作为spare
2、删除阵列
mdadm -S /dev/md0
rm /dev/md0
修改/etc/mdadm.conf、/etc/fstab等配置文件,把相关的地方去掉;
最后,用fdisk对磁盘进行重新分区即可.
3、重建阵列
&我们也可以在没有fdisk的情况下把使用过,但目前没有属于任何阵列的磁盘划分到新阵列中:
确认后即可.
参考资料:
1.启用阵列 #mdadm -As /dev/md0 -A 启用已存在的阵列 -s 以/etc/mdadm.conf为依据
没有创建mdadm.conf文件,则采用如下方法启用
#mdadm -A /dev/md0 /dev/sd[bc]1
2.停止阵列 #mdadm -S /dev/md0
3.显示阵列详细信息 #mdadm -D /dev/md0
删除RAID中的硬盘
&stop /dev/md0
mdadm &remove /dev/md0
&zero-superblock /dev/sda
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。云计算&大数据
WEB开发设计
如何在Ubuntu 16.04使用mdadm管理RAID阵列
RAID阵列通过将单个磁盘组合到特定配置中的虚拟存储设备来提高性能和冗余性。 在Linux中mdadm工具可以很容易地创建和管理软件RAID阵列。
在先前的指导,我们介绍 。 在本指南中,我们将演示如何在Ubuntu 16.04服务器上管理RAID阵列。 在大多数情况下管理RAID阵列非常简单。
要完成本指南,您将需要访问非root sudo用户。 您可以按照我们来设置相应的用户。
如上所述,本指南将介绍RAID阵列管理。 按照我们的指导开始本指南之前创建一个或多个阵列。 本指南假设您有一个或多个数组要操作。
正确管理的最基本的要求之一是能够找到关于结构,组件设备和阵列的当前状态的信息。
要获得有关RAID设备的详细信息,通过与RAID设备-D或--detail选项mdadm : sudo mdadm -D /dev/md0
将显示有关阵列的重要信息: Output/dev/md0:
Version : 1.2
Creation Time : Mon Aug
8 21:19:06 2016
Raid Level : raid10
Array Size :
(199.88 GiB 214.61 GB)
Used Dev Size :
(99.94 GiB 107.31 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Mon Aug
8 21:36:36 2016
State : active
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Name : mdadmwrite:0
(local to host mdadmwrite)
UUID : 0dc2e687:1dfe70ac:d440b2ac:5828d61d
Events : 18
RaidDevice State
active sync set-A
active sync set-B
active sync set-A
active sync set-B
从此视图中,您可以看到RAID级别,阵列大小,单个部分的运行状况,阵列的UUID,组件设备及其角色。 此视图中提供的信息都有相当好的标签。
要获取详细信息,缩短为一个数组,适当增加了/dev/mdadm/mdadm.conf文件,你可以通过在--brief或-b的详细视图标志: sudo mdadm -Db /dev/md0
OutputARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=0dc2e687:1dfe70ac:d440b2ac:5828d61d
为了得到一个RAID设备的快速可读总结,使用-Q选项进行查询: sudo mdadm -Q /dev/md0
Output/dev/md0: 199.88GiB raid10 4 devices, 0 spares. Use mdadm --detail for more detail.
这可以用来一目了然地找到关于RAID设备的关键信息。
您还可以使用mdadm查询单个组件的设备。
在-Q选项,与组件设备使用时,会告诉你该数组是的一部分,它的作用: sudo mdadm -Q /dev/sdc
Output/dev/sdc: is not an md array
/dev/sdc: device 2 in 4 device active raid10 /dev/md0.
Use mdadm --examine for more detail.
您可以通过使用获得更详细的信息-E或--examine选项: sudo mdadm -E /dev/sdc
Output/dev/sdc:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 0dc2e687:1dfe70ac:d440b2ac:5828d61d
Name : mdadmwrite:0
(local to host mdadmwrite)
Creation Time : Mon Aug
8 21:19:06 2016
Raid Level : raid10
Raid Devices : 4
Avail Dev Size :
(99.94 GiB 107.31 GB)
Array Size :
(199.88 GiB 214.61 GB)
Data Offset : 131072 sectors
Super Offset : 8 sectors
Unused Space : before=130984 sectors, after=0 sectors
State : active
Device UUID : b46e93:9d9c7bde:c80352bb
Update Time : Mon Aug
8 21:36:36 2016
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : 8be1be96 - correct
Events : 18
Layout : near=2
Chunk Size : 512K
Device Role : Active device 2
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
这个信息是一个使用时类似于显示-D与阵列器件的选择,但集中于该组成装置的该阵列的关系。
为了让您的服务器上的每个组装阵列的详细信息,请检查/proc/mdstat文件。 这通常是找到系统上活动阵列的当前状态的最佳方法: cat /proc/mdstat
OutputPersonalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid10 sdd[3] sdc[2] sdb[1] sda[0]
blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
unused devices: &none&
这里的输出相当密集,在少量的空间中提供了大量的信息。
/ proc / mdstat Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
个性行描述不同的RAID级别和配置内核目前支持。
与MD0开头的行描述了一个RAID设备描述的开始。 以下的缩进线也描述此设备。
/ proc / mdstat . . .
md0 : active raid10 sdd[3] sdc[2] sdb[1] sda[0]
阵列处于活动状态(非故障)并配置为RAID 10的第一行状态。然后,列出了用于构建阵列的组件设备。 括号中的数字描述了设备在阵列中的当前“角色”(这会影响设备的数据副本)。
/ proc / mdstat . . .
blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
在此示例中显示的第二行给出了虚拟设备提供的块数,元数据版本(本示例中为1.2)和数组的块大小。 由于这是一个RAID 10阵列,它还包括有关数组布局的信息(此示例已配置为在“near”布局中存储每个数据块的两个副本)。
方括号中的最后一个项目表示当前可用的设备在健康集合中。 数字括号中的第一个数字表示健康阵列的大小,而第二个数字表示当前可用的设备数。 其他括号是阵列运行状况的可视指示,其中“U”表示健康设备,“_”表示故障设备。
如果您的数组正在汇编或恢复,您可能有另一行显示进度。 它看起来像这样:
/ proc / mdstat . . .
[&....................]
0.9% (584128) finish=15.3min speed=225863K/sec
这描述了当前正在应用的操作和当前的进展以多种不同的方式。 它还提供当前速度和直到完成的估计时间。
在您了解系统上当前正在运行的阵列之后,您可以执行许多操作。
要停止数组,第一步是卸载它。
在已安装的目录外部步骤,然后通过键入以下内容卸载: cd ~
sudo umount /mnt/md0
您可以通过键入以下命令停止所有活动阵列: sudo mdadm --stop --scan
如果你想停止一个特定的阵列,它传递给mdadm --stop命令: sudo mdadm --stop /dev/md0
这将停止数组。 您将必须重新组合数组以再次访问它。
要启动配置文件中定义的所有阵列或/proc/mdstat ,键入: sudo mdadm --assemble --scan
启动特定的阵列,可以把它作为参数传递给mdadm --assemble : sudo mdadm --assemble /dev/md0
如果在配置文件中定义了数组,这个方法就可以了。
如果配置文件中没有正确的数组定义,则仍然可以通过传入组件设备来启动该数组: sudo mdadm --assemble /dev/md0 /dev/sda /dev/sdb /dev/sdc /dev/sdd
一旦阵列被组装,它可以像往常一样安装: sudo mount /dev/md0 /mnt/md0
现在应该可以在安装点访问该数组。
向阵列添加备用设备
备用设备可以添加到任何提供冗余的阵列(例如RAID 1,5,6或10)。 阵列将不会主动使用备用阵列,除非主动设备发生故障。 发生这种情况时,阵列会将数据重新同步到备用驱动器,以将阵列修复到完全正常。 备件不能添加到非冗余阵列(RAID 0),因为该数组将无法生存驱动器的故障。
要增加一个备用,只需传递数组和新设备的在mdadm --add命令: sudo mdadm /dev/md0 --add /dev/sde
如果阵列不处于降级状态,则新设备将作为备用设备添加。 如果设备当前已降级,则重新同步操作将立即开始使用备用设备来更换故障驱动器。
添加备用设备后,请更新配置文件以反映新的设备方向: sudo nano /etc/mdadm/mdadm.conf
删除或注释掉与数组定义对应的当前行:
/etc/mdadm/mdadm.conf . . .
# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=d81c843b:4d96d9fc:5f3f499c:6ee99294
然后,附加您当前的配置: sudo mdadm --detail --brief /dev/md0 | sudo tee -a /etc/mdadm/mdadm.conf
新的信息将被用于mdadm工具来组装阵列。
增加阵列中的活动设备数
可以通过增加组件中的有源器件数量来增大阵列。 确切的过程略微取决于您正在使用的RAID级别。
使用RAID 1或10
首先,将新设备作为备用设备添加,如上一部分所示: sudo mdadm /dev/md0 --add /dev/sde
查找阵列中当前RAID设备的数量: sudo mdadm --detail /dev/md0
Output/dev/md0:
Version : 1.2
Creation Time : Wed Aug 10 15:29:26 2016
Raid Level : raid1
Array Size :
(99.94 GiB 107.31 GB)
Used Dev Size :
(99.94 GiB 107.31 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
我们可以看到,在这个例子中,阵列被配置为主动使用两个设备,并且阵列可用的设备总数是三个(因为我们添加了一个备用设备)。
现在,重新配置阵列以具有附加的活动设备。 备用将用于满足额外的驱动器要求: sudo mdadm --grow --raid-devices=3 /dev/md0
阵列将开始使用额外的活动磁盘重新配置。 要查看同步数据的进度,请键入: cat /proc/mdstat
在过程完成后,您可以继续使用设备。
使用RAID 5或6
首先,将新设备作为备用设备添加,如上一部分所示: sudo mdadm /dev/md0 --add /dev/sde
查找阵列中当前RAID设备的数量: sudo mdadm --detail /dev/md0
Output/dev/md0:
Version : 1.2
Creation Time : Wed Aug 10 18:38:51 2016
Raid Level : raid5
Array Size :
(199.88 GiB 214.61 GB)
Used Dev Size :
(99.94 GiB 107.31 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
我们可以看到,在这个例子中,该阵列被配置为主动使用三个设备,并且阵列可用的设备总数为四(因为我们添加了一个备用设备)。
现在,重新配置阵列以具有附加的活动设备。 备用将用于满足额外的驱动器要求。 当生长RAID 5或RAID 6阵列,它包括被称为一个额外的选项是重要--backup-file 。 这应该指向的位置停止的地方包含关键信息的备份文件将存储阵列。
备份文件仅在此过程中用于非常短但关键的时间,之后它将被自动删除。 因为当这是需要时间很短暂,你可能永远也看不到磁盘上的文件,但在出现问题的情况下,它可以被用来重建阵列。 有一些额外的信息,如果你想了解更多。sudo mdadm --grow --raid-devices=4 --backup-file=/root/md0_grow.bak /dev/md0
以下输出表示将备份临界段: Outputmdadm: Need to backup 3072K of critical section..
阵列将开始使用额外的活动磁盘重新配置。 要查看同步数据的进度,请键入: cat /proc/mdstat
此过程完成后,您可以继续使用设备。
重整完成后,您将需要展开阵列上的文件系统以利用额外的空间: sudo resize2fs /dev/md0
您的数组现在应该具有与其容量相匹配的文件系统。
使用RAID 0
因为RAID 0阵列不能有备用驱动器(备份没有机会重建损坏的RAID 0阵列),我们必须在增加阵列的同时添加新设备。
首先,了解阵列中当前的RAID设备数量: sudo mdadm --detail /dev/md0
Output/dev/md0:
Version : 1.2
Creation Time : Wed Aug 10 19:17:14 2016
Raid Level : raid0
Array Size :
(199.88 GiB 214.61 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
我们现在可以在与添加新驱动器相同的操作中增加RAID设备的数量: sudo mdadm --grow /dev/md0 --raid-devices=3 --add /dev/sdc
您将看到指示阵列已更改为RAID 4的输出: Outputmdadm: level of /dev/md0 changed to raid4
mdadm: added /dev/sdc
这是正常和预期。 当数据已重新分发到所有现有磁盘时,阵列将转换回RAID 0。
您可以通过键入以下内容来检查操作的进度: cat /proc/mdstat
同步完成后,调整文件系统大小以使用额外空间: sudo resize2fs /dev/md0
您的数组现在应该具有与其容量相匹配的文件系统。
从阵列中删除设备
如果出现故障或需要切换磁盘,有时需要从RAID阵列中删除驱动器。
对于要删除的设备,必须首先在阵列中将其标记为“失败”。 您可以检查是否存在使用故障设备mdadm --detail : sudo mdadm --detail /dev/md0
Output/dev/md0:
Version : 1.2
Creation Time : Wed Aug 10 21:42:12 2016
Raid Level : raid5
Array Size :
(199.88 GiB 214.61 GB)
Used Dev Size :
(99.94 GiB 107.31 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Thu Aug 11 14:10:43 2016
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 1
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
Name : mdadmwrite:0
(local to host mdadmwrite)
UUID : bf7a711b:b3aac12e:
Events : 144
RaidDevice State
active sync
active sync
高亮行,都表明一个驱动器不再工作( /dev/sdc在这个例子中)。
如果您需要删除不有问题的驱动器,可以手动将其标记为失败, --fail选项: sudo mdadm /dev/md0 --fail /dev/sdc
Outputmdadm: set /dev/sdc faulty in /dev/md0
如果你看一下输出mdadm --detail ,您应该看到该设备已被标记故障。
一旦设备失败,你可以从阵列中删除mdadm --remove : sudo mdadm /dev/md0 --remove /dev/sdc
Outputmdadm: hot removed /dev/sdc from /dev/md0
然后,您可以用新的驱动器来替换它,使用相同mdadm --add您使用添加备用的命令: sudo mdadm /dev/md0 --add /dev/sdd
Outputmdadm: added /dev/sdd
通过将数据复制到新驱动器,阵列将开始恢复。
要破坏数组,包括其中包含的所有数据,请按照我们用于停止数组的过程开始。
首先,卸载文件系统: cd ~
sudo umount /mnt/md0
接下来,停止数组: sudo mdadm --stop /dev/md0
随后,删除阵列本身带有--remove命令针对RAID设备: sudo mdadm --remove /dev/md0
一旦阵列本身被删除,您应该使用mdadm --zero-superblock在每个组件设备。 这将清除md超级块,使用一个头mdadm组装和作为阵列的一部分管理元器件。 如果仍然存在,当尝试将磁盘重新用于其他目的时,可能会导致问题。
你可以看到,超级块仍存在通过检查出数组中FSTYPE列lsblk --fs输出: lsblk --fs
OutputNAME
MOUNTPOINT
linux_raid_member mdadmwrite:0 bf7a711b-b3aa--c12e
linux_raid_member mdadmwrite:0 bf7a711b-b3aa--c12e
linux_raid_member mdadmwrite:0 bf7a711b-b3aa--c12e
4f8b85db-8c11-422b-83c4-c /
在这个例子中, /dev/sda , /dev/sdb ,并/dev/sdc是阵列的一部分,但仍打成这样。
通过键入以下内容删除标签: sudo mdadm --zero-superblock /dev/sda /dev/sdb /dev/sdc
接下来,确保您删除或任何引用注释掉在阵列/etc/fstab的文件: sudo nano /etc/fstab
/ etc / fstab . . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0
保存并在完成后关闭文件。
删除或注释掉从数组的任何引用/etc/mdadm/mdadm.conf文件,以及: nano /etc/mdadm/mdadm.conf
/etc/mdadm/mdadm.conf # ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=bf7a711b:b3aac12e:
保存并在完成后关闭文件。
键入以下命令更新initramfs: sudo update-initramfs -u
这应该从早期引导环境中删除设备。
Linux的的mdadm效用使得它一旦你了解它使用的约定和地方,你可以寻找信息很容易管理阵列。 本指南并不详尽,但用于介绍您可能需要在日常基础上执行的一些管理任务。
一旦你有舒适的创建和管理RAID阵列mdadm ,有许多不同的方向可以下一个探索。 像LVM这样的卷管理层与RAID紧密集成,并允许您灵活地将空间分区为逻辑卷。 类似地,LUKS和dm-crypt加密通常用于在写入文件系统之前加密RAID设备。
Linux允许所有这些技术一起使用来增强您的存储功能。
文章分类 10
<是一个运维教程站,开始于2012年5月。这里提供如何简单的学习引导Linux/Windows系统管理员的目标。我们一直在努力提供简单易学高质量的文章。
(C)2017 Howtoing运维教程 京ICP备号-1}

我要回帖

更多关于 磁盘阵列怎么使用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信