我的配置方法分区,用fdisk,raid5要3个分区以上,用在fdisk内t命令把分区标识fd,例如:Disk/dev/hdb:62.9GB,62913208320bytes255heads,63sectors/track,7648cylindersUnits=cylindersof16065*512=8225280bytes DeviceBoot Start End Blocks Id System/dev/hdb1 1 7648 61432528 5 Extended/dev/hdb5 1 1217 9775489 fd Linuxraidautodetect/dev/hdb6 1218 2434 9775521 fd Linuxraidautodetect/dev/hdb7 2435 3651 9775521 fd Linuxraidautodetect/dev/hdb8 3652 4868 9775521 fd Linuxraidautodetect配置命令:mdadm--create/dev/md0--level=raid5--chunk=8--raid-devices=4/dev/hdb5/dev/hdb6/dev/hdb7/dev/hdb8格式化mkfs.ext3/dev/md0用mount/dev/md0/mnt测试看看是否可以挂上。编辑mdadm.conf,没有内容没有问题echo "DEVICE partitions" > /etc/mdadm.conf
bgKLinux联盟
mdadm --detail --scan >> /etc/mdadm.conf
manmdadm.confEXAMPLE DEVICE/dev/sd[bcdjkl]1 DEVICE/dev/hda1/dev/hdb1 #/dev/md0isknownbyit’sUID. ARRAY/dev/md0UUID=3aaa0122:29827cfa:5331ad66:ca767371 #/dev/md1containsalldeviceswithaminornumberof # 1inthesuperblock. ARRAY/dev/md1superminor=1 #/dev/md2ismadefrompreciseythesetwodevices ARRAY/dev/md2devices=/dev/hda1,/dev/hda2 #/dev/md4and/dev/md5areaspare-groupandspares # canbemovedbetweenthem ARRAY/dev/md4uuid=b23f3c6d:aec43a9f:fd65db85:369432df spare-group=group1 ARRAY/dev/md5uuid=19464854:03f71b1b:e0df2edd:246cc977 spare-group=group1 MAILADDRroot@mydomain.tld PROGRAM/usr/sbin/handle-mdadm-events
建立完成之後,您就可以隨時查詢該RAID裝置,獲得狀態資訊。底下的範例顯示了使用mdadm--detail/dev/md0指令的結果:/dev/md0:Version:00.90.00CreationTime:MonMar 113:49:102004RaidLevel:raid0ArraySize:15621632(14.90GiB15.100GB)RaidDevices:4TotalDevices:4PreferredMinor:0Persistence:SuperblockispersistentUpdateTime:MonMar 113:49:102004State:dirty,no-errorsActiveDevices:4WorkingDevices:4FailedDevices:0SpareDevices:0ChunkSize:64K Number Major Minor RaidDeviceState 0 8 1 0 activesync /dev/sda1 1 8 17 1 activesync /dev/sdb1 2 8 33 2 activesync /dev/sdc1 3 8 49 3 activesync /dev/sdd1 UUID:25c0f2a1:e882dfc0:c0fe135e:6940d932 Events:0.1
F.3.2.使用mdadm 指令建立多路徑(multipath)裝置除了建立RAID陣列外,只要硬體支援,mdadm 指令也可以透過多個I/O路徑,連到每個SCSILUN(磁碟機)去。即使硬體失效,或是某個路徑的容量過於飽和,多路徑儲存也能繼續提供服務。由於這設定包括多條路徑(每條路徑都以獨立的虛擬控制卡來運作)存取一個共同的SCSILUN(磁碟機),所以Linux核心會「透過」每條路徑偵測每個磁碟機。換句話說,視為/dev/sda的SCSILUN(磁碟機)也可以透過/dev/sdb、/dev/sdc等等來存取,端看設定而定。要在I/O路徑失效或過度飽和時,單一裝置還是可以提供服務,mdadm 為每每level選項提供了額外的參數。這參數〞multipath 〞會指向Linux核心的md層,在一條I/O路徑失效時,將I/O需求引導到另一條路徑去。要建立多路徑裝置,請編輯/etc/mdadm.conf檔,定義DEVICE 與ARRAY 兩行的值,以反映您的硬體設定。注意跟之前RAID的範例不同(在RAID範例中,每個/etc/mdadm.conf中的磁碟都代表不同的實體磁碟機),這檔案中的每個裝置都指向同一台分享磁碟機。
這用於建立多路徑裝置的指令跟建立RAID裝置的指令類似;不同之處在於將RAID等級的參數改為multipath 參數:mdadm-C/dev/md0--level=multipath--raid-devices=4/dev/sda1/dev/sdb1/dev/sdc1/dev/sdd1Continuecreatingarray?yesmdadm:array/dev/md0started.
由於mdadm 指令的長度關係,我們把它分成兩行來顯示。在這例子裡,包括一個SCSILUN的硬體代表四個獨立的SCSI裝置,每組裝置都使用不同的路徑存取同一個儲存空間。一旦建立路徑裝置/dev/md0之後,所有參照/dev/md0的I/O都會導向到/dev/sda1、/dev/sdb1、/dev/sdc1、或/dev/sdd1(視目前哪一條路徑在運行中,並且是可用的)。您可以使用mdadm--detail/dev/md0指令,查詢/dev/md0的細部設定,以確定它的確是多路徑裝置:/dev/md0:Version:00.90.00CreationTime:TueMar 210:56:372004RaidLevel:multipathArraySize:3905408(3.72GiB3.100GB)RaidDevices:1TotalDevices:4PreferredMinor:0Persistence:SuperblockispersistentUpdateTime:TueMar 210:56:372004State:dirty,no-errorsActiveDevices:1WorkingDevices:4FailedDevices:0SpareDevices:3 Number Major Minor RaidDeviceState 0 8 49 0 activesync /dev/sdd1 1 8 17 1 spare /dev/sdb1 2 8 33 2 spare /dev/sdc1 3 8 1 3 spare /dev/sda1 UUID:4b564608:fa01c716:550bd8ff:735d92dc Events:0.1
另一個mdadm 的特點是能從操作設定中,強迫移除裝置(不管是RAID陣列或多路徑設定的裝置皆可)。在接下來的例子中,/dev/sda1已經被標示為發生錯誤,然後將被移除,最後在加回設定中。對多路徑的設定來說,這些動作不會對I/O活動產生任何衝擊:#mdadm/dev/md0-f/dev/sda1mdadm:set/dev/sda1faultyin/dev/md0#mdadm/dev/md0-r/dev/sda1mdadm:hotremoved/dev/sda1#mdadm/dev/md0-a/dev/sda1mdadm:hotadded/dev/sda1#
mdadm使用参考JesseLee于2004年12月17日 发表mdadm是linux下用于管理软件raid的工具以下内容来自manpage页:基本语法 :?mdadm[mode][options][mode]?有7种: Assemble:将以前定义的某个阵列加入当前在用阵列。 Build:Buildalegacyarray,每个device没有superblocks Create:创建一个新的阵列,每个device具有superblocks Manage: 管理阵列,比如add或remove Misc:允许单独对阵列中的某个device做操作,比如抹去superblocks或 终止在用的阵列。 FolloworMonitor:监控raid1,4,5,6和multipath的状态 Grow:改变raid容量或 阵列中的device数目可用的[options]: -A,--assemble:加入一个以前定义的阵列 -B,--build:Buildalegacyarraywithoutsuperblocks. -C,--create:创建一个新的阵列 -Q,--query:查看一个device,判断它为一个mddevice或是 一个md阵列的一部分 -D,--detail:打印一个或多个mddevice的详细信息 -E,--examine:打印device上的md?superblock的内容 -F,--follow,--monitor:选择Monitor模式 -G,--grow:改变在用阵列的大小或形态 -h,--help:帮助信息,用在以上选项后,则显示该选项信息 --help-options -V,--version -v,--verbose:显示细节 -b,--brief:较少的细节。用于--detail?和?--examine选项 -f,--force -c,--config=:指定配置文件,缺省为/etc/mdadm/mdadm.conf -s,--scan:扫描配置文件或/proc/mdstat以搜寻丢失的信息。配置文件/etc/mdadm/mdadm.confcreate?或build使用的选项: -c,--chunk=:Specifychunksizeofkibibytes.??缺省为64. --rounding=:Specifyroundingfactorforlineararray(==chunksize) -l,--level=:设定raidlevel. --create可用:linear,raid0,0,stripe,raid1,1,mirror,raid4,4,raid5,5,raid6,6,multipath,mp. --build可用:linear,raid0,0,stripe.-p,--parity=:设定raid5的奇偶校验规则:left-asymmetric,left-symmetric,right-asymmetric,right-symmetric,la,ra,ls,rs.缺省为left-symmetric --layout=:类似于--parity -n,--raid-devices=:指定阵列中可用?device数目,这个数目只能由--grow修改 -x,--spare-devices=:指定初始阵列的富余device数目 -z,--size=:组建RAID1/4/5/6后从每个device获取的空间总数 --assume-clean:目前仅用于--build选项 -R,--run:阵列中的某一部分出现在其他阵列或文件系统中时,mdadm会确认该阵列。此选项将不作确认。 -f,--force:通常mdadm不允许只用一个device创建阵列,而且创建raid5时会使用一个device作为missingdrive。此选项正相反。-a,--auto{=no,yes,md,mdp,part,p}{NN}:
1.mdadm新增一個hdd請用
mdadm--manage/dev/md0--add/dev/hdg1主功能MDDriver副功能 副功能function.
2.新建一個Raid請用mdadm--create/dev/md0--chunk=32--level=0--raid-devices=4/dev/hd[efgh]1
以上請接成一行
3.rebuild上面那個Raidmdadm--build/dev/md0--chunk=32--level=0[...] 下载本文示例代码