RAID mit SSD-USB-Sticks

Dieser Artikel beschreibt, wie Du Dir aus zwei USB-Sticks ein Disk-Array mit Daten-Spiegelung bauen kannst.

Hardware

Normale USB-Sticks haben eine begrenzte Anzahl von Überschreib-Vorgängen auf jede Zelle. Jeder USB-Stick wird also nach einer Zeit kaputt gehen. Das werden wir hier mit etwas Technik so umschiffen, dass das Risiko Daten zu verlieren minimiert wird.

Vorgehensweise

Was werden wir tun? Wir werden aus beiden USB-Sticks ein Software-RAID bauen, Linux kann das von Haus aus. Und das geht so:

Wir schließen beide möglichst gleich großen USB-Sticks an den Rechner an und schauen mit lsblk, um welche Geräte es sich handelt:

$ lsblk 

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
...
sdc      8:32   1 119,3G  0 disk 
├─sdc1   8:49   1 119,2G  0 part 
sdd      8:48   1 119,3G  0 disk 
└─sdd1   8:49   1 119,2G  0 part 

In unserem Fall handelt es sich also um die Geräte sdc und sdd mit jeweils ca. 119 GB Platz. Das Software-RAID arbeitet auf Basis von Partitionen. Diese müssen also vorhanden sein, wenn auch nicht unbedingt formatiert.

Da wir aus diesen USB-Sticks nun zu einem hochverfügbaren Laufwerk umbauen wollen, schreiben wir nun als User root mit dem Befehl mdadm die Disk-Array-Signaturen auf die Sticks:

sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1

Fragen beantworten wir mit y. Nun werden die Daten von der Partition des ersten Sticks auf die Partition des zweiten abgeglichen. Das kann man so mit beobachten:

$ cat /proc/mdstat 

Personalities : [raid1] 
md0 : active raid1 sdd1[1] sdc1[0]
      124975104 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  4.5% (5634304/124975104) finish=9.8min speed=201225K/sec
      bitmap: 1/1 pages [4KB], 65536KB chunk

unused devices: <none>

Schon während dieses Vorgangs können wir sehen, dass unser RAID-Device nun existiert:

$ ls -l /dev/md0 

brw-rw---- 1 root disk 9, 0 26. Okt 13:24 /dev/md0

Da unser Device schon existiert, können wir jetzt darauf schon ein Filesystem erstellen:

$ sudo mkfs.ext4 /dev/md0

Jetzt können wir, wenn wir möchten, noch ein Label festlegen, so dass unser neues RAID mit einem schönen Namen in den Datei-Explorern angezeigt wird, wenn wir die USB-Sticks einstecken:

$ sudo e2label /dev/md0 data

RAID wieder löschen

Will man das ganze RAID wieder entfernen, muss man das Filesystem zunächst aushängen, dann das Array stoopen und dann die Superblöcke auf den beiden Sticks auslöschen:

$ sudo umount -l /dev/md0
$ sudo  mdadm --stop /dev/md0
mdadm: stopped /dev/md0

$ sudo mdadm --zero-superblock /dev/sdc1
$ sudo mdadm --zero-superblock /dev/sdd1