In diesem Artikel beschreibe ich den Aufbau eines SATA NAS mit dem Raspberry Pi 4 Compute Modul.
Wie das Compute Modul 4 installiert wird habe ich im Artikel „Raspbian auf dem Raspberry Pi Compute Modul 4 installieren“ beschrieben. Diese Installation habe ich mittlerweile erweitert und eine SATA-Karte mit vier Festplatten HDD mit je 1 TB eingebaut.
Aufbau eines SATA NAS mit dem Raspberry Pi 4
Linux erkennt die SATA-Karte beim Start automatisch. Überprüfen kann man das mit dem Kommando lspci.
root@rpi4:~ $ lspci 00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2711 PCIe Bridge (rev 20) 01:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9215 PCIe 2.0 x1 4-port SATA 6 Gb/s Controller (rev 11)
Die Platten sieht man durch Ausführen des Kommandos lsblk. Die Devicenamen der Platten sind /dev/sda, /dev/sdb, /dev/sdc und /dev/sdd.
root@rpi4:~ $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 1 931,5G 0 disk └─sda1 8:1 1 931,5G 0 part sdb 8:16 1 931,5G 0 disk └─sdb1 8:17 1 931,5G 0 part sdc 8:32 1 931,5G 0 disk └─sdc1 8:33 1 931,5G 0 part sdd 8:48 1 931,5G 0 disk └─sdd1 8:49 1 931,5G 0 part mmcblk0 179:0 0 7,3G 0 disk ├─mmcblk0p1 179:1 0 256M 0 part /boot └─mmcblk0p2 179:2 0 7G 0 part / mmcblk0boot0 179:32 0 4M 1 disk mmcblk0boot1 179:64 0 4M 1 disk
Die Platten partitioniert man mittels fdisk /dev/sda bis fdisk /dev/sdd. Ich habe jeweils die Defaultwerte bestätigt und so alle Platten mit einer großen Partition belegt.
Einrichten des RAID10 Devices
Ich habe mich für die Verwendung eines RAID10 Systems entschieden. RAID 10 ist eine Kombination aus RAID0 und RAID1. Ein RAID0 fügt mehrere Platten zur Optimierung der Performance zusammen und legt die Daten in sogenannten Streifen (stripes) verteilt auf alle Platten ab. Ein RAID1 spiegelt die Daten über die Platten und erhöht dadurch die Ausfallsicherheit. Das RAID10 System schließt mehrere RAID1 Systeme zu einem RAID0 System zusammen und daraus folgt, man benötigt also für ein RAID10 immer mindestens vier Platten. Bei vier Platten werden zwei RAID1 Systeme durch ein RAID0 zusammengefasst. Mehr Informationen über die verschiedenen RAID Level gib es bei Wikipedia RAID.
Unter Linux verwendet man zum Einrichten von RAID Systemen das Tool mdadm und alle Kommandos werden als root durchgeführt.
apt install mdadm mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 mkdir -p /mnt/myraid mkfs.ext4 /dev/md0 mount /dev/md0 /mnt/myraid
Zuerst installiert man das Tool mdadm, dann erzeugt man das RAID System, danach wird der Mountpoint angelegt und dann das RAID System mit dem Filesystem ext4 formatiert. Zum Schluß mounted man das RAID System am Mountpoint.
Um das RAID System beim Start direkt einzuhängen kann man in die Datei /etc/fstab folgenden Eintrag machen und speichern.
# mount raid /dev/md0 /mnt/myraid/ ext4 defaults,noatime 0 1
Inspiriert zu diesem kleinen Projekt hat mich der Beitrag von Jeff Geerling, der den Aufbau eines SDD NAS beschreibt.