Zusätzliche Festplatte und Spindown: Unterschied zwischen den Versionen

Aus MySlug
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „<div style="text-align=right; float: right; clear: none; background: none; padding-left:20px"> __TOC__ </div><noinclude> Ziel ist es, eine große Datenplatte…“
 
Der Seiteninhalt wurde durch einen anderen Text ersetzt: „Der Beitrag wurde auf Gargi.org verschoben: https://www.gargi.org/index.php?title=Zus%C3%A4tzliche_Festplatte_und_Spindown“
Markierung: Ersetzt
 
Zeile 1: Zeile 1:
<div style="text-align=right; float: right; clear: none; background: none; padding-left:20px">
Der Beitrag wurde auf Gargi.org verschoben: https://www.gargi.org/index.php?title=Zus%C3%A4tzliche_Festplatte_und_Spindown
__TOC__
</div><noinclude>
 
Ziel ist es, eine große Datenplatte an die Pi zu hängen, die dann im Netz als Datenspeicher/Lieferant dienen soll. Dabei möchte ich natürlich nicht, dass die Platte ständig läuft, sondern sich nach einer gewissen Zeit an Inaktivität abschaltet. Dies macht allerdings auch nur dann Sinn, wenn in dem Bereich nicht ständig auf die Platte zugegriffen werden muss. Deswegen überlegt, ob Ihr den Spindown wirklich benötigt. Manche Festplatten unterstützen diese Funktion auch nicht. Meine Platte soll dann als '''/home''' gemountet werden.
<br><br>
==Mehr Power auf den USB Ports unter Raspbian==
Der Raspi 2 kommt ja jetzt nun mit 4 USB Ports. Wer allerdings eine externe Festplatte daran anschließt wird schnell eines besseren belehrt: Die Platte läuft nicht an. Jetzt kann man natürlich mittels eines stromgestützten USB Hub die Sache in den Griff bekommen, aber wir wollen ja nicht unbedingt noch ein Gerät an den Heimserver stöpseln. <br>
Der Grund dafür ist, dass die Ports mit maximal 600mA belegt sind. Wer mag, kann die Stärke auf 1,2A über einen kleinen Parameter erhöhen. Editiert unter Raspbian deshalb die '''/boot/config.txt''' . Ergänzt diese durch den Parameter
<code><pre>max_usb_current=1</pre></code>
Startet danach den Raspi 2 neu. Jetzt sollte die externe Festplatte laufen.
<br><br>
Denkt daran, dass Euer Netzteil entsprechend Leistungsstark sein muss. Ein 5V 1A Gerät genügt hier nicht. Das Netzteil muss zumindest 2A liefern. Ob mehr notwendig ist hängt davon ab, ob Ihr noch mehr am USB betreiben wollt.
<br><br>
==Daten sichern und Platte vorbereiten==
Bitte auf Eurem Server als '''root''' via ssh einloggen und anmelden.
<br><br>
Jetzt lege ich ein neues Backupverzeichnis an:
 
<code><pre>
cd /
mkdir home_save</pre></code>
Dorthin kopiere ich alle meine Heimatverzeichnisse:
 
<code><pre>
cp -ar /home/* /home_save/</pre></code>
Kontrolle, hierbei insbesondere dann auf die Zeitstempel und User / Gruppen achten:
 
<code><pre>
cd /home_save
ls -la</pre></code>
Jetzt kille ich einfach die Dateien in Home:
 
<code><pre>
rm -R /home/*</pre></code>
Auf das leere Verzeichnis mounte ich dann später meine Platte und kopiere meine gesicherten Daten zurück.
<br><br>
Jetzt bereiten wir unsere neue Platte vor. Hierzu wird diese angesteckt und via fdisk-l gecheckt, als was diese erkannt wird. Vermutlich '''/dev/sda1''' . Wenn die Platte neu gekauft ist, dann wird diese bereits mit vfat formatiert sein. Das machen wir natürlich als erstes weg.
 
<code><pre>
fdisk /dev/sda</pre></code>
Danach drücken wir die Taste '''d''' um die vorhandene Partition zu löschen. Nun drücken wir '''n''' um eine neue Partition anzulegen. Dazu dann '''p''' , damit das eine primäre Partition wird. Den Beginn und das Ende der Sektoren übernehmen wir einfach, da wir eine Platte vollständig nutzen wollen. Danach stellen wir das Dateisystem ein. Dazu drückt die Taste '''t''' und gebt '''83''' für Linux ein. Jetzt noch auf '''w''' drücken, damit die Änderungen auf die Platte geschrieben werden. Alle alten Dateien auf der Platte sind damit erstmal "weg" (stimmt nicht ganz, aber zumindest so nicht mehr ansprechbar).
<br><br>
Als nächstes legen wir ein '''ext4''' Dateisystem an. Dazu geben wir dann folgenden Befehl ein:
 
<code><pre>
mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/sda1</pre></code>
Die Parameter in diesem Befehl bewirken, dass die inode Tabelle bereits beim Erstellen des Dateisystem geschrieben (ausgenullt) wird. Deswegen dauert in unserem Fall das Erstellen der ext4 Partition einwenig länger, dafür muss dies dann nicht später beim ersten Mount im Hintergrund erledigt werden. Das dauert wesentlich länger und verhindert, dass wir in der Zeit mit dem Thema "Spindown" gleich weiter machen können .
<br><br>
Wenn die Platte dann fertig vorbereitet ist, müssen wir noch unsere fstab anpassen und als '''/home''' einbinden. Zuerst ermitteln wir die '''UUID''' der Festplatte:
 
<code><pre>
blkid /dev/sda1</pre></code>
Ihr bekommt dann einen Zeichenstring geliefert:
<br><br>
'''/dev/sda1: UUID="XXXX-12345..."'''
<br><br>
Kopiert den String zwischen den " " in die Zwischenablage und editiert die fstab:
 
<code><pre>
nano /etc/fstab</pre></code>
Dort füge ich dann folgende Zeile gemäß Euren echten Zeichenstring ein:
 
<code><pre>
UUID=XXXX-12345...      /home          ext4    defaults,noatime,commit=60    0      2</pre></code>
Das mountet mir dann meine Platte als '''/home'''. Speichern und neu starten.
<br><br>
 
==Daten zurückkopieren und Spindown mit hdparm==
Wenn die Pi durchgestartet ist, solltet Ihr nun auf das Verzeichnis /home zugreifen können. Kopiert nun Eure Sicherung zurück:
 
<code><pre>
cp -ar /home_save/* /home</pre></code>
Zuerst sehen wir uns mal den APM Level an, der voreingestellt ist:
<code><pre>
root@meinepi:/# hdparm -B /dev/sda
/dev/sda:
APM_level      = 1</pre></code>
Das sieht gut aus. Solltet Ihr einen Wert gleich oder größer 128 haben, dann stellt Ihn entsprechend herunter:
 
<code><pre>
hdparm -B1 /dev/sda</pre></code>
Danach legen wir noch fest, nach welcher Zeit sich die Platte schlafen legen soll. Soll das nach 5 Sekunden bereits passieren, dann gebt folgenden Befehl ein:
 
<code><pre>
hdparm -S1 /dev/sda</pre></code>
Der Wert 1 steht für 5 Sekunden. D.h. bei 1 Minute (60 Sekunden) wäre es
 
<code><pre>
hdparm -S12 /dev/sda</pre></code>
Bitte beachtet, dass es nicht unbedingt bei allen Platten möglich ist, diese schlafen zu legen. Ich denke mal, dass es bei den meisten neuen externen Platten schon möglich ist, aber meine Hand ins Feuer möchte ich da nicht unbedingt legen.
<br><br>
 
==Das Datei Journaling==
Was unter '''ext4''' einem in die Suppe spucken kann ist das Datei Journaling. Dieses ist natürlich wichtig was die Datensicherheit betrifft, denn deswegen wird in kurzen regelmäßigen Abschnitten auf die Platte zugegriffen und das langfristige Einschlafen verhindert. Wem das Herunterfahren der Platte wichtiger ist, muss dann den Tod sterben und das Journaling abstellen.
<br><br>
Um das zu erledigen muss die Platte erstmal ausgehängt werden:
 
<code><pre>
umount /dev/sdax</pre></code>
(für das x bitte Eure korrekte Partitionsnummer eingeben)
 
Danach stellen wir das Journaling ab:
 
<code><pre>
tune2fs -O ^has_journal /dev/sdax</pre></code>
Prüft die Platte dann nochmal auf Fehler:
 
<code><pre>
fsck /dev/sdax</pre></code>
Danach startet die Kiste einfach neu oder mountet die Platte per Hand wieder. Diese Einstellung ist permanent! Wenn Ihr das Journaling wieder einschalten wollt, dann geht das über ein
 
<code><pre>
tune2fs -O has_journal /dev/sdax</pre></code>

Aktuelle Version vom 30. Juni 2018, 11:10 Uhr