Home > FreeBSD > FreeBSD: исправление Current_Pending_Sector

FreeBSD: исправление Current_Pending_Sector

January 27th, 2012 Leave a comment Go to comments

SMART мониторинг отрапортовал об ошибке на одном из дисков, включенных в ZFS пул. Надо лечить…

 # smartctl -A /dev/ad6
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     TYPE      RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   Pre-fail  0
196 Reallocated_Event_Count 0x0032   Old_age   0
197 Current_Pending_Sector  0x0022   Old_age   1

Для начала, можно запустить smartctl -t long тест и удостовериться в наличии ошибки на диске. В моем случае ошибка продолжала определяться.

# smartctl -l selftest /dev/ad6
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description  Status                  Remaining  LBA_of_first_error
# 1  Extended offline  Completed: read failure       10%  188735191

Для контроля, а заодно убедиться правильно ли считаются сектора, получаем еще одну ошибку чтения

# dd if=/dev/ad6 of=/dev/null bs=512 count=1 skip=188735191
dd: /dev/ad6: Input/output error
0+0 records in
0+0 records out
0 bytes transferred in 5.874599 secs (0 bytes/sec)

В логах тоже ошибка

Jan 27 02:37:43 stella kernel: ad6: FAILURE - READ_DMA \
   status=51<READY,DSC,ERROR> error=40<UNCORRECTABLE> LBA=188735191

Соседние сектора читаются…

# dd if=/dev/ad6 of=/dev/null bs=512 count=1 skip=188735192
1+0 records in
1+0 records out
512 bytes transferred in 0.016165 secs (31673 bytes/sec)

Ок, лечим… Для начала, наступим на грабли

# dd of=/dev/ad6 if=/dev/zero bs=512 count=1 oseek=188735191
dd: /dev/ad6: Operation not permitted

Разрешить писать на примонтированный диск

# sysctl kern.geom.debugflags
kern.geom.debugflags: 0
# sysctl kern.geom.debugflags=0x10
kern.geom.debugflags: 0 -> 16

После этого обнуляем сбойный сектор

# dd of=/dev/ad6 if=/dev/zero bs=512 count=1 oseek=188735191
1+0 records in
1+0 records out
512 bytes transferred in 0.000170 secs (3011899 bytes/sec)

Смотрим состояние SMART. Значение Current_Pending_Sector уже нулевое. Значение Reallocated_Sector_Ct не увеличилось. Можно считать, пронесло и пока диск менять не придется.

# smartctl -A /dev/ad6
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     TYPE      UPDATED  RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   Pre-fail  Always   0
196 Reallocated_Event_Count 0x0032   Old_age   Always   0
197 Current_Pending_Sector  0x0022   Old_age   Always   0

Для проверки целостности можно запустить zpool scrub и контрольный smartctl -t long тест…

  1. No comments yet.
  1. No trackbacks yet.
You must be logged in to post a comment.