Raspberrypi.md: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Root (Diskussion | Beiträge) |
|||
Zeile 49: | Zeile 49: | ||
* eine "Revolution"-Situation ersetzt den Master, alle Nodes müssen zustimmen | * eine "Revolution"-Situation ersetzt den Master, alle Nodes müssen zustimmen | ||
* das ext4 muss dafür unmounted werden, einen switch im laufenden Betrieb ? Das ist mir nicht bekannt, dass dies geht | |||
* alle Nodes müssen in einem tadellosen Zustand sein | * alle Nodes müssen in einem tadellosen Zustand sein | ||
* dabei muss auf dem Master ein Prozess installiert sein, der es Nodes ermöglicht ihn abzuschalten | * dabei muss auf dem Master ein Prozess installiert sein, der es Nodes ermöglicht ihn abzuschalten |
Version vom 7. November 2019, 17:43 Uhr
- Dies beschreibt das Konzept eines RAID-6-Systems bei dem ...
- ... ein Raspberry Pi 4 den Master bereitstellt
- er betreibt ein ext4-Dateisystem mit dem er Freigaben durchführt
- er hat selbst kein Speichermedium,
- er ist an einen internen Switch angeschlossen, an den auch alle Nodes gekoppelt sind
- er berechnet niemals P oder Q
- ... viele Raspberry Pi 4s als Nodes arbeiten
- sie haben eine feste Rolle inerhalb des RAID-Verbundes
- die haben nur eine Platte mit einer Partition angeschlossen
- sie berechnen P und Q immer selbst anhand ihrer Rolle und der Sektornummer
- sie nutzen für "xor" ihren Video Core
- ... weitere Rapsberry Pi 4s als Spares oder Tranies arbeiten
- ... ein Raspberry Pi 4 den Master bereitstellt
write(Sector,Data):boolean
- Der Master sendet ein Datagram mit
- WRITE
- Sector#
- Data
- auf den Switch. Das Datagram ist nicht an einen gewissen Node gerichtet, es ist für alle
- Ein Node kann anhand seiner "Rolle" erkennen, ob er
- raw oder P oder Q and der Stelle "Sector" speichern muss.
- Nur die 3 Betroffenen Nodes senden das Ack, der Master weiss wer das sein sollte
read(Sector):Data
- Der Master führt eine Statistik "wer" einen read beantworten muss
- Ich bin mir jetzt unsicher wie das im raid-6 Code gemacht wird
- wird immer raw,P und Q gelesen, also 3 Platten?
- oder nur raw,P wegen der Kosten?
- es ist wiederum klar "wer" für einen gewissen Sektor verantwortlich ist
- Node "raw" schickt die Daten ins Netz
- Node "P" und Node "Q" lesen die Daten und prüfen ob diese stimmen, senden ihr ACK an den Master
- wenn beide zustimmen (nur ein kurzes OK) sind die Daten auch für den Master valide
Spares
- Spares lauschen nur auf den Master und haben ihre Platte wirklich deaktiviert, vorzugsweise stromlos
- zumindest ein Spare sollte eingesetzt werden
Trainee
- Trainees arbeiten im Idle immer daran die Rolle eines Nodes übernehmen zu können
- Dabei versuchen sie, die Anzahl der ungleichen Sektoren zwischen Node und Trainee auf "0" zu bringen
- In der Phase imitieren Trainees die Schreibzugriffe ihrers Nodes
- Dann ersetzen sie diesen und sind ab dem Moment Node
Revolution
- eine "Revolution"-Situation ersetzt den Master, alle Nodes müssen zustimmen
- das ext4 muss dafür unmounted werden, einen switch im laufenden Betrieb ? Das ist mir nicht bekannt, dass dies geht
- alle Nodes müssen in einem tadellosen Zustand sein
- dabei muss auf dem Master ein Prozess installiert sein, der es Nodes ermöglicht ihn abzuschalten
Hardware
Infrastruktur
- Es wird ein POE-Switch verwendet der per VLAN-ID ein privates Netz betreibt
- Der Switch hat einen "external" Port ohne VLAN-ID, das ist der eigentliche Anschluss des NAS
- Bei einem 8-Port POE Switch gibt es z.B. (Best Practise)
- Einen externen Port
- Einen Master
- Einen Spare
- Einen "Free Port for alive Replacements"
- 4 Nodes
Worker
- Alle Worker sind identisch aufgebaut
- Es gibt 5 Status LED
- read-Aktivity
- write-Aktivity
- "I am Master" + good/fail
- "I am Node" + good/fail
- "I am Trainee" + good/fail
- Replace me
- Booten über die Festplatte, es gehen 16 GB fürs Betriebssystem verloren
- USV mit Super CAPs
Historie
- erstes Konzept am Donnerstag 07.11.2019