Existierendes RAID-1 + LUKS

Elcrian

Commander
Registriert
Feb. 2008
Beiträge
2.493
Hi.
Ich habe einen 2x3TB + 2x1TB RAID-1 Verbund sowie eine 500GB System-HDD unter Debian Wheezy mit OMV in Betrieb.

Meine Frage: Kann ich die existierenden RAID-Verbünde nachträglich via LUKS o.Ä. verschlüsseln? Soweit ich weiß geht das (entgegen zu BitLocker) nicht bei existierenden Daten. Ich habe keinen Backup-Space für die ganzen 4TB Daten und will Türme von Hannoi spielen (ja, ich bin ein schlechter Mensch...).

Meine Idee war wie folgt:
1) Eine Platte aus dem Verbund entfernen (mdadm --manage /dev/mdX --fail /dev/sda1), formatieren (Daten sind ja, logischerweise, auf der 2. Platte, sdb1)
2) Neues RAID-1 anlegen, mit einer HDD als "missing" (mdadm --create /dev/md/xxx --level 1 --raid-devices 2 /dev/sda1 missing)
3) Einrichten von LUKS auf das neue Software-Raid (cryptsetup luksFormat /dev/md/xxx)
4) Zurückkopieren der unverschlüsselten Daten auf das neue RAID (rsync -avh /sdb1 /sda1)
5) Altes RAID löschen (mdadm --stop /dev/mdX)
6) Unverschlüsselte Platte ins RAID hängen (mdadm /dev/md/xxx -a /dev/sdb1). Die soll dann, nach meiner Logik, anschließend mit verschlüsselt werden.

Ich kenne mich allerdings weder mit RAID, noch mit LUKS besonders aus (habe das RAID via OMV-Interface und LUKS am Desktop via Installer gemacht) - kann mir also jemand sagen ob das so klappt oder kennt ggf. ein Tutorial inkl. bei mir fehlender / passenden Commands?
Brauche ich LVM dazu?
Klappt das auch wenn die OS-HDD nicht verschlüsselt ist (Disclaimer: Lässt sich nachholen)?
Wie läuft das beim Start vom Suspend/Hibernate - wann und wie wird der Key gebraucht? Bei der System-Partition brauche ich denn ja beim Start. Ideal wäre ein PrivateKey per USB-Stick.

Danke. :)
 
So aus dem Bauch heraus würde ich sagen, dein Plan sollte klappen. Vielleicht hilft dieser Artikel... den ich ohne viel Suchen bei einer großen Suchmaschine gefunden habe: http://hermann-mayer.net/blog/raid1-luks-und-lvm-ersetzen-mein-altes-speichersystem.

Der Schlüssel wird immer beim Mounten benötigt, also auch beim Aufwachen aus dem Standby. Man kann den Key wohl auch per USB Stick bereitstellen, zumindest hatte ich in der Richtung schonmal was gelesen.

LVM sollte keine Voraussetzung sein... ist ja nur für dynamische Partitionierung da.

Mit LUKS wird jeweils eine Partition verschlüsselt. Wenn du die OS HDD (erstmal) nicht verschlüsseln willst, dann nicht. Sollte völlig unabhängig sein...

Viel Erfolg und vielleicht berichtest du nochmal, von deinen Ergebnissen.

PS: Beachte aber, dass deine Daten während des Umbaus nicht mehr gespiegelt vorliegen und durch das Kopieren und Syncen ne Menge Last auf den Platten liegt, was wiederum einen Ausfall gerade bei älteren Platten provozieren könnte.
 
Zuletzt bearbeitet:
Hi,
das "müsste" so wohl gehen, aber ich würde das erstmal unter einer virtuellen Maschine testen, an deiner Stelle.
Außerdem, ich weiß ja nicht was du da an 4 TB Daten hast, aber du solltest dich wirklich Fragen, ob sie dir die ca 130€
wert sind, die eine 4 TB HDD kosten würde, oder ob sie doch nicht so wichtig sind, dann erschließt sich mir ein Raid-1
aber auch nicht.

Gruß
Marc2100
 
Sind dir die Daten wichtig? Falls ja dann sei dir gesagt ein RAID 1 ist kein Backup. Kauf dir eine externe 4 TB Platte, sichere deine Daten und dann kannst du anfangen damit rumzuspielen.
 
Ich bin für eure Kommentare zwar dankbar, aber ich habe mein Backup-System schon im Griff. Davon abgesehen war in den letzten ~10 Jahren mein einziger Real-Ausfall was Daten angeht grundsätzlich etwas wie Headcrash, noch nie Software.
Ich habe lediglich keine simple Speichermöglichkeit (externe 4TB) sondern nutze eine Mischung aus Cloud (ownCloud), Cold Storage (Amazon Glacier), externen HDDs und meinem Desktop. Da kann ich nicht mal eben mit 100MB/s (SATA) Daten umherschieben, sondern muss übers Netz arbeiten und/oder Daten von x Quellen zusammensuchen.

Anyways, danke. Ich werde es an einer VM testen wenn das prinzipiell so geht. :)
 
Aber naja jetzt willst du ja quasi live an deinen Daten "rumfummeln". Da empfielt es sich halt vorher ein externes Backup zu machen bevor man sich im Notfall seine Daten zerschießt.

Da kann ich nicht mal eben mit 100MB/s (SATA) Daten umherschieben, sondern muss übers Netz arbeiten und/oder Daten von x Quellen zusammensuchen.
Das ist ja gerade der Punkt warum so eine externe Platte Sinn machen würde.
 
@Suxxess: Es hat schon System - Cold Storage für Fotos und wichtige Dokumente (falls mir die Bude abbrennt oder, weil Ruhrgebiet, ich in einem Bergbauschacht versinke) ohne häufigen Zugriff und günstigen GB-Preis; ownCloud für schnell verfügbare Daten (...). Aber ja, mag vor Produktivstellung mal eine Überlegung wert sein.

Jedenfalls...

Es läuft in der VM. Tutorial für die VM folgt nun. :)

0) RAID-1 erstellen
Ausgangsituation herstellen, mounten etc. Vorher umbedingt mal mit $mount und im /proc/mdstat checken ob auch alles eingebunden ist.

1) Test-Daten erstellen. Hab mir da ein Script gebastelt:
PHP:
#!/bin/bash
for i in {1..19}; do
	TMP=$(tr -dc 0-9 < /dev/urandom | head -c10)
	DIR="./"
    dd if="/dev/zero" of=$DIR.$TMP  bs=1024  count=$(((RANDOM % 20240) + 1024))
done
Code:
cd /media/raid
nano randomgen
chmod +x randomgen 
bash randomgen
2015-01-1710_39_58-dekyogi.png

Gibt (wie man sieht) 20 Random-0-Testfiles mit einer Größe von 1024 bis 20240 im aktuellen Dir.
Spaßfrage: Weiß jemand, warum $RANDOM nicht in Bash will? $$ ist zu langsam, da es nur die PID irgendwie abfragt...

2) RAID umbauen
Code:
cat /proc/mdstat
md127 : active raid1 sdc1[1] sdb1[0]
1046976 blocks super 1.2 [2/2] [UU]

mdadm --manage /dev/mdX --fail /dev/sdb1
md/raid1:md127 Disk failure on sdb1, disabling device

cat /proc/mdstat
md127 : active raid1 sdc1[1] sdb1[1](F)
1046976 blocks super 1.2 [2/1] [_U]

Nun mal die entfernte Platte mounten und schauen ob alles dupliziert wurde.
diff sollte keinen Output geben, ls das Gleiche
Code:
mdadm --assemble --run /dev/md128 /dev/sdb1
mount /dev/md128 /media/raidtemp
mount /dev/md127 /media/raid
diff /media/raidtemp /media/raid && ls /media/raidtemp && ls /media/raid 

mdadm --stop /dev/md127

mdadm --create /dev/md129 --level 1 --raid-devices 2 /dev/sdb1 missing

3) LUKS
Das formatiert die Platte. Nur das niemand sagt, ich hätte nicht vorgewarnt...
Code:
cryptsetup -y -v luksFormat /dev/md129
cryptsetup luksOpen /dev/md129 raid
mkfs.ext4 /dev/mapper/raid
mount -t ext4 /dev/mapper/raid /media/raid

4) Daten kopieren & überprüfen
Code:
rsync -avh /media/raidtemp /media/raid
ls -larth /media/raid
du -h /media/raid && du -h /media/raidtemp
179M /media/raid
179M /media/raidtemp

5) Altes Raid entfernen & Neues bauen
Code:
umount /dev/md0 && mdadm --stop /dev/md0
mdadm /dev/md129 -a /dev/sdc1
cat /proc/mdstat
md129 : active raid1 sdc1[2] sdb1[0]
1046976 blocks super 1.2 [2/2] [UU]

6) Test #2
Code:
reboot
blkid
/dev/sdb1: UUID="xxx" TYPE="linux_raid_member"
/dev/sdc1: UUID="xxx" TYPE="linux_raid_member"
/dev/md129: UUID="xxx" TYPE="crypto_LUKS"

cryptsetup luksOpen /dev/md129 raid
mount -t ext4 /dev/mapper/raid /media/raid
ls -larth /media/raid
2015-01-1711_32_27-dewfqdp.png

Was ich nun noch nicht getestet habe ist das USB-entsperren - wie habt ihr das bei euren NAS gelöst? Da das ganze ja auch eine Art Einbruchsicherung ist müsste man den USB-Stick ja praktisch abziehen wenn man das Haus verlässt (Aluhutträger, Unite...)
 

Anhänge

  • 2015-01-1710_39_58-dekyogi.png
    2015-01-1710_39_58-dekyogi.png
    34,6 KB · Aufrufe: 210
  • 2015-01-1711_32_27-dewfqdp.png
    2015-01-1711_32_27-dewfqdp.png
    36,7 KB · Aufrufe: 168
Zurück
Oben