ZFS Mirror + Seafile und Datenverlust

peterle

Forenkasper
Ich habe einen Server mit zwei HD ada0/ada1 und die laufen als ZFS-Mirror im pool tank. Darauf liegt ein Seafile als Cloud.

Nun hat ada0 Fehler geworfen und wurde ausgetauscht. Die neue zeigte dann auch Fehler und als eine weitere neue reinkam, war alles kein Problem, bis die Hitze wohl zuschlug und ada1 Fehler warf. Das sieht dann so aus:

Code:
This message was generated by the smartd daemon running on:

   host name:  www
   DNS domain: example.org

The following warning/error was logged by the smartd daemon:

Device: /dev/ada1, 26 Offline uncorrectable sectors

Device info:
TOSHIBA DT01ACA200, S/N:55DB1MAAS, WWN:5-000039-fe2c5062d, FW:MX4OABB0, 2.00 TB

For details see host's SYSLOG.

You can also use the smartctl utility for further investigation.
No additional messages about this problem will be sent.


Code:
root@www:~ # zpool status
  pool: tank
 state: DEGRADED
status: One or more devices has experienced an error resulting in data
    corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
    entire pool from backup.
   see: http://illumos.org/msg/ZFS-8000-8A
  scan: resilvered 798G in 7h33m with 7 errors on Sat Aug  4 13:45:30 2018
config:

    NAME                        STATE     READ WRITE CKSUM
    tank                        DEGRADED     7     0     0
      mirror-0                  DEGRADED     7     0     0
        replacing-0             UNAVAIL      0     0     0
          10869714219286669034  UNAVAIL      0     0     0  was /dev/ada0p3/old
          ada0p3                ONLINE       0     0     0  block size: 512B configured, 4096B native
        ada1p3                  ONLINE       7     0     0

errors: 7 data errors, use '-v' for a list
root@www:~ # zpool status -v
  pool: tank
 state: DEGRADED
status: One or more devices has experienced an error resulting in data
    corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
    entire pool from backup.
   see: http://illumos.org/msg/ZFS-8000-8A
  scan: resilvered 798G in 7h33m with 7 errors on Sat Aug  4 13:45:30 2018
config:

    NAME                        STATE     READ WRITE CKSUM
    tank                        DEGRADED     7     0     0
      mirror-0                  DEGRADED     7     0     0
        replacing-0             UNAVAIL      0     0     0
          10869714219286669034  UNAVAIL      0     0     0  was /dev/ada0p3/old
          ada0p3                ONLINE       0     0     0  block size: 512B configured, 4096B native
        ada1p3                  ONLINE       7     0     0

errors: Permanent errors have been detected in the following files:

        //usr/local/www/haiwen/seafile-data/storage/blocks/4e32a4e5-3f8b-44e6-a88d-d5cf5eb33233/d8/5dcd4beefab830157fd45192e38c469aa9d891
        //usr/local/www/haiwen/seafile-data/storage/blocks/e2c51586-ada3-4703-b3d4-bf4e7f4479a0/79/05b1727c51a898fb8f86a63507eda28817c0e9
        //usr/local/www/haiwen/seafile-data/storage/blocks/e2c51586-ada3-4703-b3d4-bf4e7f4479a0/ca/b3655cfeadb42d382556320e28ade28085649d
        //usr/local/www/haiwen/seafile-data/storage/blocks/e2c51586-ada3-4703-b3d4-bf4e7f4479a0/cf/83a506303ed44e58db07c1b1aff72214d0d732
        //usr/local/www/haiwen/seafile-data/storage/blocks/4e32a4e5-3f8b-44e6-a88d-d5cf5eb33233/d8/460fe26a0aad1825751cd49bc625aa2b3acd25
        //usr/local/www/haiwen/seafile-data/storage/blocks/4e32a4e5-3f8b-44e6-a88d-d5cf5eb33233/a3/4a23c2f93730a492ec790a0dba37ae404870c8
        //usr/local/www/haiwen/seafile-data/storage/blocks/e2c51586-ada3-4703-b3d4-bf4e7f4479a0/b2/5547584f3e0d5ff2af4ffcbcba3c46e62a6886

Merke: Verlasse Dich nie auf einen Mirror alleine!

Die spannende Frage ist jetzt herauszufinden, was genau die blocks von Seafile enthalten und da diese mehrfach auf Clients liegen, von dort wiederherzustellen oder vielleicht die erste defekte ada0 wieder einzuhängen und dort zu schauen, ob sich von dem zfs pool dort die Daten wiederherstellen lassen. Ganz kaputt war sie ja nicht. Der letzte Weg ist auf die Sicherung zurückzugreifen.

Wer Ideen hat, dem höre ich gerne zu, wem es eine Warnung ist, der sei willommen. ;)
 
Ich finde es ja ganz interessant, zwei sterbende Platten gleichzeitig hat 10 Jahre bei 10 Servern gebraucht. Ist nicht zu vernachlässigen, aber auch nicht oft.

Die erste defeke Platte ist nicht mehr da, aber den Rest kannst Du Morgen haben.

Momentan macht er ein repair für seafile, dann weiß ich welche Dateien Probleme machen.

Der Vollständigkeit halber:

Code:
#seaf-fsck.sh

...
[08/05/18 21:38:46] fsck.c(586): Running fsck for repo 4e32a4e5-3f8b-44e6-a88d-XXXXXXXX.
[08/05/18 21:38:46] fsck.c(413): Checking file system integrity of repo my_library(4e32a4e5)...
[08/05/18 23:05:52] ../../common/block-mgr.c(241): Failed to read block 4e32a4e5-3f8b-44e6-a88d-d5cf5eb33233:d8460fe2.
[08/05/18 23:05:52] fsck.c(650): Fsck finished for repo 4e32a4e5.

[08/05/18 23:05:52] fsck.c(586): Running fsck for repo 1b9b5335-c4bd-4359-8ea5-XXXXXXXXXX.
[08/05/18 23:05:53] fsck.c(413): Checking file system integrity of repo dnhportal(1b9b5335)...
[08/05/18 23:05:58] fsck.c(650): Fsck finished for repo 1b9b5335.
...

seaf-fsck run done

Done.

root@www:/usr/local/www/haiwen/seafile-server # ./seaf-fsck.sh -r 4e32a4e5

Starting seaf-fsck, please wait ...

[08/05/18 23:23:04] fsck.c(586): Running fsck for repo 4e32a4e5.
[08/05/18 23:23:04] fsck.c(589): Invalid repo id 4e32a4e5.
[08/05/18 23:23:04] fsck.c(650): Fsck finished for repo 4e32a4e5.

seaf-fsck run done

Done.
root@www:/usr/local/www/haiwen/seafile-server # ./seaf-fsck.sh -r 4e32a4e5-3f8b-44e6-a88d-XXXXXXXXX

Starting seaf-fsck, please wait ...

[08/05/18 23:23:36] fsck.c(586): Running fsck for repo 4e32a4e5-3f8b-44e6-a88d-d5cf5eb33233.
[08/05/18 23:23:37] fsck.c(413): Checking file system integrity of repo my_library(4e32a4e5)...
...
 
Gib mir mal jeweils ein 'smartctl -x' von den Platten, ein 'zfs get all tank' und ein 'sysctl -a | grep ashift'

Here we go ...
Code:
# smartctl -x /dev/ada0
smartctl 6.6 2017-11-05 r4594 [FreeBSD 11.1-RELEASE-p4 amd64] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Toshiba 3.5" DT01ACA... Desktop HDD
Device Model:     TOSHIBA DT01ACA200
Serial Number:    18RP64UAS
LU WWN Device Id: 5 000039 fd4c9a2e6
Firmware Version: MX4OABB0
User Capacity:    2.000.398.934.016 bytes [2,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Mon Aug  6 09:49:24 2018 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM feature is:   Unavailable
APM feature is:   Disabled
Rd look-ahead is: Enabled
Write cache is:   Enabled
DSN feature is:   Unavailable
ATA Security is:  Disabled, NOT FROZEN [SEC1]
Wt Cache Reorder: 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:         (15013) seconds.
Offline data collection
capabilities:              (0x5b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    No 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:      ( 251) minutes.
SCT capabilities:            (0x003d)    SCT Status supported.
                    SCT Error Recovery Control 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          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
  1 Raw_Read_Error_Rate     PO-R--   100   100   016    -    0
  2 Throughput_Performance  P-S---   139   139   054    -    72
  3 Spin_Up_Time            POS---   100   100   024    -    0
  4 Start_Stop_Count        -O--C-   100   100   000    -    3
  5 Reallocated_Sector_Ct   PO--CK   100   100   005    -    0
  7 Seek_Error_Rate         PO-R--   100   100   067    -    0
  8 Seek_Time_Performance   P-S---   100   100   020    -    0
  9 Power_On_Hours          -O--C-   100   100   000    -    50
 10 Spin_Retry_Count        PO--C-   100   100   060    -    0
 12 Power_Cycle_Count       -O--CK   100   100   000    -    3
192 Power-Off_Retract_Count -O--CK   100   100   000    -    3
193 Load_Cycle_Count        -O--C-   100   100   000    -    3
194 Temperature_Celsius     -O----   153   153   000    -    39 (Min/Max 25/42)
196 Reallocated_Event_Count -O--CK   100   100   000    -    0
197 Current_Pending_Sector  -O---K   100   100   000    -    0
198 Offline_Uncorrectable   ---R--   100   100   000    -    0
199 UDMA_CRC_Error_Count    -O-R--   200   200   000    -    0
                            ||||||_ K auto-keep
                            |||||__ C event count
                            ||||___ R error rate
                            |||____ S speed/performance
                            ||_____ O updated online
                            |______ P prefailure warning

General Purpose Log Directory Version 1
SMART           Log Directory Version 1 [multi-sector log support]
Address    Access  R/W   Size  Description
0x00       GPL,SL  R/O      1  Log Directory
0x01           SL  R/O      1  Summary SMART error log
0x03       GPL     R/O      1  Ext. Comprehensive SMART error log
0x04       GPL     R/O      7  Device Statistics log
0x06           SL  R/O      1  SMART self-test log
0x07       GPL     R/O      1  Extended self-test log
0x08       GPL     R/O      2  Power Conditions log
0x09           SL  R/W      1  Selective self-test log
0x10       GPL     R/O      1  NCQ Command Error log
0x11       GPL     R/O      1  SATA Phy Event Counters log
0x20       GPL     R/O      1  Streaming performance log [OBS-8]
0x21       GPL     R/O      1  Write stream error log
0x22       GPL     R/O      1  Read stream error log
0x80-0x9f  GPL,SL  R/W     16  Host vendor specific log
0xe0       GPL,SL  R/W      1  SCT Command/Status
0xe1       GPL,SL  R/W      1  SCT Data Transfer

SMART Extended Comprehensive Error Log Version: 1 (1 sectors)
No Errors Logged

SMART Extended Self-test Log Version: 1 (1 sectors)
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.

SCT Status Version:                  3
SCT Version (vendor specific):       256 (0x0100)
SCT Support Level:                   1
Device State:                        SMART Off-line Data Collection executing in background (4)
Current Temperature:                    39 Celsius
Power Cycle Min/Max Temperature:     28/42 Celsius
Lifetime    Min/Max Temperature:     25/42 Celsius
Under/Over Temperature Limit Count:   0/0

SCT Temperature History Version:     2
Temperature Sampling Period:         1 minute
Temperature Logging Interval:        1 minute
Min/Max recommended Temperature:      0/60 Celsius
Min/Max Temperature Limit:           -40/70 Celsius
Temperature History Size (Index):    128 (80)

Index    Estimated Time   Temperature Celsius
  81    2018-08-06 07:42    37  ******************
  82    2018-08-06 07:43    38  *******************
  83    2018-08-06 07:44    38  *******************
  84    2018-08-06 07:45    38  *******************
  85    2018-08-06 07:46    37  ******************
  86    2018-08-06 07:47    38  *******************
 ...    ..(117 skipped).    ..  *******************
  76    2018-08-06 09:45    38  *******************
  77    2018-08-06 09:46    39  ********************
 ...    ..(  2 skipped).    ..  ********************
  80    2018-08-06 09:49    39  ********************

SCT Error Recovery Control:
           Read: Disabled
          Write: Disabled

Device Statistics (GP Log 0x04)
Page  Offset Size        Value Flags Description
0x01  =====  =               =  ===  == General Statistics (rev 1) ==
0x01  0x008  4               3  ---  Lifetime Power-On Resets
0x01  0x010  4              50  ---  Power-on Hours
0x01  0x018  6      1717878170  ---  Logical Sectors Written
0x01  0x020  6         9410892  ---  Number of Write Commands
0x01  0x028  6           16679  ---  Logical Sectors Read
0x01  0x030  6             668  ---  Number of Read Commands
0x03  =====  =               =  ===  == Rotating Media Statistics (rev 1) ==
0x03  0x008  4              50  ---  Spindle Motor Power-on Hours
0x03  0x010  4              50  ---  Head Flying Hours
0x03  0x018  4               3  ---  Head Load Events
0x03  0x020  4               0  ---  Number of Reallocated Logical Sectors
0x03  0x028  4               0  ---  Read Recovery Attempts
0x03  0x030  4               6  ---  Number of Mechanical Start Failures
0x04  =====  =               =  ===  == General Errors Statistics (rev 1) ==
0x04  0x008  4               0  ---  Number of Reported Uncorrectable Errors
0x04  0x010  4               0  ---  Resets Between Cmd Acceptance and Completion
0x05  =====  =               =  ===  == Temperature Statistics (rev 1) ==
0x05  0x008  1              39  ---  Current Temperature
0x05  0x010  1              38  N--  Average Short Term Temperature
0x05  0x018  1               -  N--  Average Long Term Temperature
0x05  0x020  1              42  ---  Highest Temperature
0x05  0x028  1              25  ---  Lowest Temperature
0x05  0x030  1              40  N--  Highest Average Short Term Temperature
0x05  0x038  1              25  N--  Lowest Average Short Term Temperature
0x05  0x040  1               -  N--  Highest Average Long Term Temperature
0x05  0x048  1               -  N--  Lowest Average Long Term Temperature
0x05  0x050  4               0  ---  Time in Over-Temperature
0x05  0x058  1              60  ---  Specified Maximum Operating Temperature
0x05  0x060  4               0  ---  Time in Under-Temperature
0x05  0x068  1               0  ---  Specified Minimum Operating Temperature
0x06  =====  =               =  ===  == Transport Statistics (rev 1) ==
0x06  0x008  4              12  ---  Number of Hardware Resets
0x06  0x010  4               9  ---  Number of ASR Events
0x06  0x018  4               0  ---  Number of Interface CRC Errors
                                |||_ C monitored condition met
                                ||__ D supports DSN
                                |___ N normalized value

Pending Defects log (GP Log 0x0c) not supported

SATA Phy Event Counters (GP Log 0x11)
ID      Size     Value  Description
0x0001  2            0  Command failed due to ICRC error
0x0002  2            0  R_ERR response for data FIS
0x0003  2            0  R_ERR response for device-to-host data FIS
0x0004  2            0  R_ERR response for host-to-device data FIS
0x0005  2            0  R_ERR response for non-data FIS
0x0006  2            0  R_ERR response for device-to-host non-data FIS
0x0007  2            0  R_ERR response for host-to-device non-data FIS
0x0009  2           10  Transition from drive PhyRdy to drive PhyNRdy
0x000a  2            9  Device-to-host register FISes sent due to a COMRESET
0x000b  2            0  CRC errors within host-to-device FIS
0x000d  2            0  Non-CRC errors within host-to-device FIS

Code:
# smartctl -x /dev/ada1
smartctl 6.6 2017-11-05 r4594 [FreeBSD 11.1-RELEASE-p4 amd64] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Toshiba 3.5" DT01ACA... Desktop HDD
Device Model:     TOSHIBA DT01ACA200
Serial Number:    55DB1MAAS
LU WWN Device Id: 5 000039 fe2c5062d
Firmware Version: MX4OABB0
User Capacity:    2.000.398.934.016 bytes [2,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Mon Aug  6 09:50:29 2018 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM feature is:   Unavailable
APM feature is:   Disabled
Rd look-ahead is: Enabled
Write cache is:   Enabled
DSN feature is:   Unavailable
ATA Security is:  Disabled, NOT FROZEN [SEC1]
Wt Cache Reorder: 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:         (15491) seconds.
Offline data collection
capabilities:              (0x5b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    No 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:      ( 259) minutes.
SCT capabilities:            (0x003d)    SCT Status supported.
                    SCT Error Recovery Control 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          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
  1 Raw_Read_Error_Rate     PO-R--   100   100   016    -    0
  2 Throughput_Performance  P-S---   140   140   054    -    69
  3 Spin_Up_Time            POS---   100   100   024    -    229
  4 Start_Stop_Count        -O--C-   100   100   000    -    9
  5 Reallocated_Sector_Ct   PO--CK   100   100   005    -    1
  7 Seek_Error_Rate         PO-R--   100   100   067    -    0
  8 Seek_Time_Performance   P-S---   124   124   020    -    33
  9 Power_On_Hours          -O--C-   098   098   000    -    17692
 10 Spin_Retry_Count        PO--C-   100   100   060    -    0
 12 Power_Cycle_Count       -O--CK   100   100   000    -    9
192 Power-Off_Retract_Count -O--CK   100   100   000    -    141
193 Load_Cycle_Count        -O--C-   100   100   000    -    141
194 Temperature_Celsius     -O----   150   150   000    -    40 (Min/Max 22/45)
196 Reallocated_Event_Count -O--CK   100   100   000    -    18
197 Current_Pending_Sector  -O---K   100   100   000    -    56
198 Offline_Uncorrectable   ---R--   100   100   000    -    0
199 UDMA_CRC_Error_Count    -O-R--   200   200   000    -    0
                            ||||||_ K auto-keep
                            |||||__ C event count
                            ||||___ R error rate
                            |||____ S speed/performance
                            ||_____ O updated online
                            |______ P prefailure warning

General Purpose Log Directory Version 1
SMART           Log Directory Version 1 [multi-sector log support]
Address    Access  R/W   Size  Description
0x00       GPL,SL  R/O      1  Log Directory
0x01           SL  R/O      1  Summary SMART error log
0x03       GPL     R/O      1  Ext. Comprehensive SMART error log
0x04       GPL     R/O      7  Device Statistics log
0x06           SL  R/O      1  SMART self-test log
0x07       GPL     R/O      1  Extended self-test log
0x08       GPL     R/O      2  Power Conditions log
0x09           SL  R/W      1  Selective self-test log
0x10       GPL     R/O      1  NCQ Command Error log
0x11       GPL     R/O      1  SATA Phy Event Counters log
0x20       GPL     R/O      1  Streaming performance log [OBS-8]
0x21       GPL     R/O      1  Write stream error log
0x22       GPL     R/O      1  Read stream error log
0x80-0x9f  GPL,SL  R/W     16  Host vendor specific log
0xe0       GPL,SL  R/W      1  SCT Command/Status
0xe1       GPL,SL  R/W      1  SCT Data Transfer

SMART Extended Comprehensive Error Log Version: 1 (1 sectors)
Device Error Count: 111 (device log contains only the most recent 4 errors)
    CR     = Command Register
    FEATR  = Features Register
    COUNT  = Count (was: Sector Count) Register
    LBA_48 = Upper bytes of LBA High/Mid/Low Registers ]  ATA-8
    LH     = LBA High (was: Cylinder High) Register    ]   LBA
    LM     = LBA Mid (was: Cylinder Low) Register      ] Register
    LL     = LBA Low (was: Sector Number) Register     ]
    DV     = Device (was: Device/Head) Register
    DC     = Device Control Register
    ER     = Error register
    ST     = Status register
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 111 [2] occurred at disk power-on lifetime: 17683 hours (736 days + 19 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER -- ST COUNT  LBA_48  LH LM LL DV DC
  -- -- -- == -- == == == -- -- -- -- --
  40 -- 51 00 5b 00 00 02 9f a5 d0 02 00  Error: UNC at LBA = 0x029fa5d0 = 44017104

  Commands leading to the command that caused the error were:
  CR FEATR COUNT  LBA_48  LH LM LL DV DC  Powered_Up_Time  Command/Feature_Name
  -- == -- == -- == == == -- -- -- -- --  ---------------  --------------------
  60 01 00 00 e0 00 00 02 9f a5 2b 40 00  1d+16:53:07.349  READ FPDMA QUEUED
  2f 00 00 00 01 00 00 00 00 00 10 00 00  1d+16:53:07.348  READ LOG EXT
  60 01 00 00 d0 00 00 02 9f a5 2b 40 00  1d+16:53:03.523  READ FPDMA QUEUED
  2f 00 00 00 01 00 00 00 00 00 10 00 00  1d+16:53:03.522  READ LOG EXT
  60 01 00 00 c0 00 00 02 9f a5 2b 40 00  1d+16:52:59.696  READ FPDMA QUEUED

Error 110 [1] occurred at disk power-on lifetime: 17683 hours (736 days + 19 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER -- ST COUNT  LBA_48  LH LM LL DV DC
  -- -- -- == -- == == == -- -- -- -- --
  40 -- 51 00 5b 00 00 02 9f a5 d0 02 00  Error: UNC at LBA = 0x029fa5d0 = 44017104

  Commands leading to the command that caused the error were:
  CR FEATR COUNT  LBA_48  LH LM LL DV DC  Powered_Up_Time  Command/Feature_Name
  -- == -- == -- == == == -- -- -- -- --  ---------------  --------------------
  60 01 00 00 d0 00 00 02 9f a5 2b 40 00  1d+16:53:03.523  READ FPDMA QUEUED
  2f 00 00 00 01 00 00 00 00 00 10 00 00  1d+16:53:03.522  READ LOG EXT
  60 01 00 00 c0 00 00 02 9f a5 2b 40 00  1d+16:52:59.696  READ FPDMA QUEUED
  2f 00 00 00 01 00 00 00 00 00 10 00 00  1d+16:52:59.696  READ LOG EXT
  60 01 00 00 b0 00 00 02 9f a5 2b 40 00  1d+16:52:55.870  READ FPDMA QUEUED

Error 109 [0] occurred at disk power-on lifetime: 17683 hours (736 days + 19 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER -- ST COUNT  LBA_48  LH LM LL DV DC
  -- -- -- == -- == == == -- -- -- -- --
  40 -- 51 00 5b 00 00 02 9f a5 d0 02 00  Error: UNC at LBA = 0x029fa5d0 = 44017104

  Commands leading to the command that caused the error were:
  CR FEATR COUNT  LBA_48  LH LM LL DV DC  Powered_Up_Time  Command/Feature_Name
  -- == -- == -- == == == -- -- -- -- --  ---------------  --------------------
  60 01 00 00 c0 00 00 02 9f a5 2b 40 00  1d+16:52:59.696  READ FPDMA QUEUED
  2f 00 00 00 01 00 00 00 00 00 10 00 00  1d+16:52:59.696  READ LOG EXT
  60 01 00 00 b0 00 00 02 9f a5 2b 40 00  1d+16:52:55.870  READ FPDMA QUEUED
  2f 00 00 00 01 00 00 00 00 00 10 00 00  1d+16:52:55.870  READ LOG EXT
  61 00 03 00 a0 00 00 7d dc ef 33 40 00  1d+16:52:51.987  WRITE FPDMA QUEUED

Error 108 [3] occurred at disk power-on lifetime: 17683 hours (736 days + 19 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER -- ST COUNT  LBA_48  LH LM LL DV DC
  -- -- -- == -- == == == -- -- -- -- --
  40 -- 51 00 5b 00 00 02 9f a5 d0 02 00  Error: UNC at LBA = 0x029fa5d0 = 44017104

  Commands leading to the command that caused the error were:
  CR FEATR COUNT  LBA_48  LH LM LL DV DC  Powered_Up_Time  Command/Feature_Name
  -- == -- == -- == == == -- -- -- -- --  ---------------  --------------------
  60 01 00 00 b0 00 00 02 9f a5 2b 40 00  1d+16:52:55.870  READ FPDMA QUEUED
  2f 00 00 00 01 00 00 00 00 00 10 00 00  1d+16:52:55.870  READ LOG EXT
  61 00 03 00 a0 00 00 7d dc ef 33 40 00  1d+16:52:51.987  WRITE FPDMA QUEUED
  61 00 05 00 98 00 00 7d dc ef 26 40 00  1d+16:52:51.987  WRITE FPDMA QUEUED
  61 00 04 00 90 00 00 7d 8f 4b 23 40 00  1d+16:52:51.986  WRITE FPDMA QUEUED

SMART Extended Self-test Log Version: 1 (1 sectors)
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%     17621         -
# 2  Short offline       Completed without error       00%      8628         -
# 3  Short offline       Completed without error       00%      8628         -
# 4  Extended offline    Completed without error       00%      8627         -
# 5  Short offline       Completed without error       00%      8622         -
# 6  Short offline       Completed without error       00%      8622         -
# 7  Short offline       Completed without error       00%      8621         -
# 8  Short offline       Completed without error       00%      5203         -

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.

SCT Status Version:                  3
SCT Version (vendor specific):       256 (0x0100)
SCT Support Level:                   1
Device State:                        SMART Off-line Data Collection executing in background (4)
Current Temperature:                    40 Celsius
Power Cycle Min/Max Temperature:     35/41 Celsius
Lifetime    Min/Max Temperature:     22/45 Celsius
Under/Over Temperature Limit Count:   0/0

SCT Temperature History Version:     2
Temperature Sampling Period:         1 minute
Temperature Logging Interval:        1 minute
Min/Max recommended Temperature:      0/60 Celsius
Min/Max Temperature Limit:           -40/70 Celsius
Temperature History Size (Index):    128 (78)

Index    Estimated Time   Temperature Celsius
  79    2018-08-06 07:43    36  *****************
 ...    ..( 89 skipped).    ..  *****************
  41    2018-08-06 09:13    36  *****************
  42    2018-08-06 09:14    37  ******************
 ...    ..(  2 skipped).    ..  ******************
  45    2018-08-06 09:17    37  ******************
  46    2018-08-06 09:18    38  *******************
 ...    ..(  6 skipped).    ..  *******************
  53    2018-08-06 09:25    38  *******************
  54    2018-08-06 09:26    39  ********************
 ...    ..(  9 skipped).    ..  ********************
  64    2018-08-06 09:36    39  ********************
  65    2018-08-06 09:37    40  *********************
 ...    ..( 12 skipped).    ..  *********************
  78    2018-08-06 09:50    40  *********************

SCT Error Recovery Control:
           Read: Disabled
          Write: Disabled

Device Statistics (GP Log 0x04)
Page  Offset Size        Value Flags Description
0x01  =====  =               =  ===  == General Statistics (rev 1) ==
0x01  0x008  4               9  ---  Lifetime Power-On Resets
0x01  0x010  4           17692  ---  Power-on Hours
0x01  0x018  6     23134357188  ---  Logical Sectors Written
0x01  0x020  6       561631525  ---  Number of Write Commands
0x01  0x028  6     23577946145  ---  Logical Sectors Read
0x01  0x030  6       188013917  ---  Number of Read Commands
0x03  =====  =               =  ===  == Rotating Media Statistics (rev 1) ==
0x03  0x008  4           17690  ---  Spindle Motor Power-on Hours
0x03  0x010  4           17690  ---  Head Flying Hours
0x03  0x018  4             141  ---  Head Load Events
0x03  0x020  4               1  ---  Number of Reallocated Logical Sectors
0x03  0x028  4             216  ---  Read Recovery Attempts
0x03  0x030  4               7  ---  Number of Mechanical Start Failures
0x04  =====  =               =  ===  == General Errors Statistics (rev 1) ==
0x04  0x008  4             111  ---  Number of Reported Uncorrectable Errors
0x04  0x010  4               0  ---  Resets Between Cmd Acceptance and Completion
0x05  =====  =               =  ===  == Temperature Statistics (rev 1) ==
0x05  0x008  1              40  ---  Current Temperature
0x05  0x010  1              37  N--  Average Short Term Temperature
0x05  0x018  1              35  N--  Average Long Term Temperature
0x05  0x020  1              45  ---  Highest Temperature
0x05  0x028  1              22  ---  Lowest Temperature
0x05  0x030  1              43  N--  Highest Average Short Term Temperature
0x05  0x038  1              25  N--  Lowest Average Short Term Temperature
0x05  0x040  1              41  N--  Highest Average Long Term Temperature
0x05  0x048  1              25  N--  Lowest Average Long Term Temperature
0x05  0x050  4               0  ---  Time in Over-Temperature
0x05  0x058  1              60  ---  Specified Maximum Operating Temperature
0x05  0x060  4               0  ---  Time in Under-Temperature
0x05  0x068  1               0  ---  Specified Minimum Operating Temperature
0x06  =====  =               =  ===  == Transport Statistics (rev 1) ==
0x06  0x008  4             158  ---  Number of Hardware Resets
0x06  0x010  4             144  ---  Number of ASR Events
0x06  0x018  4               0  ---  Number of Interface CRC Errors
                                |||_ C monitored condition met
                                ||__ D supports DSN
                                |___ N normalized value

Pending Defects log (GP Log 0x0c) not supported

SATA Phy Event Counters (GP Log 0x11)
ID      Size     Value  Description
0x0001  2            0  Command failed due to ICRC error
0x0002  2            0  R_ERR response for data FIS
0x0003  2            0  R_ERR response for device-to-host data FIS
0x0004  2            0  R_ERR response for host-to-device data FIS
0x0005  2            0  R_ERR response for non-data FIS
0x0006  2            0  R_ERR response for device-to-host non-data FIS
0x0007  2            0  R_ERR response for host-to-device non-data FIS
0x0009  2           10  Transition from drive PhyRdy to drive PhyNRdy
0x000a  2            9  Device-to-host register FISes sent due to a COMRESET
0x000b  2            0  CRC errors within host-to-device FIS
0x000d  2            0  Non-CRC errors within host-to-device FIS

Code:
# zfs get all tank
NAME  PROPERTY              VALUE                   SOURCE
tank  type                  filesystem              -
tank  creation              Sa. Nov.  9 22:33 2013  -
tank  used                  797G                    -
tank  available             551G                    -
tank  referenced            31K                     -
tank  compressratio         1.00x                   -
tank  mounted               no                      -
tank  quota                 none                    default
tank  reservation           none                    default
tank  recordsize            128K                    default
tank  mountpoint            none                    local
tank  sharenfs              off                     default
tank  checksum              on                      default
tank  compression           off                     default
tank  atime                 on                      default
tank  devices               on                      default
tank  exec                  on                      default
tank  setuid                on                      default
tank  readonly              off                     default
tank  jailed                off                     default
tank  snapdir               hidden                  default
tank  aclmode               discard                 default
tank  aclinherit            restricted              default
tank  canmount              on                      default
tank  xattr                 on                      default
tank  copies                1                       default
tank  version               5                       -
tank  utf8only              off                     -
tank  normalization         none                    -
tank  casesensitivity       sensitive               -
tank  vscan                 off                     default
tank  nbmand                off                     default
tank  sharesmb              off                     default
tank  refquota              none                    default
tank  refreservation        none                    default
tank  primarycache          all                     default
tank  secondarycache        all                     default
tank  usedbysnapshots       0                       -
tank  usedbydataset         31K                     -
tank  usedbychildren        797G                    -
tank  usedbyrefreservation  0                       -
tank  logbias               latency                 default
tank  dedup                 off                     default
tank  mlslabel                                      -
tank  sync                  standard                default
tank  refcompressratio      1.00x                   -
tank  written               31K                     -
tank  logicalused           797G                    -
tank  logicalreferenced     15,5K                   -
tank  volmode               default                 default
tank  filesystem_limit      none                    default
tank  snapshot_limit        none                    default
tank  filesystem_count      none                    default
tank  snapshot_count        none                    default
tank  redundant_metadata    all                     default

Code:
# sysctl -a | grep ashift
vfs.zfs.min_auto_ashift: 9
vfs.zfs.max_auto_ashift: 13

Interessanterweise kann seafile ein repair nicht durchführen. Den Fehler scheint es zu geben, aber es scheint auch keiner recht zu wissen, warum und wie man es lösen kann oder ich habe es noch nicht gefunden.
 
Moin,

ich würds so machen:

Rechner ausschalten, damit die Platten alle abkühlen können und wegen Hitze 'trippte' ada1 wahrscheinlich beim resilver, 'nur' Lesefehler deuten darauf hin. In meiner Bude ist vorgestern auch ne Platte während nem scrub so abgeraucht. Zugriff ging noch, aber es war sehr zäh und dauerte und dauerte. Ich hab sie dann erlöst und gezogen, weil ich genug Redundanzplatten habe. Du brauchst sie aber hier.

Die alte ada0 wieder reinhängen + die neue dazustecken als ada2. Lass das Gehäuse auf und lass einen Ventilator dabei schön auf die Platten pusten.
Jetzt sichergehen, dass du von der alten ada0 bootest!

Dann erstmal ada2p3 (also die ganz neue) löschen und danach neu erstellen mit:

'gpart add -t freebsd-zfs -a 512 ada2'

Auf das Gedöhns mit bootloader und swap gehe ich nicht ein, das solltest du können.

Nun ein Durchatmen und:

'zpool attach tank ada2p3'

Ich nehme an, das ist die betreffende Kiste? -> https://www.bsdforen.de/threads/zpool-status-512b-statt-4069b.31436/
 
Da wird Hetzner sich aber freuen, wenn ich bei denen die Kisten offen lassen will. :p *SCNR*

Ich weiß nicht mehr welche Kiste das damals war, es sind meist was zwischen 7 bis 12.

Wenn ich Dich richtig verstehe, dann möchtest Du die alte ada0 wieder in den Mirror als dritte Platte hängen und schauen, ob er sich darüber wiederherstellen kann. Das habe ich auch schon überlegt, allerdings würde Hetzner die nicht als bootfähige Platte reinhängen, wenn ich sie richtig verstehe und sie wollen irgendwas um 50 Euro pro Monat dafür, die kaputte Platte wieder einzusetzen.
 
Achso..kein physikalischer Zugriff. :rolleyes:

Wenn ich Dich richtig verstehe, dann möchtest Du die alte ada0 wieder in den Mirror als dritte Platte hängen und schauen, ob er sich darüber wiederherstellen kann.
Jein. Die alte ada0 wieder rein, weil ich vermute, dass die Daten vom vorm alignment-resilver-Gemurkse darauf noch konsistent sind (auch wenn der headcrash naht bei sich ersetzenden Sektoren). Daher soll davon gebootet werden. ada1 unterstützend dazu, die neue ada2 dazu als sichere +1Redundanz für während dem neuen resilvern und mit dem passenden (heute nicht mehr sinnig) alignment für diesen Pool.

Lifetime Min/Max Temperature: 22/45 Celsius
Min/Max recommended Temperature: 0/60 Celsius
Min/Max Temperature Limit: -40/70 Celsius
ATA Security is: Disabled, NOT FROZEN [SEC1]
Nicht witzig zu dem Thema, aber den konnt ich mir nicht verkneifen. :ugly:

Sagt aber wenigstens, dass sie nicht gebraten wurde.
Wenn die 50€ fürs Arsch heben wollen, dann bist du mit Backup einspielen wahrscheinlich günstiger und schneller wieder im Rennen. :p
 
Ich nehme das auch an, da alle Fehler im seafile sind, spiele ich gerade mal mit den Möglichkeiten das Ding von den Clients wieder "zusammenzusynchronisieren". Bis jetzt ist der ausgesprochen zuverlässig, wenn man nicht gerade mit einem FreeBSD-Client kommt.

Frozen wäre ich auch zuweilen gerne ... Um die 40° macht keinen Spaß mehr in der Stadt.


Was mache ich denn eigentlich mit dem Alignment nun?
Wenn ich die neue Platte mit gpart aufteile und ein -a 4K setze, dann bleibt das alles, wie es ist und wenn ich sysctl vfs.zfs.min_auto_ashift=12 setze, dann hat das vermutlich alles nur Auswirkungen, wenn ich den ganzen Pool platt mache?
 
Frozen wäre ich auch zuweilen gerne ... Um die 40° macht keinen Spaß mehr in der Stadt.
Hör uff! :D Mein Senator B damals hatte schwarze Ledersitze und eben beim Netzteilwechsel ist Schweiß aufs Board getropft, dank Wattestäbchen alles gefixt.

Was mache ich denn eigentlich mit dem Alignment nun?
Tzja...als rule of thumb rate ich dir bei jedem Aufsetzen eines pools 4k-alignment auf den devices. Ich weiß nicht, seit welcher FBSD-Version der auto-zfs-installer automatisch 4k setzt, aber ist schon länger so.
Willst du geli nutzen willst reicht es, wenn du das beim 'geli init' direkt auf die Platte setzt. Wenn kein geli, dann musst du es mit gpart setzen.
Das gilt aber auch nur, wenn du einen extra-pool manuell mit ner alten Version erstellst. Wenn du sowieso nur mit systempools hantierst, brauchst du das in der aktuellen 11.2-RELEASE alles nicht. Und wenn vfs.zfs.min_auto_ashift=12 sowieso gesetzt ist, dann brauchst du dich ums alignment gar nicht kümmern.

Wenn ich die neue Platte mit gpart aufteile und ein -a 4K setze, dann bleibt das alles, wie es ist
Ähm, würd ich nicht sagen. Ich ging davon aus, dass du -a 512 ursprünglich gesetzt hattest und der Fehler daher rührte. ZFS bemängelt das doch so oder hab ich nen Hitzeschaden? :p

wenn ich sysctl vfs.zfs.min_auto_ashift=12 setze, dann hat das vermutlich alles nur Auswirkungen, wenn ich den ganzen Pool platt mache?
Bin nicht sicher, ob ZFS dann überhaupt noch 512 lesen kann. Damit wär ich vorsichtig!
 
Bin nicht sicher, ob ZFS dann überhaupt noch 512 lesen kann. Damit wär ich vorsichtig!
Es ist keine gute Idee Blocksizes innerhalb eines Pools zu mischen. Schon alleine weil der Pool damit nicht in der Balance ist. Aber funktionieren sollte es an sich eigentlich.
 
Genau mein Gedanke...
hätte ich das Backup sicher in der Tasche, physikalischen Zugriff und Zeit, würde ich 'all in' für die Wissenschaft gehen.

Schätze aber mal, peterle hat gerade keines der drei Dinge. :rolleyes:
 
Also bitte ... :p

Die Pools stammen teilweise noch aus 2008 oder so und sind von da aus "mitgewachsen" und wurden nie komplett neu aufgesetzt. Es mag sein, daß Gemischtwarenhandel nicht optimal ist, aber es läuft eigentlich normalerweise problemlos.

Ich habe mittlerweile mal die Daten neu synchronisiert und der seafile-client meldet keine Probleme mehr.
Der Seafile-Server beharrt aber weiter darauf, daß er einen Block nicht lesen kann.
ZFS beharrt auch nach einem scrub darauf, daß er Sektoren nicht lesen kann und meldet 5 defekte Dateien, die alle Blocks des Seafile sind, wobei allerdings Seafile nur einen anmeckert.

Mein Lenkrad wird übrigens in der Sonne so heiß, daß ich verzweifelt die alten Autofahrerhandschuhe meines Großvaters suchen gegangen bin ... Sonnebrille habe ich noch. :cool:
 
Der Seafile-Server beharrt aber weiter darauf, daß er einen Block nicht lesen kann.

Hier könntest du noch probieren auf der ersten/kaputten ada0 mit dem seaf-fsck rumstochern. Gesundes System hochfahren, kaputte Platte dran, ada0kaputtpool in alternativem Verzeichnis mounten und dann seaf-fsck drauf abfeuern. Direkt loslegen, wenn die Hetznerboys die Platte gesteckt haben, damit sie noch so kühl wie möglich ist.
Klackerplatten konnte ich 2x noch die Daten entlocken, nachdem sie zwei Stunden im Eisfach in ner Plastiktüte lagen. Einmal funktionierte sogar, als ich sie im Klackerzustand aus 5cm Höhe auf den Tisch fallen ließ und der Motor endlich hochsurrte. (Den Gesichtsausdruck des natürlich backuplosen Kollegen vergesse ich nie. Es war eine unmögliche Mischung aus Abscheu/Unglauben/Freude :D)
 
Manchmal hilft es auch, wenn man bis Nachts wartet ... ein Reboot und eine längere Downtime, um die defekte Platte wieder reinzuhängen, haben dafür gesorgt, daß die zweite defekte Platte die letzten Daten noch preisgegeben hat und der Pool hat sich wieder selber zusammengebastelt.

Ich liebe diesen fehlertoleranten Scheiß!
 
Zurück
Oben