Das Projekt

Wenn man viel mit den BananaPi's am rumspielen ist, kommen einem immer wieder ein paar Nachteile unter. Gerne würde ich ein RAID 1 betreiben. So hatte ich mir die Tage ein paar Gedanken gemacht zu einem Home NAS und mich mit dem Nico von bananian.org ausgetauscht. Was für ein Zufall, er war gerade am selben Thema dran ;) So gab er den Hinweis, das in der Ausgabe 8/16 der CT ein Artikel zu dem Thema drin war. Genau das was mir so vorschwebte. Also mal schnell alle Artikel bestellt. Auch dazu gibt es eine nette Seite der CT wo alle Artikel schön aufgelistet sind. Projekt NAS - Hardware

Zur Hardware hatte ich diesen Artikel gechrieben Projekt NAS - Hardware

 

Die Software

Das System soll ein aktuelles Debian sein, mit einem Kernel ab 4.3. Grund dafür ist die Unterstützung der Skylake Prozessoren. Erst ab 4.3 werden diese unterstützt. Was brauchen wir?

  • Debian Jessie
  • Für das RAID brauchen wir das Paket mdadm
  • Für die Verschlüsselung (nur das RAID 1) benutzen wir LUKS

Und weiter geht's...

 

Bios updaten!

Als erstes mal ein Bios-Update machen, kann im BIOS aktiviert werden. Das hat bei mir den Strombedarf von 16,8 Watt auf 14,9 Watt (ohne hdparm) verringert.

 

Debian Jessie installieren

Debian herunterladen und einen USB-Stick damit beschrieben. Ab damit ins NAS und starten. Das Biosmenü erreicht man mit der Taste F2, das Bootmenü mit der Taste F12. Die Grundinstallation von Debian durchgeführt, darauf gehe ich hier nicht ein, ich gehe davon aus das die meisten Leser dieses Blogs das schon x-mal gemacht haben. Nach der Grundinstallation kommen die normalen Anpassungen eines Servers.

  • feste IP
  • öffentliche Schlüsselauthentifizierung
  • usw.

Zum Thema Sicherheit eines Servers gibt es etliche gute Seiten im Netz. Macht euch vorher schlau, bevor ihr so einen Server ans Netz hängt. Meine Server stehen hinter einer Firewall, so mit brauch ich mir um das Thema nicht ganz so viel Gedanken machen ;)

Danach hat der Nico angefangen ein paar Kernel zu bauen, die wir dann getestet haben um zu sehen ob wir was an der Stromaufnahme machen konnten. Dazu wurde Kernel 4.7, 4.8 und 4.9 getestet. Das Fazit am Ende, alles nach Kernel 4.3 unterstützt den Skylake-Prozessor sehr gut. Für die ersten Versuche wurde folgender Kernel eingesetzt.

Linux nas 4.8.3-nas #1 SMP Thu Oct 20 20:15:02 CEST 2016 x86_64 GNU/Linux

Aktuell setzen wir einen 4.8.4 Kernel ein. Den Karnel kann man so installieren.

wget https://github.com/Bananian/ct-server-2016-jessie/raw/master/deb/linux-image-4.8.4-skylake_4.8.4-1_amd64.deb
dpkg -i linux-image-4.8.4-skylake_4.8.4-1_amd64.deb

Weiter unten habe ich einige Ergebnisse der Stromaufnahme aufgeführt.

 

RAID installieren:

mdadm installieren

apt-get install mdadm

 

Vorsicht!!!

Ab hier müßt ihr Euer Hirn einschalten, sonst sind die Daten weg :) Ich übernehme keine Garantie! Checkt zehn mal ob ihr die Befehle auf den richtigen Platten ausführt!!

Wir schauen uns die Platten an.

fdisk -l

Festplatten notieren!!!!!!!!!!

 

Festplatte auswählen:

 fdisk /dev/sda

Nochmal checken ob wir die richtige bearbeiten "p" drücken! Kontrollieren!!

Mit n eine neue Partition erstellen.
Nr.1 auswählen

Mit w werden die Schritte auf die Festplatte geschrieben.

Für das RAID müssen wir den Hexcode der Platte ändern auf 0xfd
t zum Ändern des Hexcode eingeben.
fd eingeben - Fertig!

Das für die zweite Platte wiederholen!


Superblocks auf die Festplatten des Raid's schreiben.

mdadm --zero-superblock /dev/sdX /dev/sdX

 

RAID-Level 1 wird festgelegt, mit zwei Platten sda1 und sdb1

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdX1 /dev/sdX1

Den RAID-Verbund formatieren!

mkfs.ext4 /dev/md0

Fertig!

Den RAID beim Booten automatisch mounten. Unter /mnt ein Verzeichnis erstellen.

mkdir /mnt/nas

In /etc/fstab

/dev/md0        /mnt/nas        ext4    noatime,rw      0       0

eintragen. Fertig! Neustarten und der RAID wird automatisch gemountet.

---------------
Paar Befehle für Infos zum RAID!

root@nas:/mnt# mdadm --query --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Oct 19 19:52:02 2016
Raid Level : raid1
Array Size : 976630464 (931.39 GiB 1000.07 GB)
Used Dev Size : 976630464 (931.39 GiB 1000.07 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Wed Oct 19 20:00:25 2016
State : active, resyncing
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Resync Status : 4% complete
Name : nas:0 (local to host nas)
UUID : 2315c40e:11aa4280:baf64963:89b08085
Events : 102
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1

------------------------------

root@nas:/mnt# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[1] sda1[0]
976630464 blocks super 1.2 [2/2] [UU]
[==>..................] resync = 11.3% (110966720/976630464) finish=164.1min speed=87878K/sec
bitmap: 8/8 pages [32KB], 65536KB chunk
unused devices:

IMG_20161021_173752.jpg

Festplatten schlafen legen mit hdparm

hdparm installieren mit

apt-get install hdparm

In vielen Anleitungen werden die HDD's mittels der UUID schlafen gelegt.

/dev/disk/by-uuid/4c9dca33-e3e1-4a6a-a7d4-110cdbb4cfbe {
spindown_time = 60
}

Blöd, meine beiden HDD's sind im Ordner /dev/disk/by-uuid nicht enthalten. Aber, da gibt es noch den Ordner by-id und da finde ich meine HDD's.

ata-HGST_HTE541010A9E680_xxxxxxxxxxxxxxxx
ata-HGST_HTS541010A9E680_xxxxxxxxxxxxxxxx

Damit kann ich nun meine hdparm.conf editieren.

nano /etc/hdparm.conf

Am Ende folgendes ergänzen:

#RAID md0 schlafen legen nach 20 Minuten (240*5=1200Sek.=20Min.)
/dev/disk/by-id/ata-HGST_HTE541010A9E680_JA1000CRGG3AXP {
# mult_sect_io = 16
# write_cache = off
# dma = on
spindown_time = 240
}

/dev/disk/by-id/ata-HGST_HTS541010A9E680_JA1006C0162UJN {
# mult_sect_io = 16
# write_cache = off
# dma = on
spindown_time = 240
}

Danach den Server neustarten, nun legen sich die Festplatten nach 20 Minuten schlafen. Macht bei meinem Server folgenden Energieverbrauch.

Festplatten aktiv, direkt nach dem Booten = 16,8 Watt

Festplatten im Standby = 13,0 Watt

Gut, 3,8 Watt gespart. Da ich das NAS ja nicht ständig brauche, können sich die Festplatten ruhig schlafen legen, spart immerhin 3,8 Watt. Das macht im Jahr ca. 31 kW/h aus (keine wissentschaftliche Berechnung ;) )

 

RAID verschlüsseln

Nun verschlüsseln wir den RAID so, das er BKA sicher ist ;)

Ich verweise hier gerne auf die Anleitung im Ubuntu Wiki. https://wiki.ubuntuusers.de/LUKS/

RAID öffnen und benutzen:

cryptsetup luksOpen /dev/md0 nas
mount /dev/mapper/nas /mnt

Nun steht das verschlüsselte RAID unter /mnt zur Verfügung. Überprüfung mit

df -h

Ergebnis:

/dev/mapper/nas  917G     84M  870G    1% /mnt

Fertig!

Das RAID beim Booten freigeben und mounten. http://linuxwiki.de/cryptsetup

In /etc/crypttab

nas     /dev/md0        none    luks

in /etc/fstab

/dev/mapper/nas /mnt/nas        ext4    acl,user_xattr,nofail   1       2

Bitte den amderen Eintrag in /etc/fstab auskommentieren oder löschen.

Danach wird beim Booten das Passwort abgefragt und das RAID automatisch gemountet.

 

Eine Einbindung auf einem anderen Rechner erfolgt mittels eines Eintrages in /etc/fstab.

192.168.2.x:/mnt/nas  /media/NAS      nfs     defaults,soft,users     0       0

Dazu muss unter /mnt das Verzeichnis NAS existieren.

 

 

Strommessungen:

Kernel 4.7 nur SSD - 11,2 Watt (4.7.0-0.bpo.1-amd64)

Kernel 4.7 SSD & 2 HDD - 18,6 - 19,6 Watt (resync der Platten am Laufen)

Kernel 4.9 SSD & 2 HDD - 12,1 Watt (die beiden HDD's per hdparm ausgeschaltet)

Kernel 4.9 SSD & 2 HDD - 14,0 Watt (die beiden HDD's aktiviert ohne Schreib/Lesevorgänge)

Kernel 4.9 SSD & 2 HDD - 16,8 Watt (die beiden HDD's bei der Arbeit)

Das sind einfache Verbrauchsmessungen mit einem einfachen Meßgerät und keine wissentschaftliche Arbeit. Es sollte aber reichen um grob abschätzen zu können, wie hoch die Stromkosten im Jahr sind.

Nico hat ein github aufgesetzt, da könnt ihr euch noch ein paar Verbesserungen herunterladen. Danach läuft die Kiste richtig sparsam. Aktuell habe ich so ca. 8,2 - 9,3 Watt. Das RAID mittels hdparm schlafen gelegt. Also, deutlich unter 10 Watt.

 

 

 

 

Nützliche Links

https://www.debian.org/

https://linuxundich.de/hardware/festplatten-automatisch-im-betrieb-in-den-standby-schalten/

http://linuxwiki.de/cryptsetup

https://wiki.ubuntuusers.de/LUKS/

https://bananian.org

https://github.com

 

Fazit

Ein ganz fettes Danke schön an den Nico, der mir die ganze Zeit mit Rat und Tat zur Seite stand. Schon schön wenn man einen Experten kennt ;) Ansonsten in meinen Augen ein feines NAS für zu Hause, absolut leise, ausreichend Leistung. Ich denke, da kann man noch mehr mit machen als nur Daten drauf abzulegen. Die Grundidee ist umgesetzt, jetzt geht es ans verfeinern.