linux的软RAID基本命令
RAID
在这篇博客中介绍一下linux的存储设备。
在一个服务器中,存储数据的主要设备是磁盘,磁盘的好坏,以及磁盘读取数据的速度对一个服务器有很大的影响,尤其是web服务器,文件服务器,这些经常需要读取数据,而且对数据的读取速度要求很高的服务器,磁盘的速度对其服务好坏的影响可能是决定性的,而且对一些重要的数据,其数据的安全性将是非常重要的甚至数据远重要于其服务器的本身。
对于硬盘的种类,常见的有IDE、SATA 、SCSI等几种,其中SCSI硬盘的寿命,速度都是很不错的,但是其价格是同容量IDE SATA硬盘的八倍,所有有些人就想通过组合IDE硬盘,而达到SCSI的水平,而常见组合硬盘的方法就是RAID。
而对硬盘的使用内核需要识别,而可以通过dd命令向内核传递RAID设备的驱动。而由于RAID的使用性很高,在最新的内核中已经加载有了对RAID的驱动。RAID设备在linux中被识别成/dev/md[N] N是数字。mdadm命令能够对RAID设备配置。
RAID的几种方法有RAID0、RAID1、RAID4、RAID5、RAID6、RAID10、RAID01等几种,下面我将分别接受这几种方法:
1. RAID0 主要是考虑到性能,磁盘数大于等于2。写数据的时候被RAID控制器把数据分成多个块儿,分别存到不同的设备上。但这样有一个缺点就是没用容错,如果有一块儿坏了,所有的数据都将坏了,而且硬盘的大小最好能够相同。
2. RAID1 通常要求有2的整数倍个数,这种方法完整备份了数据,对数据的速度稍有降低,且磁盘的利用率很低。但是对数据的读取有很大的提高。对数据的容错很好。
3. RAID4 需要至少3块儿以上的硬盘,假如3块儿硬盘,前两块儿分别存储数据,第三块儿存数对前两块儿的校验码,这样允许有一块儿损坏。但数据存储时需要校验,而其当磁盘有损坏时,速度将变慢,而且恢复时候很容易出错。
4. RAID5 是对RAID4的改进,是将校验的数据循环存储,这样可以是数据更加安全。
5. RAID6 是将RAID5中的校验码提供两块儿硬盘数据来存储校验码,这样提供了两块儿磁盘的冗余,即允许两块儿磁盘同时出错。但这样对数据的恢复也是很困难的。
6. RAID10 对数据先进行RAID0,然后RAID1,这种方法即提供了冗余,而且也提升了速度。
7. RAID01 对数据先进行RAID1,然后RAID0,这种方法有冗余,但对数据的存储并没有多大的提升。
同时linux的内核还支持linear的方法,即串连,将多个容量小的磁盘串在一起,总容量是其所有容量的和,没有容错,也没有速度的提升,
对于以上的方法,没有最好最坏,需要根据实际情况来选择不同的方法。
实现软RAID需要使用命令mdadm,使用方法:
mdadm [mode] <raiddevice> [options] <component-device>
[mode]可以省略默认是监控模式
<raiddevice> 指定设备/dev/md0 /dev/md1等
[options] 对于不同的mode选项不同,同一个选项的不同mode作用也不同
component-device 子设备如/dev/sda1 /dev/sda2
[mode]常见有
Assemble 装配 如A主机上的RAID的放到B主机上,这个mode让内核自动扫描所有的RAID。或者重新组织以前本机上的RAID设备。
create 创建
follow 或 monitor 监控模式(对1,4,5,6,10)
grow 新增一块儿硬盘
manage 管理模式 如:模拟一块儿硬盘坏掉,来检测RAID
[options] -A 装配模式
-C 创建
-F 监控
-G 增加模式
默认的是管理模式
-v --verbose 显示详细信息
-s --scan 扫描系统中/proc/mdstat中的信息
-S 停止RAID设备
创建模式
-n 组建RAID设备包括的磁盘数
-x 指定空闲设备的个数
-l RAID的级别
-c chunk的大小(一定是2的整数次方倍或是磁盘块儿大小的2的整数倍)默认是64k。
-f 在管理模式中设置某块儿磁盘坏了,用来测试
杂项:
-D 查看RAID详细信息
补充命令:
mke2fs -j -b 4096 -E stride=16 /dev/md0,意为将/dev/md0格式化为ext3每块儿大小为4k,在使用RAID读取数据时每次存取16个块儿。这样可以提高RAID的磁盘性能。
命令示例:
注意磁盘的分区需要调整为fb,分区后执行partprobe让内核重新读取分区
mdadm -C /dev/md0 -a yes -n 2 -l 0 /dev/sda5 /dev/sda6 表示将/dev/sda5 /dev/sda6创建成/dev/md0的RAID0设备其中-a yes指定如果/dev/md0不存在直接创建。
创建之后需要格式化mke2fs然后挂载,就能使用了。
查看RAID的状态:在系统中有个文件存储RAID的文件在/proc/mdstat中用命令cat /proc/mdstat 来查看。或者 mdadm -D /dev/md0查看RAID的信息。
在改变以前的分区时需要首先卸载分区
示例命令:
1. mdadm -A -s /dev/md0 需要/etc/mdadm.conf这个配置文件保存系统上正在使用的RAID的设备,可以用MAILADDR,指定将命令结果发到哪个邮箱中。其命令作用是:扫描当前系统上所有的RAID设备并把他们装配起来。
在/etc/init.d/中有mdmonitor脚本,可以监控RAID将信息发送给/etc/mdadm.conf中定义的邮箱。
2. mdadm -C /dev/md1 -a yes -n 2 -l 1 -c 32 /dev/sdb1 /dev/sdb2创建RAID1有/dev/sdb1和/dev/sdb2
3. mdadm /dev/md1 -f /dev/sdb2 模拟将、/dev/sdb2设置为坏的磁盘
4. mdadm /dev/md1 -r /dev/sdb2 移除磁盘/dev/sdb2
5. mdadm /dev/md1 -a /dev/sdb3 添加磁盘/dev/sdb3
6. mdadm -f 对RAID0没法标示成坏盘
7. umount /dev/md0 ; mdadm -S /dev/md0 先卸载/dev/md0,然后停止/dev/md0
8. rm -rf /dev/md0 彻底删除/dev/md0设备(必须先停止设备)
更多推荐
所有评论(0)