TShopping

 找回密碼
 註冊
搜索
查看: 72|回復: 0

[CentOS] Linux Soft RAID1 硬碟半殘的偵測確認、移除、更換硬碟動作

[複製鏈接]
發表於 2018-10-25 23:04:35 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk Push to Twitter 
Linux 使用軟體陣列做 RAID 1,之前都是硬碟直接掛掉,而這次是硬碟半殘,速度慢到炸掉,應該是快掛了,只是還沒掛,這種時候最麻煩...
所以把遇到的情況、檢測方式形容一下,以防下次再次遇到~
Linux Soft RAID1 硬碟半殘的偵測確認、移除、更換硬碟動作
一直都是正常的,但是突然間發現到編輯檔案的速度非常緩慢,但是其它操作又沒什麼感覺,大致如下:
  • Vim 編輯檔案、貼上內容的速度慢到爆炸,砍檔案的速度極慢
  • 不過平常 cd 切換,cat / less 速度沒有影響
  • 主要是遇到有任何寫入行為,ex: apt install / remove.. 等等,都會爆慢
  • 同台機器,到其它顆硬碟的區域,一樣 Vim 編輯、貼上,都很快速 (註:這個當下沒有測試,是在最後測試完速度,在其它硬碟做驗證,就很明顯知道問題點)
猜想是硬碟問題,先做點測試 (下述用 RAID 1:md0 是對照此兩顆硬碟 /dev/sda, /dev/sdb)
確認 RAID 1 兩顆硬碟的情況
  • $ cat /proc/mdstat # 看起來都是正常,所以得要強制將有問題的硬碟下掉Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4][raid10]md0 : active raid1 sdb1[3] sda1[2]      1913930560 blocks super 1.2 [2/2] [UU]unused devices: <none>
硬碟檢測
  • $ sudo smartctl -a /dev/sda | less
  • $ sudo smartctl -a /dev/sdb | less
  • $ sudo badblocks -v /dev/sda # 這個會跑很久,當最後備案
測試看看硬碟速度
  • $ sudo hdparm -Tt /dev/sda # or hdparm -t /dev/sda
    /dev/sda:
    Timing cached reads: 22328 MB in 1.99 seconds = 11195.77 MB/sec
    Timing buffered disk reads: 380 MB in 3.01 seconds = 126.45 MB/sec
  • $ sudo hdparm -Tt /dev/sdb
    /dev/sdb:
    Timing cached reads: 2 MB in 41.75 seconds = 49.05 kB/sec
    Timing buffered disk reads: 2 MB in 6.81 seconds = 300.65 kB/sec/dev/sdb:
    Timing cached reads: 2 MB in 8.71 seconds = 235.18 kB/sec
    Timing buffered disk reads: 2 MB in 24.67 seconds = 83.03 kB/sec
確認 /dev/sdb 不是眼花或者系統偶爾太忙,所以多跑一次,確認真的很慢 (sda 是 MB/sec,sdb 是 kB/sec)
到此幾乎已經確認是硬碟有問題
查看硬碟規格(準備採購硬碟)
  • $ sudo smartctl -a /dev/sdb | grep 'SATA'
    SATA Version is: SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
  • $ sudo hdparm -i /dev/sdb
  • $ sudo hdparm /dev/sdb
從 RAID 1 移除硬碟
  • cat /proc/mdstat # 查看 RAID 狀態,看起來都是正常,所以得要強制將有問題的硬碟下掉
  • mdadm /dev/md0 --fail /dev/sdb1 # 因為硬碟還沒實際掛掉,所以需要先跟他說掛了
    註:做完這個動作,速度馬上就快起來
  • mdadm /dev/md0 --fail /dev/sdb1
    mdadm: set /dev/sdb1 faulty in /dev/md0
  • mdadm /dev/md0 --remove /dev/sdb1
    mdadm: hot removed /dev/sdb1 from /dev/md0
  • wipefs -a /dev/sdb1 # 避免系統重新自動掛載
    /dev/sdb1: 4 bytes were erased at offset 0x00001000 (linux_raid_member): fc 4e 2b a9
  • dmesg 會看到下述訊息:
    md/raid1:md0: Disk failure on sdb1, disabling device.
    md/raid1:md0: Operation continuing on 1 devices.
    RAID1 conf printout:
    --- wd:1 rd:2
    disk 0, wo:0, o:1, dev:sda1
    disk 1, wo:1, o:0, dev:sdb1
    RAID1 conf printout:
    --- wd:1 rd:2
    disk 0, wo:0, o:1, dev:sda1
    md: unbind<sdb1>
    md: export_rdev(sdb1)
  • vim /etc/fstab # 若有 swap 單獨磁區,要先註解掉
RAID 1 加入新硬碟
  • 將 sda 磁區複製到 sdb
    • sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdb
      • 註:若硬碟不同款,這樣子切完後,可以再 fdisk /dev/sdb 修改容量
    • sudo fdisk -l /dev/sda
    • sudo fdisk -l /dev/sdb # 檢查看看有沒有一樣
    • sudo mdadm --add /dev/md0 /dev/sdb1 # 就會開始 sync 了
    • cat /proc/mdstat # 可以看 sync 進度
  • 剩餘空間給 swap # 這個可以隨興使用,因為兩顆硬碟大小可能不一樣(Soft RAID1)
    • sudo mkswap /dev/sdb2 # 建立 swap 空間
    • sudo swapon /dev/sdb2
    • ls -lh /dev/disk/by-uuid
    • vim /etc/fstab # 修改原本損毀的磁區, 改成新的
    • 註:通常軟體陣列,我會習慣在後面增加 swap 區域(依靠 swap 區域來做容量調節),避免硬碟大小不同時,會無法做 1:1 的 Raid 1。

https://blog.longwin.com.tw/2018/04/linux-soft-raid1-hdd-failed-remove-renew-2018/

 

臉書網友討論
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2018-11-21 10:21 , Processed in 0.052778 second(s), 21 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表