The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Потенциальный badblock на FreeBSD"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Файловые системы, диски / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Потенциальный badblock на FreeBSD"  +/
Сообщение от ptr email(ok) on 04-Окт-10, 15:49 
Имеем FreeBSD 7.3 и smartd, мониторящий ATA диски.
В определенный момент, SMART тест обнаруживает ошибку на диске /dev/ad0:

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
......
# 4  Extended offline    Completed: read failure       90%     33474         3665213

Смотрим, что говорит fdisk /dev/ad0:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 63, size 312576642 (152625 Meg), flag 80 (active)
        beg: cyl 0/ head 1/ sector 1;
        end: cyl 1023/ head 254/ sector 63

Затем смотрим на вывод disklabel /dev/ad0s1
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:   524288        0    4.2BSD     2048 16384 32776
  b:   524288   524288      swap
  c: 312576642        0    unused        0     0         # "raw" part, don't edit
  d:  2097152  1048576    4.2BSD     2048 16384 28552
  e:  1048576  3145728    4.2BSD     2048 16384     8
  f: 308382338  4194304    4.2BSD     2048 16384 28552

Путем простейшей арифметики, вычисляю, что ошибка чтения возникла на разделе e:

Глядя на fstab, сопоставляем /dev/ad0s1e == /tmp

Тестируем раздел при помощи dd if=/dev/ad0s1e bs=256k of=/smb/temp/tmp.bak
2048+0 records in
2048+0 records out
536870912 bytes transferred in 111.588130 secs (4811183 bytes/sec)

То есть, все прочиталось без ошибок.
Повторный запуск smartctl -t long /dev/ad0, естественно снова находит ошибку по тому же адресу. Релоцировать сектор SMART не желает:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0

И где я дурак?

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Потенциальный badblock на FreeBSD"  +/
Сообщение от lavr email on 04-Окт-10, 16:49 
>[оверквотинг удален]
>     VALUE WORST THRESH TYPE  
>   UPDATED  WHEN_FAILED RAW_VALUE
>   5 Reallocated_Sector_Ct   0x0033   100  
> 100   036    Pre-fail  Always
>      -    
>  0
> 197 Current_Pending_Sector  0x0012   100   100  
> 000    Old_age   Always  
>    -       0
> И где я дурак?

здесь: "Путем простейшей арифметики, вычисляю, что ошибка чтения возникла на разделе e:"
ибо адресация в FS относительная, относительно начала FS, а не LBA, к нашему
великому сожалению :(

ну и потом, Bad block realloc будет только во время записи и то скорей всего не с первого раза.
Если хочется во время READ ("без потери данных"), то воспользуйтесь Vicrtoria
Smarttools не производит операций realloc или других с HDD, только тесты и выдача значений smart

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Потенциальный badblock на FreeBSD"  +/
Сообщение от ptr email(ok) on 04-Окт-10, 17:30 

> ибо адресация в FS относительная, относительно начала FS, а не LBA, к
> нашему
> великому сожалению :(

Не понял. У меня на диске только одна партиция - начинается с 63-го сектора.
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 63, size 312576642

Насколько я понимаю, относительная адресация разделов в ней как раз и переводится в абсолютную прибавлением 63.
Так как LBA ошибки 3665213, а /tmp начинается с 3145728 и имеет размер 1048576 секторов (512 МiB). Даже если я потерял где-то пару-сотню тысяч секторов, ошибка должна все равно попасть в /dev/ad0s1e.

Про запись я в курсе. Я как раз и хочу найти куда писать, чтобы не перекатывать весь диск по нескольку раз.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Потенциальный badblock на FreeBSD"  +/
Сообщение от ptr email(ok) on 04-Окт-10, 18:12 
> Про запись я в курсе. Я как раз и хочу найти куда
> писать, чтобы не перекатывать весь диск по нескольку раз.

Дополнение: dd if=/dev/ad0 bs=2048k of=/dev/null
Весь диск прочитан без сообщений об ошибке.
Как такое может быть?


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Потенциальный badblock на FreeBSD"  +/
Сообщение от lavr email on 05-Окт-10, 13:45 
>> Про запись я в курсе. Я как раз и хочу найти куда
>> писать, чтобы не перекатывать весь диск по нескольку раз.
> Дополнение: dd if=/dev/ad0 bs=2048k of=/dev/null
> Весь диск прочитан без сообщений об ошибке.
> Как такое может быть?

легко, диск остыл, диск нагрелся и посыпались CRC и тд и тп, современные диски,
редкое г... и большая загадка (броски питания без UPS'а, ужасно сделанные
переходные планки или backplane панели) :)

bs сделайте маленьким от 16 до 64k, но это, увы, надолго

Есть номер LBA, если машину можно остановить на 15мин, скачайте Vicroria и
в режиме READ линейное чтение с сектора по сектор раза 3 прогоните.
Лучше конечно весь диск, заодно посмотреть поверхность.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Потенциальный badblock на FreeBSD"  +/
Сообщение от ptr email(ok) on 05-Окт-10, 15:02 
>> Дополнение: dd if=/dev/ad0 bs=2048k of=/dev/null
>> Весь диск прочитан без сообщений об ошибке.
>> Как такое может быть?
> легко, диск остыл, диск нагрелся и посыпались CRC и тд и тп,
> современные диски,
> редкое г... и большая загадка (броски питания без UPS'а, ужасно сделанные
> переходные планки или backplane панели) :)
> bs сделайте маленьким от 16 до 64k, но это, увы, надолго

На самом деле физически блоки на современных дисках давно уже не 512 байт.

> Есть номер LBA, если машину можно остановить на 15мин, скачайте Vicroria и
> в режиме READ линейное чтение с сектора по сектор раза 3 прогоните.
> Лучше конечно весь диск, заодно посмотреть поверхность.

Весь диск, собственно говоря, smartctl -t long как раз и прогоняет.
Мне бы заставить его релоцировать битый сектор, а при чтении он релоцировать не желает.
Проблема в том, что этот сервер я могу из работы больше, чем на полчаса выводить. А для замены есть только с FreeBSD 8.1
Так что, если не смогу релоцировать сектор, придется внепланово переводить его на 8.1


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "Потенциальный badblock на FreeBSD"  +/
Сообщение от lavr email on 05-Окт-10, 17:07 
>>> Дополнение: dd if=/dev/ad0 bs=2048k of=/dev/null
>>> Весь диск прочитан без сообщений об ошибке.
>>> Как такое может быть?
>> легко, диск остыл, диск нагрелся и посыпались CRC и тд и тп,
>> современные диски,
>> редкое г... и большая загадка (броски питания без UPS'а, ужасно сделанные
>> переходные планки или backplane панели) :)
>> bs сделайте маленьким от 16 до 64k, но это, увы, надолго
> На самом деле физически блоки на современных дисках давно уже не 512
> байт.

о как, это вы о тех что 4k? у вас именно такой?

>> Есть номер LBA, если машину можно остановить на 15мин, скачайте Vicroria и
>> в режиме READ линейное чтение с сектора по сектор раза 3 прогоните.
>> Лучше конечно весь диск, заодно посмотреть поверхность.
> Весь диск, собственно говоря, smartctl -t long как раз и прогоняет.

что прогоняет? тест, сам smartmontools никаком с bad block не делает, даже
унутренний механизм realloc заявленный у дисков PATA/SATA непонятно как
работает, как в той сцене: "тут играть, тут не играть..." - короче через
одно место или вовсе не работает, неуправляемый процесс :(

> Мне бы заставить его релоцировать битый сектор, а при чтении он релоцировать
> не желает.
> Проблема в том, что этот сервер я могу из работы больше, чем
> на полчаса выводить. А для замены есть только с FreeBSD 8.1
> Так что, если не смогу релоцировать сектор, придется внепланово переводить его на
> 8.1

замену надо иметь, в смысле аналогичный диск на подобные случаи, тогда можно подменять
и пускать write без проблем.

ps. Если на боевом сервере на дисках пошли сбои, такие диски нужно выводить из работы.
pps. Сектора в LBA вам известны, попробуйте Victoria на другой машине, после чего,
заранее все подготовив - 15 мин вам хватит.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру