Kleiner Server mit 2 M.2-SSD als ZFS Raid 1

F.Niehus

New Member
Apr 17, 2025
2
0
1
Hi!

Ich habe einen Proxmox auf einem NUC laufen. Als Platten sind dort zwei Samsung M.2 SSD 990 PRO Heatsink 4TD als ZFS RAID-1 installiert.

Es laufen dort einige LXC-Container:

- Traefik
- piHole
- Nextcloud
- PaperlessNGX

Darüber hinaus sind noch ca. 10 LXC installiert, werden aber nur nach Bedarf gestartet.

Es läuft eine Windows 10 Workstation als KVM

Alle Guests haben keine signifikante I/O-Last auf den Platten, dennoch wurde auf den Platten mehr geschrieben, als gelesen.

Hier mal die Smartwerte der beiden Platten:

/dev/nvme0

Code:
=== START OF INFORMATION SECTION ===
Model Number:                       Samsung SSD 990 PRO with Heatsink 4TB
Serial Number:                      S7DSNJ0WB00361X
Firmware Version:                   4B2QJXD7
PCI Vendor/Subsystem ID:            0x144d
IEEE OUI Identifier:                0x002538
Total NVM Capacity:                 4,000,787,030,016 [4.00 TB]
Unallocated NVM Capacity:           0
Controller ID:                      1
NVMe Version:                       2.0
Number of Namespaces:               1
Namespace 1 Size/Capacity:          4,000,787,030,016 [4.00 TB]
Namespace 1 Utilization:            1,351,622,926,336 [1.35 TB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            002538 4b31409710
Local Time is:                      Thu Apr 17 10:58:13 2025 CEST
Firmware Updates (0x16):            3 Slots, no Reset required
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x0055):     Comp DS_Mngmt Sav/Sel_Feat Timestmp
Log Page Attributes (0x2f):         S/H_per_NS Cmd_Eff_Lg Ext_Get_Lg Telmtry_Lg *Other*
Maximum Data Transfer Size:         512 Pages
Warning  Comp. Temp. Threshold:     82 Celsius
Critical Comp. Temp. Threshold:     85 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     9.39W       -        -    0  0  0  0        0       0
 1 +     9.39W       -        -    1  1  1  1        0       0
 2 +     9.39W       -        -    2  2  2  2        0       0
 3 -   0.0400W       -        -    3  3  3  3     4200    2700
 4 -   0.0050W       -        -    4  4  4  4      500   21800

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        55 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    1%
Data Units Read:                    8,793,558 [4.50 TB]
Data Units Written:                 22,795,785 [11.6 TB]    => 0,007 TB/h
Host Read Commands:                 147,517,881
Host Write Commands:                266,633,527
Controller Busy Time:               1,454
Power Cycles:                       99
Power On Hours:                     1,642
Unsafe Shutdowns:                   34
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    8
Critical Comp. Temperature Time:    0
Temperature Sensor 1:               55 Celsius
Temperature Sensor 2:               57 Celsius
Thermal Temp. 1 Transition Count:   8
Thermal Temp. 2 Transition Count:   3
Thermal Temp. 1 Total Time:         517
Thermal Temp. 2 Total Time:         331

Error Information (NVMe Log 0x01, 16 of 64 entries)
No Errors Logged


/dev/nvme0

Code:
=== START OF INFORMATION SECTION ===
Model Number:                       Samsung SSD 990 PRO with Heatsink 4TB
Serial Number:                      S7DSNJ0WB00376V
Firmware Version:                   4B2QJXD7
PCI Vendor/Subsystem ID:            0x144d
IEEE OUI Identifier:                0x002538
Total NVM Capacity:                 4,000,787,030,016 [4.00 TB]
Unallocated NVM Capacity:           0
Controller ID:                      1
NVMe Version:                       2.0
Number of Namespaces:               1
Namespace 1 Size/Capacity:          4,000,787,030,016 [4.00 TB]
Namespace 1 Utilization:            1,649,532,100,608 [1.64 TB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            002538 4b3140971f
Local Time is:                      Thu Apr 17 10:56:20 2025 CEST
Firmware Updates (0x16):            3 Slots, no Reset required
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x0055):     Comp DS_Mngmt Sav/Sel_Feat Timestmp
Log Page Attributes (0x2f):         S/H_per_NS Cmd_Eff_Lg Ext_Get_Lg Telmtry_Lg *Other*
Maximum Data Transfer Size:         512 Pages
Warning  Comp. Temp. Threshold:     82 Celsius
Critical Comp. Temp. Threshold:     85 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     9.39W       -        -    0  0  0  0        0       0
 1 +     9.39W       -        -    1  1  1  1        0       0
 2 +     9.39W       -        -    2  2  2  2        0       0
 3 -   0.0400W       -        -    3  3  3  3     4200    2700
 4 -   0.0050W       -        -    4  4  4  4      500   21800

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        53 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    1%
Data Units Read:                    11,303,678 [5.78 TB]
Data Units Written:                 26,101,453 [13.3 TB]    => 0,007 TB/h
Host Read Commands:                 171,434,476
Host Write Commands:                422,378,150
Controller Busy Time:               1,664
Power Cycles:                       99
Power On Hours:                     1,805
Unsafe Shutdowns:                   32
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    900
Critical Comp. Temperature Time:    0
Temperature Sensor 1:               53 Celsius
Temperature Sensor 2:               54 Celsius
Thermal Temp. 1 Transition Count:   2
Thermal Temp. 2 Transition Count:   2
Thermal Temp. 1 Total Time:         41
Thermal Temp. 2 Total Time:         53987

Error Information (NVMe Log 0x01, 16 of 64 entries)
No Errors Logged


Auf meinem Notebook habe ich als Vergleich

Western Digital WD SN 740
Percentage used: 0%
839 Hours
Data Units Read: 75,3 TB
Data Units Written: 10,3 TB => 0,01 TB/h

Auf meiner Workstation

Samsung SSD 980 Pro
Percentage used: 0%
43 Hours
Data Units Read: 2,11 TB
Data Units Written: 2,30 TB => 0,05 TB/h

Samsung 990 Pro
Percentage used: 0%
950 Hours
Data Units Read: 1,64 TB
Data Units Written: 3,06 TB => 0,003 TB/h


Ich weiß ums Verrecken nicht, warum "Percentage used" auf dem Proxmox schon bei 1% liegt, während die übrigen Systeme selbst bei höherer Last (Notebook) noch bei 0%.

Die 990 Pro haben eine Endurance von 2400 TBW. Das im Zusammenhang mit den geschriebenen TB bei z.B. Platte 0 ergibt eine Nutzung von 0,48%

Aber die eigentliche Frage ist: Warum wird doppelt soviel gelesen wie geschrieben? Ich hätte eigentlich einen anderes Verhältnis - wesentlich stärker zugunsten der Leselast - erwartet, zumal die Schreiblast der VM und der LXC keine so hohe Schreiblast haben. Demnach muss das aller Logi nach vom Proxmox kommen.
 
Ist doch alles ganz normal. ZFS ist ein Enterprise Copy on Write Filesystem. Das macht eh mehr Writes. Du hast einen echten Hypervisor am laufen, welcher deutlich mehr Logs schreibt als ein Client OS. Außerdem cachen die Consumer SSDs mit SLC (Die TLC zellen werden nur mit 1 statt 3 Bit beschrieben für Perfformance) und dann werden die Daten wieder auf TLC umkopiert. Dafür ist 1% Usage doch noch gut.
 
Das was Falk R. meint.

Deine Platte hat eine 2400 TBW Limited Warranty.
Du kannst sie also nochmals 184 mal so lange einsetzten oder 38 Jahre.
So lange willst du die vermutlich nicht verwenden ;)

Mein Tipp fürs nächste mal, verwende zwei unterschiedliche Hersteller/Controller. Gab schon Samsung Serien die sich bei überhitzen statt gedrosselt abgeschaltet haben. Dann bist du froh, wenn du noch eine SSD von einem anderen Hersteller hast.
 
  • Like
Reactions: Johannes S
Danke erstmal für die Antworten. Mein Vorgänger-System habe ich auf eine M.2 - ebenfalls Consumer - 500GB als LVM-Storage mit EXT4 betrieben.

Da waren dieselben Maschinen drauf.

Smart zeigt mir nach 10755 Stunden eine Percentage used von 2%.

Gelesen wurden 90,1 TB, geschrieben wurden 17,9 TB - Das sind 5:1 bei LVM zugunsten der Leserate im Gegensatz zu 1:2,4 bei ZFS. Ist das wirklich als realistisch und üblich zu werten? Den Unterschied finde ich schon heftig.

Das Nachfolgesystem unterscheidet sich im übrigen ausschließlich im Storage und dem verbauten Prozessor. Beide Systeme wurden baremetal installiert und nicht durch Spielereien "optimiert".

Konsequenz aus dem, was Du geschrieben hast und der Erfahrung, die ich mit der LVM/EXT4-Konfiguration gemacht habe, müsste ich zurück auf LVM/EXT4 gehen.

Aktuell habe ich noch einen zweiten Proxmox für Spielereien, Tests und zum kaputtkonfigurieren. Der ist mit dem ersten zu einem Cluster verbunden, aber nur, um Maschinen, die ich aus der Testumgebung doch produktiv nehmen möchte, zu migrieren. HA und DRS sind nicht angedacht. Soll aber hier bei dem Problem keine Rolle spielen - es sei denn, dass alleine die Mitgliedschaft in einem Cluster ein massives Schreibverhalten verursacht.
 
Last edited:
Da waren dieselben Maschinen drauf.
ext ist nicht copy on write. Sync writes hast du bei ZFS halt doppelt.
Plus ist da noch die volblocksize, wenn du 4k in einer VM änderst, muss der gesamte 16k block neu geschrieben werden (und dann auch noch auf beiden disks).

die ich mit der LVM/EXT4-Konfiguration gemacht habe, müsste ich zurück auf LVM/EXT4 gehen.
Wieso? Weil dir die 38 Jahre Lebensdauer zu gering sind?
 
Konsequenz aus dem, was Du geschrieben hast und der Erfahrung, die ich mit der LVM/EXT4-Konfiguration gemacht habe, müsste ich zurück auf LVM/EXT4 gehen.

Kann man machen, aber dafür verliert man auch alle sonstigen Features von ZFS, siehe dazu auch @UdoB writeup:
 
  • Like
Reactions: UdoB
Noch ein Fakt den viele vergessen.
ZFS nutzt RAM als Cache und das auch sehr effektiv. Daher kommen dann auch deutlich reduzierte Reads. Writes reduzieren sich nie, werden eher mehr.