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

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 /j #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

Profi Support