linux做软RAID10

最近拿到的几个12块盘的服务器,都是没有RAID卡的。自己就简单做了一下软RAID。

  • 用/dec/sd[b-l]1创建一个raid10的/dev/md1,其中一个做备用盘。
mdadm --create /dev/md1 --run --level=10 -n 10  /dev/sd[b-l] -x 1  
mkdir /mnt/data  ; mkfs.ext4 /dev/md1

2.把mda1加到fstab
/dev/md1 /mnt/data ext4 defaults,noatime 0 0
3.把阵列信息加到/etc/mdadm.conf
mdadm –detail –scan » /etc/mdadm.conf

状态查看可以

#cat /proc/mdstat  
Personalities : [raid10]  
md1 : active raid10 sdl[10](S) sdk[9] sdj[8] sdi[7] sdh[6] sdg[5] sdf[4] sde[3] sdd[2] sdc[1] sdb[0]  
9767564800 blocks super 1.2 512K chunks 2 near-copies [10/10] [UUUUUUUUUU]  
  
unused devices: <none>  
  
#mdadm --detail /dev/md1  
/dev/md1:  
Version : 1.2  
Creation Time : Sat Jul 20 00:33:49 2013  
Raid Level : raid10  
Array Size : 9767564800 (9315.08 GiB 10001.99 GB)  
Used Dev Size : 1953512960 (1863.02 GiB 2000.40 GB)  
Raid Devices : 10  
Total Devices : 11  
Persistence : Superblock is persistent  
  
Update Time : Sat Jul 20 08:33:55 2013  
State : active  
Active Devices : 10  
Working Devices : 11  
Failed Devices : 0  
Spare Devices : 1  
  
Layout : near=2  
Chunk Size : 512K  
  
Name : xxx  
UUID : xxx  
Events : 18  
  
Number   Major   Minor   RaidDevice State  
0       8       16        0      active sync   /dev/sdb  
1       8       32        1      active sync   /dev/sdc  
2       8       48        2      active sync   /dev/sdd  
3       8       64        3      active sync   /dev/sde  
4       8       80        4      active sync   /dev/sdf  
5       8       96        5      active sync   /dev/sdg  
6       8      112        6      active sync   /dev/sdh  
7       8      128        7      active sync   /dev/sdi  
8       8      144        8      active sync   /dev/sdj  
9       8      160        9      active sync   /dev/sdk  
  
10       8      176        -      spare   /dev/sdl

单个盘的操作
1.卸掉故障盘
mdadm /dev/md1 -f /dev/sdd
mdadm /dev/md1 -r /dev/sdd
2.恢复单个盘
mdadm –zero-superblock /dev/sdd
mdadm /dev/md1 -a /dev/sdd
3.停掉整个RAID
mdadm –stop /dev/md1
4.启动整个RAID
mdadm -A /dev/md1

简单测试了一下RAID的性能和单个盘的性能差别

RAID10:  
#dd if=/dev/zero of=test1 bs=1024000 count=10240 oflag=direct ;sleep 5; dd if=test1 of=/dev/null bs=1024000 count=10240 iflag=direct  
10240+0 records in  
10240+0 records out  
10485760000 bytes (10 GB) copied, 20.4646 s, 512 MB/s  
10240+0 records in  
10240+0 records out  
10485760000 bytes (10 GB) copied, 15.0176 s, 698 MB/s  
  
  
  
单个盘:  
#dd if=/dev/zero of=test1 bs=1024000 count=10240 oflag=direct ;sleep 5; dd if=test1 of=/dev/null bs=1024000 count=10240 iflag=direct  
10240+0 records in  
10240+0 records out  
10485760000 bytes (10 GB) copied, 62.761 s, 167 MB/s  
10240+0 records in  
10240+0 records out  
10485760000 bytes (10 GB) copied, 61.865 s, 169 MB/s

做了RAID后读取的是基本是把SAS卡的6G的带宽跑满了,写入也有三倍左右的提升。