Debian basiertes InHouse NAS mit verschlüsseltem Software-Raid (Teil 1)
Debian basiertes InHouse NAS mit verschlüsseltem Software Raid (Free, Open Source, FOSS, FLOSS)
Es wird immer wichtiger, Daten im eigenen Haus, ohne jedes Senden von Informationen an Dritte, sicher zu speichern. Zusätzlich muss ein Schutz der Daten gegen Diebstahl der Hardware erfolgen. Natürlich kann man jetzt in einem Store eines dieser Fertig-NAS kaufen und sich auf dessen Funktion verlassen, aber das wollen wir nicht. Ziel ist es, ein InHouse System zu erstellen, welches diese Anforderungen erfüllt, problemlos in der Wartung ist und bei dem wir flexibel zusätzliche benötigte Services einrichten können.
Hier im Haus ist eine Windows freie Zone, aber wir werden trotzdem folgende Dienste einrichten:
- SMB/CIFS Shares (aka Windows Shares)
- NFS Shares (Unix/Linux, opt. Bei Apple und Windows)
- LDAP User Management
Zum Test des Systems verwenden wir ein älteres 64 Bit System mit 8 GB RAM und 4*2TB SATA Harddisks. Die Einrichtung sollte in dieser Form erfolgen:
- Debian Stretch 9.4 (Stand 06/2018)
- Verschlüsseltes Dateisystem mit Software Raid-5 über diese 4 Platten
- einfaches Tauschen einer defekten Platte
- sicheres Booten, auch bei Ausfall der Festplatte auf der GRUB installiert ist
- remote Möglichkeit der Entsperrung der Festplatte bei Reboot
- System Management per RDP Protokoll mit Zugriff auf den XFCE Desktop
- pro-aktives Monitoring der Festplatten und des Raid Zustandes mit E-Mail Alerting
Zusätzlich wird das NAS mit einer eigenen Firewall abgesichert und das Thema Interface Bundling (bonding) angesprochen.
Als Erweiterung werden wir das NAS auf ein Backup System spiegeln, bzw. synchronisieren um im Fall eines Totalausfalls ein schnelles Umschalten zu ermöglichen.
Benötigte Zeit für die Installation 1-5 Stunden, meist abhängig von der Komplexität Ihres Netzwerkes. Rechnen Sie für die erste Installation Ihren persönlichen Lernaufwand dazu.
WICHTIG: Der Autor ist nicht für eventuelle Schäden an Ihrem System, bzw. für einen Datenverlust verantwortlich! Testen Sie dieses System nur in einer Testumgebung und entscheiden erst nach ausgiebigen Tests, ob Sie in den Echtbetrieb wechseln. Sie handeln auf eigene Verantwortung und der Artikel beschreibt nur die Installation beim Autor!
Professionelle Hilfe bei Open-Source Lösungen bietet seit 1985 die CTS GMBH https://cts-solutions.at (professionelle IT Lösungen seit 1985!), bzw. https://ctssupport.at (Open Source Remote Support).
Profi-Tipp: Geben Sie nicht nach 2 Minuten auf! Eine Lösung wie diese benötigt den Willen etwas Neues zu lernen und sich selbst weiter zu bilden. Dieses Wissen hebt Sie von der Masse der Administratoren in weiter Folge ab und erweitert Ihr Portfolio um Kenntnisse, welche Standard Administratoren heute nicht mehr besitzen. Ein immenses Plus für Ihre Karriere! Klicken kann jeder, wissen was man tut ist in Zeiten wie diese die Ausnahme!
Schritte zur Installation des Basissystems
- Download der Debian iso Datei von https://www.debian.org/distrib/ (9.4, live, XFCE für unsere Installation)
- USB Stick mit dem iso erstellen und booten (Anleitung auf der Debian Webseite in Deutsch, funktioniert analog auf für 64 Bit: https://www.debian.org/releases/stable/i386/index.html.de)
Wenn das Sytem startet im Auswahlmenü folgendes wählen:
- Install auswählen
- Deutsch
- Österreich (Oder Ihr Land)
- Deutsch
- Netzwerkkarte auswählen
- Hostnamen wählen (nas01, oder anpassen)
- den Domainnamen angeben (local.mydomain.tld, Ihre Domain!)
- root Passwort wählen (etwas Langes!)
- Benutzernamen für das Arbeitskonto wählen
- Passwort für das Arbeitskonto wählen
Danach wählen wir die Partitionierungsart:
- Partitionieren MANUELL
- Partition für /boot einrichten
- Freien Bereich auf sda wählen
- Neue Partition anlegen
- 512 MB
- Primär
- Anfang
- Physikalisches Volume für Raid
- Anlegen der Partition beenden
Dieser Bereich wird das erste Raid (md0) zum booten. Jetzt müssen wir noch die verschlüsselte Partition (Raid md1) für das Betriebssystem und die Daten einrichten.
- Partition für das verschlüsselte Raid einrichten
- Freien Bereich auf sda wählen
- Neue Partition anlegen
- verfügbare Größe verwenden
- Logisch
- Anfang
- Physikalisches Volume für Raid
- Anlegen der Partition beenden
Wiederholen Sie diesen Vorgang für alle Platten im Raid. Bei mir sind das sdb,sdc,sdd.
- Danach Selektieren Sie “Software Raid konfigurieren”
- Änderungen auf das Speichergerät schreiben: JA
md0 für /boot:
- Wir richten md0 für /boot ein
- MD-Gerät erstellen
- Wir verwenden Raid 5.
- Anzahl der aktiven Geräte ist 4 (sda,sdb,sdc,sdd)
- Reserve Geräte ist bei uns 0
- Selektieren Sie alle 512 MB Partitions, hier sda1,sdb1,sdc1,sdd1
- Weiter
md1 für Betriebssystem und Daten
- Wir richten md1 für das verschlüsselte Raid ein
- MD-Gerät erstellen
- Wir verwenden Raid 5.
- Anzahl der aktiven Geräte ist 4 (sda,sdb,sdc,sdd)
- Reserve Geräte ist bei uns 0
- Selektieren Sie alle 512 MB Partitions, hier sda5,sdb5,sdc5,sdd5
- fertigstellen -> weiter
Einrichten der Volumes
- Nun muss das /boot Volume erstellt werden
- Wählen Sie das Raid5 Gerät mit 1,5GB aus, hier #0
- Benutzen als: Ext4 Journaling Dateisystem
- Einbindungspunkt: /boot
- Anlegen der Partition beenden
nach dem Boot Volume benötigen wir den verschlüsselten Datenträger
- Wählen Sie nun den Punkt: Verschlüsselten Datenträger konfigurieren
- Änderungen auf Platte schreiben: JA
- Verschlüsselten Datenträger erzeugen -> Weiter
- /dev/md1 auswählen
- Daten löschen dauert sehr lange, bei neuem System nicht notwendig.
- Anlegen der Partition beenden
- Fertigstellen
- Passphrase eingeben! Wichtig: Lang, komplex und NIE vergessen
- NOCH EINMAL: PASSPHRASE WEG – DATEN WEG – UNWIEDERHERSTELLBAR!
Logical Volume Manager
- wir konfigurieren den Logical Volume Manager (LVM)
- Logical Volume Manager konfigurieren
- auf Festplatte schreiben: JA
- Volume Gruppe erstellen
- Name der Volume Gruppe: NAS00
- Gerät für Gruppe: /dev/mapper/md1_crypt
darauf aufbauend
- im nächsten Schritt legen wir die Logical Volumes an
- als erstes benötigen wir ein SWAP Volume
- Logisches Volume erstellen
- Volume Group NAS00
- Name: SWAP
- Größe: 8096 MB (Wir nehmen 1*RAM)
und für die Daten
- legen wir ein ROOT Volume an
- Logisches Volume erstellen
- Volume Group NAS00
- Name: ROOT
- Größe: verfügbare Größe
Wenn alles erledigt wählen Sie fertigstellen.
Nun geht es an die Installation
Wir haben nun 2 logische Volumes am System.
- LVM VG NAS00 LV ROOT 6TB
- LVM VG NAS00 LV SQAP 8GB
Das Root Filesystem legen wir am LVM VG NAS00 LV ROOT an.
- Wählen Sie die Zeile aus
- Benutzen als: Ext4 Journaling Dateisystem
- Einbindungspunkt: /
- Anlegen der Partition beenden
mit dem SWAP verfahren wir gleich:
- Zeile auswählen
- Benutzen als Auslagerungsspeicher (Swap)
- Anlegen der Partition beenden
Bevor wir nun die Debian Installation beginnen, selektieren wir Partitionierung beenden und Änderunden übernehmen.
- Änderungen auf Festplatte schreiben: JA
Unser Ergebnis sie so aus:
lsblk+Return NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 1,8T 0 disk ├─sda1 8:1 0 487M 0 part │ └─md0 9:0 0 1,4G 0 raid5 /boot ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 1,8T 0 part └─md1 9:1 0 5,5T 0 raid5 └─md1_crypt 253:0 0 5,5T 0 crypt ├─NAS00-SWAP 253:1 0 7,6G 0 lvm [SWAP] └─NAS00-ROOT 253:2 0 5,5T 0 lvm / sdb 8:16 0 1,8T 0 disk ├─sdb1 8:17 0 487M 0 part │ └─md0 9:0 0 1,4G 0 raid5 /boot ├─sdb2 8:18 0 1K 0 part └─sdb5 8:21 0 1,8T 0 part └─md1 9:1 0 5,5T 0 raid5 └─md1_crypt 253:0 0 5,5T 0 crypt ├─NAS00-SWAP 253:1 0 7,6G 0 lvm [SWAP] └─NAS00-ROOT 253:2 0 5,5T 0 lvm / sdc 8:32 0 1,8T 0 disk ├─sdc1 8:33 0 487M 0 part │ └─md0 9:0 0 1,4G 0 raid5 /boot ├─sdc2 8:34 0 1K 0 part └─sdc5 8:37 0 1,8T 0 part └─md1 9:1 0 5,5T 0 raid5 └─md1_crypt 253:0 0 5,5T 0 crypt ├─NAS00-SWAP 253:1 0 7,6G 0 lvm [SWAP] └─NAS00-ROOT 253:2 0 5,5T 0 lvm / sdd 8:48 0 1,8T 0 disk ├─sdd1 8:49 0 487M 0 part │ └─md0 9:0 0 1,4G 0 raid5 /boot ├─sdd2 8:50 0 1K 0 part └─sdd5 8:53 0 1,8T 0 part └─md1 9:1 0 5,5T 0 raid5 └─md1_crypt 253:0 0 5,5T 0 crypt ├─NAS00-SWAP 253:1 0 7,6G 0 lvm [SWAP] └─NAS00-ROOT 253:2 0 5,5T 0 lvm /
Der Vorgang benötigt etwas Zeit, danach können wir weitere Systemeinstellungen vornehmen.
Wählen Sie Ihr Heimatland für die System Archive und wählen Sie einen Spiegel aus. Sollten Sie einen Proxy benötigen um ins Internet zu kommen, tragen Sie diesen ein.
Bei der Benutzungsstatistik selektieren Sie am besten Nein. Danach installieren Sie den SSH Server und die Standard System Tools.
TIPP Sollte Ihr Installationsmedium nicht danach fragen, können Sie den SSH Server später mit apt-get install openssh-server jederzeit nachinstallieren.
Der GRUB Boot Loader wird temporär auf /dev/sda installiert.
Danach können Sie das System rebooten. Entfernen Sie dabei den USB Stick!
Jetzt haben Sie sich einen Kaffee verdient! Der heikelste Teil ist geschafft!
GRUB anpassen / prüfen (WICHTIG!)
Im Rahmen der Installation haben wir GRUB nur auf der Festplatte sda installiert. Dadurch würde, da GRUB nicht gefunden werden kann, beim Ausfall der Platte sda das System nicht mehr booten. Nachdem Sie den ersten Boot Vorgang abgeschlossen haben, sollten Sie GRUB auf alle Festplatten installieren.
- dpkg-reconfigure grub-pc
bzw.
- dpkg-reconfigure grub-efi-amd64
ausführen und GRUB auf allen sdX Festplatten installieren. Wenn unsicher welche Version, hilft ein ls /boot/grub. Ein Verzeichnis i386-pc deutet darauf hin, grub-pc zu verwenden.
HINWEIS: ab > 2TB wird automatisch mit GPT partitioniert. Hier wird dann grub-efi-amd64 verwendet. Versuchen Sie bereits bei der Erstintallation GTP zu verwenden! Mischen von MBR und GPT GRUB Setups ist nicht möglich!
Nach zwei Fragen, die Sie am besten mit dem Vorgabewert beantworten, markieren Sie im Fenster “Konfiguriere” alle Raid-Festplatten, bei mir sda,sdb,sdc,sdd. In keinem Fall installieren Sie GRUB auf den dm und md devices.
Nun startet das System auch, wenn die sda Festplatte stirbt.
Profi-Tipp: Prüfen ob Grub auf einer Festplatte installiert ist
- dd if=/dev/sdX bs=1 count=512 | grep -aob GRUB
zum Beispiel:
- dd if=/dev/sda bs=1 count=512 | grep -aob GRUB
muss nnn:GRUB anzeigen. Aktuell ist die Position im Block die nummer 392, dies kann sich aber bei Versionswechsel ändern. In jedem Fall ist GRUB in den ersten 512 Bytes der Festplatte ersichtlich.
Raid Infos
Sie können folgende Befehle verwenden:
- pvdisplay
pvdisplay --- Physical volume --- PV Name /dev/mapper/md1_crypt VG Name NAS00 PV Size 5,46 TiB / not usable 5,00 MiB Allocatable yes (but full) PE Size 4,00 MiB Total PE 1430332 Free PE 0 Allocated PE 1430332 PV UUID SUHin2-57jD-MT1c-YDV6-rg6O-kKWA-ba8dPS
- vgdisplay
vgdisplay --- Volume group --- VG Name NAS00 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 5,46 TiB PE Size 4,00 MiB Total PE 1430332 Alloc PE / Size 1430332 / 5,46 TiB Free PE / Size 0 / 0 VG UUID ZLUuuG-XMmp-D0T7-cpNs-rjd1-3rgf-d4DKL2
- lvdisplay
lvdisplay --- Logical volume --- LV Path /dev/NAS00/SWAP LV Name SWAP VG Name NAS00 LV UUID Htpq0u-W8cp-zfxh-s8e3-jROi-AiDg-46g89g LV Write Access read/write LV Creation host, time nas04, 2018-06-14 10:58:37 +0200 LV Status available # open 2 LV Size 7,54 GiB Current LE 1930 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 6144 Block device 253:1 --- Logical volume --- LV Path /dev/NAS00/ROOT LV Name ROOT VG Name NAS00 LV UUID 1eQOBH-xzKm-sVe0-EF1J-E0tv-Cdbo-AtvRD7 LV Write Access read/write LV Creation host, time nas04, 2018-06-14 11:02:16 +0200 LV Status available # open 1 LV Size 5,45 TiB Current LE 1428402 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 6144 Block device 253:2
zusätzlich können Sie mit
- mdadm –examine –brief –scan –config=partitions
ARRAY /dev/md/0 metadata=1.2 UUID=a5e6ef49:f99618ed:fcca6784:a6312739 name=nas04:0 ARRAY /dev/md/1 metadata=1.2 UUID=fb272a9e:3481879a:e480c9f4:0d4fc7c2 name=nas04:1
- cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md1 : active raid5 sda5[0] sdc5[2] sdb5[1] sdd5[3] 5858648064 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU] [====>................] resync = 23.6% (462357760/1952882688) finish=3098.7min speed=8016K/sec bitmap: 14/15 pages [56KB], 65536KB chunk md0 : active raid5 sda1[0] sdb1[1] sdc1[2] sdd1[3] 1492992 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
- mdadm –detail /dev/md/0
- mdadm –detail /dev/md/1
die Informationen zu den md Devices auslesen.
z.B. für das testsystem:
mdadm --detail /dev/md/1 /dev/md/1: Version : 1.2 Creation Time : Thu Jun 14 10:39:02 2018 Raid Level : raid5 Array Size : 5858648064 (5587.24 GiB 5999.26 GB) Used Dev Size : 1952882688 (1862.41 GiB 1999.75 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Thu Jun 14 17:29:03 2018 State : active, resyncing Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Resync Status : 22% complete Name : nas04:1 (local to host nas04) UUID : fb272a9e:3481879a:e480c9f4:0d4fc7c2 Events : 2890 Number Major Minor RaidDevice State 0 8 5 0 active sync /dev/sda5 1 8 21 1 active sync /dev/sdb5 2 8 37 2 active sync /dev/sdc5 3 8 53 3 active sync /dev/sdd5
Festplatte per SSH entsperren
Um nicht immer zum NAS gehen zu müssen, sollten wir eine Entsperrmethode für die Festplatte wählen, welche per SSH funktioniert. Andernfalls müssten wir bei jedem Reboot an die Console des Systems.
- erstellen Sie auf Ihrem PC (Nicht dem NAS!), sofern Sie noch keinen Key verwendwen, einen SSH Key: ssh-keygen -b 4096 und kopieren Sie den öfffentlichen Schlüssel ~/.ssh/id_rsa.pub in die Datei /root/.ssh/authorized_keys am NAS (Funktioniert analog dazu auf Windows und Macs).
Testen Sie das Login mit
- ssh root@IPdesNAS.
Nun installieren wir Dropbear
- apt-get install dropbear-initramfs
- Editieren Sie /etc/dropbear-initramfs/config und setzen das Port für den Connect
- DROPBEAR_OPTIONS=“-p 2222”
- Editieren Sie /etc/initramfs-tools/initramfs.conf und fügen Sie die statische Konfiguration ein:
- IP=NAS_IP::GATEWAY_IP:NETMASK:HOSTNAME:ETH:AUTOCONF
- in meinem System:
- IP=192.168.2.14::192.168.2.1:255.255.255.0:nas04:enp6s0:off
- Kopieren Sie die authorized_key Datei in den Ordner
- cp /root/.ssh/authorized_keys /etc/dropbear-initramfs/
- Erneuern Sie die initrd Datei
- update-initramfs -u
Zusätzliche Software
Jetzt wird es spannend. Rebooten Sie das System, am besten nachdem Sie noch:
- apt-get update
- apt-get dist-upgrade
- apt-get install ntp # (synchronisiert die Zeit, /etc/ntp.conf beachten)
- apt-get install pk-update-icon # (zeigt verfügbare updates am XFCE Desktop)
- apt-get install gufw # (Grafische Oberfläche für ufw, Einfache Firewallverwaltung)
- apt-get install atop # (top alike Anzeige für Systemwerte, inkl. Disk-I/O)
- apt-get install gdisk # (Siehe weiter unten)
- apt-get install openssh-server (Siehe weiter oben)
- apt-get install smartmontools (Siehe weiter unten)
durchgeführt haben und verbinden Sie sich mit dem ssh client (unter Windows bietet sich auch Putty an):
- ssh -p 2222 root@NAS_IP
um die Festplatte zu entsperren
Tests
Wenn das Ihre erste Installation mit einem System in dieser Art ist, sollten Sie folgende Tests durchführen, bevor das System in Echtbetrieb geht:
- Einzelne Festplatte fällt aus
- Einzelne Festplatte sda fällt aus (Test GRUB Funktionalität, siehe oben)
Hot Spares
Sie können das System mit Hot Spares, Festplatten die automatisch eine defekte Festplatte ersetzen betreiben. Das reduziert die kritische Zeit, in der ein weiterer Festplattenausfall einen Totalverlust bedeuten könnte.
- mdadm –add /dev/md/
/dev/sdXn - mdadm –remove /dev/md/
/dev/sdXn
Die Parameter sind der Name des RAID und die Festplatte die hinzugefügt, oder entfernt wird.
Rebuild im Fehlerfall
Festplatte identifizieren mit smartctl -i /dev/sda. Damit sieht man die Seriennummer der Platte.
Im Fehlerfall muss einerseits die defekte Festplatte vom Raid entfernt und andererseits eine neue, gleich partitionierte Festplatte hinzugefügt werden.
- mdadm –manage /dev/md/
-r /dev/sdXn
entfernt eine defekte Festplatte und
- mdadm –manage /dev/md/
-a /dev/sdXn
fügt eine neue Platte hinzu. Zur Partitionierung verwenden Sie fdisk, cfdisk, parted oder den PROFI-TIPP weiter unten. Wenn alle Vorgänge fehlerfrei sind, könnten Sie mit dem Rebuild starten. Setzen Sie die neue Partition im Raid-Verbund auf “Fehlerhaft”.
- mdadm –manage –set-faulty /dev/md/
/dev/sdXn
Damit wird der Rebuild Prozess angestoßen und mit dem oben genannten cat /proc/mdstat können Sie den Fortschritt prüfen.
Wenn alles fertig ist, GRUB auf der Platte wieder installieren. Siehe oben!
Testprotokoll (Real Scenario)
Da beim Test Setup eine Festplatte weggestorben ist haben wir einen echten Vorgang.
cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md1 : active raid5 sda5[0] sdc5[2] sdb5[1](F) sdd5[3] 5858648064 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [U_UU] bitmap: 10/15 pages [40KB], 65536KB chunk md0 : active raid5 sda1[0] sdb1[1](F) sdc1[2] sdd1[3] 1492992 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [U_UU] unused devices:
Hier sieht man, dass unsere Festplatte sdb fehlerhaft ist. Nicht so lustig ist die Ausgabe von smartctl -i /dev/sdb.
=== START OF INFORMATION SECTION === Vendor: #o��_# � Product: ��W-��#�j� ��lYa Revision: �-�j User Capacity: 3.094.343.596.835.094.505 bytes [3094 PB] Logical block size: 789056705 bytes >> Terminate command early due to bad response to IEC mode page A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.
D.h. wir können die Festplatte über die Seriennummer nicht mehr identifizieren und müssten blind den 2. SATA Anschluss als sdb vermuten. Natürlich ist das keine Lösung. Diesetwegen identifizieren wir die anderen drei Platten.
smartctl -i /dev/sda === START OF INFORMATION SECTION === Model Family: Western Digital Green Device Model: WDC WD20EARX-00PASB0 Serial Number: WD-WMAZA5112499 LU WWN Device Id: 5 0014ee 0ad7a9e9b Firmware Version: 51.0AB51 User Capacity: 2.000.398.934.016 bytes [2,00 TB] Sector Sizes: 512 bytes logical, 4096 bytes physical Device is: In smartctl database [for details use: -P show] ATA Version is: ATA8-ACS (minor revision not indicated) SATA Version is: SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s) Local Time is: Fri Jun 15 17:21:07 2018 CEST SMART support is: Available - device has SMART capability. SMART support is: Enabled
Für sdc und sdd führen wir dasselbe Kommando durch. Damit haben wir die Seriennummern der Platten a,c,d und können sdb eindeutig durch Ausschluss identifizieren.
Wirklich interessant war bei unserem Beispielvorgang, dass die Festplatte sdb bereits automatisch removed und auf faulty gesetzt wurde:
mdadm --detail /dev/md/0 /dev/md/0: Version : 1.2 Creation Time : Thu Jun 14 10:37:49 2018 Raid Level : raid5 Array Size : 1492992 (1458.00 MiB 1528.82 MB) Used Dev Size : 497664 (486.00 MiB 509.61 MB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Fri Jun 15 17:01:36 2018 State : clean, degraded Active Devices : 3 Working Devices : 3 Failed Devices : 1 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Name : nas04:0 (local to host nas04) UUID : a5e6ef49:f99618ed:fcca6784:a6312739 Events : 51 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 - 0 0 1 removed 2 8 33 2 active sync /dev/sdc1 3 8 49 3 active sync /dev/sdd1 1 8 17 - faulty /dev/sdb1
auch beim md1
mdadm --detail /dev/md/1 /dev/md/1: Version : 1.2 Creation Time : Thu Jun 14 10:39:02 2018 Raid Level : raid5 Array Size : 5858648064 (5587.24 GiB 5999.26 GB) Used Dev Size : 1952882688 (1862.41 GiB 1999.75 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Fri Jun 15 17:29:55 2018 State : active, degraded Active Devices : 3 Working Devices : 3 Failed Devices : 1 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Name : nas04:1 (local to host nas04) UUID : fb272a9e:3481879a:e480c9f4:0d4fc7c2 Events : 13228 Number Major Minor RaidDevice State 0 8 5 0 active sync /dev/sda5 - 0 0 1 removed 2 8 37 2 active sync /dev/sdc5 3 8 53 3 active sync /dev/sdd5 1 8 21 - faulty /dev/sdb5
Ohne Risiko können wir das System aktuell nur herunterfahren und die Festplatten prüfen. Wenn eine Dokumentation der Seriennummern in den Slots vorliegt können Sie die Platte natürlich auch über den Hot-Plug Einschub tauschen.
Wir führen shutdown -h now aus um das System herunter zu fahren und ersetzen die Platte sdb physikalisch. Danach booten wir das System wieder. Ich hatte nur eine 3TB Festplatte hier und habe diese im Slot sdb installiert. Nach dem starten des Systems via Dropbear die Festplatte entsperrt und wieder mit dem System verbunden.
Nun müssen wir die neue sdb partitionieren, bevor wir diesem dem RAID hinzufügen. Wir prüfen unsere Harddisk:
smartctl -i /dev/sdb === START OF INFORMATION SECTION === Model Family: Seagate SV35 Device Model: ST3000VX000-9YW166 Serial Number: Z1F0J6D7 LU WWN Device Id: 5 000c50 0403ee192 Firmware Version: CV12 User Capacity: 3.000.592.982.016 bytes [3,00 TB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: 7200 rpm Device is: In smartctl database [for details use: -P show] ATA Version is: ATA8-ACS T13/1699-D revision 4 SATA Version is: SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s) Local Time is: Fri Jun 15 17:57:17 2018 CEST SMART support is: Available - device has SMART capability. SMART support is: Enabled
Wir clonen die Partition Table der Platte sdd auf auf die neue sdb.
Syntax: sgdisk -R New_Disk Existing_Disk
führen also
- sgdisk -R /dev/sdb /dev/sdd
aus.Danach noch eine Random GUID mit
- sgdisk -G /dev/sdb
und prüfen das Ergebnis mit:
- sgdisk -p /dev/sdb
sgdisk -p /dev/sdb Disk /dev/sdb: 5860533168 sectors, 2.7 TiB Logical sector size: 512 bytes Disk identifier (GUID): 4A47D59C-A416-456A-B71A-FBBE7AACF96E Partition table holds up to 128 entries First usable sector is 34, last usable sector is 5860533134 Partitions will be aligned on 2048-sector boundaries Total free space is 1953508205 sectors (931.5 GiB) Number Start (sector) End (sector) Size Code Name 1 2048 999423 487.0 MiB FD00 Linux RAID 5 1001472 3907028991 1.8 TiB FD00 Linux RAID
Wir haben wieder die notwendigen sdb1 und sdb5 Partitions, welche wir nun zum Raid hinzufügen können.
Mit
- mdadm –manage /dev/md/0 –add /dev/sdb1
starten wir beim Raid md0.
cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md1 : active raid5 sda5[0] sdc5[2] sdd5[3] 5858648064 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [U_UU] bitmap: 10/15 pages [40KB], 65536KB chunk md0 : active raid5 sdb1[4] sda1[0] sdc1[2] sdd1[3] 1492992 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [U_UU] [=>...................] recovery = 9.4% (47544/497664) finish=10.5min speed=710K/sec
und fahren mit
- mdadm –manage /dev/md/1 –add /dev/sdb5
beim Raid md1 fort. Nun heißt es warten, bis das Raid wieder rebuilded ist.
cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md1 : active raid5 sdb5[4] sda5[0] sdc5[2] sdd5[3] 5858648064 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [U_UU] resync=DELAYED bitmap: 10/15 pages [40KB], 65536KB chunk md0 : active raid5 sdb1[4] sda1[0] sdc1[2] sdd1[3] 1492992 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [U_UU] [==========>..........] recovery = 50.6% (252448/497664) finish=6.5min speed=627K/sec
Wenn das Raid wieder synchronisiert ist, sollte es so aussehen:
cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md1 : active raid5 sdb5[4] sda5[0] sdc5[2] sdd5[3] 5858648064 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU] bitmap: 4/15 pages [16KB], 65536KB chunk md0 : active raid5 sdb1[4] sda1[0] sdc1[2] sdd1[3] 1492992 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
** GRUB AUFSPIELEN UND PRÜFEN **
Nun sollten wir auf die neue Platte den GRUB Bootloader noch aufspielen!
- dpkg-reconfigure grub-pc
bzw.
- dpkg-reconfigure grub-efi-amd64
Details siehe weiter oben.
WIRKLICH WICHTIG
!!WICHTIG!! REMOVE UND FAULTY müssen in unserem Fall für md/0 und md/1 angestoßen werden! Jede Platte hat 2 Partitions (md0 und md1)! !!WICHTIG!!
PROFI TIPP (PARTITIONIERUNG)
Da man die Partitionierung im Fehlerfall unter Stress natürlich nicht händisch machen möchte installiert man sich am besten gdisk.
- apt-get install gdisk
Mit dieser Software können Sie nicht nur die Partition Table sichern:
- sgdisk –backup=/root/sda.partitionbackup /dev/sda
- sgdisk –backup=/root/sdb.partitionbackup /dev/sdb
sondern Sie können auch die Partitiontabelle einer Festplatte auf eine andere clonen:
- sgdisk -R /dev/sdb /dev/sda WICHTIG SOURCE ist der 2. Parameter!!!
- sgdisk -G /dev/sdb # WICHTIG !MUSS!: Nach clonen die GUID mit einer Zufalls-GUID versehen
um das Ergebnis der Operation zu prüfen, listen sie die Partition Tabellen auf:
- sgdisk -p /dev/sda
- sgdisk -p /dev/sdb
So gestaltet sich ein Festplattentausch sehr einfach. Defekte Platte vom Raid entfernen, neue Platte installieren und Partition einer gleichen Platte clonen. GUID mit Zufalls-GUID versehen und die Platte dem Raid hinzufügen. Danach die Partitionen der Platte auf Faulty setzen und den Synchronisierungsvorgang abwarten, bzw. mit cat /proc/mdstat prüfen.
Im Teil 2 geht es weiter mit:
Monitoring des Raid Zustandes
Sie können mit
- /usr/share/mdadm/checkarray –cron –all –quiet
den Zustand überwachen. Am besten in der crontab als Job einfügen.
Einrichten E-Mail für Überwachung
Monitoring der Festplatten mit smartmontools
Monitoring des mdadm Zustandes
Einrichten des Uhrzeitsynchronisation
- editieren Sie die Datei /etc/ntp.conf
- danach führen Sie service ntp restart aus
PROFI TIPP: Einrichtung der Systemverwaltung via RDP Protokoll
Sollten der Boot Vorgang einwandfrei funktionieren, richten wir uns zur einfachen Verwaltung des Gesamtsystems einen RDP Server ein. Damit kann mit MS Bordwerkzeug (mstsc), bzw. z.B. mit Remmina unter Linux und einer RDP Software am MAC; Android und IOS der XFCE Desktop herangeholt werden. Eine richtig coole Lösung!
Einstellung der Firewall
Interface bundling (bonding)
NFS / SMB / Samba / LDAP
- File Shares für jedes Betriebssystem
Infos & Support
Riot.im / Matrix.org Räume:
Ich habe in der Matrix einen Raum eingerichtet in dem ich mich mit Freunden und netten Menschen austausche. Freundliche Menschen mit netten Umgangsformen, deutsch oder englisch sprechend, sind dort gerne willkommen.
- Public room KMJ & friends (EN/DE) in der Matrix: #kmj:matrix.ctseuro.com
- Eintreten durch Eingabe von /join #kmj:matrix.ctseuro.com in Ihrem Matrix/Riot Client.
Riot.IM Info
Für alle die den Riot Messenger noch nicht verwenden findet sich unten eine Anleitung. Die wichtigsten Punkte:
- Der Riot Messenger ist kostenlos und Open Source.
- Bei Registrierung am öffentlichen Server keine persönlichen Daten wie E-Mail oder Telefonnummer notwendig! Hier ist niemand an den Daten interessiert.
- Jeder kann, bei Interesse, auch einen eigenen Server betreiben und zur Matrix verbinden
- Bei aktivierter Verschlüsselung kann auch am Server niemand mitlesen
- Sogar die französische Regierung baut gerade eine Riot/Martix Landschaft auf um WhatsApp oder Telegram abzulösen. https://matrix.org/blog/2018/04/26/matrix-and-riot-confirmed-as-the-basis-for-frances-secure-instant-messenger-app/
Coole Features!
- Verfügbar für IOS, Android, Linux, Mac, Windows
- Mehrere Endgeräte können gleichzeitig online sein
- Potential so gut wie jede Kommunikation in einer Software zu halten
- Verschlüsselte Telefonie zwischen den Teilnehmern möglich
Riot.im / Matrix / Synapse Download Links
- https://riot.im für Endanwender
- https://matrix.org für Administratoren
- /2018-03-12-riot-im-messenger-kurzanleitung-fuer-benutze-updated/ Kurzanleitung auf dieser Seite
- /matrixsynapse-riot-im-die-neue-form-der-kommunikation-fuer-endanwender-und-unternehmen/
- Downloads für Android und IOS in den jeweiligen APP-Stores
Profi Support
- Professionelle Hilfe bei Open-Source Lösungen bietet seit 1985 die CTS GMBH https://cts-solutions.at (professionelle IT Lösungen seit 1985!), bzw. https://ctssupport.at (Open Source Remote Support).