Linux Arch на ARM - случайный USB-накопитель "зависает"

1139
Riccardo Cossu

Я запускаю Linux Box на Seagate Free Agent Dockstar, очень ограниченной машине, но более чем способной сделать то, что мне нужно, что верно в большинстве случаев ...

У меня операционная система на флеш-накопителе и внешний USB 2 "классический магнитный" жесткий диск Western Digital 1,5 ТБ для хранения больших объемов данных.

Не редко случается так, что ожидание IO% внезапно достигает почти 100%, и система стоит на коленях, до такой степени, что в ней очень трудно даже ssh; типичный «iostat -x» в таких ситуациях выдает результат вроде:

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda 0.00 0.00 0.00 0.50 0.00 2.00 8.00 14.80 91400.00 0.00 91400.00 2000.00 100.00 

где sdb - это флэш-накопитель, а sda - это USB-диск. Это говорит мне о том, что USB-накопитель занят на 100%, но почти никто не пишет и не читает с него.

Я также использовал «lsof + D» во время «нормального» использования, и ничего подозрительного не было найдено: используется достаточное количество файлов, но ничего странного.

Как я могу отладить глубже? Имейте в виду, что машина использует процессор ARM, имеет только 128 МБ ОЗУ и не имеет экрана или локальной консоли, но, учитывая эти ограничения, я могу установить почти все, если это необходимо.

Изменить: Я также попытался запустить Smartctl, который говорит, что диск подходит:

Результат теста самооценки SMART общего состояния здоровья: ПРОЙДЕН

... есть много выхода, но ничего из этого не кажется полезным

Edit2:

Я действительно думаю, что диск имеет проблемы с оборудованием; Я заметил, что когда он загружен на 100% без нагрузки, он издает повторяющийся шум, который напоминает мне о старых гибких дисках Amiga - они производили похожий шум, как будто они ходили без цели ...

По этой причине предложение перенести / var и / tmp на магнитный диск только ухудшило ситуацию.

Я думаю, что единственный способ решить эту проблему - это купить новый жесткий диск и сделать резервную копию ценных данных как можно скорее. :-(

1
I think this can be closed... there is nowhere on stackexchange I could get any help for this. Bad luck with the disk, it happens! Riccardo Cossu 12 лет назад 0

2 ответа на вопрос

1
Turbo J

Дважды проверьте, что диск WD в порядке. Я только что обнаружил, что один из моих читал ошибки. Потребовалось огромное количество времени (минут), чтобы прочитать некоторые плохие секторы. К сожалению, SMART может не работать через USB, что затрудняет проверку состояния дисков.

Один из способов проверить это - прочитать весь диск с помощью dd:

dd if=/dev/sdX of=/dev/null bs=1M

Это займет некоторое время по USB, но если вы ошиблись командой dd, значит, диск поврежден. Вы можете читать диск, пока он смонтирован, но будьте осторожны с if=и of=!

Я пытался, но он не дал много информации ... в какой-то момент диск застрял, но dd ничего не отображал (даже не отправляя SIGUSR1). Спасибо за внимание, но сейчас я пытаюсь с e2fsck -c Riccardo Cossu 13 лет назад 0
от e2fsck -c тоже нет результата ... я пытаюсь с e2fsck -cc, но это займет несколько дней ... Riccardo Cossu 13 лет назад 0
В процессе поиска информации я узнал, что все приличные в последнее время накопители обрабатывают плохой сектор внутренне (в определенной степени); поэтому, пока жесткий диск не сможет это сделать, такие инструменты, как e2fsck, всегда будут сообщать о 0 поврежденных секторах. Когда эти инструменты начинают показывать плохой сектор, наступает время для резервного копирования и получения нового диска как можно скорее. К счастью, мой usb-накопитель поддерживается smartmontools, и это должно было быть с самого начала: через несколько часов он бы сказал, что накопитель идеально подходит. На данный момент я действительно застрял ... Riccardo Cossu 13 лет назад 0
0
LawrenceC

Флэш-накопители обычно имеют низкую производительность записи. Поэтому вам нужно минимизировать количество операций записи на флэш-диск.

  • Используйте опции "noatime" в fstab для вашего /и /usrраздела.
  • Отключить своп
  • /varЕсли возможно, наденьте что-нибудь другое (это «массивное хранилище», если можете), если нет, отключите все журналы, которые вам абсолютно не нужны.
  • То же самое с /tmp.
спасибо за ваш совет, но диск замораживания - это "обычный" магнитный диск; Я обновил текст, чтобы сделать его более понятным Riccardo Cossu 13 лет назад 0

Похожие вопросы