Hohes wearout bei BTRFS

Tamperold

Member
Jun 22, 2023
5
1
8
Hallo zusammen,

gleich vorne weg, ich bin kein IT-Admin, kein Proxmox oder Linux Profi.
Ich habe in meine Home Umgebung einen Proxmox Server laufen, kleine Kiste mit 64GB RAM (keine ECC) und einer i9-12900HK CPU.
Als Speicher kommen zwei 2 TB NVMEs im RAID1 mit BTRFS von Innovation IT mit folgenden Spec:

2 TB: bis zu 340K / 310K IOPS (4K-64 Thrd_AS SSD)
2 TB: 664 TBW
DRAM Cache: 2048 MB DDR3 Variante 2 TB

Dort laufen ein paar VMS und ein paar LXC Container.
Zu den LXC Container gehört eine MariaDB und eine InfluxDB.

Bei den VMS läuft:

Homeassistant
Debian Linux für Docker
Windows 11

Nun habe ich den Server nicht dauerhaft verfolgt, jedoch habe ich plötzlich einen weareout von 205%.
Dabei ist mir aufgefallen, dass ca. pro Woche 1-2% dazukommen.

Das Forum habe ich schon durchforstet, jedoch sind die meisten wearouts auf fehlerhafte SAMSUNG Firmware zurückzuführen oder alle Anleitungen zum abbremsen des wearouts auf ZFS basiert.

Ich bin etwas verzweifelt, ich habe keine Ahnung wie ich dagegen steuern kann?!
Klar sind die NVMEs keine Enterprise Platten, aber im Forum haben Leute Counsumerplatten ohne solch hohe wearouts (Teils 1-5% im Jahr).

Anbei das Ergebnis von iostat:
1752846303099.png

Ich würde mich um Hilfe freuen!

Vielen Dank!
 
Welche SSDs? Dass Consumer-SSDs schneller verschließen ist nicht ganz unerwartet, da ProxmoxVE eine vergleichsweise hohe Schreiblast durch Logging- und Metrikdaten hat. Darum verwenden viele Leute gerne gebrauchte Enterpriae-SSDs mit power-loss-protection, die halten im Regelfall deutlich länger als brandneue Consumer-SSDs
 
Danke für deine Hilfe.
Habe iotop laufen lassen und schon gesehen, dass mein rclone Backup scheinbar das Lesen vom Speicher enorm hochtreibt. Das rclone soll meine Nextcloud Daten sowie mein Bitwarden separat alle 5 Sec auf ein Netzwerkspeicher schieben. Dabei geht er alle Daten nochmal durch. Da sollte ich nochmal die rclone Parameter checken, um Dauerhaftes abgleichen von vorhandenen Daten zu unterlassen und nur neue Daten kopieren.

Anbei die Read und Write Screenshots (vllt entdeckst du noch etwas Seltsames).
Außerdem noch die Ausgabe von smartctl -A /dev/nvme

root@pve:~# smartctl -A /dev/nvme0n1
smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.8.12-11-pve] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF SMART DATA SECTION ===
SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x04
Temperature: 48 Celsius
Available Spare: 100%
Available Spare Threshold: 10%
Percentage Used: 206%
Data Units Read: 824,521,558 [422 TB]
Data Units Written: 444,143,884 [227 TB]
Host Read Commands: 8,602,602,531
Host Write Commands: 8,295,970,379
Controller Busy Time: 611,157
Power Cycles: 98
Power On Hours: 1,807
Unsafe Shutdowns: 36
Media and Data Integrity Errors: 0
Error Information Log Entries: 0
Warning Comp. Temperature Time: 0
Critical Comp. Temperature Time: 0
Temperature Sensor 2: 48 Celsius
Temperature Sensor 3: 56 Celsius
Temperature Sensor 4: 48 Celsius
Temperature Sensor 5: 48 Celsius
Temperature Sensor 6: 40 Celsius
Thermal Temp. 1 Transition Count: 44
Thermal Temp. 2 Transition Count: 25
Thermal Temp. 1 Total Time: 3300
Thermal Temp. 2 Total Time: 1189

____________________________________________________________________________
root@pve:~# smartctl -A /dev/nvme1n1
smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.8.12-11-pve] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF SMART DATA SECTION ===
SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x04
Temperature: 46 Celsius
Available Spare: 100%
Available Spare Threshold: 10%
Percentage Used: 205%
Data Units Read: 699,669,708 [358 TB]
Data Units Written: 444,148,282 [227 TB]
Host Read Commands: 7,616,312,048
Host Write Commands: 8,302,048,320
Controller Busy Time: 609,532
Power Cycles: 98
Power On Hours: 1,782
Unsafe Shutdowns: 32
Media and Data Integrity Errors: 0
Error Information Log Entries: 0
Warning Comp. Temperature Time: 0
Critical Comp. Temperature Time: 0
Temperature Sensor 2: 46 Celsius
Temperature Sensor 3: 50 Celsius
Temperature Sensor 4: 46 Celsius
Temperature Sensor 5: 46 Celsius
Temperature Sensor 6: 37 Celsius
Thermal Temp. 1 Transition Count: 31
Thermal Temp. 2 Transition Count: 1
Thermal Temp. 1 Total Time: 991
Thermal Temp. 2 Total Time: 65
 

Attachments

  • Read.jpg
    Read.jpg
    1.1 MB · Views: 6
  • Write.jpg
    Write.jpg
    1.2 MB · Views: 6
Welche SSDs? Dass Consumer-SSDs schneller verschließen ist nicht ganz unerwartet, da ProxmoxVE eine vergleichsweise hohe Schreiblast durch Logging- und Metrikdaten hat. Darum verwenden viele Leute gerne gebrauchte Enterpriae-SSDs mit power-loss-protection, die halten im Regelfall deutlich länger als brandneue Consumer-SSDs

Ich habe hier die 2TB verbaut:
https://www.innovationit.de/produkt-innovation-it-performance-2tb/

Das mit gebrauchten wäre was, aber ich brauche den Formfaktor NVME oder muss über USB externe SSD hängen.
Der Rechner ist nur so ein China Cube Rechner (Modell müsste ich nochmal heraussuchen).
 

In dem Formfaktor gibt es leider kaum Enterprise-SSDs ( und wenn dann auch gebraucht viel zu teuer). Hast du keinen SATA-Port? Das wäre die beste Lösung, USB ist von der Zuverlässigkeit leider nicht so geil. Ich erinnere mich, dass hier Leute Empfehlungen für bessere Consumer-M.2 SSDs hatten, vielleicht meldet sich dazu noch jemand.


Grundsätzlich hast du mit den Mirror aber schon eine gute Maßnahme getroffen ( wobei ich ZFS genommen hätte, da BTRFS-Support in ProxmoxVE noch experimentell ist), da du damit leichter eine ausgefallene SSD ersetzen kannst.


Ich habe bei meinen Lenovo Mini-PCs auch das Problem, dass ich nur eine SATA-Platte eingebaut kriege, dafür nehme ich eine gebrauchte Enterprise-SSD. Die ist in einen Mirror mit einer M.2 SSD, die ich dann halt öfter ersetzen muss. Um es unwahrscheinlicher zu machen, dass beide gleichzeitig ausfallen, könntest du die Midelle mischen ( z.B. eine durch die eines anderen Herstellers ) tauschen.
 
Last edited:
Dieses Fabrikat dürfte wohl niemand kennen, aber unterstellen wir mal einem Unternehmen aus dem Wortmann-AG-Imperium eine gewisse Qualität. Ich habe auch einen Rechner mit Sandisk Ultra 3D im ZFS und habe keine Probleme.
 
Die SMART Werte (große Diskrepanz zwischen used und spare) sind ziemlich seltsam aber du hast in etwa ein Drittel (227 von 664) der TBW aufgebraucht.
Vielleicht auch mal nvme smart-log /dev/nvme... probieren. Wenn du in iotop-c c drückst, oder halt eben mit dem c argument startest, solltest du den ganzen Befehl inklusive VM ID sehen können. Du kannst das gleiche dann in der VM die so viel schreibt ebenfalls testen. Wie lange lief iotop-c?
 
Last edited:
  • Like
Reactions: Johannes S
Der iotop-c lief ca. 15 Minuten.
Ich habe es jetzt 3x für 5 Minuten laufen lassen und komme immer auf 600-700 MB write.
Read hingegen ist sehr gering, nachdem ich mein rclone deaktiviert habe.
Der höchste Wert bleibt beim Task btrfs-transaction und in jeder VM oder Container der Task btrfs-endio-write.

Mich würde es interessieren, ob das ein btrfs Thema ist oder ob da zfs ähnliche Tasks hat.

Ich habe den Mount von btrfs nun auf noatime und nodiscard gesetzt. Somit wurde der write etwas geringer.

Außerdem werde ich eine NVME mit einer neue WD Blue tauschen, die zweite NVME wird noch die alte bleiben um das RAID aufrecht zu halten bis ich herausgefunden habe, woher der wearout herkommt.

Der Befehl nvme smart-log /dev/nvme bringt die gleiche Info wie ob heraus.

Für SATA Platen ist leider kein Platz, habe nur 2x NVME Plätze, leider.

Meine eher passiven Daten werde ich jetzt auf eine SATA per USB auslagern, da ich die nicht immer brauche.
DB und Webhosts bleiben hingegen auf dem RAID.

Zusätzlich habe ich auch noch überlegt, alles auf ZFS zu switchen. Das ist natürlich ein enormer Aufwand, aber besser als der enorme verschleiß (zumindest wenn es an BTRFS liegt)
 
Naja ZFS und btrfs sind beides copy-on-write-Dateisyateme, die nehmen sich da nichts, haben aber dafür halt auch Features, die andere Dateisysteme nicht haben. Und die ProxmoxVE-Dienste schreiben ihre Logging- und Metrikdaten ja immer, auch bei xfs oder ext4
 
Last edited:
  • Like
Reactions: Tamperold and UdoB
Kann ich dann die Meta- und Loggingdaten außerhalb schreiben lassen?
Eine einfache SSD per USB weitaus billiger und als Enterprise besser zu bekommen.

Das Copy-on-write habe ich auch gerade gelesen bei der weiteren Recherche.

Vielleicht sollte ich mein komplettes Setup nochmal überdenken und den Nutzen hinterfragen.
Wie zb. ein einfaches Linux mit Docker darauf und alle Dienste dort laufen lassen im ext4 in der Hoffnung, dass die Hardware nicht so schnell verbrannt wird.
 
  • Like
Reactions: Johannes S
Kann ich dann die Meta- und Loggingdaten außerhalb schreiben lassen?

Naja, man könnte die Daten natürlich auf eine RAM-Disc ( etwa mit log2ram) oder einen externen Speicher ( ob im Netz oder per USB) schreiben lassen, damit verlässt man dann halt den Bereich, der offiziel supported ist. Aber gehen tut es, dank des Debian-Unterbaus ;)

Wenn man keinen Cluster betreibt, kann man einige ( nicht alle!) Dienste auch abschalten, das ist aber auch nicht supported. Funktioniert trotzdem für viele, pick your poison :)


Eine einfache SSD per USB weitaus billiger und als Enterprise besser zu bekommen.

Depends, ich habe gerade bei Ebay gebrauchte Enterprise-SSDs geschoßen für 40 Euro für 480 GB und knapp 100 Euro für 960 GB. Dazu passende gebrauchte Mini-PCs finden sich auch für wenig Geld.
Wie zb. ein einfaches Linux mit Docker darauf und alle Dienste dort laufen lassen im ext4 in der Hoffnung, dass die Hardware nicht so schnell verbrannt wird.
Das wäre eine Alternative oder schauen ob Incus ( verwaltet auch VMs und lxcs, kann man bei den meisten Distributionen oben drauf installieren, bei TrueNAS ist es ab Version 25 integriert) weniger schreibt. Eine andere Variante wäre ein NAS OS mit VM und Docker-Support ( wie UnRAID, TrueNAS oder OpenMediaVault).


Was du dir halt klar machen mußt: Was willst du überhaupt erreichen und welche Features sind dir wichtig? Je nachdem können die Nachteile einer Alternative durch die Vorteile ausgeglichen werden, oder auch nicht. Ich habe auch schon nachgedacht auf meinen hauptsächlich als NAS genutzten Knoten statt ProxmoxVE mit TrueNAS-VM direkt TrueNAS drauf zu packen ( bessere Performance, weniger potentielle Probleme), aber am Ende war es mir die Nachteile durch fehlende Features nicht wert.
 
Last edited:
  • Like
Reactions: UdoB
Also mit noatime abschalten hast du schon etwas richtig gemacht. Aber wie gesagt der Overhead ist nicht ganz so groß wie bei ZFS aber trotzdem deutlich höher als z.B. ext4.
P.S. Mit WD Blue wirst du auf Dauer auch nicht glücklich (spreche aus Erfahrung).
Ich habe mir vor einigen Monaten mal einen Schwung 800GB Enterprise SSDs für je 74€ geschossen. Wenn du keine Eile hast, einfach Preise beobachten und wenn irgendwo ein Schnäppchen kommt, direkt zuschlagen.
 
  • Like
Reactions: Johannes S