Geht nicht nur um die TBW alleine sondern auch um die Write Amplification und die Powerloss Protection. Die MTE220S hat wohl auch keine Powerloss Protection (wie fast alle M.2 SSDs im übrigen), kann also keine Sync Writes cachen und wird dementsprechend vermutlich eine ziemlich schlechte Write Amplification haben.
Einmal sind 2.2 PB bei 1TB Kapazität auch nicht so viel wenn man es mit Enterpise SSDs vergleicht. Für um die 120€ bekommst du z.B. auch gebrauchte Enterpise (SATA-)SSDs mit 1TB Kapazität sowie MLC Flash und die können dann 21 PB schreiben mit nur einer Write Amplification von rund Faktor 2. Schreiben kann man dann also echte 10,5 PB an Daten.
Keine Ahnung was die A2000 oder MTE220S für eine Write Amplification haben, aber wenn das z.B. Faktor 20 bei kleinen 8K Sync Writes sein sollte, dann sind die 600TB/2200TB TBW schon nach dem Schreiben von 30TB/110TB an echten Daten erreicht.
Leider gibt es keine Möglichkeit vor dem Kauf herauszufinden, wie hoch da die Write Amplification ungefähr sein würde (außer man findet Benchmarks wo das mal jemand extra getestet hat). Aber generell sollte man bei Consumer SSDs keine gute Write Amplification erwarten. Erst recht nicht, wenn kein Kondensator für die Powerloss Protection verbaut ist.
Daher kann man da leider auch schlecht einen Rat geben wieviel "TBW" man denn braucht.
Ich würde da zu einer Enterprise SSD raten und wenn man sich keine neue leisten kann und keine gebrauchte haben möchte, dann sollte man die Consumer SSDs wenigstens mal eine Woche lang mit Sync Writes testen (z.B. ZFS auf "sync=always" stellen oder ein paar Anwendungen mit MySQL Datenbanken in den VMs laufen lassen), per smartctl die SMART-Werte auslesen und die Write Amplification sowie die echten Writes des NAND-Flashs pro Tag ausrechnen. Dann kann man schön ausrechnen, ob die SSD schon nach ein paar Monaten kaputt sein würden (wäre bei meinen M.2 Samsung Evos z.B. der Fall gewesen) oder ob die ein paar Jahre halten könnten. Wenn das garnicht passt kann man die SSDs in den ersten 2 Wochen wenigstens noch zurückschicken und auf eine Enterprise SSD sparen.
Ich schreibe mit Enterprise SSDs, ZFS und ziemlich vielen Sync Writes gerade um die 20MB/s, also grob 630 TB pro Jahr (inkl. Write Amplification und Overhead). Und das sind nur 7 VMs die bei mir im privaten Homelab daheim laufen und die meiste Zeit nichts zu tun haben. So 90% der Writes sind eigentlich nur die Logs und Metrics die von Zabbix und Graylog in eine MySQL/ElasticSearch/MongoDB Datenbank geschrieben werden (also kleine Sync Writes).
Das kann also schnell ziemlich extrem werden mit SSDs, wenn man den Overhead und die Write Amplification nicht beachtet. Daher immer schön testen solange man die noch zurückgeben kann.
Mein 5x 200GB raidz1 Pool (120€) hat aber eine TBW von 21PB, weshalb das selbst bei 630 TB pro Jahr um die 33 Jahre halten sollte.
Wenn man dann noch die viel höhere Write Amplification von Consumer SSDs in betracht zieht die zusätzlich hinzukommen, würde die A2000 also bei mir nur wenige Monate halten und die MTE220S wäre dann vielleicht nach einem Jahr kaputt geschrieben.
Edit:
Mal zum Verdeutlichen was ich mit Write Amplification und Overhead meine anhand meines Servers:
1.) Alle VMs zusammen schreiben 0,25 MB/s an echten Daten im Leerlauf
2.) In der VM läuft ext4 als Dateisystem, was ein Journaling-Dateisystem ist und alles erst einmal ins Journal schreibt und später vom Journal richtig auf die Laufwerke. Hier gibt es also einen Overhead von Faktor 2 und die 0.25MB/s werden zu 0.5MB/s.
3.) Dann ist die ext4 Platte in der VM ja nur virtuell und beim Weg von der virtuellen Festplatte zum physikalischen ZFS pool gibt es noch einmal etwa ein Overhead von Faktor 10. Die 0.5MB/s, die auf die virtuelle Festplatte geschrieben werden sollen, die werden dann zu 5MB/s, die auf den ZFS pool geschrieben werden müssen. ZFS muss die Blocksize halt anpassen, erstellt extra Daten für die Parität, erstellt Prüfsummen und andere Matadaten. Das wächst dann nochmal ziemlich gut an.
4.) Sync Writes werden bei ZFS auch zuerst in das ZIL Journal geschrieben und von da aus dann auf die SSD. Da ich kein SLOG habe und das ZIL daher auf der selben SSD ist gibt es also noch einmal ein Overhead von Faktor 2 und die 5MB/s werden zu 10MB/s.
5.) Dann muss die SSD diese 10MB/s auch noch speichern und da habe ich eine Write Amplification von rund Faktor 2. Die 10MB/s werden also zu 20MB/s die wirklich auf den NAND Flash auf den SSDs geschrieben werden.
Eigentlich will ich nur 0,25MB/s Logs/Metrics schreiben aber durch den Overhead und die Write Amplification werden die 0,25MB/s an echten Daten zu 20MB/s die auf die SSDs geschrieben werden müssen. Die TBW werden also 80x schneller erreicht als man es denken würde, wenn man einfach nur anguckt was da die VMs an Daten schreiben.
Hätte ich da eine Consumer SSD die z.B. eine Write Amplification von Faktor 20 statt 2 hätte, dann würde es richtig übel werden. Die 0,25MB/s an echten Daten würden dann wegen dem Overhead zu 10 MB/s und die 10 MB/s dann durch die Write Amplification zu 200 MB/s. 200 MB/s rund um die Uhr, nur um ein paar Logs und Metrics zu speichern wären echt übel und würde die SSDs im Null-Komma-Nichts killen.
Und ja, das ist schon verdammt viel Overhead, aber ich hab schon alles so gut optimiert wie ich es konnte:
-atime wurde überall deaktiviert
-Temporäre Daten gehen direkt in die RAM-Disk
-zraidz1 statt mirrored stripe weil das Writes sparen sollte
-volblocksize der zvols wurde für den pool optimiert
-ashift des pools sollte passen
-alle Partitionen sind ausgerichtet
-alle Datenbanken cachen und wurden optimiert
-cache mode richtig gewählt
Wüsste nicht was ich da jetzt hätte besser machen sollen um den Overhead zu reduzieren.
Das ist mit der Virtualisierung und ZFS ist halt noch einmal etwas ganz anderes als man das z.B. beim normalen Windows Gaming-/Arbeits-PC hat. Hier im Server würden die Consumer SSD wie Samsung Evos nur Wochen oder Monate halten und wenn ich die in den GamingPC stecken würde, der eigentlich viel mehr schreibt, dann wären die erst nach Jahrzehnten kaputt. Da darf man also nicht auf die SSD-Abnutzung im normalen PC gucken und dann hochrechnen, was man wohl für einen Server so brauchen würde. Das ist halt überhaupt nicht vergleichbar.
Edit:
HDDs hatte ich übrigens auch versucht um das nervige Abnutzen der SSD durch Writes zu umgehen.
Klappe aber nicht, da sich durch den Overhead nicht nur die Menge an Daten vervielfacht hat, sondern auch die Zugriffe pro Sekunde. Am Ende waren das dann einige Hundert IOPS und damit waren die HDDs dann durch die vielen kleinen Schreibvorgänge hoffnungslos überfordert und die Latenz war viel zu hoch.
Da bin ich dann von Consumer M.2 SSD über NAS HDDs zu Enterprise SATA SSDs gekommen.
Ich hab 5x Intel S3710 200GB als Raid5 für zusammen rund 165€ gekauft. Die haben jeweils laut Datenblatt:
Also je SSD 3600 TBW und in der Summe dann 18 PB und nicht 21 PB. Bin ich wohl durcheinander gekommen und hatte noch die TBW meiner Systemplatten (2x Intel S3700 100GB mit je 1800 TBW) mit im Kopf. Zusammen wären dann alle meine 7 SSDs grob 21 PB als TBW.Bewertung der Ausdauer (lebenslange Schreibzugriffe)
3.6PB
Mittlere Betriebsdauer bis zum Ausfall (MTBF)
2,000,000 hrs
Uncorrectable Bit Error Rate (UBER, nicht korrigierbare Bitfehlerrate)
10^17
Garantiezeit
5 yrs
Danke für die Erläuterung! Das war sehr hilfreich! Ich hatte bisher nur die Intel S35er Serie auf dem Schirm. bin da bzgl. solcher Fragestellungen noch nicht so firm. Die S37er Serie sieht wirklich interessant aus!Ich hab 5x Intel S3710 200GB als Raid5 für zusammen rund 165€ gekauft. Die haben jeweils laut Datenblatt:
Also je SSD 3600 TBW und in der Summe dann 18 PB und nicht 21 PB. Bin ich wohl durcheinander gekommen und hatte noch die TBW meiner Systemplatten (2x Intel S3700 100GB mit je 1800 TBW) mit im Kopf. Zusammen wären dann alle meine 7 SSDs grob 21 PB als TBW.
Bei den 125€ je TB hatte ich mit Intel DC S3710 400GB gerechnet. Da hatte ich mir 3 Stück für je 50€ für mein NAS gekauft. Also 150€ für 1200GB, was dann 125€ pro TB entspricht. So eine S3700/S3710 mit 400GB hätte 7200 TBW.
INFO: starting new backup job: vzdump --mailnotification failure --mode snapshot --quiet 1 --node ve --mailto f.plaimauer@gmail.com --exclude 101 --storage nas-backup --all 1 --compress zstd
INFO: Starting Backup of VM 100 (lxc)
INFO: Backup started at 2020-11-05 16:31:24
INFO: status = running
INFO: CT Name: ReverseProxy
INFO: including mount point rootfs ('/') in backup
INFO: backup mode: snapshot
INFO: ionice priority: 7
INFO: create storage snapshot 'vzdump'
INFO: creating vzdump archive '/mnt/pve/nas-backup/dump/vzdump-lxc-100-2020_11_05-16_31_24.tar.zst'
INFO: tar: /mnt/pve/nas-backup/dump/vzdump-lxc-100-2020_11_05-16_31_24.tmp: Cannot open: Permission denied
INFO: tar: Error is not recoverable: exiting now
INFO: remove vzdump snapshot
ERROR: Backup of VM 100 failed - command 'set -o pipefail && lxc-usernsexec -m u:0:100000:65536 -m g:0:100000:65536 -- tar cpf - --totals --one-file-system -p --sparse --numeric-owner --acls --xattrs '--xattrs-include=user.*' '--xattrs-include=security.capability' '--warning=no-file-ignored' '--warning=no-xattr-write' --one-file-system '--warning=no-file-ignored' '--directory=/mnt/pve/nas-backup/dump/vzdump-lxc-100-2020_11_05-16_31_24.tmp' ./etc/vzdump/pct.conf ./etc/vzdump/pct.fw '--directory=/mnt/vzsnap0' --no-anchored '--exclude=lost+found' --anchored '--exclude=./tmp/?*' '--exclude=./var/tmp/?*' '--exclude=./var/run/?*.pid' ./ | zstd --rsyncable '--threads=1' >/mnt/pve/nas-backup/dump/vzdump-lxc-100-2020_11_05-16_31_24.tar.dat' failed: exit code 2
INFO: Failed at 2020-11-05 16:31:24
INFO: Starting Backup of VM 102 (lxc)
INFO: Backup started at 2020-11-05 16:31:24
INFO: status = stopped
INFO: backup mode: stop
INFO: ionice priority: 7
INFO: CT Name: NextCloud
INFO: including mount point rootfs ('/') in backup
INFO: creating vzdump archive '/mnt/pve/nas-backup/dump/vzdump-lxc-102-2020_11_05-16_31_24.tar.zst'
INFO: tar: /mnt/pve/nas-backup/dump/vzdump-lxc-102-2020_11_05-16_31_24.tmp: Cannot open: Permission denied
INFO: tar: Error is not recoverable: exiting now
ERROR: Backup of VM 102 failed - command 'set -o pipefail && lxc-usernsexec -m u:0:100000:65536 -m g:0:100000:65536 -- tar cpf - --totals --one-file-system -p --sparse --numeric-owner --acls --xattrs '--xattrs-include=user.*' '--xattrs-include=security.capability' '--warning=no-file-ignored' '--warning=no-xattr-write' --one-file-system '--warning=no-file-ignored' '--directory=/mnt/pve/nas-backup/dump/vzdump-lxc-102-2020_11_05-16_31_24.tmp' ./etc/vzdump/pct.conf ./etc/vzdump/pct.fw '--directory=/mnt/vzsnap0' --no-anchored '--exclude=lost+found' --anchored '--exclude=./tmp/?*' '--exclude=./var/tmp/?*' '--exclude=./var/run/?*.pid' ./ | zstd --rsyncable '--threads=1' >/mnt/pve/nas-backup/dump/vzdump-lxc-102-2020_11_05-16_31_24.tar.dat' failed: exit code 2
INFO: Failed at 2020-11-05 16:31:24
INFO: Starting Backup of VM 103 (qemu)
INFO: Backup started at 2020-11-05 16:31:24
INFO: status = stopped
INFO: backup mode: stop
INFO: ionice priority: 7
INFO: VM Name: FHEM
INFO: include disk 'scsi0' 'local-zfs:vm-103-disk-0' 32G
INFO: snapshots found (not included into backup)
INFO: creating vzdump archive '/mnt/pve/nas-backup/dump/vzdump-qemu-103-2020_11_05-16_31_24.vma.zst'
INFO: starting kvm to execute backup task
INFO: started backup task '2b64f932-a2e5-4b7b-8432-9cffd6baeaea'
INFO: 1% (442.2 MiB of 32.0 GiB) in 3s, read: 147.4 MiB/s, write: 86.7 MiB/s
------- AUSGESCHNITTENER TEIL -------
INFO: 97% (31.3 GiB of 32.0 GiB) in 1m 23s, read: 532.4 MiB/s, write: 92.0 KiB/s
INFO: 100% (32.0 GiB of 32.0 GiB) in 1m 25s, read: 383.7 MiB/s, write: 0 B/s
INFO: backup is sparse: 29.57 GiB (92%) total zero data
INFO: transferred 32.00 GiB in 85 seconds (385.5 MiB/s)
INFO: stopping kvm after backup task
INFO: archive file size: 836MB
INFO: Finished Backup of VM 103 (00:01:28)
INFO: Backup finished at 2020-11-05 16:32:52
INFO: Backup job finished with errors
TASK ERROR: job errors