Sprawa wydaje się o tyle ciekawą, że problem nadmiernego nabijania licznika parkowania głowicy (czyli load cycle count) w openSUSE nigdy nie występował, a w Ubuntu od 2 (chyba) wydań zdawał się być rozwiązanym.
Tymczasem przeprowadzony test wykazał, że w pewnych przypadkach
openSUSE 11.2 może zabić Twój dysk twardy :(

Te pewne przypadki występują wtedy i tylko wtedy, gdy spełnione są wszystkie poniższe:

  1. system instalowany jest na laptopie
  2. system instalowany jest domyślnie
  3. system instalowany jest na mechanicznym dysku twardym

Trochę teorii

Zaparkowana głowica dysku

Zaparkowana głowica dysku
© 2007 Hitachi Global Storage Technologies

Parkowanie głowicy w urządzeniach przenośnych w zamierzeniu powinno służyć oszczędzaniu energii i ochronie talerzy dysku w przypadku silnego wstrząsu (np. upadku). Jak widać na zdjęciu obok głowica, zgodnie z kierunkiem działania siły odśrodkowej, odstawiana jest na polietylenową rampę, gdzie stabilizowana i dociskana własnym naprężeniem może bezpiecznie przetrwać upadek, wstrząsy. Jednocześnie oszczędza się energię dzięki wyłączeniu zasilana na mechanizm pozycjonujący głowicę.
Teoretycznie, wg zapewnień producentów, dysk może przeżyć od 400 do 600 tys. cykli parkowania. Z mojej praktyki wynika, że po przekroczeniu 200 tys. do dysku należy stracić zaufanie i zutylizować go.

Pomiar parametru Load Cycle Count

Najprościej, jako root, wydać polecenie:

smartctl -a /dev/sda | grep Load_Cycle_Count

zakładając oczywiście, że nasz dysk to sda.
Warto taką operację przeprowadzić co 10 min. przynajmniej kilka razy, a wartość parametru nie powinna zmienić się o więcej niż 2 po ok. godzinie.

Rozwiązanie

Jeśli rośnie zbyt szybko to znak, że najprawdopodobniej nie jest zainstalowany pakiet laptop-mode-tools, a jego brak przypłacimy dużo szybszym zużyciem dysku.
By unaocznić skalę problemu:

  • stan Load_Cycle_Count 24 listopada 2009 : 4386
  • stan Load_Cycle_Count 14 grudnia 2009: 27531

Wniosek i obliczenie kiedy LCC przekroczyłoby 200 000 pozostawiam czytelnikowi.

Jeśli pakiet laptop-mode-tools jest zainstalowany, Load_Cycle_Count rośnie i nie pomagają żadne metody znalezione w sieci, pozostaje dopisać do któregoś ze skryptów startowych:

hdparm -B 254 /dev/sda

co ograniczy zarządzanie energią napędu, a jeśli i to nie pomoże to ostatecznym rozwiązaniem jest zmiana 254 na 255, co zarządzanie energią i przyrost Load_Cycle_Count wyłączy definitywnie.


Bez grepowania smartctl -a /dev/sda wyświetli nam wszystkie parametry, błędy i raporty generowane przez S.M.A.R.T. dla danego dysku, co będzie wyglądać np. tak:

linux:/home/user/ # smartctl -a /dev/sda
smartctl 5.39 2009-08-08 r2872~ [i686-pc-linux-gnu] (openSUSE RPM)
Copyright (C) 2002-9 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Momentus 7200.3 series
Device Model:     ST9320421ASG
Serial Number:    5TJ05WVC
Firmware Version: SD13
User Capacity:    320,072,933,376 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4
Local Time is:    Tue Dec 15 14:18:21 2009 CET
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:  (0x82)	Offline data collection activity
					was completed without error.
					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: 		 (   0) 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: 	 (   1) minutes.
Extended self-test routine
recommended polling time: 	 (  95) minutes.
Conveyance self-test routine
recommended polling time: 	 (   2) minutes.
SCT capabilities: 	       (0x103b)	SCT Status supported.
					SCT Feature Control supported.
					SCT Data Table supported.

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   120   099   006    Pre-fail  Always       -       297335
  3 Spin_Up_Time            0x0003   098   097   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       749
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   076   060   030    Pre-fail  Always       -       4341480641
  9 Power_On_Hours          0x0032   095   095   000    Old_age   Always       -       4421
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   037   020    Old_age   Always       -       748
184 Unknown_Attribute       0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Unknown_Attribute       0x0032   100   098   000    Old_age   Always       -       78
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   067   052   045    Old_age   Always       -       33 (Lifetime Min/Max 23/33)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       565
193 Load_Cycle_Count        0x0032   087   087   000    Old_age   Always       -       27537
194 Temperature_Celsius     0x0022   033   048   000    Old_age   Always       -       33 (0 21 0 0)
195 Hardware_ECC_Recovered  0x001a   049   043   000    Old_age   Always       -       297335
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 Unknown_Attribute       0x0032   001   001   000    Old_age   Always       -       1

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%      3500         -
# 2  Extended offline    Completed without error       00%      3078         -
# 3  Short offline       Completed without error       00%        20         -

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.

Jak widać można tu zobaczyć także temperaturę, czas pracy i ilość włączeń napędu.

Tagged with →  
Share →

One Response to OpenSUSE 11.2 i Load_Cycle_Count

  1. […] mam dobrych wiadomości, bo nic się nie zmieniło od wydań 11.2 i 11.3 Domyślnie, niezależnie od sposobu zasilania laptopa, APM_level mojego Seagate-a […]