Назад | Перейти на главную страницу

Диск умирает? Странные числа на iostat

У меня дома есть старый ящик P4 с сервером Ubuntu, который я использую в качестве медиа-сервера.

Помимо загрузочного диска IDE, к нему подключен диск SATA емкостью 1 ТБ с одним из этих дешевых адаптеров IDE-SATA, например вот этот.

Диск должен быть одним из тех «ЗЕЛЕНЫХ», которые, как мне кажется, вращаются со скоростью 5400 об / мин.

Некоторое время он работал неплохо, но сейчас (он заполнен примерно на 70%), но в последнее время он начал икать при воспроизведении медиафайлов на моем медиа-рендерере (хотя и не всегда). Сначала я подумал, что это мой хреновый Wi-Fi.

Но затем я запускаю iostat и получаю странные числа. (Кстати, эти числа указаны, когда сервер Twonkymedia пытается проиндексировать диск)

Вот некоторые типичные результаты iostat -dkx 2

Device: rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sdb       0.00     0.00    0.00    0.00     0.00     0.00     0.00     2.00    0.00   0.00 100.00

Device: rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sdb       0.00     0.00    0.00    0.00     0.00     0.00     0.00     1.99    0.00   0.00  99.50

... так продолжается и продолжается ... затем:

Device: rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sdb       0.00     0.00    0.50    0.00    64.00     0.00   256.00     1.58 206436.00 2000.00 100.00

Диск умирает?


Хорошо, я запускаю smartctl -a / dev / sdb и вот результаты:

=== START OF INFORMATION SECTION ===
Device Model:     WDC WD10EADS-00M2B0
Serial Number:    WD-WCAV50522614
Firmware Version: 01.00A01
User Capacity:    1,000,204,886,016 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Sun Feb  7 07:43:21 2010 EST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x84) Offline data collection activity
                                        was suspended by an interrupting command from host.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                 (20760) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        ( 239) minutes.
Conveyance self-test routine
recommended polling time:        (   5) minutes.
SCT capabilities:              (0x303f) SCT Status supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   167   167   051    Pre-fail  Always       -       910436
  3 Spin_Up_Time            0x0027   134   110   021    Pre-fail  Always       -       6283
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       158
  5 Reallocated_Sector_Ct   0x0033   159   159   140    Pre-fail  Always       -       322
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   097   097   000    Old_age   Always       -       2625
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       151
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       34
193 Load_Cycle_Count        0x0032   176   176   000    Old_age   Always       -       72261
194 Temperature_Celsius     0x0022   112   088   000    Old_age   Always       -       35
196 Reallocated_Event_Count 0x0032   001   001   000    Old_age   Always       -       320
197 Current_Pending_Sector  0x0032   192   192   000    Old_age   Always       -       1388
198 Offline_Uncorrectable   0x0030   200   199   000    Old_age   Offline      -       22
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       1
200 Multi_Zone_Error_Rate   0x0008   001   001   000    Old_age   Offline      -       125532

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]


SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Затем я провожу два теста, короткий и транспортный. Вот результат:

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Conveyance offline  Completed: read failure       90%      2625         1070661197
# 2  Short offline       Completed: read failure       90%      2625         1070661197

Итак, для заинтересованных: умирал диск.

Прежде всего, поскольку это была старая коробка и на ней было только одно соединение SATA-IDE, мне пришлось вынуть диск и использовать свой основной рабочий стол в качестве машины для передачи данных между дисками SATA.

Я попытался запустить gParted, чтобы скопировать раздел на новый диск. Но по умолчанию он запускает fsck перед копированием и длился вечно, и, поскольку он не запускается с параметром -C, через два часа вы не можете сказать, где он был, что он делал или сколько времени это продолжалось брать, вот и отменил.

Затем я загрузился с Ubuntu Desktop как LiveCD и запустил fsck, пытаясь очистить все, что мог, перед передачей данных. Опять же, это заняло очень много времени, но индикатор выполнения дал мне уверенность в том, что процесс прогрессирует. Хотя временами казалось, что разбивание диска могло нанести больше вреда деградировавшему диску, чем пользы.

Когда fsck закончил, я попытался скопировать файлы в единственном экземпляре, и это тоже длилось вечно. Я запустил iostat, чтобы проверить скорость передачи, и оказалось, что она составляет в среднем 40 КБ / с с огромным временем ожидания между 10 000 и 60 000 мс.

Два часа спустя я запустил iostat и одновременно инициировал несколько операций копирования с диска. С этим дела обстоят лучше, но не особо, теперь средняя скорость передачи колеблется в пределах 100-600 КБ / с.

На этом этапе стало ясно, что, поскольку мне нужно было передать около 800 ГБ данных, для передачи потребуется 10-20 дней работы.

Я перенес только последние данные, на что ушло около 16 часов, после чего потребность в том, чтобы сервер снова был доступен (не говоря уже о моем основном рабочем столе), стала больше, чем потребность в восстановлении всех данных.

Поэтому я решил положить новый диск в коробку и, поскольку скорость передачи в любом случае очень медленная, подключить старый диск к основному рабочему столу и попытаться передать любые другие данные, которыми я мог управлять через Wi-Fi.

Проблема теперь стала моим основным рабочим столом, так как он работает под Windows, поэтому я установил Ext2FSD, чтобы попытаться получить доступ к данным, но при подключении диска он вообще отказался загружаться - завис после проверки компакт-диска. Пытался включить его в горячем режиме при работающих окнах, но он его также не видел.

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

Вот и все, я подумал, что сообщу всем на будущее.

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

Спасибо, ребята, за предложения.

Что вы имеете в виду под «икотой»? Это звук или поведение?

Я бы посмотрел на диагностику на уровне дисков с помощью утилиты SMART, чтобы узнать, что происходит. Если есть много ошибок чтения или другие признаки того, что диск умирает, они должны появиться там.

Если вы говорите о «зеленых» дисках WD, кстати, с ними связано нечто большее, чем просто пониженное энергопотребление. Они могут даже использовать альтернативное форматирование, что нормально для Windows, но в большинстве случаев - отстой (после выполнения) для других ОС.