自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux中軟RAID常見問題解決

系統(tǒng) Linux
在文章“Linux 中軟件 RAID 的使用”中我們講述了 Linux 系統(tǒng)中軟 RAID 的基本概念和如何使用 mdadm 程序來管理軟 RAID 設(shè)備,通過對 mdadm 命令的主要參數(shù)來介紹軟 RAID 設(shè)備的創(chuàng)建......

在文章“Linux 中軟件 RAID 的使用”中我們講述了 Linux 系統(tǒng)中軟 RAID 的基本概念和如何使用 mdadm 程序來管理軟 RAID 設(shè)備,通過對 mdadm 命令的主要參數(shù)來介紹軟 RAID 設(shè)備的創(chuàng)建,刪除,停止和擴(kuò)展等操作,以及其元數(shù)據(jù)和位圖 bitmap 數(shù)據(jù)的管理方法。在本文中我們討論使用軟 RAID 設(shè)備常見的問題以及解決的方法。

1. RAID 的子設(shè)備物理上要獨立不相關(guān)

對一個磁盤上的多個磁盤分區(qū)做RAID是沒有價值的,因為不但違背了RAID陣列中設(shè)備獨立性的原則,不能增加陣列的可靠性,當(dāng)這個磁盤失效后必然不可避免的導(dǎo)致數(shù)據(jù)丟失,而且還導(dǎo)致陣列的性能顯著降低,當(dāng)數(shù)據(jù)讀寫時磁頭在磁盤的多個分區(qū)上來回抖動帶來長時間的搜索耗時。

2. RAID 0 沒有數(shù)據(jù)冗余功能

RAID 0 只能使用數(shù)據(jù)塊條帶化(stripping)功能來提高性能,如果有磁盤失效則會導(dǎo)致MD設(shè)備上的數(shù)據(jù)丟失,在讀寫MD設(shè)備時出錯。

3. 快速測試命令

當(dāng)創(chuàng)建磁盤時,如果已知設(shè)備上的數(shù)據(jù)已經(jīng)是同步(sync)成功過,或者僅僅是用來測試陣列,可以使用--assume-clean參數(shù)來通知MD驅(qū)動不必初始化陣列。

mdadm -C /dev/md0 -l5 -n6 /dev/sd[b-g] -x1 /dev/sdh --assume-clean

如果想避免mdadm每次創(chuàng)建命令時,因為設(shè)備上還有以前的元數(shù)據(jù)的提示,避免手工輸入,可以使用--run(或者其縮寫-R)通知陣列直接運行。

mdadm --create --run /dev/md0 -l5 -n6 /dev/sd[b-g] -x1 /dev/sdh --assume-clean

4. 異構(gòu)磁盤組成的RAID

RAID0可以支持不同大小的磁盤構(gòu)造多個區(qū)域(zone)的RAID,每個區(qū)域有不同的磁盤個數(shù)。使用fdisk命令查詢/dev/sdi1為2GB, /dev/sdj1為4GB,/dev/sdk1為1GB,所以做成RAID0設(shè)備為7GB。

mdadm -C /dev/md0 -l5 -n6 /dev/sd[b-g] -x1 /dev/sdh --assume-clean

而RAID1,RAID456, RAID10等對不同大小的磁盤只能使用最小的磁盤的容量作為公共的大小,多余的部分被浪費掉。/dev/sdi1,/dev/sdj1,/dev/sdk1做成的RAID5設(shè)備為2GB,是最小的設(shè)備/dev/sdk1的2倍,設(shè)備/dev/sdi1和sdj1分別浪費了1GB和3GB。

[root@fc5 mdadm-2.6.3]# ./mdadm –CR /dev/md1 -l0 -n3 /dev/sd[i-k]1

[root@fc5 mdadm-2.6.3]# ./mdadm -D /dev/md1 | grep "Array Size"

Array Size : 7337664 (7.00 GiB 7.51 GB)

在陣列的狀態(tài)信息查詢中的大小(ArraySize)前面使用的是KB,也表示MD塊設(shè)備的實際大??;而后面的兩個值只是為了顯示處理后的結(jié)果。

[root@fc5 mdadm-2.6.3]# ./mdadm –CR /dev/md1 -l0 -n3 /dev/sd[i-k]1

[root@fc5 mdadm-2.6.3]# ./mdadm -D /dev/md1 | grep "Array Size"

Array Size : 7337664 (7.00 GiB 7.51 GB)

[root@fc5 mdadm-2.6.3]# ./mdadm -CR /dev/md1 -l5 -n3 /dev/sd[i-k]1

[root@fc5 mdadm-2.6.3]# ./mdadm -D /dev/md1 | grep "Array Size"

Array Size : 2096896 (2048.09 MiB 2147.22 MB)

5. 配置共享的熱備盤

mdadm程序是允許多個RAID組共享冗余磁盤的。 例如有/dev/md0和/dev/md1兩個陣列,在創(chuàng)建時/dev/md0里面有一個熱備磁盤,而/dev/md1沒有熱備磁盤。我們只要在/etc/mdadm.conf中配置兩個陣列使用相同的spare-group組。

[root@fc5 mdadm-2.6.3]# cat /etc/mdadm.conf

DEVICE /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh

/dev/sdi1 /dev/sdj1 /dev/sdk1

ARRAY /dev/md1 level=raid0 num-devices=3 spare-group=sparedisks

UUID=dcff6ec9:53c4c668:58b81af9:ef71989d

ARRAY /dev/md0 level=raid10 num-devices=6 spare-group=sparedisks

UUID=0cabc5e5:842d4baa:e3f6261b:a17a477a

并運行mdadm 的監(jiān)控(monitor)模式命令。當(dāng)/dev/md1陣列中的一個磁盤/dev/sdi1失效時,mdadm會自動從/dev/md0組中上移走spare磁盤,并加入/dev/md1中。

[root@fc5 mdadm-2.6.3]#./mdadm --monitor --mail=root@localhost --syslog --program=/root/md.sh

--delay=300 /dev/md* --daemonise

#p#

8105

[root@fc5 mdadm-2.6.3]#./mdadm /dev/md1 -f /dev/sdi1

mdadm: set /dev/sdi1 faulty in /dev/md1

[root@fc5 mdadm-2.6.3]#./mdadm -D /dev/md1

/dev/md1:

Version : 00.90.03

Creation Time : Mon Aug 23 00:10:00 1999

Raid Level : raid5

Array Size : 2096896 (2048.09 MiB 2147.22 MB)

Used Dev Size : 1048448 (1024.05 MiB 1073.61 MB)

Raid Devices : 3

Total Devices : 4

Preferred Minor : 1

Persistence : Superblock is persistent

Update Time : Mon Aug 23 00:13:15 1999

State : clean, degraded, recovering

Active Devices : 2

Working Devices : 3

Failed Devices : 1

Spare Devices : 1

Layout : left-symmetric

Chunk Size : 64K

Rebuild Status : 78% complete

UUID : 34d3de75:6912dc24:e1316607:4e72cd01

Events : 0.4

Number   Major   Minor   RaidDevice State

3       8      112        0      spare rebuilding   /dev/sdh

1       8      145        1      active sync   /dev/sdj1

2       8      161        2      active sync   /dev/sdk1

4       8      129        -      faulty spare   /dev/sdi1

MD設(shè)備支持兩種塊設(shè)備,一種是不可分區(qū)類型的名字是md設(shè)備,主設(shè)備號是9,另一種是可分區(qū)的名字是mdp設(shè)備,mdp的主設(shè)備號是動態(tài)分配的,一個mdp設(shè)備最多能支持63個分區(qū)。查看/proc/device信息能看到mdp的主設(shè)備號,查詢/proc/partitions信息能看到md和mdp設(shè)備的主設(shè)備號和從設(shè)備號。

[root@fc5 mdadm-2.6.3]# cat /proc/devices | grep md

1 ramdisk

9 md

253 mdp

[root@fc5 mdadm-2.6.3]# cat /proc/partitions | grep md

9     1    2096896 md1

253     0    5242560 md_d0

253     1    1000002 md_d0p1

253     2    1000002 md_d0p2

8. 怎樣擴(kuò)展RAID設(shè)備

Grow模式中的容量擴(kuò)展(resize)功能不但支持設(shè)備大小增加,也可以支持設(shè)備大小減少,但要求使用者自己來保證MD設(shè)備有效數(shù)據(jù)上不被截斷導(dǎo)致丟失。

[root@fc5 mdadm-2.6.3]# ./mdadm /dev/md0 --grow --size=102400

[root@fc5 mdadm-2.6.3]# ./mdadm -Q /dev/md0

/dev/md0: 600.00MiB raid5 7 devices, 0 spares. Use mdadm --detail for more detail.

而磁盤個數(shù)擴(kuò)展(reshape)功能不支持設(shè)備個數(shù)減少,如果在陣列中空閑的熱備盤而且也沒有指定backup文件,則不能擴(kuò)展。如果對于RAID5陣列有備份(backup)文件可以支持?jǐn)U展一個磁盤,擴(kuò)展后的磁盤陣列是降級模式的,不支持?jǐn)U展多個磁盤或者對降級的RAID5陣列再擴(kuò)展。這些擴(kuò)展模式不夠安全,僅僅是暫時沒有熱備盤的權(quán)宜之計,一般合理的操作還是先增加空閑的熱備磁盤再執(zhí)行擴(kuò)展命令。

[root@fc5 mdadm-2.6.3]# ./mdadm --grow /dev/md0 -n6

mdadm: /dev/md0: Cannot reduce number of data disks (yet).

[root@fc5 mdadm-2.6.3]# ./mdadm --grow /dev/md0 -n8

mdadm: Need to backup 2688K of critical section.

mdadm: /dev/md0: Cannot grow - need a spare or backup-file to backup critical section

[root@fc5 mdadm-2.6.3]# ./mdadm -G /dev/md0 -n9 --backup-file=/root/bak-reshape

mdadm: Need to backup 1024K of critical section..

mdadm: /dev/md0: failed to initiate reshape

[root@fc5 mdadm-2.6.3]# ./mdadm -G /dev/md0 -n8 --backup-file=/root/bak-reshape

mdadm: Need to backup 2688K of critical section..

mdadm: ... critical section passed.

[root@fc5 mdadm-2.6.3]#  cat /proc/mdstat

Personalities : [raid0] [raid10] [raid6] [raid5] [raid4]

md0 : active raid5 sdh[6] sdg[5] sdf[4] sde[3] sdd[2] sdc[1] sdb[0]

6291072 blocks super 0.91 level 5, 64k chunk, algorithm 2 [8/7] [UUUUUUU_]

[>..................]  reshape =  2.6% (28608/1048512) finish=4.1min speed=4086K/sec

md1 : active raid0 sdk1[2] sdj1[1] sdi1[0]

7337664 blocks 64k chunks

unused devices: < none >

[root@fc5 mdadm-2.6.3]# ./mdadm -D /dev/md0

/dev/md0:

#p#

Version : 00.91.03

Creation Time : Sun Aug 22 23:46:29 1999

Raid Level : raid5

Array Size : 6291072 (6.00 GiB 6.44 GB)

Used Dev Size : 1048512 (1024.11 MiB 1073.68 MB)

Raid Devices : 8

Total Devices : 7

Preferred Minor : 0

Persistence : Superblock is persistent

Update Time : Sun Aug 22 23:46:56 1999

State : clean, degraded, recovering

Active Devices : 7

Working Devices : 7

Failed Devices : 0

Spare Devices : 0

Layout : left-symmetric

Chunk Size : 64K

Reshape Status : 4% complete

Delta Devices : 1, (7->8)

UUID : 50e886b9:9e28d243:a7f6457d:5eb47f2e

Events : 0.94

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       0        0        7      removed
[root@fc5 mdadm-2.6.3]# cat /proc/mdstat

Personalities : [raid0] [raid10] [raid6] [raid5] [raid4]

md0 : active raid5 sdh[6] sdg[5] sdf[4] sde[3] sdd[2] sdc[1] sdb[0]

7339584 blocks level 5, 64k chunk, algorithm 2 [8/7] [UUUUUUU_]

md1 : active raid0 sdk1[2] sdj1[1] sdi1[0]

7337664 blocks 64k chunks

unused devices: < none >

[root@fc5 mdadm-2.6.3]# ./mdadm -D /dev/md0

/dev/md0:

Version : 00.90.03

Creation Time : Sun Aug 22 23:46:29 1999

Raid Level : raid5

Array Size : 7339584 (7.00 GiB 7.52 GB)

Used Dev Size : 1048512 (1024.11 MiB 1073.68 MB)

Raid Devices : 8

Total Devices : 7

Preferred Minor : 0

Persistence : Superblock is persistent

Update Time : Sun Aug 22 23:50:18 1999

State : clean, degraded

Active Devices : 7

Working Devices : 7

Failed Devices : 0

Spare Devices : 0

Layout : left-symmetric

Chunk Size : 64K

UUID : 50e886b9:9e28d243:a7f6457d:5eb47f2e

Events : 0.766

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       0        0        7      removed

[root@fc5 mdadm-2.6.3]# ./mdadm -G /dev/md0 -n9 --backup-file=/root/bak-reshape

mdadm: Need to backup 3584K of critical section..

mdadm: /dev/md0: failed to find device 7. Array might be degraded.

--grow aborted

9. 為什么不能擴(kuò)展RAID設(shè)備

當(dāng)使用grow模式時,如果內(nèi)核不支持sysfs或者M(jìn)D驅(qū)動版本較低不支持時則會返回錯誤。另外使用strace命令跟蹤能導(dǎo)致在哪個函數(shù)調(diào)用上出錯返回。

[root@fc5 mdadm-2.6.3]# ./mdadm --grow /dev/md0 -n6

mdadm: Need to backup 1280K of critical section..

mdadm: /dev/md0: Cannot get array details from sysfs

如果系統(tǒng)沒有加載sysfs,需要使用mount命令加載。

mount –t sysfs sysfs /sys/

10. 為什么不能停止MD設(shè)備

當(dāng)停止MD陣列時,有時被返回MD設(shè)備正在被使用錯誤,需要檢查MD設(shè)備被哪個上層設(shè)備使用。一個情況是被文件系統(tǒng)使用,如已經(jīng)被mount起來:

[root@fc5 mdadm-2.6.3]# df -h | grep md

/dev/md0              485M   11M  449M   3% /mnt/md-test

另一種情況是MD設(shè)備被用戶層其他程序打開使用,如nbd-server導(dǎo)出MD設(shè)備:

[root@fc5 md0]#fuser -u /dev/md0

/dev/md0:             3507(root)

[root@fc5 md0]#ps ax| grep 3507

3507 ?

還有可能是內(nèi)核驅(qū)動程序打開使用,如被LVM程序當(dāng)作物理卷(PV)使用:

[root@fc5 mdadm-2.6.3]# ls -l /sys/block/md0/holders/

total 0

lrwxrwxrwx 1 root root 0 08-22 23:31 dm-0 -> ../../../block/dm-0

小結(jié)

如果在軟RAID使用中遇到問題不能解決,應(yīng)該首先查看mdadm的幫助信息;如果還不能解決,可以到mdadm的郵件列表尋找是否有相關(guān)的問題解答或者詳細(xì)描述該問題的發(fā)生過程請求大家?guī)椭?br />  

【編輯推薦】

  1. ubuntu server:RAID 10的故障處理
  2. 通過RHEL 5實現(xiàn)軟RAID及LVM
  3. 如何成為一個Linux系統(tǒng)內(nèi)核開發(fā)者
責(zé)任編輯:趙寧寧 來源: chinaitlab
相關(guān)推薦

2011-01-21 14:13:10

2010-08-26 12:59:29

marginCSS

2010-08-04 10:20:30

Flex組件開發(fā)

2010-01-13 21:06:37

雙絞線

2011-05-03 17:22:59

激光打印機(jī)

2019-04-04 13:11:37

React內(nèi)存泄露memory leak

2010-12-31 16:31:08

服務(wù)器常見問題

2011-04-27 16:04:12

投影機(jī)

2025-02-19 08:00:00

移動端移動設(shè)備移動開發(fā)

2011-08-22 14:10:51

nagios

2011-09-01 14:04:41

光纖光纖熔接機(jī)

2009-12-09 17:30:53

NETCORE路由器

2011-03-30 12:55:51

EclipseADTAndroid

2016-12-14 12:00:27

手機(jī)APPADB

2021-08-20 15:49:13

電腦主板維修

2009-12-24 11:13:41

2010-05-24 18:46:50

SVN圖標(biāo)

2010-08-17 13:36:49

DIV CSS設(shè)計

2009-10-27 10:48:26

linux問題解決

2009-12-24 11:05:15

點贊
收藏

51CTO技術(shù)棧公眾號