Gladys auf SSD statt microSD installieren

Davon haben @Terdious und ich heute Morgen gesprochen. Für diejenigen, die komplexe Installationen haben, mit vielen Daten, die täglich geschrieben werden, ist die Verwendung der Micro SD nicht unbedingt optimal. Man kommt schnell zu korrupten Dateien auf lange Sicht und die Lese-/Schreibleistung ist nicht gerade toll.

Trotzdem kann man für weniger als 30€ seinen Pi auf ein SSD umstellen. Hier sind ein paar Referenzen, die ich gefunden habe:

  • Diese PNY 120 GB SSD, 6Gb/s, kostet 19€ => Amazon.fr
  • Das USB-Gehäuse kostet 9€ => Amazon.fr

Anschließend muss man das Gladys-Image auf das SSD klonen, das SSD per USB an den Pi anschließen und einen kleinen Befehl ausführen, um ihm anzuzeigen, dass er darauf booten soll

EDIT 18/01/2022: Ich habe ein Video zu diesem Thema gemacht, super einfach ohne Befehlszeile!

Hier ansehen:

Ich weiß, dass @terdious ein solches Setup ausprobieren wird, um zu sehen, ob es die Leistung und Stabilität seiner Instanz verbessern kann.

Ich bin neugierig zu wissen, ob einige von euch das schon machen? :slight_smile:

Falls ja, wäre es cool, wenn wir ein Tutorial in der Dokumentation hätten, um die Neuen auf diesen Weg zu lenken, denn klar, die Verwendung einer SD auf lange Sicht ist der beste Weg, um Datenkorruption zu haben, und das verschlechtert ein bisschen das Gladys-Erlebnis ^^

Ich bin auf einer RPi3, daher ist das Verfahren für den USB-Boot etwas anders (und, soweit ich verstanden habe, endgültig).

Für die Installation habe ich einfach Etcher mit dem Gladys-Image verwendet, um meinen Boot auf der SSD zu erstellen.

Falls nötig, kann ich die SSD und das Gehäuse, das ich gekauft habe, wiederfinden.

Hallo,

Kurze Rückmeldung zur Installation von Gladys auf einer SSD und den Leistungen, leider hatte ich keine Zeit, es mit der SD-Karte zu testen.

Für die Installation habe ich das Tutorial befolgt und insgesamt gab es keine Probleme. Das Problem könnte sein, dass die Menüs nicht genau gleich sind, man muss einfach die Zeit nehmen, um zu suchen :slight_smile:

Wichtig ist, dass man zuerst eine SD-Karte benötigt, die Manipulationen durchführt und dann neu startet, indem man die SD-Karte entfernt, und schon ist es geschafft.

pi@gladys:~ $ dd if=/dev/zero of=test bs=1048576 count=200
200+0 records in
200+0 records out
209715200 bytes (210 MB, 200 MiB) copied, 3.41732 s, 61.4 MB/s
pi@gladys:~ $ dd if=test of=/dev/null bs=1048576
200+0 records in
200+0 records out
209715200 bytes (210 MB, 200 MiB) copied, 0.405086 s, 518 MB/s

Durchsatz durchaus ehrenhaft :slight_smile:

Ich bin überrascht von der Schreibleistung (die erscheint mir niedrig), was für eine SSD hast du?

Wenn du uns einen kleinen Leitfaden zur Gladys-Dokumentation erstellen könntest, wäre das großartig :smiley:

Bearbeitung: In jedem Fall wirst du an Stabilität gewinnen. Die Leistung bleibt gut über die Zeit, und du wirst keine Datenkonsistenzprobleme haben!

Bei schwacher Leistung sollte man meiner Meinung nach berücksichtigen, dass man über einen USB-Port geht. Ich würde gerne weitere Rückmeldungen zu solchen Installationen mit leistungsfähigeren SSDs (z. B. von Samsung) sehen.

Für die SSD: Amazon.fr

Ok, kein Problem mit dem SSD also.

Ah, aber warte, welches Raspberry Pi Modell ist es?

Wenn es ein Pi 1, 2 oder 3 ist, gab es tatsächlich viele Einschränkungen am USB-Port, und das ist wahrscheinlich der Flaschenhals deiner Konfiguration.

Wenn es ein Pi 4 ist, achte darauf, an welchen Port du dein SSD angeschlossen hast, ich glaube, sie sind nicht alle gleich:

https://www.raspberrypi.org/documentation/hardware/raspberrypi/usb/README.md#:~:text=The%20Raspberry%20Pi%20also%20has,a%20maximum%20speed%20of%20480mbps.

AH! :smiley:

Tatsächlich, da der Raspberry unter einem Möbel steht und versteckt ist, habe ich mir die Zeit genommen, das zu überprüfen :slight_smile:

Das ist wahrscheinlich das Problem, aber beim Lesen sind wir auf jeden Fall viel höher als das, was eine SD-Karte bieten kann

Ich bin mir nicht sicher, ob das nur am SSD liegt, da du gerade vorher geschrieben hast, dass es Cache gibt, der deine Ergebnisse möglicherweise verfälscht hat ^^

Ich bin mir aber nicht sicher, ob deine Befehle richtig waren, ich empfehle dir, es wie in diesem Tutorial zu machen: Your Web Host Doesn’t Want You To Read This: Benchmark Your VPS | LinuxBlog.io

Um die Schreibgeschwindigkeiten zu testen:

dd if=/dev/zero of=diskbench bs=1M count=1024 conv=fdatasync

Dann leerst du den Cache:

echo 3 | sudo tee /proc/sys/vm/drop_caches

Und schließlich testest du das Lesen:

dd if=diskbench of=/dev/null bs=1M count=1024

Kannst du uns danach Bescheid geben?

Ja, das habe ich im Schnellmodus gemacht, ich wollte mir Zeit nehmen, um einen besseren Test durchzuführen :smiley:

Hallo !!
Okay, endlich ein erfolgreicher Test.

Ich habe damit begonnen, den Test zu machen und alle Schritte genau zu befolgen, aber ich konnte nie vom SSD starten… aber ich habe mich auf USB3.0 beschränkt. Heute Morgen, nach den Ratschlägen von @damalgos, habe ich den gesamten Vorgang erneut versucht, aber auf USB 2.0, und diesmal funktioniert es perfekt. Dann habe ich diesmal von USB3.0 neu gestartet und es funktionierte. Ich werde das genaue Verfahren später detailliert beschreiben. Ich konnte dies unter einem Raspberry Pi4 1GB und auf Pi4 4GB durchführen. Ich werde heute Abend auf dem Pi4 8GB testen, insbesondere für die Leistung. Ich habe ein Samsung T5 als SSD verwendet - 75€ - winzig ^^

Laut Verfahren Pi4 4GB am USB 2-Anschluss:

  • Schreiben: 50-60 MB/s
  • Lesen: 500-600 MB/s
    Am USB 3.0-Anschluss:
  • Schreiben: 200-250 MB/s
  • Lesen: 550-650 MB/s

Übrigens muss der Test durchgeführt werden

Mehrmals, um das richtige Ergebnis zu erhalten.

Leistungsvergleiche:

- Verwendete Hardware:

- Voraussetzung:
Der Test wurde mit dem offiziellen Gladys V4.0.4-Image durchgeführt, indem die Docker-Container beim Start deaktiviert und die notwendigen Schritte durchgeführt wurden, um von den USB-Ports des Raspberry Pi zu booten.

- SSD-Test:

  • Test SSD Samsung 860 EVO:
    • USB2-Port:
      • Schreibgeschwindigkeit = 30 bis 31 MB/s
      • Lesegeschwindigkeit = 570 bis 620 MB/s
    • USB3.0-Port:
      • Schreibgeschwindigkeit = 190 bis 210 MB/s
      • Lesegeschwindigkeit = 560 bis 610 MB/s
      • !! Achtung !! Läuft nicht mit USB3.0 mit dem Gehäuse, das @pierre-gilles erwähnt
Als Bild

  • Test SSD Samsung Portable T5:
    • USB2-Port:
      • Schreibgeschwindigkeit = 30 bis 60 MB/s
      • Lesegeschwindigkeit = 530 bis 590 MB/s
    • USB3.0-Port:
      • Schreibgeschwindigkeit = 190 bis 220 MB/s
      • Lesegeschwindigkeit = 300 bis 600 MB/s
Als Bild

- Micro-SD-Test:

  • Test Micro-SD Samsung Pro Plus:
    • Schreibgeschwindigkeit = 19 bis 23 MB/s
    • Lesegeschwindigkeit = 44 bis 46 MB/s
Als Bild

  • Test Micro-SD SanDisk Extreme PLUS:
    • Schreibgeschwindigkeit = 30 bis 40 MB/s
    • Lesegeschwindigkeit = 44 bis 46 MB/s
Als Bild

Tolle Tests!!

Danke für dein Feedback :slight_smile:

Könntest du das in ein kleines Tutorial für die Dokumentation umwandeln? (Mit deinen Leistungszahlen wird der Nutzen eines SSD gegenüber einer MicroSD deutlich.)

@Terdious Ich nehme an, du hast die SSD verwendet, die du zur Hand hattest? Denn ich bin mir nicht sicher, ob ein 500-GB-SSD wirklich nützlich ist :slight_smile:

Ich habe mir diesen SSD gekauft: Transcend 64 GB kombiniert mit diesem Gehäuse.

Ich muss nur noch die Zeit finden, die Geschwindigkeitstests durchzuführen.

Das liegt an der großen Anzahl der programmierten Szenen und seinem riesigen Dashboard!!

Ja, das kann ich machen! Lohnen sich die Steuererklärungen? Gilt der Beitrag mit den Amazon-Links für die Dokumentation oder entferne ich die Links?

Ja mit den Links ist das super :slight_smile:

Wenn du genau die Befehle, die du ausgeführt hast, einfügen könntest, wäre das toll!

Ja und nein, den 860 Evo hatte ich tatsächlich zur Hand. Den Samsung T5 habe ich gekauft, einerseits wegen seiner kompakten Größe (etwas kleiner als der Pi) und andererseits, weil es nur diesen gibt (den 250-GB habe ich nicht für weniger als 156 € gefunden). Und andererseits, weil ich noch andere Dinge darauf speichern möchte.

Genau @pierre-gilles, ist es möglich, mehrere Instanzen von Gladys darauf zu installieren? Wird der Port automatisch bei einem zweiten Docker-Container geändert? Ein Tutorial, falls das nicht der Fall ist?

Du kannst den Code aus dem zigbee2mqtt-Artikel verwenden, du musst nur den Port und den Namen der Datenbank ändern.

Vielen Dank @Jean34, ich werde mir das ansehen, versuchen den Code wiederzufinden und bei Bedarf zurückkommen ^^

Das steht in der Gladys-Dokumentation, Abschnitt „docker“!