So richten Sie Software-RAID für einen einfachen Dateiserver unter Ubuntu ein

Inhaltsverzeichnis:

So richten Sie Software-RAID für einen einfachen Dateiserver unter Ubuntu ein - Blog 2023
So richten Sie Software-RAID für einen einfachen Dateiserver unter Ubuntu ein - Blog 2023
Anonim
Benötigen Sie einen günstigen Dateiserver, der einfach einzurichten ist und mit Email Alerting zuverlässig funktioniert? zeigt Ihnen, wie Sie Ubuntu, Software-RAID und SaMBa verwenden, um genau dies zu erreichen.
Benötigen Sie einen günstigen Dateiserver, der einfach einzurichten ist und mit Email Alerting zuverlässig funktioniert? zeigt Ihnen, wie Sie Ubuntu, Software-RAID und SaMBa verwenden, um genau dies zu erreichen.

Überblick

Trotz des jüngsten Umtriebs, um alles in die „allmächtige“Cloud zu verschieben, möchten Sie möglicherweise manchmal nicht, dass Ihre Informationen auf dem Server eines anderen Benutzers abgelegt werden, oder es ist möglicherweise unmöglich, die erforderlichen Datenmengen jedes Mal aus dem Internet herunterzuladen (z. B. Image-Bereitstellung) ). Bevor Sie einen Platz in Ihrem Budget für eine Speicherlösung freigeben, sollten Sie eine Konfiguration in Betracht ziehen, die unter Linux lizenzierungsfrei ist.

Günstig / frei zu sein bedeutet jedoch nicht, „Vorsicht in den Wind zu werfen“. Zu diesem Zweck werden wir einige Punkte beachten, die zu beachten sind. Konfigurationen, die zusätzlich zum Einsatz von Software-RAID eingerichtet werden sollten, um das zu erreichen Maximales Preis-Leistungsverhältnis.

Bild von Filomena Scalise

Über Software-RAID

Wie der Name schon sagt, handelt es sich hierbei um ein RAID-Setup (Redundant Array of Inexpensive Disks), das vollständig in Software ausgeführt wird, anstatt eine dedizierte Hardwarekarte zu verwenden. Der Hauptvorteil einer solchen Sache sind Kosten, da diese dedizierte Karte eine zusätzliche Prämie für die Basiskonfiguration des Systems ist. Die Hauptnachteile sind im Wesentlichen die Leistung und die Zuverlässigkeit, da eine solche Karte normalerweise mit einem eigenen RAM + CPU ausgestattet ist, um die für die Redundanzmathematik erforderlichen Berechnungen, das Zwischenspeichern von Daten für eine höhere Leistung und die optionale Sicherungsbatterie durchzuführen, die ungeschriebene Vorgänge im Cache speichert Die Stromversorgung wurde im Falle eines Stromausfalls wiederhergestellt.

Mit einem Software-RAID-Setup müssen Sie einige der CPU-Leistung Ihres Systems opfern, um die Gesamtkosten des Systems zu reduzieren. Bei heutigen CPUs ist der Aufwand jedoch relativ gering (insbesondere, wenn Sie diesen Server hauptsächlich als "Dateiserver" verwenden). Was die Festplattenleistung angeht, gibt es eine Strafe… jedoch habe ich noch nie einen Engpass des Datenträgersubsystems vom Server festgestellt, um festzustellen, wie tief er ist. Der Tom's Hardware-Leitfaden „Tom's goes RAID5“ist ein Oldie-Artikel, aber ein ausführlicher Artikel über das Thema, den ich persönlich als Referenz benutze. Die Benchmarks werden jedoch mit einem Hauch von Salz verwendet, da es sich um die Windows-Implementierung von Software-RAID handelt (wie bei alles andere, ich bin sicher, dass Linux viel besser ist: P).

Voraussetzungen

  • Geduld junger, das ist eine lange Lektüre.
  • Es wird davon ausgegangen, dass Sie wissen, was RAID ist und wofür es verwendet wird.
  • Dieses Handbuch wurde unter Verwendung des Ubuntu-Servers9.10 x64 erstellt. Daher wird davon ausgegangen, dass Sie über ein Debian-basiertes System verfügen, mit dem Sie ebenfalls arbeiten können.
  • Sie werden sehen, dass ich VIM als Editorprogramm verwende. Das liegt nur daran, dass ich daran gewöhnt bin … Sie können jeden anderen Editor verwenden, den Sie möchten.
  • Das Ubuntu-System, das ich zum Schreiben dieses Handbuchs verwendete, wurde auf einer Diskette installiert. Dies erlaubte mir, sda1 als Teil des RAID-Arrays zu verwenden.
  • Abhängig von dem RAID-Typ, den Sie erstellen möchten, benötigen Sie mindestens zwei Festplatten in Ihrem System. In diesem Handbuch verwenden wir 6 Festplatten.

Auswahl der Festplatten, aus denen das Array besteht

Der erste Schritt, um eine Falle zu vermeiden, ist das Wissen um seine Existenz (Thufir Hawat von Dune).

Die Auswahl der Datenträger ist ein entscheidender Schritt, der nicht leichtfertig getroffen werden sollte, und es wäre klug, wenn Sie die Erfahrung Ihres echten Mannes nutzen und diese Warnung beachten:

Tun NICHT Verwenden Sie "Consumer Grade" -Laufwerke, um Ihr Array zu erstellen, verwenden Sie "Server Grade" -Laufwerke !!!!!!

Jetzt weiß ich, was Sie denken. Haben wir nicht gesagt, dass wir billig sein werden? und ja, wir haben es getan, aber dies ist genau einer der Orte, an denen dies leichtsinnig ist und vermieden werden sollte. Trotz ihres attraktiven Preises sind Festplatten für den Consumer-Bereich nicht für den Einsatz im 24-Stunden-Betrieb konzipiert. Vertrauen Sie mir, Ihr hat es wirklich für Sie versucht. Mindestens vier Laufwerke für Consumer-Laufwerke auf den drei Servern, die ich so eingerichtet habe (aufgrund von Budgetbeschränkungen), sind nach etwa 1,5 bis 1,8 Jahren nach dem ersten Starttag des Servers fehlgeschlagen. Es gab zwar keinen Datenverlust, da das RAID seine Aufgabe erfüllt hat Gut und überlebt… Momente wie diese verkürzen die Lebenserwartung des Sysadmin, ganz zu schweigen von Ausfallzeiten für das Unternehmen für die Serverwartung (etwas, das am Ende mehr kosten kann als die Laufwerke der höheren Klasse).

Einige können sagen, dass es keinen Unterschied in der Ausfallrate zwischen den beiden Typen gibt. Dies mag zwar zutreffen, jedoch weisen Server-Laufwerke trotz dieser Behauptungen immer noch ein höheres Maß an SMART-Einschränkungen und QAing auf (dies kann daran gesehen werden, dass sie nicht auf den Markt gebracht werden, sobald sich die Laufwerke für Verbraucher befinden). Daher empfehle ich immer noch, dass Sie das zusätzliche $$$ für das Upgrade herausgreifen.

Auswahl des RAID-Levels

Obwohl ich nicht auf alle verfügbaren Optionen eingehen werde (dies ist im RAID-Wikipedia-Eintrag sehr gut dokumentiert), ist es meiner Meinung nach bemerkenswert, dass Sie sich immer für mindestens RAID 6 oder höher entscheiden sollten ( wir werden verwenden Linux RAID10). Dies liegt daran, dass bei Ausfall eines Datenträgers die Wahrscheinlichkeit eines Ausfalls eines benachbarten Datenträgers höher ist und dann ein Fehler mit zwei Datenträgern in Ihren Händen auftritt.Wenn Sie große Laufwerke verwenden, haben größere Datenträger eine höhere Datendichte auf der Oberfläche des Plattentellers. IMHO-Festplatten von 2T und darüber hinaus werden immer in diese Kategorie fallen.

Lass uns knacken

Festplatten partitionieren

Während wir in Linux / GNU das gesamte Blockgerät für Speicheranforderungen verwenden konnten, werden wir Partitionen verwenden, da es einfacher wird, Festplattenrettungs-Tools zu verwenden, falls das System kaputt geht. Wir verwenden hier das Programm „fdisk“, aber wenn Sie Festplatten verwenden, die größer als 2T sind, müssen Sie ein Partitionierungsprogramm verwenden, das GPT-Partitionierung wie Parted unterstützt.

sudo fdisk /dev/sdb

Hinweis: Ich habe beobachtet, dass es möglich ist, das Array ohne Änderung des Partitionstyps zu erstellen. Da dies jedoch der im gesamten Netz beschriebene Weg ist, werde ich dem Beispiel folgen (wieder, wenn das gesamte Blockgerät verwendet wird, ist dies nicht erforderlich).

Sobald Sie sich in fdisk befinden, sind die Tastenanschläge:

n; für eine neue Partition eingeben p; für eine primäre Partition eingeben 1; Anzahl der Partitionen eingeben; akzeptiere die Standardeinstellung eingeben; akzeptiere die Standardeinstellung t; um den Typ zu ändern fd; Setzt den Typ auf "Automatische Erkennung von Linux-Raids" (83h) w; Änderungen auf die Festplatte schreiben und beenden

Spülen und wiederholen Sie den Vorgang für alle Festplatten, die Teil des Arrays sein werden.

Erstellen eines Linux-RAID10-Arrays

Der Vorteil der Verwendung von “Linux raid10 “bedeutet, dass es eine ungerade Anzahl von Festplatten nutzen kann, um die Leistung und Ausfallsicherheit noch weiter zu steigern, als das Vanilla RAID10. Außerdem kann das 10-Array in einem einzigen Array erstellt werden Schritt.

Erstellen Sie das Array aus den Festplatten, die wir im letzten Schritt vorbereitet haben, indem Sie Folgendes ausgeben:

sudo mdadm --create /dev/md0 --chunk=256 --level=10 -p f2 --raid-devices=5 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 --verbose

Hinweis: Dies ist alles nur eine Zeile, obwohl die Darstellung es in zwei Teile teilt.

Lassen Sie uns die Parameter aufschlüsseln:

  • “–Chunk = 256” - Die Größe der Bytes, in die die RAID-Streifen zerlegt werden. Diese Größe wird für neue / große Festplatten empfohlen (die für diese Anleitung verwendeten 2T-Laufwerke waren ohne Zweifel in dieser Kategorie).
  • "–Level = 10" - Verwendet die Linux raid10 (falls ein traditioneller Überfall erforderlich ist, müssten Sie aus zwei Gründen zwei Arrays erstellen und sich ihnen anschließen).
  • „-P f2“- Verwendet den Rotationsplan „Far“(Weitere Informationen siehe Hinweis unten) und „2“zeigt an, dass das Array zwei Kopien der Daten aufbewahrt.

Hinweis: Wir verwenden den "Weit" -Plan, da das physische Datenlayout auf den Festplatten NICHT das gleiche ist. Dies hilft, die Situation zu überwinden, in der die Hardware eines der Laufwerke aufgrund eines Herstellungsfehlers ausfällt (und denken Sie nicht, dass mir das nicht passieren wird, wie Sie es tatsächlich getan haben). Aufgrund der Tatsache, dass die beiden Platten vom gleichen Hersteller und Modell sind, auf dieselbe Weise verwendet wurden und die Daten traditionell am gleichen physischen Ort aufbewahrt werden… Es besteht die Gefahr, dass das Laufwerk, auf dem sich die Kopie der Daten befindet, ausgefallen ist zu oder ist nahe genug und bietet nicht die erforderliche Ausfallsicherheit, bis eine Ersatzfestplatte ankommt. Durch den "Weit" -Plan wird die Datenverteilung an einen vollständig anderen physischen Ort auf den Kopierlaufwerken vorgenommen, wobei Festplatten verwendet werden, die innerhalb des Computergehäuses nicht nahe beieinander liegen. Weitere Informationen finden Sie hier und unter den Links.

Sobald das Array erstellt wurde, beginnt der Synchronisationsprozess. Sie können zwar auf Traditionen warten, da dies eine Weile dauern kann, Sie können das Array jedoch sofort verwenden.

Der Fortschritt kann beobachtet werden mit:

watch -d cat /proc/mdstat

Erstellen Sie die Konfigurationsdatei mdadm.conf

Ubuntu weiß zwar, dass das Array beim Start automatisch gescannt und aktiviert werden muss. Aus Gründen der Vollständigkeit und der Höflichkeit für den nächsten Sysadmin erstellen wir die Datei. Ihr System erstellt die Datei nicht automatisch und der Versuch, sich alle Komponenten / Partitionen Ihres RAID-Sets zu merken, ist ein Hingucker des Systemadministrators. Diese Informationen können und sollten in der Datei mdadm.conf gespeichert werden. Die Formatierung kann schwierig sein, aber glücklicherweise liefert Ihnen die Ausgabe des Befehls mdadm –detail –scan –verbose die Ausgabe.

Hinweis: Es wurde gesagt, dass: „Die meisten Distributionen erwarten die Datei mdadm.conf in / etc /, nicht in / etc / mdadm. Ich glaube, das ist ein "Ubuntu-Ism", um es als /etc/mdadm/mdadm.conf zu haben. Aufgrund der Tatsache, dass wir sind Wenn Sie Ubuntu hier verwenden, werden wir einfach mitmachen.

sudo mdadm --detail --scan --verbose > /etc/mdadm/mdadm.conf

WICHTIG! Sie müssen eine "0" aus der neu erstellten Datei entfernen, da die Syntax, die sich aus dem obigen Befehl ergibt, nicht vollständig korrekt ist (GNU / Linux ist noch kein Betriebssystem).

Wenn Sie das Problem sehen möchten, das durch diese falsche Konfiguration verursacht wird, können SieScan" Kommando an dieser Stelle, bevor Sie die Einstellung vornehmen:

mdadm --examine --scan

Um dies zu umgehen, bearbeiten Sie die Datei /etc/mdadm/mdadm.conf und ändern:

metadata=00.90

Lesen:

metadata=0.90

Ausführen der mdadm –examin –scan Der Befehl sollte jetzt ohne Fehler zurückkehren.

Dateisystem-Setup im Array

Ich habe ext4 für dieses Beispiel verwendet, weil es für mich einfach auf der Vertrautheit des ext3-Dateisystems aufgebaut war, das vor ihm lag, und gleichzeitig bessere Leistung und Funktionen versprach. Ich empfehle Ihnen, sich die Zeit zu nehmen, um herauszufinden, welches Dateisystem besser zu Ihren Anforderungen passt, und ein guter Anfang dafür ist unser Artikel „Welches Linux-Dateisystem sollten Sie wählen?“.

sudo mkfs.ext4 /dev/md0

Hinweis: In diesem Fall habe ich das resultierende Array nicht partitioniert, da ich es zu diesem Zeitpunkt einfach nicht benötigte, da der anfragende Teilnehmer ausdrücklich mindestens 3,5T kontinuierlichen Speicherplatz angefordert hatte. Hätte ich Partitionen erstellt, hätte ich ein GPT-fähiges Dienstprogramm wie "parted" verwenden müssen.

Montage

Erstellen Sie den Einhängepunkt:

sudo mkdir /media/raid10

Hinweis: Dies kann ein beliebiger Ort sein, das oben ist nur ein Beispiel.

Weil wir es mit einem „zusammengebauten Gerät“zu tun haben, werden wir es tun nicht Verwenden Sie die UUID des Dateisystems, die sich auf dem Gerät zum Einhängen befindet (wie für andere Gerätetypen in unserem Leitfaden "Was ist die Linux-Fstab und wie funktioniert es" empfohlen), da das System möglicherweise einen Teil des Dateisystems auf einer einzelnen Festplatte und anzeigt versuchen zu falsch direkt montieren. Um dies zu vermeiden, möchten wir explizit darauf warten, dass das Gerät "montiert" wird, bevor wir versuchen, es zu montieren, und wir werden den Namen des zusammengesetzten Arrays ("md") verwenden fstab um das zu erreichen. Bearbeiten Sie die Fstab-Datei:

sudo vim /etc/fstab

Und fügen Sie diese Zeile hinzu:

/dev/md0 /media/raid10/ ext4 defaults 1 2

Hinweis: Wenn Sie den Mount-Ort oder das Dateisystem anhand des Beispiels ändern, müssen Sie die obigen Angaben entsprechend anpassen.

Verwenden Sie mount mit dem automatischen Parameter (-a), um einen Systemstart zu simulieren. So wissen Sie, dass die Konfiguration ordnungsgemäß funktioniert und das RAID-Gerät beim Neustart des Systems automatisch gemountet wird:

sudo mount -a

Sie sollten jetzt in der Lage sein, das mit dem Befehl "mount" gemountete Array ohne Parameter zu sehen.

E-Mail-Benachrichtigungen für das RAID-Array

Im Gegensatz zu Hardware-RAID-Arrays gibt es bei einem Software-Array keinen Controller, der einen Piepton auslösen würde, um Sie zu informieren, wenn etwas schief gegangen ist. Daher sind die E-Mail-Benachrichtigungen unsere einzige Möglichkeit, um zu erfahren, ob etwas mit einer oder mehreren Festplatten im Array passiert ist und es somit zur wichtigster Schritt.

Befolgen Sie die Anweisungen im Abschnitt "Einrichten von E-Mail-Benachrichtigungen unter Linux mit Google Mail oder SMTP". Wenn Sie fertig sind, kehren Sie hier zurück, um die RAID-spezifischen Schritte auszuführen.

Vergewissern Sie sich, dass mdadm E-Mails senden kann Der folgende Befehl weist mdadm an, nur eine E-Mail abzufeuern und zu schließen.

sudo mdadm --monitor --scan --test --oneshot

Wenn Sie erfolgreich sind, erhalten Sie eine E-Mail, in der der Zustand des Arrays beschrieben wird.

Richten Sie die Mdadm-Konfiguration so ein, dass beim Start eine E-Mail gesendet wird Obwohl dies kein absolutes Muss ist, ist es schön, von Zeit zu Zeit ein Update von der Maschine zu erhalten, um uns mitzuteilen, dass die E-Mail-Funktion noch funktioniert und wie der Zustand des Arrays ist. Sie werden wahrscheinlich nicht von E-Mails überfordert, da diese Einstellung nur für Starts gilt (auf Servern sollte es nicht viele sein). Bearbeiten Sie die Mdadm-Konfigurationsdatei:

sudo vim /etc/default/mdadm

Ergänzen Sie die -Prüfung Parameter an die DAEMON_OPTIONS Abschnitt, so dass es aussehen würde:

DAEMON_OPTIONS='--syslog --test'

Sie können den Computer nur neu starten, um sicherzustellen, dass Sie sich in der Schleife befinden, dies ist jedoch kein Muss.

Samba-Konfiguration

Durch die Installation von SaMBa auf einem Linux-Server kann dieser wie ein Windows-Dateiserver arbeiten. Um die Daten, die wir auf dem Linux-Server für Windows-Clients bereitstellen, verfügbar zu machen, werden wir SaMBa installieren und konfigurieren. Es ist komisch zu erwähnen, dass der Paketname von SaMBa ein Wortspiel im Microsoft-Protokoll ist, das für die gemeinsame Nutzung von Dateien mit der Bezeichnung SMB (Service Message Block) verwendet wird.

In diesem Handbuch wird der Server zu Testzwecken verwendet, sodass wir den Zugriff auf seine Freigabe ermöglichen ohne Wenn Sie ein Kennwort benötigen, möchten Sie möglicherweise etwas mehr darüber erfahren, wie Sie Berechtigungen einrichten, sobald das Setup abgeschlossen ist.

Es wird außerdem empfohlen, dass Sie einen nicht privilegierten Benutzer als Eigentümer der Dateien erstellen. In diesem Beispiel verwenden wir den Benutzer "Geek", den wir für diese Aufgabe erstellt haben. Erläuterungen zum Erstellen eines Benutzers und zum Verwalten des Besitzes und der Berechtigungen finden Sie in den Handbüchern "Erstellen eines neuen Benutzers unter Ubuntu Server 9.10" und "Anfängerhandbuch zum Verwalten von Benutzern und Gruppen in Linux".

Samba installieren:

aptitude install samba

Bearbeiten Sie die Samba-Konfigurationsdatei:

sudo vim /etc/samba/smb.conf

Fügen Sie eine Freigabe mit dem Namen „General“hinzu, die Zugriff auf den Mount-Punkt „/ media / raid10 / general“gewährt, indem Sie das Folgende an die Datei anhängen.

[general] path = /media/raid10/general force user = geek force group = geek read only = No create mask = 0777 directory mask = 0777 guest only = Yes guest ok = Yes

Die obigen Einstellungen machen die Freigabe adressierbar ohne ein Kennwort an alle Benutzer und macht den Standardbesitzer der Dateien zum Benutzer "geek".

Diese smb.conf-Datei wurde zu Referenzzwecken von einem funktionierenden Server abgerufen.

Starten Sie den Samba-Dienst neu, damit die Einstellungen wirksam werden:

sudo /etc/init.d/samba restart

Sobald Sie fertig sind, können Sie die Testparm Befehl, um die auf den Samba-Server angewendeten Einstellungen anzuzeigen. das ist es, der Server sollte jetzt von jeder Windows-Box aus mit folgendem Befehl erreichbar sein:

server-namegeneral

Fehlerbehebung

Wenn ein Problem behoben werden muss oder ein Datenträger in einem Array ausgefallen ist, schlage ich vor, auf das mdadm-Spickzettel zu verweisen (das ist es, was ich mache…).

Im Allgemeinen sollten Sie daran denken, dass bei einem Ausfall eines Laufwerks das Laufwerk aus dem Array "entfernt" werden muss, der Computer heruntergefahren, das fehlerhafte Laufwerk durch ein neues ersetzt und das neue Laufwerk dem Array "hinzugefügt" wird, nachdem Sie das entsprechende Laufwerk erstellt haben Layout (Partitionen) darauf, falls erforderlich.

Sobald dies erledigt ist, möchten Sie möglicherweise sicherstellen, dass das Array neu erstellt wird, und den Fortschritt mit folgendem beobachten:

watch -d cat /proc/mdstat

Viel Glück!:)

Verweise: Mdadm Spickzettel RAID-Level brechen zusammen Linux RAID10 erklärt mdadm Befehlshandbuch mdadm Konfigurationsdatei Manpage Einschränkungen der Partition werden erläutert

Die Verwendung von Software-RAID kostet nicht viel … Nur Ihre VOICE;-)

Beliebtes Thema

Fachberatung