LINUX.ORG.RU

[Советов тред] Умирает жесткий диск; как сохранить данные и систему?


0

1

Всем привет.

Есть такая интересная задача. Человек купил ноутбук. Поставил систему (Линукс). Потом догадался запустить smartmontools и понял что все плохо - диск умирает (error correction просто летят вверх). Да, будем менять. Но поменять получится только через неделю-две (купили в другом городе), это время очень нужно работать на ноуте здесь.

Отсюда несколько вопросов:
1. Как узнавать что данные испортились? Может ли запись завершиться успешно, а чтение после этого - нет? Имеет ли смысл периодически «читать все файлы» чтобы понять что что-то испортилось?
2. Как бекапить данные, при условии что с данными постоянно работают? Внешнего HDD нет. Software Raid на одном диске ИМХО глупо и тормознуто. Пока думаю сделать два раздела на том же диске и периодически на фоне запускать rsync. Флешка, думаю, может умереть быстро при таком. Есть еще какие-то идеи?
3. Файловая система: как ext4 отреагирует на проблемы с диском, когда они уже выплывут в bad block'и? Есть ли смысл менять на что-то другое?
4. Что еще посоветуете чтобы с минимальным риском/ущербом прожить эти несколько недель.

Спасибо!

★★★★★

Как бекапить данные, при условии что с данными постоянно работают?

прекратить работать с данными, потом dd(а лучше ddrescue) на внешний жесткий диск или сетевое хранилище размером с диск(не с занятое место, а размером именно с весь диск)

Что еще посоветуете чтобы с минимальным риском/ущербом прожить эти несколько недель.

бэкап на любой другой физический носитель

Как узнавать что данные испортились?

по ошибкам в syslog.

Может ли запись завершиться успешно, а чтение после этого - нет?

если битый жесткий - вряд ли, хотя исключать такое не стоит. Вот при битой оперативе такое сплошь и рядом

Имеет ли смысл периодически «читать все файлы» чтобы понять что что-то испортилось?

имеет смысл прогнать victoria/mhdd на весь диск в режиме случайного чтения

Pinkbyte ★★★★★
()

1. Глянуть в dmesg. ФС может ругаться туда о незавершённых тразакциях. syslog...
2. что за данные такие? Отмонтировать раздел проще. remount ro init 2 ЕМНИП
3.fsck.ext4 -c
This option causes e2fsck to use badblocks(8) program to do a read-only scan of the device in order to find any bad blocks. If any bad blocks are found, they are added to the bad block inode to prevent them from being allocated to a file or directory. If this option is specified twice, then the bad block scan will be done using a non-destructive read-write test.


Смысла менять нет
4. Молиться, поститься, слушать радио Радонеж. hdparm -M 128

darkshvein ☆☆
()
Ответ на: комментарий от Pinkbyte

Ну вот нафиг советовать во все щели дд? Он нужен лишь когда нужно вытянуть все данные с уже сбойных устройств. Тут он будет напрасно насиловать сектора, читая ненужную доп. мета-info. Вероятность отказа увеличиться ещё больше.

darkshvein ☆☆
()
Ответ на: комментарий от darkshvein

затем, что если есть подозрение на сбойное устройство: посекторное копирование - это 100% надежный метод восстановления максимума информации

Pinkbyte ★★★★★
()

понял что все плохо - диск умирает (error correction просто летят вверх)

Дай угадаю: у человека диск от Seagate? Напоминаю, что для них эти поля заполнены отнюдь не количеством ошибок.

unanimous ★★★★★
()
Ответ на: комментарий от darkshvein

syslog

Да, syslog понастраиваю...

«If this option is specified twice, then the bad block scan will be done using a non-destructive read-write test»

То есть если я укажу один раз - будет descructive???

hdparm -M 128

интересно.

Молиться, поститься, слушать радио Радонеж.

Это уже в списке.

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

посекторное копирование - это 100% надежный метод восстановления максимума информации

По сравнению с чем? Мне другой информации кроме файлов не нужно, а если файлы все еще видны (соотв. участки системы не повреждены) - так я могу и просто скопировать.
И потом - данные будут меняться - в этом основная сложность. На нотике будут работать это время. Так случилось.

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

victoria/mhdd

Да, это хорошая идея!

Kroz ★★★★★
() автор топика
Ответ на: комментарий от unanimous

Дай угадаю: у человека диск от Seagate? Напоминаю, что для них эти поля заполнены отнюдь не количеством ошибок.

Модель не помню. Прийду домой - выложу лог.

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

То есть если я укажу один раз - будет descructive???

Ой, яхз, потренируйтесь лучше сначала на кошках

darkshvein ☆☆
()
Ответ на: комментарий от anonymous

Вроде в btrfs есть поддержка избыточности, но точно не скажу.

Да, это интересно. Только как ее плюшками пользоваться - нигде не написано

- Хеши на данные и метаданные (улучшенная гарантия целостности, текущий алгоритм хешей — CRC-32C, альтернативные в планах;)
Да, круто. А что будет если CRC сумма не сойдется? Как я об этом узнаю, что можно будет сделать?

- эффективный добавочный бекап и зеркалирование файловой системы;
И как часто оригинал и копия сравниваются, что происходит когда не совпадают, как об этом узнавать/управлять?

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

данные будут меняться - в этом основная сложность

ну тогда, если не хочешь dd - инкрементальный бэкап спасет отца русской демократии. man duplicity, например

Pinkbyte ★★★★★
()

диск умирает (error correction просто летят вверх)
понял

Это ещё не факт, что ты понял верно. Покажи вывод smartctl -a, а там видно будет, стоит ли паниковать.

GotF ★★★★★
()
Ответ на: комментарий от GotF

Таки Seagate:

Model Family:     Seagate Momentus 5400.6
Device Model:     ST9320325AS
Serial Number:    5VD7JGAJ
LU WWN Device Id: 5 000c50 03d585b49
Firmware Version: 0003SDM1
User Capacity:    320 072 933 376 bytes [320 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4

Постоянно растут Raw_Read_Error_Rate, Hardware_ECC_Recovered и Seek_Error_Rate

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   117   099   006    Pre-fail  Always       -       123651376
  3 Spin_Up_Time            0x0003   098   098   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       109
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   060   060   030    Pre-fail  Always       -       1025554
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       727
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       109
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   097   000    Old_age   Always       -       87
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   069   054   045    Old_age   Always       -       31 (Min/Max 23/31)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       7
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       45
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       376
194 Temperature_Celsius     0x0022   031   046   000    Old_age   Always       -       31 (0 12 0 0 0)
195 Hardware_ECC_Recovered  0x001a   064   060   000    Old_age   Always       -       123651376
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
254 Free_Fall_Sensor        0x0032   100   100   000    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

Пациент скорее мертв чем жив?

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

Тут вроде выше говорили, что у Seagate некоторые параметры отражаются «как есть», в отличие от дисков других фирм, что означает заоблачные raw-значения. Это правда, то есть диск в полном порядке.

~ # for A in {a,b,c}; do smartctl -a /dev/sd$A | grep -E '(Raw_Read_Error_Rate|Seek_Error_Rate|Hardware_ECC_Recovered)'; done
  1 Raw_Read_Error_Rate     0x000f   115   083   006    Pre-fail  Always       -       86559129
  7 Seek_Error_Rate         0x000f   084   060   030    Pre-fail  Always       -       314805785
195 Hardware_ECC_Recovered  0x001a   078   053   000    Old_age   Always       -       150725849
  1 Raw_Read_Error_Rate     0x000f   118   099   006    Pre-fail  Always       -       173292420
  7 Seek_Error_Rate         0x000f   069   060   030    Pre-fail  Always       -       38723735970
195 Hardware_ECC_Recovered  0x001a   039   024   000    Old_age   Always       -       173292420
  1 Raw_Read_Error_Rate     0x000f   120   099   006    Pre-fail  Always       -       234944565
  7 Seek_Error_Rate         0x000f   074   060   030    Pre-fail  Always       -       8647694399
195 Hardware_ECC_Recovered  0x001a   043   028   000    Old_age   Always       -       234944565
GotF ★★★★★
()
Ответ на: комментарий от GotF

Иными словами у Seagate SMART не работает, точнее он бесполезен?

То есть если диск начнет сыпаться, то пока оно явно пару файлов не скушает, мне никак этого не предвидеть?

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

Иными словами у Seagate SMART не работает, точнее он бесполезен?

??? Можно считать, что эти отдельно взятые параметры не особо связаны с физическим состоянием диска. Потому что промахи и корректируемые ошибки чтения — обычное явление.

То есть если диск начнет сыпаться, то пока оно явно пару файлов не скушает, мне никак этого не предвидеть?

Когда диск сыплется, меняются значения совсем других параметров. Настрой smartd и не парься.

GotF ★★★★★
()
Ответ на: комментарий от Kroz

А проверьте его на беды =) хороший показатель. Если хоть один найдётся - можно на свалку.

BattleCoder ★★★★★
()
Ответ на: комментарий от GotF

На те же, что и в случае других дисков.

Ясно. Надо изучать: на домашнем сервачке три стареньких жёстких соеденены в lvm... Переживаю, что если резко накроется один из них, то информация пропадёт вся. В планах smartd + отсылка почты на сво в случае плохих признаков, но пока руки не доходят.

Jurik_Phys ★★★★★
()
Ответ на: комментарий от GotF

Когда диск сыплется, меняются значения совсем других параметров. Настрой smartd и не парься.

Только вот smartd мониторит эти же параметры AFAIK. Поправь меня если я не прав.

Kroz ★★★★★
() автор топика

Как узнавать что данные испортились?

Никак, разве что если к ним прилагаются хеш-суммы или прочие коды выявления ошибок. Или повреждение данных приводит к совсем очевиндым ошибкам.

Может ли запись завершиться успешно, а чтение после этого - нет?

Может

Имеет ли смысл периодически «читать все файлы» чтобы понять что что-то испортилось?

Хуже будет - это дополнительный износ диска.

Что еще посоветуете чтобы с минимальным риском/ущербом прожить эти несколько недель.

Использовать LiveUSB, там же хранить минимальный необходимый набор данных. А диск снять.

segfault ★★★★★
()
Ответ на: комментарий от Kroz

Только вот smartd мониторит эти же параметры AFAIK. Поправь меня если я не прав.

Наверно, но у меня они игнорируются.

GotF ★★★★★
()
Ответ на: комментарий от segfault

Никак, разве что если к ним прилагаются хеш-суммы или прочие коды выявления ошибок

А может ли ФС это проверять автоматически? Задаю вопрос потому, что нашел что-то такое в btrfs:

http://ru.wikipedia.org/wiki/Btrfs
...
Хеши на данные и метаданные (улучшенная гарантия целостности, текущий алгоритм хешей — CRC-32C, альтернативные в планах;[10])
...


Как это реализовано, точнее как этим пользоваться? Когда происходит проверка чек-суммы, что происходит если проверка не прошла?

Kroz ★★★★★
() автор топика
Ответ на: комментарий от coldy
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   118   099   006    Pre-fail  Always       -       196033810
  3 Spin_Up_Time            0x0003   100   100   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       361
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   070   060   030    Pre-fail  Always       -       11018687
  9 Power_On_Hours          0x0032   099   099   000    Old_age   Always       -       999
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       361
183 Runtime_Bad_Block       0x0032   052   052   000    Old_age   Always       -       48
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   097   000    Old_age   Always       -       622
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   064   057   045    Old_age   Always       -       36 (Lifetime Min/Max 21/36)
194 Temperature_Celsius     0x0022   036   043   000    Old_age   Always       -       36 (0 16 0 0)
195 Hardware_ECC_Recovered  0x001a   043   034   000    Old_age   Always       -       196033810
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       132353712195574
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       4142077946
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       1559630616
coldy ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.