顯示具有 mdadm 標籤的文章。 顯示所有文章
顯示具有 mdadm 標籤的文章。 顯示所有文章

2021年1月27日 星期三

mdadm軟RAID的刪除方法和注意事項

刪除整個RAID:


mdadm / dev / md0–fail / dev / sdb–remove / dev / sdb
mdadm / dev / md0–fail / dev / sdc–remove / dev / sdc
mdadm / dev / md0–fail / dev / sdc–remove / dev / sdd
mdadm / dev / md0–失敗/ dev / sde–刪除/ dev / sde
mdadm / dev / md0–失敗/ dev / sdf–刪除/ dev / sdf


mdadm–stop / dev / md0
mdadm–remove / dev / md0


mdadm–misc–zero-superblock / dev / sdb
mdadm–misc–zero-superblock / dev / sdc
mdadm–misc–zero-superblock / dev / sdd
mdadm–misc–zero-superblock / dev / sde
mdadm–misc–zero-超級塊/ dev / sdf


即:先刪除RAID中的所有設備,然後停止該RAID即可

為了防止系統啟動時候啟動raid
rm-f/etc/mdadm.conf
rm-f/etc/raidtab

檢查系統啟動文件中是否還有其他mdad啟動方式

vi/etc/rc.sysinit+/raid\c 

資料來源: http://www.4u.idv.tw/2018/09/14/mdadm%E8%BD%AFraid%E7%9A%84%E5%88%A0%E9%99%A4%E6%96%B9%E6%B3%95%E5%92%8C%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9/

2020年11月23日 星期一

raid 真實案例處理

rebuild時會讓讀取速度下降很多,須調整一些參數

rebuild時加快讀取速度

min 調為50000,max調為500000

root@omvNAS1:~# sysctl -w dev.raid.speed_limit_min=50000
dev.raid.speed_limit_min = 50000
root@omvNAS1:~# sysctl -w dev.raid.speed_limit_max=500000
dev.raid.speed_limit_max = 50000

設定/etc/sysctl.conf中:

dev.raid.speed_limit_min = 50000
##適合基於4-5個磁盤的陣列##
#dev.raid.speed_limit_max = 200000
##適用於大型6-12磁盤陣列###
dev.raid.speed_limit_max = 500000

調整好後,讀取速度加快,rebuild 也加快

預設的 dev.raid.speed_limit_max 情況下 其實很慢
cat /proc/mdstat
顯示大概會是這樣
[>....................] resync = 0.4% (17493632/3897063424)
finish=28532.9min speed=2265K/sec
就我的情況來看 大約會跑20天左右
修改後,再次查看 cat /proc/mdstat
結果馬上變成 剩下10幾個小時完成
cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid6 sdj[10] sdm[9] sdh[6] sde[3] sdc[1] sdg[5] sdf[4] sdb[0] sdd[2] sdi[7]
46883123200 blocks super 1.2 level 6, 512k chunk, algorithm 2 [10/9] [UUUUUUUU_U]
[======>..............] recovery = 33.5% (1965857920/5860390400)
finish=831.6min speed=78049K/sec
bitmap: 14/44 pages [56KB], 65536KB chunk

為RAID5或RAID 6設置stripe-cache_size

這僅在RAID5和RAID6上可用,並將同步性能提高3到6倍。該數據用於將對陣列的所有寫操作和對陣列降級的所有讀操作進行同步。默認值為256。有效值為17到32768。在某些情況下,增加此數字可以提高性能,但會增加系統內存的成本。

cat /sys/block/md0/md/stripe_cache_size
8192
echo 32768 > /sys/block/md0/md/stripe_cache_size

收到告警信

檢查信件內容

smartd守護程序記錄了以下警告/錯誤:

設備:/ dev / disk / by-id / ata-HGST_HUS72 6060ALE610_NAHPJ9RY [SAT],1個不可糾正的離線脫機扇區

設備信息: HGST HUS726060ALE610,序列號:NAHPJ9RY,WWN:5-000cca-242d7e089,固件:APGNT7J0,6.00 TB

有關詳細信息,請參閱主機的SYSLOG。

您也可以使用smartctl實用程序進行進一步調查。 如果問題仍然存在,將在24小時內發送另一條消息。

該消息是由運行在以下位置的smartd守護程序生成的:

主機名:omvNAS1 DNS域:tn.edu.tw

smartd守護程序記錄了以下警告/錯誤:

設備:/ dev / disk / by-id / ata-HGST_HUS72 6060ALE610_NAHPJ9RY [SAT],當前不可讀的8個扇區

設備信息: HGST HUS726060ALE610,序列號:NAHPJ9RY,WWN:5-000cca-242d7e089,固件:APGNT7J0,6.00 TB

有關詳細信息,請參閱主機的SYSLOG。

您也可以使用smartctl實用程序進行進一步調查。 如果問題仍然存在,將在24小時內發送另一條消息。

查看日誌

處理SOP

找出有問題磁碟,序號NAHPJ9RY

自我測試結果

在cockpit上的smartd紀錄

找出實體硬碟,讓它亮燈

ledctl locate=/dev/sdj

真實硬碟位置為編號3

從Raid磁碟移除有問題磁碟

除舊佈新

確認從raid碟移除/dev/sdj才可以拔掉真實問題硬碟,插入新硬碟替代/dev/sdj

插入新的硬碟,在系統上發現新的/dev/sdj,序號已經不同NAHN2SVY

重新啟用smart監測

抹除新的磁碟

重新加入新的磁碟到raid:復原

系統自動rebuild

停止閃燈警示

ledctl locate_off=/dev/sdj(停止閃燈)

rbuild的階段,disk io 會比較慢

min/avg/max/mdev = 7.02 ms / 12.9 ms / 22.0 ms / 3.51 ms

rebuild中.......

min/avg/max/mdev = 142.9 ms / 496.0 ms / 1.36 s / 265.7 ms

出現的問題與解決

和沛儲存體都無法掛載了...

網站全掛,,,

我卸載後重新掛載似乎就好了

Why

我剛進去看系統是正常的

不清楚,但我每個掛何沛的網站都一樣情況

https://codecharge.com.tw/phpBB2/viewtopic.php?t=21137

原因可能是這篇寫的

我看看

可能與rebuild有關

應該是

在rebuild時,好像還好,但完成後,是否因資料有變動,之前的掛載視為舊的

重掛載後,目前都正常了嗎?

嗯,都處理好了 

資料來源: https://kawsing.gitbook.io/opensystem/andoid-shou-ji/untitled/zhen-shi-an-li-chu-li

2020年11月17日 星期二

Software RAID 建置-mdadm

Software RAID 建置-mdadm

什麼是mdadm?
mdadm multiple devices admin的簡稱,它是Linux下的一款標準的軟件 RAID 管理工具,作者是 Neil Brown

用途:多個Lun組成一個raid,使用不同的Storage
方法: Storage透過iscsi的方式,切割LunServer
主機:xenserver VM
StorageNetApp




建立RAID4大步驟
1.fdiskraid分割區,磁區代號為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,看一下現在的硬碟狀況,且可以看到是未formatDisk

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新增一個Lunvm 認識)
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

Debian Linux 建立 RAID 0

 參考網頁:
Creating Software RAID0 (Stripe) on 'Two Devices' Using 'mdadm' Tool in Linux - Part 2
Debian RAID-0 (等量模式) | JR 的網路日誌
OS:Debian Linux 5.8.0
HDD:
10G*1 Debian Linux System
20G *4 (/dev/sdb,sdc,sdd,sde)

1. 安裝 mdadm 套件
# apt-get install mdadm


2. 查看目前磁碟狀態
# fdisk -l | grep '^Disk /dev'
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk /dev/sdc: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk /dev/sdd: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk /dev/sde: 20 GiB, 21474836480 bytes, 41943040 sectors

3. 建立磁碟分割區
# fdisk /dev/sdb



不一定要更改成 fd

重複上面的動作,完成所有的磁碟
# fdisk /dev/sdc
# fdisk /dev/sdd
# fdisk /dev/sde

4. 建立 /dev/md0 磁碟陣列分割區
# mdadm --create /dev/md0 --level=stripe --raid-devices=4 /dev/sd[b-e]1

# mdadm -C /dev/md0 -l raid0 -n 4 /dev/sd[b-e]1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/sdb1 /dev/sdb2


5. 查看建置結果
# cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 sde1[3] sdd1[2] sdc1[1] sdb1[0]
      83816448 blocks super 1.2 512k chunks

unused devices: <none>

/dev/sdb1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 7d559d15:91cc1bec:54dcd941:8f10e5ff
           Name : debian:0  (local to host debian)
  Creation Time : Mon Jun 27 19:09:38 2016
     Raid Level : raid0
   Raid Devices : 4

 Avail Dev Size : 41908224 (19.98 GiB 21.46 GB)
    Data Offset : 32768 sectors
   Super Offset : 8 sectors
   Unused Space : before=32680 sectors, after=0 sectors
          State : clean
    Device UUID : b77c8a2f:aad8c146:6da755a5:6f3db3e3

    Update Time : Mon Jun 27 19:09:38 2016
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : 37037bb0 - correct
         Events : 0

     Chunk Size : 512K

   Device Role : Active device 0
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)

fdisk -l | grep /dev/md0
Disk /dev/md0: 80 GiB, 85828042752 bytes, 167632896 sectors

# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Mon Jun 27 19:09:38 2016
     Raid Level : raid0
     Array Size : 83816448 (79.93 GiB 85.83 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Mon Jun 27 19:09:38 2016
          State : clean
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

     Chunk Size : 512K

           Name : debian:0  (local to host debian)
           UUID : 7d559d15:91cc1bec:54dcd941:8f10e5ff
         Events : 0

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
       3       8       65        3      active sync   /dev/sde1

6. 進行 RAID 磁碟分割
# fdisk /dev/md0



7. 格式化分割區 

mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/xxx
# mkfs.ext4 /dev/md0p1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 20953600 4k blocks and 5242880 inodes
Filesystem UUID: a89c1629-75b4-4660-b5cd-cbcf72595fe8
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

8. 建立掛載目錄並掛載
# mkdir /mnt/raid0
# mount /dev/md0p1 /mnt/raid0
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       9.3G  1.1G  7.8G  12% /
udev             10M     0   10M   0% /dev
tmpfs           400M  5.9M  394M   2% /run
tmpfs           999M     0  999M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           999M     0  999M   0% /sys/fs/cgroup
/dev/md0p1         79G   56M   75G   1% /mnt/raid0

9. 查看硬碟的 UUID
# blkid | grep /dev/md0p1
/dev/md0p1: UUID="b57de29c-9210-48bc-9ba6-1f5224feb42f" TYPE="ext4"

10. 修改 /etc/fstab
# vim /etc/fstab
加入下面一行
UUID=b57de29c-9210-48bc-9ba6-1f5224feb42f /mnt/raid0      ext4    errors=remount-ro 0       0

11. 編輯 /etc/mdadm/mdadm.conf  設定檔
mdadm -E -s -v >> /etc/mdadm/mdadm.conf

mdadm --detail --scan --verbose >> /etc/mdadm/mdadm.conf
# cat /etc/mdadm/mdadm.conf
ARRAY /dev/md/0  level=raid0 metadata=1.2 num-devices=4 UUID=7d559d15:91cc1bec:54dcd941:8f10e5ff name=debian:0
   devices=/dev/sde1,/dev/sdd1,/dev/sdc1,/dev/sdb1

12. 磁碟分割資訊
# fdisk -l | grep /dev/sd
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
/dev/sdb1        2048 41943039 41940992  20G 83 Linux
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
/dev/sda1  *        2048 20013055 20011008  9.6G 83 Linux
/dev/sda2       20015102 20969471   954370  466M  5 Extended
/dev/sda5       20015104 20969471   954368  466M 82 Linux swap / Solaris
Disk /dev/sdc: 20 GiB, 21474836480 bytes, 41943040 sectors
/dev/sdc1        2048 41943039 41940992  20G 83 Linux
Disk /dev/sdd: 20 GiB, 21474836480 bytes, 41943040 sectors
/dev/sdd1        2048 41943039 41940992  20G 83 Linux
Disk /dev/sde: 20 GiB, 21474836480 bytes, 41943040 sectors
/dev/sde1        2048 41943039 41940992  20G 83 Linux

13. 檢查是否有正確掛載
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       9.3G  1.1G  7.8G  12% /
udev             10M     0   10M   0% /dev
tmpfs           400M  5.9M  394M   2% /run
tmpfs           999M     0  999M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           999M     0  999M   0% /sys/fs/cgroup
/dev/md0p1       79G   56M   75G   1% /mnt/raid0