Beste Tweakers,
Omdat een harde schijf uit mijn ZFS mirror aan het overlijden is heb ik daarvoor een nieuwe HDD gekocht. Op basis van Het grote zuinige server topic ben ik daarbij gegaan voor de 5TB variant van de Seagate Expansion Portable. Dit is dus een externe HDD, maar met SATA aansluiting en populair om de HDD te verwijderen en daarna gewoon intern te gebruiken.
Eenmaal aangekomen heb ik de HDD getest met SeaTools van Seagate zelf en een run van h2testw waarbij in ieder geval het laatste tooltje de HDD volledig vol schrijft en daarna nog eens terug leest en verifieert. Het resultaat van h2testw was in orde en de uiteindelijke schrijf snelheid kwam neer op een naar mijn idee respectabele 90MB/s (na ik meen iets van 13 uur continu schrijven).
Vervolgens heb ik de HDD voorzichtig verwijderd uit zijn behuizing en deze ingebouwd in mijn NAS/thuisserver. Maar vervolgens bleek, tot mijn verbazing, de performance extreem tegen te vallen. De HDD toevoegen aan mijn ZFS mirror bleek zo 9 uur in beslag te nemen voor maar 266GB aan data, dat komt dus neer op 8 á 9MB/s oftewel een factor 10 minder dan wat ik met h2testw haalde.
Maar aangezien de resilver was afgerond heb ik de HDD maar laten zitten er vanuit gaande dat alles wel goed zou komen en puur de resilver traag was. Maar je raad het al: ook dat was niet het geval. Het systeem werd er onstabiel van en blijkt met tijden en wijlen unresponsive. Zet ik deze HDD op offline draait de boel weer als een zonnetje.
In eerste instantie heb ik toen (week of twee terug) nog verschillende tests gedaan met het schrijven van een groot bestand (middels dd) naar de mirror en dit haalde IIRC maar iets van 60MB/s en met deze nieuwe schijf op offline haalde dat wel rond de 100MB/s. Dus ook in dit geval haalde deze HDD de performance omlaag, zij het niet zo extreem laag. Vervolgens heb ik de HDD weer uitgebouwd en via de USB interface getest met h2testw en dit liep wederom als een zonnetje en starte netjes met 130MB/s en uiteindelijk was de test ook weer afgerond met een gemiddelde snelheid van in de 90MB/s. HDD terug geplaatst in de NAS en weer een resilver gedaan, en performance was weer dramatisch (9 uur resilver en langzame writes met lockups als gevolg).
Vervolgens heb ik gisteren de HDD maar weer uitgebouwd en in mijn vaste PC ingebouwd om daarmee te testen via SATA (i.p.v. weer via de USB interface). Conclusie:
Onder Windows (met NTFS) met h2testw is de HDD snel (100GB schrijven met ongeveer 90MB/s);
Onder Linux op een ext4 filesystem is de HDD ook snel (getest met dd if=/dev/zero of=/mnt/test.img bs=1G count=100 oflag=dsync) en wederom een 90 tot 100MB/s
Onder Linux met ZFS is de HDD langzamer, maar niet zo extreem traag (60MB/s en dus ~30 tot 40MB/s langzamer dan Windows en ext4).
Vervolgens gisteravond de HDD weer terug geplaatst in mijn NAS om een resilver te doen en in het begin was deze hoopvol met 60MB/s en een resilver tijd van rond het uur. Maar je raad het al. Gaandeweg begon de snelheid steeds verder in te zakken en uiteindelijk was deze vanmorgen, na 9 uur en 10 minuten, afgerond.
Op basis van wat Google werk was ik nog het zpool iostat -vl <pool> <interval> commando tegen gekomen. Deze geeft dus IO statistieken voor een pool met een bepaald interval. Wat daarbij opvalt is dat er voor deze schijf vaak een "disk_wait - write" wordt gerapporteerd in seconden (variërend van 1s tot 9s) en een "total_wait - write" die gelijk, of nog hoger is (nu zal gelijk aan "disk_wait" waarschijnlijk komen doordat het in dit geval om een "total" gaat wat dus beïnvloed wordt door "disk_wait", maar soms nog 1, 2, 3 seconden hoger kan ik niet verklaren).
Nadat de resilver vanmorgen was afgerond waren de issues van een unresponsive systeem ook weer terug. En de oorzaak was hetzelfde: zpool iostat die een "disk_wait - write" rapporteert van in de seconden waar dat bij de andere schijf/schrijven in de microseconden is.
De hard- en software die ik gebruik is als volgt:
HDD: Zoals genoemd de Seagate Expansion Portable 5TB
Moederbord (en dus SATA controller): Gigabyte GA-H87-HD3
Besturingssysteem: Arch Linux met LTS kernel - 4.19.89
ZFS: ZoL versie 0.8.2 (uit de archzfs repository)
De andere PC waarop alles beter werkte heeft de volgende "afwijkingen":
Moederbord: Gigabyte GA-H170-D3HP
Besturingsssyteem: Arch Linux, maar met de normale Linux kernel: 5.2.X
Wie kan mij dus een duw in de juiste richting geven om verder te zoeken?
Uiteraard kan ik hardware volledig om bouwen om bv issues met het moederbord/SATA controller uit te sluiten maar daar gaat flink wat tijd in zitten en het geeft 0 garantie dat het daar aan ligt. Ook het upgraden naar de normale (niet LTS) Linux kernel doe ik liever niet, maar is in ieder geval een stuk makkelijker te realiseren.
Naar mijn idee zou een eerste stap in ieder geval zijn om een realistische test te doen met de andere PC. Alleen weet ik niet in hoeverre dat mogelijk is.
Andere, mogelijk nog betere test, is de volgende:
De mirror bestaat nu uit drie schijven: werkende, die met bad sectors die dus vervangen moet worden, en deze Seagate. Is het bv mogelijk om de Seagate weer te detachen, die met de bad sectors op offline te zetten, en vervolgens beide schijven te koppelen aan de andere PC, daar als (read only) te importeren en dan de Seagate toevoegen aan de "mirror". Dan kan ik op basis daarvan kijken of: 1. de snelheid dan wel in orde is; 2. als de resilver dan ook traag is eventueel op die PC ook een test doen met de Linux LTS kernel om potentiële isues daarin uit te sluiten. Dan hoef ik in ieder geval niet zo veel te "experimenteren" met mijn belangrijke NAS/thuisserver (waar Pi-Hole, Home Assistant, en... op draait).
Alvast bedankt
Omdat een harde schijf uit mijn ZFS mirror aan het overlijden is heb ik daarvoor een nieuwe HDD gekocht. Op basis van Het grote zuinige server topic ben ik daarbij gegaan voor de 5TB variant van de Seagate Expansion Portable. Dit is dus een externe HDD, maar met SATA aansluiting en populair om de HDD te verwijderen en daarna gewoon intern te gebruiken.
Eenmaal aangekomen heb ik de HDD getest met SeaTools van Seagate zelf en een run van h2testw waarbij in ieder geval het laatste tooltje de HDD volledig vol schrijft en daarna nog eens terug leest en verifieert. Het resultaat van h2testw was in orde en de uiteindelijke schrijf snelheid kwam neer op een naar mijn idee respectabele 90MB/s (na ik meen iets van 13 uur continu schrijven).
Vervolgens heb ik de HDD voorzichtig verwijderd uit zijn behuizing en deze ingebouwd in mijn NAS/thuisserver. Maar vervolgens bleek, tot mijn verbazing, de performance extreem tegen te vallen. De HDD toevoegen aan mijn ZFS mirror bleek zo 9 uur in beslag te nemen voor maar 266GB aan data, dat komt dus neer op 8 á 9MB/s oftewel een factor 10 minder dan wat ik met h2testw haalde.
Maar aangezien de resilver was afgerond heb ik de HDD maar laten zitten er vanuit gaande dat alles wel goed zou komen en puur de resilver traag was. Maar je raad het al: ook dat was niet het geval. Het systeem werd er onstabiel van en blijkt met tijden en wijlen unresponsive. Zet ik deze HDD op offline draait de boel weer als een zonnetje.
In eerste instantie heb ik toen (week of twee terug) nog verschillende tests gedaan met het schrijven van een groot bestand (middels dd) naar de mirror en dit haalde IIRC maar iets van 60MB/s en met deze nieuwe schijf op offline haalde dat wel rond de 100MB/s. Dus ook in dit geval haalde deze HDD de performance omlaag, zij het niet zo extreem laag. Vervolgens heb ik de HDD weer uitgebouwd en via de USB interface getest met h2testw en dit liep wederom als een zonnetje en starte netjes met 130MB/s en uiteindelijk was de test ook weer afgerond met een gemiddelde snelheid van in de 90MB/s. HDD terug geplaatst in de NAS en weer een resilver gedaan, en performance was weer dramatisch (9 uur resilver en langzame writes met lockups als gevolg).
Vervolgens heb ik gisteren de HDD maar weer uitgebouwd en in mijn vaste PC ingebouwd om daarmee te testen via SATA (i.p.v. weer via de USB interface). Conclusie:
Onder Windows (met NTFS) met h2testw is de HDD snel (100GB schrijven met ongeveer 90MB/s);
Onder Linux op een ext4 filesystem is de HDD ook snel (getest met dd if=/dev/zero of=/mnt/test.img bs=1G count=100 oflag=dsync) en wederom een 90 tot 100MB/s
Onder Linux met ZFS is de HDD langzamer, maar niet zo extreem traag (60MB/s en dus ~30 tot 40MB/s langzamer dan Windows en ext4).
Vervolgens gisteravond de HDD weer terug geplaatst in mijn NAS om een resilver te doen en in het begin was deze hoopvol met 60MB/s en een resilver tijd van rond het uur. Maar je raad het al. Gaandeweg begon de snelheid steeds verder in te zakken en uiteindelijk was deze vanmorgen, na 9 uur en 10 minuten, afgerond.
Op basis van wat Google werk was ik nog het zpool iostat -vl <pool> <interval> commando tegen gekomen. Deze geeft dus IO statistieken voor een pool met een bepaald interval. Wat daarbij opvalt is dat er voor deze schijf vaak een "disk_wait - write" wordt gerapporteerd in seconden (variërend van 1s tot 9s) en een "total_wait - write" die gelijk, of nog hoger is (nu zal gelijk aan "disk_wait" waarschijnlijk komen doordat het in dit geval om een "total" gaat wat dus beïnvloed wordt door "disk_wait", maar soms nog 1, 2, 3 seconden hoger kan ik niet verklaren).
Nadat de resilver vanmorgen was afgerond waren de issues van een unresponsive systeem ook weer terug. En de oorzaak was hetzelfde: zpool iostat die een "disk_wait - write" rapporteert van in de seconden waar dat bij de andere schijf/schrijven in de microseconden is.
De hard- en software die ik gebruik is als volgt:
HDD: Zoals genoemd de Seagate Expansion Portable 5TB
Moederbord (en dus SATA controller): Gigabyte GA-H87-HD3
Besturingssysteem: Arch Linux met LTS kernel - 4.19.89
ZFS: ZoL versie 0.8.2 (uit de archzfs repository)
De andere PC waarop alles beter werkte heeft de volgende "afwijkingen":
Moederbord: Gigabyte GA-H170-D3HP
Besturingsssyteem: Arch Linux, maar met de normale Linux kernel: 5.2.X
Wie kan mij dus een duw in de juiste richting geven om verder te zoeken?
Uiteraard kan ik hardware volledig om bouwen om bv issues met het moederbord/SATA controller uit te sluiten maar daar gaat flink wat tijd in zitten en het geeft 0 garantie dat het daar aan ligt. Ook het upgraden naar de normale (niet LTS) Linux kernel doe ik liever niet, maar is in ieder geval een stuk makkelijker te realiseren.
Naar mijn idee zou een eerste stap in ieder geval zijn om een realistische test te doen met de andere PC. Alleen weet ik niet in hoeverre dat mogelijk is.
Andere, mogelijk nog betere test, is de volgende:
De mirror bestaat nu uit drie schijven: werkende, die met bad sectors die dus vervangen moet worden, en deze Seagate. Is het bv mogelijk om de Seagate weer te detachen, die met de bad sectors op offline te zetten, en vervolgens beide schijven te koppelen aan de andere PC, daar als (read only) te importeren en dan de Seagate toevoegen aan de "mirror". Dan kan ik op basis daarvan kijken of: 1. de snelheid dan wel in orde is; 2. als de resilver dan ook traag is eventueel op die PC ook een test doen met de Linux LTS kernel om potentiële isues daarin uit te sluiten. Dan hoef ik in ieder geval niet zo veel te "experimenteren" met mijn belangrijke NAS/thuisserver (waar Pi-Hole, Home Assistant, en... op draait).
Alvast bedankt