Hallo zusammen,
ich habe jetzt schon extrem viel Zeit in meine FreeNAS gesteckt und nach ein paar Jahren entschieden, von meiner Temp-Lösung in ein "richtiges" System zu investieren, mit dem ich lange Zeit keinen Ärger mehr habe (ich höre schon die Leser lachen..:p)
Aber nach dem Vorgeplänkel nun zu meinem abstrusen Problem, welches mich jetzt auch schon Tage gekostet hat:
Bei starker Last auf dem RAIDz2 (6x 2TB WD Red) bricht die Performance auf quasi 0 ein. Derzeitiges Beispiel ist der dump eines ca. 1,2TB großen Snapshots auf das gleiche Array. Am Anfang läuft der Transfer mit ca. 100-130MB/s, geht dann aber langsam runter bis er bei ca. 700GB zum Erliegen kommt (noch ca. 500KB/s).
Folgendes habe ich bisher herausgefunden:
top:
Prefetch habe ich aktiviert und deaktiviert - keine Auswirkung
atime habe ich aktiviert und deaktiviert - keine Auswirkung
zpool iostat -v: Zeigt das schon bekannte - die Platten machen so gut wie nichts...
Aber nun mein Hauptaufhängungspunkt:
gstat zeigt sehr merkwürdiges (RAIDz2 geht über ada0-5!!)
Was ist das denn? Ein RAID-Verbund, bei dem zwei Platten mehr als 100% belastet sind, und die anderen 3 sich vollkommen langweilen?
Der Test mit diskinfo bestätigt dies:
Nächster Blick war dann in die SMART-Hilfe:
..Ergebnisse bei allen quasi gleich - keine Fehler, keine UDMA-CRC-Fehler, Keine fehlerhaften Sektoren.
Ich bin schon viele Foren durch, bei dem es um den "tx->tx-Fehler ging". Meistens hat sich jedoch rausgestellt, dass SMART-Fehler auftauchten und Hardware im Eimer war. Die Auslastung mit gstat war in den Fällen aber eher so, dass die betroffenen Disks eher bei 0% lagen, und daher kaum noch Daten durchkamen.
Ich bin mit meinem Latein am Ende und richte mich daher an euch Profis. Hat irgendjemand eine Idee, wie so eine Asynchronität bei RAID-Arrays auftreten kann? Was kann Überhaupt eine 100% Laufwerksauslastung erzeugen, wenn die Interfaces drumrum sich langweilen? Irgendwelche Self-Tests sollten ja von smartctl angezeigt werden, oder?! Außerdem sollten die wohl nicht über viele Stunden hinweg ein Laufwerk so belasten, dass es faktisch nicht mehr nutzbar ist (ls -l geht nicht mehr, Web-Interface wirft zum Teil Timeouts).
Als Anmerkung sollte ich vielleicht noch sagen, dass dieses Verhalten tatsächlich nur auftritt, wenn viele Daten über die Platten laufen. Bei "normaler" Auslastung läuft die Kiste seit Monaten stabil. Jedoch wird die auch spätestens alle 2 Tage neugestartet. Wenn ich jetzt in den Produktivbetrieb gehe und andere Systeme durch FreeNAS ersetze ist das aber nicht mehr tragbar.
Was kann ich tun? Außer natürlich die vielen Hinweise zu befolgen auf FreeNAS und ZFS zu verzichten - das ist mir klar und ist (noch) keine Alternative. Ich hoffe irgendjemand kann mir helfen.
Vielen Dank schonmal und beste Grüße,
DaVo
P.S.: Ich habe so viele wichtige Informationen in diesen Post gesteckt, wie möglich (wobei ich "wichtig" aus den Standardfragen aus den anderen vielen Threads entnommen habe, die ich schon durch habe). Entschuldigt bitte wenn noch was fehlt - ich verliere langsam den Überblick was ich schon alles probiert habe.
P.P.S.: System: AMD A3400, 8GB RAM, 6x2TB WD Red, FreeNAS 8.3.0
ich habe jetzt schon extrem viel Zeit in meine FreeNAS gesteckt und nach ein paar Jahren entschieden, von meiner Temp-Lösung in ein "richtiges" System zu investieren, mit dem ich lange Zeit keinen Ärger mehr habe (ich höre schon die Leser lachen..:p)
Aber nach dem Vorgeplänkel nun zu meinem abstrusen Problem, welches mich jetzt auch schon Tage gekostet hat:
Bei starker Last auf dem RAIDz2 (6x 2TB WD Red) bricht die Performance auf quasi 0 ein. Derzeitiges Beispiel ist der dump eines ca. 1,2TB großen Snapshots auf das gleiche Array. Am Anfang läuft der Transfer mit ca. 100-130MB/s, geht dann aber langsam runter bis er bei ca. 700GB zum Erliegen kommt (noch ca. 500KB/s).
Folgendes habe ich bisher herausgefunden:
top:
Code:
CPU: 0.0% user, 0.0% nice, 1.1% system, 0.2% interrupt, 98.7% idle Mem: 145M Active, 43M Inact, 3836M Wired, 2236K Cache, 200M Buf, 3610M Free Swap: 12G Total, 12G Free PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 6380 root 1 44 0 19904K 4824K tx->tx 0 24:21 0.00% zfs
Prefetch habe ich aktiviert und deaktiviert - keine Auswirkung
atime habe ich aktiviert und deaktiviert - keine Auswirkung
zpool iostat -v: Zeigt das schon bekannte - die Platten machen so gut wie nichts...
Code:
capacity operations bandwidth pool alloc free read write read write -------------------------------------- ----- ----- ----- ----- ----- ----- ZFSVolume 3.36T 7.51T 7 20 554K 88.8K raidz2 3.36T 7.51T 7 20 554K 88.8K gptid/31217152-69ac-11e2-afa4-002522d24888 - - 0 4 0 44.0K gptid/31775612-69ac-11e2-afa4-002522d24888 - - 0 4 818 44.8K gptid/31d25957-69ac-11e2-afa4-002522d24888 - - 2 4 93.6K 42.4K gptid/32227a3f-69ac-11e2-afa4-002522d24888 - - 1 4 140K 46.4K gptid/327c7a9d-69ac-11e2-afa4-002522d24888 - - 0 4 818 46.4K gptid/32d9a99c-69ac-11e2-afa4-002522d24888 - - 0 5 818 46.4K -------------------------------------- ----- ----- ----- ----- ----- -----
Aber nun mein Hauptaufhängungspunkt:
gstat zeigt sehr merkwürdiges (RAIDz2 geht über ada0-5!!)
Code:
dT: 0.501s w: 0.500s L(q) ops/s r/s kBps ms/r w/s kBps ms/w %busy Name 0 0 0 0 0.0 0 0 0.0 0.0| da0 0 0 0 0 0.0 0 0 0.0 0.0| PART/da0/da0 0 0 0 0 0.0 0 0 0.0 0.0| da0s1 0 0 0 0 0.0 0 0 0.0 0.0| da0s2 0 0 0 0 0.0 0 0 0.0 0.0| da0s3 0 0 0 0 0.0 0 0 0.0 0.0| da0s4 0 0 0 0 0.0 0 0 0.0 0.0| DEV/da0/da0 0 20 0 0 0.0 20 248 0.7 0.5| ada0 0 20 0 0 0.0 20 248 0.8 0.5| ada1 5 8 6 104 850.2 2 8 57.9 131.5| ada2 5 6 4 40 865.9 2 8 67.3 90.1| ada3 0 20 0 0 0.0 20 256 0.4 0.3| ada4 0 20 0 0 0.0 20 256 0.5 0.3| ada5 0 0 0 0 0.0 0 0 0.0 0.0| PART/da0s1/da0s1 0 0 0 0 0.0 0 0 0.0 0.0| da0s1a
Was ist das denn? Ein RAID-Verbund, bei dem zwei Platten mehr als 100% belastet sind, und die anderen 3 sich vollkommen langweilen?
Der Test mit diskinfo bestätigt dies:
Code:
# diskinfo -t /dev/ada0 /dev/ada0 512 # sectorsize 2000398934016 # mediasize in bytes (1.8T) 3907029168 # mediasize in sectors 4096 # stripesize 0 # stripeoffset 3876021 # Cylinders according to firmware. 16 # Heads according to firmware. 63 # Sectors according to firmware. WD-WMC1T1145155 # Disk ident. Seek times: Full stroke: 250 iter in 7.422452 sec = 29.690 msec Half stroke: 250 iter in 5.734184 sec = 22.937 msec Quarter stroke: 500 iter in 10.370803 sec = 20.742 msec Short forward: 400 iter in 4.416506 sec = 11.041 msec Short backward: 400 iter in 4.062218 sec = 10.156 msec Seq outer: 2048 iter in 0.220960 sec = 0.108 msec Seq inner: 2048 iter in 0.240262 sec = 0.117 msec Transfer rates: outside: 102400 kbytes in 0.726358 sec = 140977 kbytes/sec middle: 102400 kbytes in 1.339899 sec = 76424 kbytes/sec inside: 102400 kbytes in 1.306055 sec = 78404 kbytes/sec
Code:
# diskinfo -t /dev/ada2 /dev/ada2 512 # sectorsize 2000398934016 # mediasize in bytes (1.8T) 3907029168 # mediasize in sectors 4096 # stripesize 0 # stripeoffset 3876021 # Cylinders according to firmware. 16 # Heads according to firmware. 63 # Sectors according to firmware. WD-WMC1T0808671 # Disk ident. Seek times: Full stroke: 250 iter in 81.578938 sec = 326.316 msec Half stroke: 250 iter in 92.438778 sec = 369.755 msec Quarter stroke: 500 iter in 143.993772 sec = 287.988 msec Short forward: 400 iter in 30.611477 sec = 76.529 msec Short backward: 400 iter in 226.135501 sec = 565.339 msec Seq outer: 2048 iter in 79.753435 sec = 38.942 msec Seq inner: 2048 iter in 157.290149 sec = 76.802 msec Transfer rates: outside: 102400 kbytes in 74.059309 sec = 1383 kbytes/sec middle: 102400 kbytes in 77.287864 sec = 1325 kbytes/sec inside: 102400 kbytes in 81.052819 sec = 1263 kbytes/sec
Nächster Blick war dann in die SMART-Hilfe:
Code:
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 191 177 021 Pre-fail Always - 5416 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 67 5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0 7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0 9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 421 10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always - 0 11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 43 192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 7 193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 59 194 Temperature_Celsius 0x0022 109 108 000 Old_age Always - 41 196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0 197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0030 100 253 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x0008 100 253 000 Old_age Offline - 0 SMART Error Log Version: 1 No Errors Logged
..Ergebnisse bei allen quasi gleich - keine Fehler, keine UDMA-CRC-Fehler, Keine fehlerhaften Sektoren.
Ich bin schon viele Foren durch, bei dem es um den "tx->tx-Fehler ging". Meistens hat sich jedoch rausgestellt, dass SMART-Fehler auftauchten und Hardware im Eimer war. Die Auslastung mit gstat war in den Fällen aber eher so, dass die betroffenen Disks eher bei 0% lagen, und daher kaum noch Daten durchkamen.
Ich bin mit meinem Latein am Ende und richte mich daher an euch Profis. Hat irgendjemand eine Idee, wie so eine Asynchronität bei RAID-Arrays auftreten kann? Was kann Überhaupt eine 100% Laufwerksauslastung erzeugen, wenn die Interfaces drumrum sich langweilen? Irgendwelche Self-Tests sollten ja von smartctl angezeigt werden, oder?! Außerdem sollten die wohl nicht über viele Stunden hinweg ein Laufwerk so belasten, dass es faktisch nicht mehr nutzbar ist (ls -l geht nicht mehr, Web-Interface wirft zum Teil Timeouts).
Als Anmerkung sollte ich vielleicht noch sagen, dass dieses Verhalten tatsächlich nur auftritt, wenn viele Daten über die Platten laufen. Bei "normaler" Auslastung läuft die Kiste seit Monaten stabil. Jedoch wird die auch spätestens alle 2 Tage neugestartet. Wenn ich jetzt in den Produktivbetrieb gehe und andere Systeme durch FreeNAS ersetze ist das aber nicht mehr tragbar.
Was kann ich tun? Außer natürlich die vielen Hinweise zu befolgen auf FreeNAS und ZFS zu verzichten - das ist mir klar und ist (noch) keine Alternative. Ich hoffe irgendjemand kann mir helfen.
Vielen Dank schonmal und beste Grüße,
DaVo
P.S.: Ich habe so viele wichtige Informationen in diesen Post gesteckt, wie möglich (wobei ich "wichtig" aus den Standardfragen aus den anderen vielen Threads entnommen habe, die ich schon durch habe). Entschuldigt bitte wenn noch was fehlt - ich verliere langsam den Überblick was ich schon alles probiert habe.
P.P.S.: System: AMD A3400, 8GB RAM, 6x2TB WD Red, FreeNAS 8.3.0