# Eine HDD lahm, die andere schnell - wieso?

## manuels

Hallo,

ich stehe hier vor einem Problem mit meinen (nicht identischen) Festplatten:

Die eine Festplatte (sda) im Rechner ist ziemlich lahm:

```
hdparm -tT /dev/sda

/dev/sda:

 Timing cached reads:   9354 MB in  2.00 seconds = 4679.16 MB/sec

 Timing buffered disk reads:  38 MB in  4.57 seconds =   8.31 MB/sec

```

Die andere (sdb) jedoch ist schnell wie ein Fuchs:

```
hdparm -tT /dev/sdb

/dev/sdb:

 Timing cached reads:   14670 MB in  2.00 seconds = 7340.22 MB/sec

 Timing buffered disk reads: 432 MB in  3.01 seconds = 143.35 MB/sec

```

Hier Infos zu den Festplatten 

```
hdparm  /dev/sd?

/dev/sda:

 multcount     =  0 (off)

 IO_support    =  1 (32-bit)

 readonly      =  0 (off)

 readahead     = 256 (on)

 geometry      = 121601/255/63, sectors = 1953525168, start = 0

/dev/sdb:

 multcount     =  0 (off)

 IO_support    =257 (???)

 readonly      =  0 (off)

 readahead     = 256 (on)

 geometry      = 243201/255/63, sectors = 3907029168, start = 0

hdparm -i /dev/sd?

/dev/sda:

 Model=WDC WD1001FALS-41Y6A0, FwRev=05.03D06, SerialNo=WD-WCATR2083396

 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }

 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50

 BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=off

 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=1953525168

 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}

 PIO modes:  pio0 pio3 pio4 

 DMA modes:  mdma0 mdma1 mdma2 

 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 

 AdvancedPM=no WriteCache=enabled

 Drive conforms to: Unspecified:  ATA/ATAPI-1,2,3,4,5,6,7

 * signifies the current active mode

/dev/sdb:

 Model=ST2000DL003-9VT166, FwRev=CC45, SerialNo=5YD90CC4

 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }

 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4

 BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=off

 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=3907029168

 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}

 PIO modes:  pio0 pio1 pio2 pio3 pio4 

 DMA modes:  mdma0 mdma1 mdma2 

 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 

 AdvancedPM=no WriteCache=enabled

 Drive conforms to: unknown:  ATA/ATAPI-4,5,6,7

 * signifies the current active mode

```

Hat jemand hier eine Idee was falsch sein könnte?

----------

## mrsteven

Einige WD-Platten haben anscheinend ein ziemlich aggressives Powermanagement, weshalb ich dieses über hdparm deaktiviert habe:

```

sda_args="-B255"

```

Möglich, dass deine Platte sich zwischenzeitlich schlafen legt und deshalb bei einem Zugriff erst wieder anlaufen muss. Weniger gut, aber auch möglich wäre ein Defekt. Was sagt denn ein:

```
smartctl -a /dev/sda
```

----------

## toralf

Mich stört (ein bischen) das 

```
 IO_support    =257 (???)
```

aber davon abgesehen, was bewirkt denn ein 

```
hdparm -d1 /dev/sda
```

 ?

----------

## manuels

Erstmal, Danke für eure Ideen.

Leider werden die beiden von euch vorgeschlagenen Kommandos von der Platte nicht unterstützt:

```
#hdparm -B255 /dev/sda

/dev/sda:

 setting Advanced Power Management level to disabled

 HDIO_DRIVE_CMD failed: Input/output error

 APM_level   = not supported

#hdparm -d1 /dev/sda

/dev/sda:

 setting using_dma to 1 (on)

 HDIO_SET_DMA failed: Inappropriate ioctl for device

 HDIO_GET_DMA failed: Inappropriate ioctl for device

```

Die Ausgabe der SMART-Tools sieht recht interessant aus, wobei ich aber nie interpretieren kann wie schwerwiegend diese sind:

```
#smartctl -a /dev/sda

smartctl 5.43 2012-06-30 r3573 [x86_64-linux-3.5.0-17-generic] (local build)

Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===

Model Family:     Western Digital Caviar Black

Device Model:     WDC WD1001FALS-41Y6A0

Serial Number:    WD-WCATR2083396

LU WWN Device Id: 5 0014ee 25a1a19a8

Firmware Version: 05.03D06

User Capacity:    1,000,204,886,016 bytes [1.00 TB]

Sector Size:      512 bytes logical/physical

Device is:        In smartctl database [for details use: -P show]

ATA Version is:   8

ATA Standard is:  Exact ATA specification draft version not indicated

Local Time is:    Sun Dec  9 12:37:08 2012 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:  (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:       (15900) 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:     ( 184) minutes.

Conveyance self-test routine

recommended polling time:     (   5) minutes.

SCT capabilities:           (0xb037)   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   200   200   051    Pre-fail  Always       -       0

  3 Spin_Up_Time            0x0027   201   175   021    Pre-fail  Always       -       2941

  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       861

  5 Reallocated_Sector_Ct   0x0033   196   196   140    Pre-fail  Always       -       26

  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0

  9 Power_On_Hours          0x0032   086   086   000    Old_age   Always       -       10717

 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       -       825

192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       63

193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       797

194 Temperature_Celsius     0x0022   110   100   000    Old_age   Always       -       37

195 Hardware_ECC_Recovered  0x0036   200   200   000    Old_age   Always       -       0

196 Reallocated_Event_Count 0x0032   174   174   000    Old_age   Always       -       26

197 Current_Pending_Sector  0x0032   197   197   000    Old_age   Always       -       510

198 Offline_Uncorrectable   0x0030   199   198   000    Old_age   Offline      -       246

199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0

200 Multi_Zone_Error_Rate   0x0008   164   100   000    Old_age   Offline      -       7299

SMART Error Log Version: 1

ATA Error Count: 64 (device log contains only the most recent five errors)

   CR = Command Register [HEX]

   FR = Features Register [HEX]

   SC = Sector Count Register [HEX]

   SN = Sector Number Register [HEX]

   CL = Cylinder Low Register [HEX]

   CH = Cylinder High Register [HEX]

   DH = Device/Head Register [HEX]

   DC = Device Command Register [HEX]

   ER = Error register [HEX]

   ST = Status register [HEX]

Powered_Up_Time is measured from power on, and printed as

DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,

SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 64 occurred at disk power-on lifetime: 10697 hours (445 days + 17 hours)

  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:

  ER ST SC SN CL CH DH

  -- -- -- -- -- -- --

  40 51 00 94 b4 00 e0  Error: UNC at LBA = 0x0000b494 = 46228

  Commands leading to the command that caused the error were:

  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name

  -- -- -- -- -- -- -- --  ----------------  --------------------

  c8 00 00 00 b4 00 e0 00   1d+01:11:00.000  READ DMA

  c8 00 00 00 b3 00 e0 00   1d+01:10:59.995  READ DMA

  c8 00 00 00 b2 00 e0 00   1d+01:10:59.995  READ DMA

  c8 00 00 00 b1 00 e0 00   1d+01:10:59.994  READ DMA

  c8 00 00 00 b0 00 e0 00   1d+01:10:59.993  READ DMA

Error 63 occurred at disk power-on lifetime: 10697 hours (445 days + 17 hours)

  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:

  ER ST SC SN CL CH DH

  -- -- -- -- -- -- --

  40 51 08 94 b4 00 e0  Error: UNC 8 sectors at LBA = 0x0000b494 = 46228

  Commands leading to the command that caused the error were:

  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name

  -- -- -- -- -- -- -- --  ----------------  --------------------

  c8 00 08 90 b4 00 e0 00   1d+01:10:06.054  READ DMA

  c8 00 00 00 b5 00 e0 00   1d+01:10:06.053  READ DMA

  ec 00 00 00 00 00 a0 00   1d+01:10:02.521  IDENTIFY DEVICE

  ef 03 46 00 00 00 a0 00   1d+01:10:00.792  SET FEATURES [Set transfer mode]

Error 62 occurred at disk power-on lifetime: 10697 hours (445 days + 17 hours)

  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:

  ER ST SC SN CL CH DH

  -- -- -- -- -- -- --

  40 51 00 94 b4 00 e0  Error: UNC at LBA = 0x0000b494 = 46228

  Commands leading to the command that caused the error were:

  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name

  -- -- -- -- -- -- -- --  ----------------  --------------------

  c8 00 00 00 b4 00 e0 00   1d+01:09:53.328  READ DMA

  c8 00 00 00 b3 00 e0 00   1d+01:09:53.322  READ DMA

  c8 00 00 00 b2 00 e0 00   1d+01:09:53.305  READ DMA

  c8 00 00 00 b1 00 e0 00   1d+01:09:53.304  READ DMA

  c8 00 00 00 b0 00 e0 00   1d+01:09:53.303  READ DMA

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.

```

----------

## mrsteven

Hmm, das schaut nicht gut aus:

 *manuels wrote:*   

> 
> 
> ```
> #smartctl -a /dev/sda
> 
> ...

 

Das heißt, es gibt ein paar fehlerhafte Blöcke auf deiner Platte. Einige davon wurden schon auf Reserveblöcke umgelegt (Reallocated_Sector_Ct, Reallocated_Event_Count), bei einigen steht das Umlegen noch aus (Current_Pending_Sector). Das ist nur möglich, wenn der Block neu geschrieben wird, also wenn z.B. die Platte mittels dd (nach einer Datensicherung natürlich) komplett überschrieben wird. Und auch dann würde ich an deiner Stelle der Platte keine wichtigen Daten mehr anvertrauen, da es gut möglich ist, dass demnächst noch ein paar Blöcke mehr kaputt gehen.

----------

## manuels

Danke, mrsteven. Sind ja keine guten Nachrichten.

Aber rechtfertigen diese defekten Sektoren auch die miese Performance der Platte?

----------

## Max Steel

Zu einer Performance der Platte zählt im üblichen auch Fragmentierung der Partitionen (die bei >90% belegter Speicherplatz auch unter ext2/3, reiserfs etc. einsetzt) und es zählt die Plattendrehzahl und auch das Alter. Zusätzlich zum Zustand der Kabelage und ähnliche Dinge. Auslastung des Busses (bei PATA) oder des Controllers (bei SATA u. PATA) zählen auch mit rein.

Wenigstens hast du noch keine RAW_READ_ERROR und SEEK_ERROR, welche (vor allem letzteres) deutlich auf die Performance-bremse drücken.

Was sagt bei dir denn ein SMART self-test aus? (starte mit smartctl -t [long|short] /dev/sdx, überprüfe mit smartctl -a /dev/sdx)

----------

## manuels

Eigentlich ist die Platte recht neu. Sie ist die Orginal-Festplatte eines MacPro (war nicht meine Idee den zu kaufen!), weshalb die Kabel eigentlich als Ursache ausschließen (Originalverkabelung).

Auch kann ich das Dateisystem als Ursache ausschließen, da ich ja mit hdparm direkt /dev/sda teste und nicht irgendwelche Dateien im Filesystem.

Werde morgen mal einen SMART-Short-Test starten.

----------

## manuels

hmm, der short-Test bricht ab:

```
SMART Self-test log structure revision number 1

Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error

# 1  Short offline       Completed: read failure       90%     10841         46209

# 2  Short offline       Completed: read failure       90%     10717         2288104

```

----------

## DruillaInes

Wieviel Prozent der Platte dürfen/müssen defekt sein, damit man sie vom Hersteller ersetzt bekommt? Oder ist das nach Hersteller unterschiedlich?

----------

## franzf

 *DruillaInes wrote:*   

> Wieviel Prozent der Platte dürfen/müssen defekt sein, damit man sie vom Hersteller ersetzt bekommt? Oder ist das nach Hersteller unterschiedlich?

 

Andere Interessante Frage dürfte sein, ob durch Installation eines anderen BS auf dem Mac nicht die Garantie erloschen ist :/

----------

