Hallo Liebe Community,
ich habe ein für mich absolut nicht nachvollziehbares Problem bei dem ich euch einmal um Rat fragen möchte.
Ich habe in einem System von Sata auf SAS gewechselt. Ich verwende 5 * ST6000NM0034 an einem Dell Perc H200 welcher rein als HBA konfiguriert ist. Mit mdadm sind die Festplatten zu einem Raid5 Verbund eingerichtet. Um Strom zu sparen lasse ich die Festplatten nach einiger Zeit der Inaktivität ausschalten (Standby_Z).
Die Standby_Z Funktion habe ich über sdparm aktiviert. Die Timeouts lassen sich bei meinen Fesplatten leider nicht definieren so das die Festplatten sich erst nach einer Stunde abschalten.
Soweit wäre ich damit auch zufrieden. Leider zerstört das ausschalten und aufwachen jedes mal mein Raid. Es ist jedes mal eine andere Festplatte welche angeblich faulty zu sein scheint. Mit Smartctl wurde auf allen Festplatten ein long Test durchgeführt. Die Festplatten sind Fehlerfrei.
Testweise habe ich die Festplatten auch einzeln ohne Raid mit einem Dateisystem gemountet und versucht diese aus dem Standby zu wecken. Auch hier habe ich das Problem dass nach den Spinup Fehlermeldungen kommen weil die Festplatte nicht rechtzeitig verfügbar war. Das Dateisystem war danach hier immer im readonly Modus gemountet.
Ich habe auch versucht ein zpool zu erstellen um mdadm auszuschließen. Aber auch ein Raid-Z1 ist nach dem aus und einschalten der SAS Festplatten defekt. Es steigt auch hier immer eine Festplatte aus weil diese vermutlich nicht rechtzeitig geantwortet hatte.
Mich wundert das ich dieses Problem nie mit SATA Festplatten hatte. Dort konnte ich sämtliche Festplatten in einem Raid Verbund in den Standby schicken und das Raid war nach einem Spinup der Drives einwandfrei.
Meine Vermutung ist das im System irgendwo Timeouts hinterlegt sind wie lange es dauern darf bis so ein Drive oder Raid wieder antworten muss. Und das die Antwortzeiten der Drives nun leider höher sind als diese Timeouts.
Versuche die Timeouts unter /sys/block/sd{b..f}/device/timeout sowie eh_timeout nach oben zu setzen schlugen leider fehl. Andere Timeouts kenne ich nicht.
Eine Andere Vermutung wäre das der HBA da irgendwelche Probleme macht. Aber wie schon erwähnt das versetzen in den Standby sowie aufwecken funktioniert ja einwandfrei.
Muss ich mich bei den SAS Festplatten wirklich vom Standby verabschieden oder gibt es noch ein paar Dinge die ich vielleicht übersehen habe?
Ich würde mich freuen wenn Ihr noch weitere Ideen und Tips für mich habt.
Liebe Grüße
Harper
Anbei sind einmal Auszüge aus dmesg, sdparm und smartct :
ich habe ein für mich absolut nicht nachvollziehbares Problem bei dem ich euch einmal um Rat fragen möchte.
Ich habe in einem System von Sata auf SAS gewechselt. Ich verwende 5 * ST6000NM0034 an einem Dell Perc H200 welcher rein als HBA konfiguriert ist. Mit mdadm sind die Festplatten zu einem Raid5 Verbund eingerichtet. Um Strom zu sparen lasse ich die Festplatten nach einiger Zeit der Inaktivität ausschalten (Standby_Z).
Die Standby_Z Funktion habe ich über sdparm aktiviert. Die Timeouts lassen sich bei meinen Fesplatten leider nicht definieren so das die Festplatten sich erst nach einer Stunde abschalten.
Soweit wäre ich damit auch zufrieden. Leider zerstört das ausschalten und aufwachen jedes mal mein Raid. Es ist jedes mal eine andere Festplatte welche angeblich faulty zu sein scheint. Mit Smartctl wurde auf allen Festplatten ein long Test durchgeführt. Die Festplatten sind Fehlerfrei.
Testweise habe ich die Festplatten auch einzeln ohne Raid mit einem Dateisystem gemountet und versucht diese aus dem Standby zu wecken. Auch hier habe ich das Problem dass nach den Spinup Fehlermeldungen kommen weil die Festplatte nicht rechtzeitig verfügbar war. Das Dateisystem war danach hier immer im readonly Modus gemountet.
Ich habe auch versucht ein zpool zu erstellen um mdadm auszuschließen. Aber auch ein Raid-Z1 ist nach dem aus und einschalten der SAS Festplatten defekt. Es steigt auch hier immer eine Festplatte aus weil diese vermutlich nicht rechtzeitig geantwortet hatte.
Mich wundert das ich dieses Problem nie mit SATA Festplatten hatte. Dort konnte ich sämtliche Festplatten in einem Raid Verbund in den Standby schicken und das Raid war nach einem Spinup der Drives einwandfrei.
Meine Vermutung ist das im System irgendwo Timeouts hinterlegt sind wie lange es dauern darf bis so ein Drive oder Raid wieder antworten muss. Und das die Antwortzeiten der Drives nun leider höher sind als diese Timeouts.
Versuche die Timeouts unter /sys/block/sd{b..f}/device/timeout sowie eh_timeout nach oben zu setzen schlugen leider fehl. Andere Timeouts kenne ich nicht.
Eine Andere Vermutung wäre das der HBA da irgendwelche Probleme macht. Aber wie schon erwähnt das versetzen in den Standby sowie aufwecken funktioniert ja einwandfrei.
Muss ich mich bei den SAS Festplatten wirklich vom Standby verabschieden oder gibt es noch ein paar Dinge die ich vielleicht übersehen habe?
Ich würde mich freuen wenn Ihr noch weitere Ideen und Tips für mich habt.
Liebe Grüße
Harper
Anbei sind einmal Auszüge aus dmesg, sdparm und smartct :
[Mi Mär 17 07:23:25 2021] sd 8:0:4:0: [sdf] tag#2244 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[Mi Mär 17 07:23:25 2021] sd 8:0:4:0: [sdf] tag#2244 Sense Key : Not Ready [current]
[Mi Mär 17 07:23:25 2021] sd 8:0:4:0: [sdf] tag#2244 Add. Sense: Logical unit not ready, notify (enable spinup) required
[Mi Mär 17 07:23:25 2021] sd 8:0:4:0: [sdf] tag#2244 CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
[Mi Mär 17 07:23:25 2021] blk_update_request: I/O error, dev sdf, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[Mi Mär 17 07:23:25 2021] Buffer I/O error on dev sdf, logical block 0, async page read
[Mi Mär 17 07:23:25 2021] sd 8:0:0:0: [sdb] tag#2245 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[Mi Mär 17 07:23:25 2021] sd 8:0:0:0: [sdb] tag#2245 Sense Key : Not Ready [current]
[Mi Mär 17 07:23:25 2021] sd 8:0:0:0: [sdb] tag#2245 Add. Sense: Logical unit not ready, notify (enable spinup) required
[Mi Mär 17 07:23:25 2021] sd 8:0:0:0: [sdb] tag#2245 CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
[Mi Mär 17 07:23:25 2021] blk_update_request: I/O error, dev sdb, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0
/dev/sdb: SEAGATE ST6000NM0034 MS2A
Direct access device specific parameters: WP=0 DPOFUA=1
Read write error recovery [rw] mode page:
AWRE 1 [cha: y, def: 1, sav: 1] Automatic write reallocation enabled
ARRE 1 [cha: y, def: 1, sav: 1] Automatic read reallocation enabled
TB 0 [cha: y, def: 0, sav: 0] Transfer block
RC 0 [cha: y, def: 0, sav: 0] Read continuous
EER 0 [cha: y, def: 0, sav: 0] Enable early recovery (obsolete)
PER 0 [cha: y, def: 0, sav: 0] Post error
DTE 0 [cha: y, def: 0, sav: 0] Data terminate on error
DCR 0 [cha: y, def: 0, sav: 0] Disable correction (obsolete)
RRC 20 [cha: y, def: 20, sav: 20] Read retry count
COR_S -1 [cha: n, def: -1, sav: -1] Correction span (obsolete)
HOC 0 [cha: n, def: 0, sav: 0] Head offset count (obsolete)
DSOC 0 [cha: n, def: 0, sav: 0] Data strobe offset count (obsolete)
LBPERE 0 [cha: n, def: 0, sav: 0] Logical block provisioning error reporting enabled
MWR 0 [cha: n, def: 0, sav: 0] Misaligned write reporting
EMCDR 0 [cha: y, def: 0, sav: 0] Enhanced media certification and defect reporting
WRC 5 [cha: y, def: 5, sav: 5] Write retry count
ERWS 8000 [cha: y, def:8000, sav:8000] Error reporting window size (blocks)
RTL 8000 [cha: y, def:8000, sav:8000] Recovery time limit (ms)
Disconnect-reconnect (SPC + transports) [dr] mode page:
BFR 0 [cha: n, def: 0, sav: 0] Buffer full ratio
BER 0 [cha: n, def: 0, sav: 0] Buffer empty ratio
BIL 0 [cha: y, def: 0, sav: 0] Bus inactivity limit
DTL 0 [cha: n, def: 0, sav: 0] Disconnect time limit
CTL 0 [cha: y, def: 0, sav: 0] Connect time limit
MBS 160 [cha: y, def:160, sav:160] Maximum burst size (512 bytes)
EMDP 0 [cha: n, def: 0, sav: 0] Enable modify data pointers
FA 0 [cha: n, def: 0, sav: 0] Fair arbitration
DIMM 0 [cha: n, def: 0, sav: 0] Disconnect immediate
DTDC 0 [cha: n, def: 0, sav: 0] Data transfer disconnect control
FBS 0 [cha: n, def: 0, sav: 0] First burst size (512 bytes)
Format (SBC) [fo] mode page:
TPZ 1 [cha: n, def: 1, sav: 1] Tracks per zone
ASPZ 0 [cha: n, def: 0, sav: 0] Alternate sectors per zone
ATPZ 0 [cha: n, def: 0, sav: 0] Alternate tracks per zone
ATPLU 2 [cha: n, def: 2, sav: 2] Alternate tracks per logical unit
SPT 3 [cha: n, def: 3, sav: 3] Sectors per track
DBPPS 4096 [cha: n, def:4096, sav:4096] Data bytes per physical sector
INTLV 1 [cha: n, def: 1, sav: 1] Interleave
TSF 0 [cha: n, def: 0, sav: 0] Track skew factor
CSF 0 [cha: n, def: 0, sav: 0] Cylinder skew factor
SSEC 0 [cha: n, def: 0, sav: 0] Soft sector
HSEC 1 [cha: n, def: 1, sav: 1] Hard sector
RMB 0 [cha: n, def: 0, sav: 0] Removable
SURF 0 [cha: n, def: 0, sav: 0] Surface
LBAS 1 [cha: n, def: 1, sav: 1] LBA space
Rigid disk (SBC) [rd] mode page:
NOC 362885 [cha: n, def:362885, sav:362885] Number of cylinders
NOH 12 [cha: n, def: 12, sav: 12] Number of heads
SCWP 0 [cha: n, def: 0, sav: 0] Starting cylinder for write precompensation
SCRWC 0 [cha: n, def: 0, sav: 0] Starting cylinder for reduced write current
DSR 0 [cha: n, def: 0, sav: 0] Device step rate
LZC 0 [cha: n, def: 0, sav: 0] Landing zone cylinder
RPL 0 [cha: n, def: 0, sav: 0] Rotational position locking
ROTO 0 [cha: n, def: 0, sav: 0] Rotational offset
MRR 7200 [cha: n, def:7200, sav:7200] Medium rotation rate (rpm)
Verify error recovery (SBC) [ve] mode page:
V_EER 0 [cha: y, def: 0, sav: 0] Enable early recovery (obsolete)
V_PER 0 [cha: y, def: 0, sav: 0] Post error
V_DTE 0 [cha: y, def: 0, sav: 0] Data terminate on error
V_DCR 0 [cha: y, def: 0, sav: 0] Disable correction (obsolete)
V_RC 20 [cha: y, def: 20, sav: 20] Verify retry count
V_COR_S -1 [cha: n, def: -1, sav: -1] Verify correction span (obsolete)
V_RTL 8000 [cha: y, def:8000, sav:8000] Verify recovery time limit (ms)
Caching (SBC) [ca] mode page:
IC 0 [cha: y, def: 0, sav: 0] Initiator control
ABPF 0 [cha: n, def: 0, sav: 0] Abort pre-fetch
CAP 0 [cha: y, def: 0, sav: 0] Caching analysis permitted
DISC 1 [cha: n, def: 1, sav: 1] Discontinuity
SIZE 0 [cha: n, def: 0, sav: 0] Size enable
WCE 0 [cha: y, def: 0, sav: 0] Write cache enable
MF 0 [cha: n, def: 0, sav: 0] Multiplication factor
RCD 0 [cha: y, def: 0, sav: 0] Read cache disable
DRRP 0 [cha: n, def: 0, sav: 0] Demand read retention priority
WRP 0 [cha: n, def: 0, sav: 0] Write retention priority
DPTL -1 [cha: n, def: -1, sav: -1] Disable pre-fetch transfer length
MIPF 0 [cha: y, def: 0, sav: 0] Minimum pre-fetch
MAPF -1 [cha: y, def: -1, sav: -1] Maximum pre-fetch
MAPFC -1 [cha: n, def: -1, sav: -1] Maximum pre-fetch ceiling
FSW 1 [cha: n, def: 1, sav: 1] Force sequential write
LBCSS 0 [cha: n, def: 0, sav: 0] Logical block cache segment size
DRA 0 [cha: y, def: 0, sav: 0] Disable read ahead
SYNC_PROG 0 [cha: n, def: 0, sav: 0] Synchronous cache progress indication
NV_DIS 0 [cha: n, def: 0, sav: 0] Non-volatile cache disable
NCS 32 [cha: n, def: 32, sav: 32] Number of cache segments
CSS 0 [cha: n, def: 0, sav: 0] Cache segment size
ontrol [co] mode page:
TST 0 [cha: n, def: 0, sav: 0] Task set type
TMF_ONLY 0 [cha: n, def: 0, sav: 0] Task management functions only
DPICZ 0 [cha: n, def: 0, sav: 0] Disable protection information check if protect field zero
D_SENSE 0 [cha: y, def: 0, sav: 0] Descriptor format sense data
GLTSD 0 [cha: y, def: 0, sav: 0] Global logging target save disable
RLEC 0 [cha: y, def: 0, sav: 0] Report log exception condition
QAM 0 [cha: y, def: 0, sav: 0] Queue algorithm modifier
NUAR 0 [cha: n, def: 0, sav: 0] No unit attention on release
QERR 0 [cha: y, def: 0, sav: 0] Queue error management
VS_CTL 0 [cha: n, def: 0, sav: 0] Vendor specific [byte 4, bit 7]
RAC 0 [cha: n, def: 0, sav: 0] Report a check
UA_INTLCK 0 [cha: n, def: 0, sav: 0] Unit attention interlocks control
SWP 0 [cha: n, def: 0, sav: 0] Software write protect
ATO 0 [cha: n, def: 0, sav: 0] Application tag owner
TAS 0 [cha: n, def: 0, sav: 0] Task aborted status
ATMPE 0 [cha: n, def: 0, sav: 0] Application tag mode page enabled
RWWP 0 [cha: n, def: 0, sav: 0] Reject write without protection
SBLP 0 [cha: n, def: 0, sav: 0] Supported block lengths and protection information
AUTOLOAD 0 [cha: n, def: 0, sav: 0] Autoload mode
BTP 0 [cha: n, def: 0, sav: 0] Busy timeout period (100us)
ESTCT 38632 [cha: n, def:38632, sav:38632] Extended self test completion time (sec)
Control extension [coe] mode page:
DLC 0 [cha: n, def: 0, sav: 0] Device life control
TCMOS 1 [cha: n, def: 1, sav: 1] Timestamp changeable by methods outside standard
SCSIP 1 [cha: n, def: 1, sav: 1] SCSI timestamp commands take precedence over other methods
IALUAE 0 [cha: n, def: 0, sav: 0] Implicit asymmetric logical unit access enabled
INIT_PR 0 [cha: n, def: 0, sav: 0] Initial command priority
MSDL 0 [cha: y, def: 0, sav: 0] Maximum sense data length
Protocol specific logical unit [pl] mode page:
LUPID 6 [cha: n, def: 6, sav: 6] Logical unit's (transport) protocol identifier
Protocol specific port [pp] mode page:
PPID 6 [cha: n, def: 6, sav: 6] Port's (transport) protocol identifier
Power condition [po] mode page:
PM_BG 0 [cha: n, def: 0, sav: 0] Power management, background functions, precedence
STANDBY_Y 0 [cha: n, def: 0, sav: 0] Standby_y timer enable
IDLE_C 1 [cha: y, def: 0, sav: 0] Idle_c timer enable
IDLE_B 1 [cha: n, def: 1, sav: 1] Idle_b timer enable
IDLE_A 1 [cha: n, def: 1, sav: 1] Idle_a timer enable
STANDBY_Z 1 [cha: y, def: 0, sav: 1] Standby_z timer enable
IACT 10 [cha: n, def: 10, sav: 10] Idle_a condition timer (100 ms)
SZCT 36000 [cha: y, def:36000, sav:36000] Standby_z condition timer (100 ms)
IBCT 6000 [cha: n, def:6000, sav:6000] Idle_b condition timer (100 ms)
ICCT 9000 [cha: n, def:9000, sav:9000] Idle_c condition timer (100 ms)
SYCT 18000 [cha: n, def:18000, sav:18000] Standby_y condition timer (100 ms)
CCF_IDLE 1 [cha: y, def: 1, sav: 1] check condition if from idle_c
CCF_STAND 2 [cha: y, def: 2, sav: 2] check condition if from a standby
CCF_STOPP 2 [cha: y, def: 2, sav: 2] check condition if from stopped
Informational exceptions control [ie] mode page:
PERF 0 [cha: n, def: 0, sav: 0] Performance (impact of ie operations)
EBF 1 [cha: y, def: 1, sav: 1] Enable background function
EWASC 0 [cha: y, def: 0, sav: 0] Enable warning
DEXCPT 0 [cha: y, def: 0, sav: 0] Disable exceptions
TEST 0 [cha: y, def: 0, sav: 0] Test (simulate device failure)
EBACKERR 0 [cha: n, def: 0, sav: 0] Enable background (scan + self test) error reporting
LOGERR 1 [cha: y, def: 1, sav: 1] Log informational exception errors
MRIE 6 [cha: y, def: 6, sav: 6] Method of reporting informational exceptions
INTT 6000 [cha: y, def:6000, sav:6000] Interval timer (100 ms)
REPC 0 [cha: y, def: 0, sav: 0] Report count (or Test flag number [SSC-3])
Background control (SBC) [bc] mode page:
S_L_FULL 0 [cha: y, def: 0, sav: 0] Suspend on log full
LOWIR 0 [cha: y, def: 0, sav: 0] Log only when intervention required
EN_BMS 1 [cha: y, def: 1, sav: 1] Enable background medium scan
EN_PS 0 [cha: n, def: 0, sav: 0] Enable pre-scan
BMS_I 144 [cha: y, def:144, sav:144] Background medium scan interval time (hour)
BPS_TL 24 [cha: y, def: 24, sav: 24] Background pre-scan time limit (hour)
MIN_IDLE 250 [cha: y, def:250, sav:250] Minumum idle time before background scan (ms)
MAX_SUSP 0 [cha: y, def: 0, sav: 0] Maximum time to suspend background scan (ms)
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.11.6-arch1-1] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Vendor: SEAGATE
Product: ST6000NM0034
Revision: MS2A
Compliance: SPC-4
User Capacity: 6.001.175.126.016 bytes [6,00 TB]
Logical block size: 512 bytes
Physical block size: 4096 bytes
LU is fully provisioned
Rotation Rate: 7200 rpm
Form Factor: 3.5 inches
Logical Unit id: 0x5000c500637696f3
Serial number: Z4D1ATGG
Device type: disk
Transport protocol: SAS (SPL-3)
Local Time is: Wed Mar 17 07:26:50 2021 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Temperature Warning: Disabled or Not Supported
Read Cache is: Enabled
Writeback Cache is: Disabled
=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK
Grown defects during certification <not available>
Total blocks reassigned during format <not available>
Total new blocks reassigned <not available>
Power on minutes since format <not available>
Current Drive Temperature: 23 C
Drive Trip Temperature: 60 C
Manufactured in week 07 of year 2015
Specified cycle count over device lifetime: 10000
Accumulated start-stop cycles: 185
Specified load-unload count over device lifetime: 300000
Accumulated load-unload cycles: 1721
Elements in grown defect list: 0
Vendor (Seagate Cache) information
Blocks sent to initiator = 2302419328
Blocks received from initiator = 1362228768
Blocks read from cache and sent to initiator = 2881462039
Number of read and write commands whose size <= segment size = 656755184
Number of read and write commands whose size > segment size = 15787631
Vendor (Seagate/Hitachi) factory information
number of hours powered up = 45696,42
number of minutes until next internal SMART test = 56
Error counter log:
Errors Corrected by Total Correction Gigabytes Total
ECC rereads/ errors algorithm processed uncorrected
fast | delayed rewrites corrected invocations [10^9 bytes] errors
read: 3546566695 0 0 3546566695 0 498415,029 0
write: 0 0 2 2 2 256313,686 0
verify: 739303484 28 0 739303512 28 1532462,274 0
Non-medium error count: 116
SMART Self-test log
Num Test Status segment LifeTime LBA_first_err [SK ASC ASQ]
Description number (hours)
# 1 Background long Completed 80 45288 - [- - -]
# 2 Background short Completed 80 45267 - [- - -]
# 3 Reserved(7) Completed 64 4 - [- - -]
# 4 Background short Completed 80 2 - [- - -]
Long (extended) Self-test duration: 38632 seconds [643,9 minutes]
Background scan results log
Status: scan is active
Accumulated power on time, hours:minutes 45696:25 [2741785 minutes]
Number of background scans performed: 120, scan progress: 0,70%
Number of background medium scans performed: 120
Protocol Specific port log page for SAS SSP
relative target port id = 1
generation code = 0
number of phys = 1
phy identifier = 0
attached device type: SAS or SATA device
attached reason: power on
reason: power on
negotiated logical link rate: phy enabled; 6 Gbps
attached initiator port: ssp=1 stp=1 smp=1
attached target port: ssp=0 stp=0 smp=0
SAS address = 0x5000c500637696f1
attached SAS address = 0x5842b2b0465dde00
attached phy identifier = 0
Invalid DWORD count = 0
Running disparity error count = 0
Loss of DWORD synchronization = 0
Phy reset problem = 0
Phy event descriptors:
Invalid word count: 0
Running disparity error count: 0
Loss of dword synchronization count: 0
Phy reset problem count: 0
relative target port id = 2
generation code = 0
number of phys = 1
phy identifier = 1
attached device type: no device attached
attached reason: unknown
reason: unknown
negotiated logical link rate: phy enabled; unknown
attached initiator port: ssp=0 stp=0 smp=0
attached target port: ssp=0 stp=0 smp=0
SAS address = 0x5000c500637696f2
attached SAS address = 0x0
attached phy identifier = 0
Invalid DWORD count = 0
Running disparity error count = 0
Loss of DWORD synchronization = 0
Phy reset problem = 0
Phy event descriptors:
Invalid word count: 0
Running disparity error count: 0
Loss of dword synchronization count: 0
Phy reset problem count: 0