OPNsense | SSD Wareout bei 60%

pscriptos

Cadet 4th Year
Registriert
Aug. 2013
Beiträge
90
Hallo zusammen,

ich bin gestern Nacht zufällig über die SMART Werte meiner SSD, welche in meinem OPNsense läuft, gestolpert.
Dabei hab ich gesehen, dass die SSD bereits 60% Lebensdauer hinter sicht hat.

Das hat mich sehr erschrocken, weil die Firewall erst seit September 2023 läuft, also gerade mal eineinhalb Jahre.

Bash:
sudo smartctl -x /dev/ada0
gibt mir u.a. folgendes zurück:

Bash:
Device Statistics (GP Log 0x04)
Page  Offset Size        Value Flags Description
0x01  =====  =               =  ===  == General Statistics (rev 1) ==
0x01  0x008  4              96  ---  Lifetime Power-On Resets
0x01  0x010  4           13607  ---  Power-on Hours
0x01  0x018  6      3394924857  ---  Logical Sectors Written
0x01  0x020  6      3351977089  ---  Number of Write Commands
0x01  0x028  6      2367917962  ---  Logical Sectors Read
0x01  0x030  6       122890582  ---  Number of Read Commands
0x07  =====  =               =  ===  == Solid State Device Statistics (rev 1) ==
0x07  0x008  1              60  ---  Percentage Used Endurance Indicator
                                |||_ C monitored condition met
                                ||__ D supports DSN
                                |___ N normalized value

Woher kommt die so heftige Abnutzung der SSD?

Ich habe heute gesehen, dass man das Logging auch in den RAM verschieben kann. Die Funktion kannte ich noch nicht.
Weiterhin führe ich auf der OPNsense ntopng und vnstat aus.
Ich weiss nicht, wie das ggf. mit rein spielt.

Ich bin jetzt nicht ganz unerfahren, allerdings gerade ein wenig verunsichert.

Danke und Grüße.
 
Welche SSD ist da genau verbaut?
 
@oicfar Ich hab die Firewall damals in China gekauft. Die SSD war bereits verbaut.

Bash:
=== START OF INFORMATION SECTION ===
Device Model:     BR 256GB
Firmware Version: W0110A0
User Capacity:    256,060,514,304 bytes [256 GB]
 
Falsche SSD würde ich sagen. Und die kleinen (256GB) nutzen sich schneller ab.

Meine Samsung SSD 860 EVO 1TB seit Januar 2021 in 24/7 Betrieb:
Code:
Page  Offset Size        Value Flags Description
0x01  =====  =               =  ===  == General Statistics (rev 1) ==
0x01  0x008  4              80  ---  Lifetime Power-On Resets
0x01  0x010  4           35456  ---  Power-on Hours
0x01  0x018  6     68930568595  ---  Logical Sectors Written
0x01  0x020  6      1190158819  ---  Number of Write Commands
0x01  0x028  6    120278052015  ---  Logical Sectors Read
0x01  0x030  6      1269452107  ---  Number of Read Commands
0x01  0x038  6         2558000  ---  Date and Time TimeStamp
0x04  =====  =               =  ===  == General Errors Statistics (rev 1) ==
0x04  0x008  4               0  ---  Number of Reported Uncorrectable Errors
0x07  =====  =               =  ===  == Solid State Device Statistics (rev 1) ==
0x07  0x008  1               9  N--  Percentage Used Endurance Indicator
                                |||_ C monitored condition met
                                ||__ D supports DSN
                                |___ N normalized value

Die Abnutzung wäre vielleicht schon bei 14-16%. In den letzten 2 Jahren habe ich paar Sachen umgestellt.
 
ist da nicht das exzessive logfiles schreiben/lesen ein thema?
würde ggf. das logfilegedöhns auslagern, hab zwar keine opensen am laufen aber andere system mit viel logging und hab mir dafür ne kleine optane ssd verbaut de futtert IOPs ohne ende.
 
Ich gehe davon aus, dass der erste Schritt wäre, eine neue, vernünftige SSD zu kaufen und diese dann von der jetzt noch laufenden SSD zu klonen, um möglichen Ausfall zu vermeiden.

Nun noch die Frage, wie ich das System optimieren kann, damit die Schreiblast weniger wird?
Weiterhin würde mich interessieren, wie ihr eure SSD in der Firewall monitort? Ich habe ein Monitoring im Netz. Damit Monitore ich die Firewall per SNMP. Aber das reicht nicht, sonst hätte ich schon früher gewusst, wie es um die SSD aktuell steht.

Was sagt ihr?
 
Wenn ich mich nicht irre ist ein logischer Sektor 512 Bytes...

Bei 3394924857 Logical Sectors Written * 512 Bytes = 1.738.201.526.784 => 1738,2 Gigabytes => 1,74 TB
... ich glaube, die verbaute SSD war kein sonderlich gutes Modell.

Wobei das natürlich 4K Sektoren mit 512 Byte Emulation sein könnte, das wären dann ~13TB Written. Auch kein gutes Ergebnis.

pscriptos schrieb:
Nun noch die Frage, wie ich das System optimieren kann, damit die Schreiblast weniger wird?
Naja, der überwiegende Anteil der Writes werden Logs sein... die kannst du deaktivieren, aber das ist nicht wirklich in deinem Interesse.

Eher würde ich eine passende SSD kaufen. Entweder wie airwave sagte eine kleine Optane kaufen (auch gebraucht teuer) oder eher eine besser für den Einsatzzweck passende SSD kaufen.

Eine SSD wie die Western Digital Red SN700 - 1DWPD 500GB sollte den Belastungen signifikant besser standhalten als deine bestehende SSD ohne exorbitant viel zu kosten.
 
Rickmer schrieb:
Genau diese SSD nutze ich seit gut einer Woche bei mir im Proxmox Host.

Leider habe ich in meiner OPNsense aktuell eine mSATA verbaut.

Bash:
=== START OF INFORMATION SECTION ===
Device Model:     BR 256GB
Serial Number:    GV230821YC00000026
Firmware Version: W0110A0
User Capacity:    256,060,514,304 bytes [256 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      mSATA
TRIM Command:     Available
Device is:        Not in smartctl database 7.3/5528
ATA Version is:   ACS-2 T13/2015-D revision 3
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Sat Mar 29 13:45:49 2025 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM feature is:   Unavailable
APM level is:     254 (maximum performance)
Rd look-ahead is: Enabled
Write cache is:   Enabled
DSN feature is:   Unavailable
ATA Security is:  Disabled, frozen [SEC2]
Wt Cache Reorder: Unavailable

Da wirds gleich richtig teuer.
Oder ich guck mich auf lange Sicht nach anderer Hardware um. Wär vermutlich günstiger.

Kann ich mit der Einstellung, die ich heute erst gesetzt habe, mal das meiste abfangen?

1743255326082.png
 
pscriptos schrieb:
Leider habe ich in meiner OPNsense aktuell eine mSATA verbaut.
Am besten mal nachschauen, ob das Gerät wirklich nur SATA kann, oder ob das auch PCIe unterstützt
 
Sieht aktuell nicht so aus. Hab das Dingen noch nicht auf gehabt, müsste ich vermutlich mal nachholen.

Ich darf hier keine Links zu der chinesischen Seite posten, wo ich die FW gekauft habe, richtig?
 
hab meinen IPFire auch mal gerade gecheckt:

0x07 0x008 1 22 --- Percentage Used Endurance Indicator

gleichzeitig zeigt

233 Media_Wearout_Indicator -O--CK 080 080 000 - 0

Intel 530 mSATA 120GB - 48163h Power On, also rund 5,5 Jahre

beide Werte passen irgendwie nicht zueinander...

da ich eher dem Media_Wearout_Indicator glaube mache ich da keinerlei Gedanken
 
OK, ich mach mir jetzt mal nicht so viele Hoffnungen.

1743256333055.png


1743256356978.png


Naja, ich mach mir mal Gedanken.
 
pscriptos schrieb:
Ich darf hier keine Links zu der chinesischen Seite posten, wo ich die FW gekauft habe, richtig?
Nein. Nicht richtig.
Kannst ruhig posten den Link.
 
@andy_m4 Danke für deinen Hinweis. In dem Thread habe ich gelesen, bevor ich meinen hier eröffnet habe.
Daher habe ich auch den Tip mit dem Auslagern der Logs in /var/log auf die RAM Disk.
 
Verstehe gar nicht, was OPNSense da rumschreibt. SSD des IPFire (Webproxy+Logging/IPS aktiv) in der Firma hat 77% Wearout, also 23% Used Endurance. Der läuft jetzt seit 6.5 Jahren durch und da läuft noch ne kleine Windows Server Core-VM drauf.
 
Ich muss zugeben, ich hab damit noch keine Berührungspunkte gehabt.
Habe gelesen, dass das im Standard out-of-the-Box funktionieren soll.

Bash:
[root@fw01 ~]# tunefs -p /
tunefs: POSIX.1e ACLs: (-a)                                disabled
tunefs: NFSv4 ACLs: (-N)                                   disabled
tunefs: MAC multilabel: (-l)                               disabled
tunefs: soft updates: (-n)                                 enabled
tunefs: soft update journaling: (-j)                       enabled
tunefs: gjournal: (-J)                                     disabled
tunefs: trim: (-t)                                         enabled
tunefs: maximum blocks per file in a cylinder group: (-e)  4096
tunefs: average file size: (-f)                            16384
tunefs: average number of files in a directory: (-s)       64
tunefs: minimum percentage of free space: (-m)             8%
tunefs: space to hold for metadata blocks: (-k)            6400
tunefs: optimization preference: (-o)                      time
tunefs: volume label: (-L)

Wie nutze ich es denn?
 
Code:
sudo tune2fs -l /dev/sdxy | grep -i write
 
Zurück
Oben