Software RAID 建置-mdadm
什麼是mdadm?
mdadm是 multiple devices admin的簡稱,它是Linux下的一款標準的軟件 RAID 管理工具,作者是 Neil Brown。
用途:多個Lun組成一個raid,使用不同的Storage
方法: Storage透過iscsi的方式,切割Lun給Server用
主機:xenserver VM
Storage:NetApp
建立RAID的4大步驟
1.先fdisk出raid分割區,磁區代號為fd
fdisk /dev/sdb
2.使用mdadm建立/dev/md0裝置
#mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd{b,d,f,h}1
3.使用mke2fs將/dev/md0格式化
mkfs -t ext3 /dev/md0
4.使用mount將/dev/md0,掛載至目錄
mount /dev/md0 /mnt/raid0
RAID狀態查詢
1.cat /proc/mdstat
2.mdadm --misc --detail /dev/md0
指定/dev/md0內某一裝置故障
mdadm --fail /dev/md0 /dev/sdb2
將故障/dev/sdb2由/dev/md0內移除
mdadm --remove /dev/md0 /dev/sdb2
將/dev/sdc2加入/dev/md0
mdadm --add /dev/md0 /dev/sdc2
將/dev/md0停止
mdadm --stop /dev/md0
將/dev/md0啟動
mdadm --auto-detect
------------------實際測試
#iscsi的設定方式,詳見:本文的" RedHat iscsi initiator Setting"
# fdisk -l | grep Disk,看一下現在的硬碟狀況,且可以看到是未format的Disk
PS.因我的Storage有兩個ip,所以他會看到重覆的disk,所以
sdb,sdc是一組,sdd,sde是一組,一此類推
分割完之後,會變成這樣(只列出最後兩個查看):
#fdisk -l
建立Raid 5 Disk
[root@C5TCLS1 ~]# mdadm --create --auto=yes /dev/md1 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd{b,d,f,h}1
mdadm: array /dev/md1 started.
參數說明:
--create:建立
--level:raid5
--raid-device:有幾個raid device
--spare-devices:Spare Disk有幾個
Ps.建立Raid 5的這個部份,若資料縮小,和原來raid不一樣,裡面的資料可能會不見
增加spare disk
#mdadm --create --auto=yes /dev/md1 --level=5 --raid-devices=4 --spare-devices=1 /dev/sd{b,d,f,h,j }1
查看/dev/md1詳細狀態:
[root@C5TCLS1 ~]# mdadm --detail /dev/md1
/dev/md1:
Version : 0.90
Creation Time : Wed Nov 13 16:20:25 2013
Raid Level : raid5
Array Size : 2096512 (2047.72 MiB 2146.83 MB)
Used Dev Size : 1048256 (1023.86 MiB 1073.41 MB)
Raid Devices : 3
Total Devices : 4
Preferred Minor : 1
Persistence : Superblock is persistent
Update Time : Wed Nov 13 16:20:25 2013
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 4
Failed Devices : 0
Spare Devices : 2
Layout : left-symmetric
Chunk Size : 64K
Rebuild Status : 68% complete
UUID : 86ef5f54:f124e083:8ea7ceab:18ff0cf8
Events : 0.1
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 49 1 active sync /dev/sdd1
4 8 81 2 spare rebuilding /dev/sdf1
3 8 113 - spare /dev/sdh1
查看raid狀態:
[root@C5TCLS1 ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md1 : active raid5 sdf1[2] sdh1[3](S) sdd1[1] sdb1[0]
2096512 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
md0 : inactive sda1[0]
3143296 blocks super non-persistent
Format:
[root@C5TCLS1 ~]# mkfs -t ext3 /dev/md1
開機啟動自動掛載(這個部份我失敗,不知是否vm的關系還是有那個地方錯誤):
[root@C5TCLS1 ~]# mdadm -Ds > /etc/mdadm.conf
[root@C5TCLS1 ~]# cat /etc/mdadm.conf
ARRAY /dev/md1 level=raid5 num-devices=3 metadata=0.90 spares=2 UUID=1bbc7d14:285c4987:960348c2:3ff1f552
在fstab上增加掛載的地方,使用mount –a來測試是否正常
[root@C5TCLS1 ~]# vi /etc/fstab
/dev/md0 /mnt/raid ext3 defaults 0 0
模擬錯誤硬碟(/dev/sdd1硬碟壞掉):
[root@C5TCLS1 mnt]# mdadm --manage /dev/md1 --fail /dev/sdd1
mdadm: set /dev/sdd1 faulty in /dev/md1
rebuild硬碟狀態
[root@C5TCLS1 mnt]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md1 : active raid5 sdf1[2] sdh1[3] sdd1[4](F) sdb1[0]
2096512 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]
[==>..................] recovery = 10.6% (112284/1048256) finish=0.5min speed=28071K/sec
unused devices: <none>
沒有spare硬碟,sdd1壞掉異常
[root@C5TCLS1 mnt]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md1 : active raid5 sdf1[2] sdh1[1] sdd1[3](F) sdb1[0]
2096512 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
移除異常的硬碟:
[root@C5TCLS1 mnt]# mdadm --manage /dev/md1 --remove /dev/sdd1
mdadm: hot removed /dev/sdd1
增加正常的硬碟(從NetApp新增一個Lun給vm 認識):
Storage add new lun
#service iscsi restart
#reboot
這邊測試的結果,新增一個Lun要重啟iscsi,重啟之後,mount point點會失效,因為所有的/dev/sd{}會亂掉,必需要主機重新啟動,/dev/sd{}才復原正常,新增的disk才會出現在上面。(不知是否是因為vm的關系才發生這種狀況)
lun變更大小,也要重開機(透過netapp調整大小)
先透過fdisk -l | grep Disk來看一下狀況,可以看出有新增的/dev/sdi & /dev/sdj
[root@C5TCLS1 ~]# fdisk -l | grep Disk
Disk /dev/md1 doesn't contain a valid partition table
Disk /dev/sdi doesn't contain a valid partition table
Disk /dev/sdj doesn't contain a valid partition table
Disk /dev/xvda: 21.4 GB, 21474836480 bytes
Disk /dev/md1: 2146 MB, 2146828288 bytes
Disk /dev/sda: 1073 MB, 1073741824 bytes
Disk /dev/sdb: 1073 MB, 1073741824 bytes
Disk /dev/sdc: 1073 MB, 1073741824 bytes
Disk /dev/sdd: 1073 MB, 1073741824 bytes
Disk /dev/sde: 1073 MB, 1073741824 bytes
Disk /dev/sdf: 1073 MB, 1073741824 bytes
Disk /dev/sdg: 1073 MB, 1073741824 bytes
Disk /dev/sdh: 1073 MB, 1073741824 bytes
Disk /dev/sdi: 1073 MB, 1073741824 bytes
Disk /dev/sdj: 1073 MB, 1073741824 bytes
在來就是format這一顆disk
#fdisk /dev/sdj
新增這一顆硬碟
[root@C5TCLS1 ~]# mdadm --manage /dev/md1 --add /dev/sdj
它跑到spare Disk去了(因上面有重新restart iscsi,把剛剛測試fail的硬碟也加進來了)
[root@C5TCLS1 ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md1 : active raid5 sdj[4](S) sdf1[2] sdh1[3](S) sdd1[1] sdb1[0]
2096512 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
[root@C5TCLS1 ~]#
新增一顆硬碟,空間放大(從spare disk搬移過來使用):
--raid-devices後面接可用硬碟
#mdadm --grow /dev/md1 --raid-devices=4
讓系統可以認得此大小:
[root@C5TCLS1 ~]# resize2fs /dev/md1
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/md1 is mounted on /mnt; on-line resizing required
Performing an on-line resize of /dev/md1 to 1048256 (4k) blocks.
The filesystem on /dev/md1 is now 1048256 blocks long.
相關資料
http://linux.vbird.org/linux_basic/0420quota.php#raid
指令說明:
http://blog.csdn.net/u012317833/article/details/14051147
http://tpkcpk.blogspot.tw/2009/09/mdadm-raid.html
開機啟動詳細說明:
http://justforyou046.blogspot.tw/2012/04/linux-mdadm_07.html
http://shinchuan1.blogspot.com/2013/11/software-raid-mdadm.html
沒有留言:
張貼留言