Ceph 磁碟損壞現象和解決方法
對於儲存系統,磁碟是消耗品,損壞是很常見的,所以這篇文章記錄一下 Ceph 中出現磁碟損壞時的現象,以及如何定位和更換損壞的磁碟。
1. 磁碟損壞
1.1 現象
工作環境中出現問題的 Ceph 的資料是雙備份的,OSD 35 所在的磁碟出現了壞道,表現出來的現象是 ceph 經常會報出儲存在 OSD 35 上的 pg 資料不一致,以及報出 scrub error,以下是 ceph health detail 命令輸出新相關資訊。
$ ceph health detail
......
OSD_SCRUB_ERRORS 31 scrub errors
PG_DAMAGED Possible data damage: 5 pgs inconsistent
pg 41.33 is active+clean+inconsistent, acting [35,33]
pg 41.42 is active+clean+inconsistent, acting [29,35]
pg 51.24 is active+clean+inconsistent, acting [35,43]
pg 51.77 is active+clean+inconsistent, acting [28,35]
pg 51.7b is active+clean+inconsistent, acting [35,46]
......
1.2 資料狀態
因為資料只有雙備份,ceph 無法確定哪個備份中的資料是可用的,所以此時雖然顯示 pg 狀態是 active+clean,但有問題的資料其實是不可用的。
1.3 臨時解決方法
作為臨時的解決方案,可以執行 ceph pg repair 解決,此時由於磁碟壞道造成不可讀的資料會拷貝到其他位置。但這不能從根本上解決問題,磁碟損壞會持續報出類似的錯誤。
$ ceph pg repair 41.33
$ ceph pg repair 41.42
$ ceph pg repair 51.24
$ ceph pg repair 51.77
$ ceph pg repair 51.7b
2. 定位並檢查故障磁碟
知道 OSD 35 有問題,但我們現在還不知道對應的是具體哪塊磁碟。我們可以登入到對應到 OSD 伺服器上檢視 OSD 35 的目錄名稱,並檢視 PVS 的對應關係來解決。
$ ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 127.09767 root default
-5 127.09767 host osd7
......
33 hdd 5.52599 osd.35 up 1.00000 1.00000
......
通過這個命令,我們可以知道 OSD.35 是位於 OSD7 這臺伺服器上。接下來,我們登入到 OSD7 上,並切換為 root 許可權。
$ ssh osd7
$ sudo -i
然後進入到 OSD.35 的目錄裡。
# cd /var/lib/ceph/osd/ceph-35
再來檢視 PVS 資訊。
# pvs -o+pv_used
......
PV VG Fmt Attr PSize PFree Used
/dev/sda5 ubuntu-vg lvm2 a-- 446.65g 0 446.65g
/dev/sdc ceph-320de131-5f26-48a7-aa64-c7f08f87cd85 lvm2 a-- 5.46t 0 5.46t
......
好,現在我們終於知道,/dev/sdc 就是 OSD.35
3. 獲取磁碟錯誤資訊
我們已經知道是哪個磁碟出錯,接下來就要向磁碟的提供商報修,或者聯絡購買新磁碟了。如果是報修,對方必然要求提供磁碟出錯資訊,接下來我們們就看一下如何拿到這些資訊,這裡我們要用到的命令好工具是 SMART monitor tool,Debian 系的系統可以通過 APT 安裝:
$ sudo apt install -y smartmontools
RedHat 系的系統用 yum 安裝:
$ sudo yum install -y smartmontools
安裝完成後用如下命令獲取輸出資訊即可,這裡需要注意一下輸出中序列號這項資訊,這次磁碟的唯一標識,後面會用到:Serial Number: 57J6KA41F6CD
$ sudo smartctl -a /dev/sdc
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-121-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Device Model: TOSHIBA MG04ACA600E
Serial Number: 57J6KA41F6CD
LU WWN Device Id: 5 000039 7cb9822be
Firmware Version: FS1K
User Capacity: 6,001,175,126,016 bytes [6.00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: 7200 rpm
Form Factor: 3.5 inches
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: ATA8-ACS (minor revision not indicated)
SATA Version is: SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Tue Aug 7 14:46:45 2018 CST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
...
4. 點亮硬碟指示燈
最後,儲存廠商同意保修,或者購買新硬碟進行更換,都需要知道磁碟具體插在哪個 PCIe 口上。雖然我們已經知道是哪個裝置了,本例中是 /dev/sdc,但這依舊不夠直觀,如果能讓壞掉的硬碟的指示燈亮起,那麼就非常方便維修人員查詢和更換了。這就需要用到 SAS-x integrated RAID configuration utility 了。
該檔案沒有提供 APT 和 YUM 源的下載方式,只能從網上找到 RPM 或可執行檔案,以下連結是該檔案的百度雲盤地址:
sas3ircu
下載好後,先執行 display 命令,查詢全部磁碟資訊。
$ sudo ./sas3ircu 0 display
......
Device is a Hard disk
Enclosure # : 2
Slot # : 0
SAS Address : 5003048-0-1867-f140
State : Ready (RDY)
Size (in MB)/(in sectors) : 5723166/11721045167
Manufacturer : ATA
Model Number : TOSHIBA MG04ACA6
Firmware Revision : FS1K
Serial No : 57J6KA41F6CD
Unit Serial No(VPD) : 57J6KA41F6CD
GUID : 50000397cb9822be
Protocol : SATA
Drive Type : SATA_HDD
......
從輸出結果來看,Serial No : 57J6KA41F6CD,和之前 smartctl 查詢到的結果一致,那麼我們就知道這次磁碟的位置是
Enclosure # : 2
Slot # : 0
接下來執行下面的命令點亮對應硬碟的指示燈:
sudo ./sas3ircu 0 locate 2:0 on
另外更換完畢後,自然還要執行該命令關掉指示燈:
sudo ./sas3ircu 0 locate 2:0 off
相關文章
- linux下修復磁碟損壞Linux
- RAC磁碟頭損壞問題處理
- Oracle asm磁碟損壞異常恢復OracleASM
- RAID10磁碟陣列損壞修復操作AI陣列
- WPS文件損壞如何修復?WPS文件損壞的修復方法
- ASM磁碟頭資訊損壞和修復(kfed/dd)ASM
- linux RAID10磁碟陣列損壞的修復LinuxAI陣列
- windows10系統開啟Ableton Live檔案出現已損壞的解決方法Windows
- 硬碟物理故障解決方法之電路板損壞修復方案硬碟
- Win10系統桌面圖示已損壞的解決方法Win10
- 【LINUX】Oracle資料庫 linux磁碟頭資料損壞修復LinuxOracle資料庫
- Oracle 控制檔案損壞解決方案Oracle
- win10系統kprcycleaner.exe損壞怎麼修復_win10系統kprcycleaner.exe損壞解決方法Win10
- Jmeter json格式 unicode亂碼現象解決方法JMeterJSONUnicode
- win10不管解壓什麼都損壞怎麼辦 win10檔案損壞無法解壓解決方法Win10
- 磁頭損壞的修復方法有哪些
- SELinux簡介和解決方法Linux
- PostgreSQL資料庫toast表損壞解決SQL資料庫AST
- RAID 損壞後對物理硬碟做完整映象方法AI硬碟
- WEB認證蘋果手機鎖屏後出現斷開WI-Fi的現象和解決Web蘋果
- win10 bcd損壞無法開機怎樣修復_win10系統bcd損壞開機進不了系統解決方法Win10
- ceph叢集安裝報錯解決方法
- windows10應用商店損壞怎麼修復_win10應用商店損壞處理方法WindowsWin10
- u盤檔案損壞怎麼恢復資料 u盤恢復損壞資料的有效方法
- 排查和解決 CentOS 伺服器磁碟空間不足問題CentOS伺服器
- 電腦硬碟分割槽表損壞怎麼修復?電腦硬碟分割槽表損壞的修復方法硬碟
- Win7系統ISP損壞怎麼辦?Win7系統中lsp損壞的修復方法Win7
- Win7系統LSP損壞怎麼辦?Win7系統中LSP損壞的修復方法Win7
- InterBase資料庫檔案損壞的修復方法資料庫
- ipa包用企業籤做簽名後提示描述檔案損壞解決方法
- 粘包問題原因和解決方法
- win10損壞的映像錯誤0xc000012f怎麼辦_win10損壞的映像0xc000012f的解決方法Win10
- win10應用商店快取已損壞怎麼辦_win10應用商店提示應用商店快取已損壞的解決方法Win10快取
- 安裝adobe 直裝版應用出現Error無法繼續安裝,檔案已損壞解決方法Error
- win10系統登入後提示qqlive.exe 損壞檔案的解決方法Win10
- Firefox 使用常見問題和解決方法Firefox
- Mac OS X 下檔名亂碼出現的原因和解決方法Mac
- YOLOv3訓練過程中出現過擬合現象的解決方法YOLO