Greyhole ist der Drive Extender, der Vail fehlt

13

Vor einigen Tagen hatte ich schon einmal angemerkt, dass es auf Linux bzw. so auch auf Amahi eine Drive Extender ähnliche Technologie gibt, die auch einen Storagepool, bestehend aus mehreren Festplatten zusammenbauen kann. Ich muss vorab schon mal sagen, dass Greyhole derzeit im Bezug auf Amahi noch in der Entwicklung steckt, so wie es die HDA Webkonsole auch beschreibt. Mir macht das erst einmal nichts, denn ich will ja mit dem Gerät spielen und jetzt noch keine produktiven Daten abspeichern. Gestern hatte ich geschrieben, dass ich keinerlei Linux Know-How gebraucht habe, heute muss ich dem wiedersprechen. Ich benötige, wie ihr gleich lesen werdet schon ein wenig Informationen zum Handling von verschiedenen Aufgaben unter Linux. Aber diese sind auch wieder in der Amahi Dokumentation beschrieben.

Hin und wieder hakte es bei meinen Vorhaben ein wenig und ich denke, dass die MediaSmart Server Hardware bzw. möglicherweise die Kompatibilität mit dem Fedora 12 nicht ganz gegeben ist. Was mich wirklich wunderte ist, dass erst einmal nur eine Festplatte erkannt wurde, obwohl ich drei Stück angeschlossen habe. Ich möchte ja noch nicht zu viel vorwegnehmen, doch ich habe selbst am Ende nur zwei Platten am laufen gehabt. In der HDA Konsole habe ich zunächst unter Speicher nach der neuen Platte gesucht, aber leider nichts gefunden. Aus diesem Grund bin ich dann zum ersten Mal über SSH auf die Konsole des Amahi Server gegangen und habe mich als root Benutzer angemeldet. Sollte man eigentlich nicht machen. Normalerweise immer erst mit einem normalen Benutzer anmelden und dann den Befehl su nutzen um die Supervisor (Root) Rechte zu erhalten. Über den Befehl fdisk –l wollte ich mir dann anschauen, ob schon irgendwelche Platten und Partitionen auf diesen erkannt wurden, aber leider war nichts zu sehen. Aus diesem Grund startete ich die Hardware erneut durch und fummelte eine Zeit lang im BIOS herum. Ich wusste am Ende gar nicht mehr was ich gemacht habe, aber eine Festplatte hatte der Linux Server dann beim nächsten Hochfahren erkannt. Hier muss noch angemerkt werden, dass die Festplatten im BIOS und auch danach, auf dem Bootbildschirm immer alle zu sehen waren. Über den folgenden Befehl konnte ich die Platten dann auch an der Konsole sehen.

 

ls -1 /dev/disk/by-id/ | egrep -v "part|scsi"

[root@sonnendeck ~]# ls -1 /dev/disk/by-id/ | egrep -v "part|scsi"

ata-SAMSUNG_HD321KJ_S0MQJDWQ176703

ata-ST3500630AS_6QG3BN43

usb-SMI_USB_DISK_AA04012700052798-0:0

You have mail in /var/spool/mail/root

[root@sonnendeck ~]#

Die Festplatte konnte ich nun bereits auch in der HDA Konsole sehen, wie man dem nächsten Screenshot entnehmen kann.

 

41

Trotzdem aber noch keine Partitionen. Aus diesem Grund habe ich mich dann entschieden, die alten Partitionen von der Festplatte zu löschen und eine große, neue Partition anzulegen. Dies kann man sehr einfach mit dem Befel cfdisk machen. Dieser Befehl muss mit der richtigen Festplatte als Parameter gestartet werden. Aus diesem Grund musste ich erst einmal Feststellen, wie sich die Festplatte nennt. Dies kann man aus dem oberen Screenshot der Amahi Konsole sehen, oder in dem man auf der Linux Konsole einfach den folgenden Befehl eingibt.

 

ls -l /dev/disk/by-id/

Im Storage Pool ist die Festplatte übrigens immer noch nicht zu sehen. Welche Gründe das hat sehr Ihr gleich.

 

42

 

Inzwischen habe ich auch mal wieder in die Amahi Dokumentation geschaut und eine weitere Befehlszeile gefunden, die man nutzen muss, um noch ein paar benötigte Programme und Module nachzuinstallieren.

 

 

yum -y install pmount fuse fuse-libs ntfs-3g gparted util-linux-ng

Dazu gehören NTFS Unterstützung (Falls man das Microsoft Dateisystem nutzen möchte) und Partitionierungstools. Ich glaube aber nicht unbedingt ein Muss. Danach habe ich dann ein neues Dateisystem auf der zuvor mit cfdisk erstellten Partition erstellt. Da Fedora oder Amahi die erste Festplatte auch mit dem Dateisystem EXT4 angelegt hat, habe ich es hier auch so gemacht.

mkfs.ext4 -j /dev/sdc1

Nun musste die neue Festplatte ja nach in den Amahi rein. Dazu muss Sie “gemounted” werden. Eingehängt ist die deutsche Übersetzung dafür. Dazu bringt Amahi einen eigenen Befehl mit der lautet:

 

hda-diskmount

Nach der Eingabe des Befehls passiert folgendes:

 

[root@sonnendeck ~]# hda-diskmount

****************************************************************

Ignoring /dev/sdb1 – already mounted

Ignoring /dev/sdb1 – already in /etc/fstab as UUID=580abcdf-04f1-49cc-8638-3645caa9f5c7

****************************************************************

Mounted /dev/sdc1 as ‚/var/hda/files/drives/drive1‘ (read-write)

        You may want your system to mount it every time you boot.

        To do so, add this line VERY CAREFULLY to /etc/fstab and reboot:

        UUID=932f66ce-2386-4024-b14c-ad0247d036cc /var/hda/files/drives/drive1 ext4 defaults 1 2

****************************************************************

All Linux, Windows and Mac partitions on your disks have been mounted.

[root@sonnendeck ~]#

Die Festplatte, die unter Linux /dev/sdb1 heißt, wurde nun im Verzeichnis /var/hda/files/drives/drive1 eingehängt. Was bedeutet das nun genau? Ich kann nun in der Linux Konsole in dieses Verzeichnis wechseln und dort den Inhalt der Festplatte sehen. So wie C:\ bei Windows. Dies war aber noch nicht Alles! Würde man nun den Server neustarten, würde er die Festplatte bei nächsten mal Hochfahren nicht mehr kennen. Deshalb muss die blaue Zeile in die Datei /etc/fstab eingetragen werden und danach das System neu gestartet werden. Über diese Zeile wird dem System mitgeteilt, dass beim nächsten mal wieder ein Mount-Vorgang durchgeführt werden soll. Aber eben nicht manuell durch uns an der Konsole, sondern automatisch beim Hochfahren. Kopiert Euch die Zeile am besten in den Zwischenspeicher. Die Datei kann man am besten mit einem Editor bearbeiten. Ich nutze immer Nano, da dieser meistens auf den Linux Distributionen vorinstalliert ist und weil die Bedienung einfach ist.

Übrigens kann man beeinflussen, ob alle Freigaben auf die neue Platte umgezogen werden sollen, nur spezielle Freigaben dort liegen werden, oder die Platte für Greyhole genutzt werden soll. Wir gucken uns hier Greyhole an, alles Andere findet Ihr in der Amahi Dokumentation, die ich oben ja schon verlinkt habe.

Bevor ich die Festplatte in die fstab Date eintrage, unmounte ich den Datenträger zuerst. Das passiert über den folgenden Befehl.

 

[root@sonnendeck ~]# umount -a /var/hda/files/drives/drive1

Die Antwort des Systems sieht danach ungefähr so aus:


umount: /dev/shm: device is busy.

        (In some cases useful info about processes that use

         the device is found by lsof(8) or fuser(1))

umount: /: device is busy.

        (In some cases useful info about processes that use

         the device is found by lsof(8) or fuser(1))

Um zu prüfen, ob die Festplatte /dev/sdc nun wirklich nicht mehr Verfügbar ist, prüfe ich das durch die Eingabe von Mount.

 


[root@sonnendeck ~]# mount

/dev/mapper/vg_sonnendeck-lv_root on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

[root@sonnendeck ~]#

Da sie nicht mehr zu sehen ist, kann ich nun die fstab Datei bearbeiten. Wie vorher schon erwähnt mit dem Befehl nano.

nano /etc/fstab

  GNU nano 2.0.9                                       File: /etc/fstab                                                                            Modified


#

# /etc/fstab

# Created by anaconda on Thu Jan  6 08:00:35 2011

#

# Accessible filesystems, by reference, are maintained under ‚/dev/disk‘

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/vg_sonnendeck-lv_root /                       ext4    defaults        1 1

UUID=580abcdf-04f1-49cc-8638-3645caa9f5c7 /boot                   ext4    defaults        1 2

/dev/mapper/vg_sonnendeck-lv_swap swap                    swap    defaults        0 0

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

UUID=932f66ce-2386-4024-b14c-ad0247d036cc /var/hda/files/drives/drive1 ext4 defaults 1 2

Nachdem ich die blaue Zeile von zuvor eingefügt habe, speichere ich die Datei wieder ab. Ich nutze immer STRG-X zum beenden des Programms, dann wird automatisch gefragt ob ich die Datei speichern möchte. Gesagt getan, Y für Yes eingegeben und Enter gedrückt. Danach den folgenden Befehl eingeben.

[root@sonnendeck ~]# mount –a

Dadurch werden alle Dateisysteme aus der Konfigurationsdatei /etc/fstab gemounted. Nachprüfen könnt Ihr das wieder durch die Eingabe von Mount.


[root@sonnendeck ~]# mount

/dev/mapper/vg_sonnendeck-lv_root on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

/dev/sdb1 on /boot type ext4 (rw)

/dev/sdc1 on /var/hda/files/drives/drive1 type ext4 (rw)

[root@sonnendeck ~]#

Wie Ihr in der blaue Zeile sehen könnt, ist die Partition verfügbar und auch unter Storage Pool in der Amahi HDA Konsole ist die Partition endlich zu sehen. Durch das Setzen der Checkbox vor dem Eintrag nimmt man die Partition in den Storagepool auf. Man sollte z.Zt. nicht die Root Partition /, also die Partition, auf der das Betriebssystem (Linux) installiert ist, mit in den Pool aufnehmen. Sollte die nämlich volllaufen mit Daten, kann das System möglicherweise nicht mehr Starten.

So! Und genau hier ist mir mein erster Fehler aufgefallen, den ich gestern begangen habe. Ich sagte bei der Installation bzw. der Partitionierung der Festplatte während der Installation, dass die gesamte Festplatte für das Fedora Linux genutzt werden soll. Hier hätte ich lieber eine Partitionierung vornehmen sollen, dann hätte ich eine Partition auf der Festplatte hier ohne Probleme für Greyhole verwenden können. Aber aus Fehlern lernt man ja bekanntlich. Gegen die Hinweise von Amahi nutze ich nun für den Test hier doch die / Partition.

 

45

 

Genauso in Speicher/Partitionen. Hier wird der gesamte Speicherplatz aller verfügbaren Partitionen angezeigt und im Diagramm jeweils jede Einzelne.

 

47

Bevor ich den Storagepool erstellt habe, sahen die Eigenschaften einer Freigabe wie folgt aus. Es war dort nichts von einem Storagepool zu sehen.

 

46

 

Nach dem Hinzufügen einer Partition zum Pool sieht es dann so aus.

 

48

 

Und nach dem Hinzufügen der zweiten Partition, konnte ich dann auch sagen, dass er ab sofort Kopien meiner Dateien auf den verschiedenen Festplatten ablegen soll. Dabei kann ich angeben ob es eine Kopie ist, oder ob eine maximale Anzahl von Kopien angelegt werden soll, also auf jeder Partition die zum Storagepool gehört, eine. Achtung: Wenn eine Datei in der Freigabe, hier \\hda\Test gelöscht wird, so wird sie auf allen Partitionen gelöscht. Bei dieser Funktion hier geht es wirklich nur rein um die Absicherung bei einem Plattenausfall.

 

50

 

Danach habe ich noch ein wenig auf der Linux Konsole herumgespielt. Auch hier nochmal der Hinweis! Man sollte nicht einfach über die Linux Konsole im Dateisystem der Freigaben fummeln, sondern alles über die zugehörigen Freigaben vom Client Computer aus machen. Dies ist wichtig, da ansonsten Fehler auftreten können. Über die Linux Konsole kann man sich ganz normal die Daten anzeigen lassen, die in den Freigaben liegen.

 

[root@sonnendeck drive1]# ls

gh  lost+found  Test2

[root@sonnendeck drive1]#

 

[root@sonnendeck Test2]# ls

100_2109  101_0110

[root@sonnendeck Test2]# cd 100_2109/

[root@sonnendeck 100_2109]# ls

IMGP5882.JPG  IMGP5886.JPG  IMGP5890.JPG  IMGP5894.JPG  IMGP5898.JPG  IMGP5902.JPG  IMGP5906.JPG  IMGP5910.JPG  IMGP5916.JPG

IMGP5883.JPG  IMGP5887.JPG  IMGP5891.JPG  IMGP5895.JPG  IMGP5899.JPG  IMGP5903.JPG  IMGP5907.JPG  IMGP5911.JPG  IMGP5917.JPG

IMGP5884.JPG  IMGP5888.JPG  IMGP5892.JPG  IMGP5896.JPG  IMGP5900.JPG  IMGP5904.JPG  IMGP5908.JPG  IMGP5912.JPG  IMGP5919.JPG

IMGP5885.JPG  IMGP5889.JPG  IMGP5893.JPG  IMGP5897.JPG  IMGP5901.JPG  IMGP5905.JPG  IMGP5909.JPG  IMGP5915.JPG

[root@sonnendeck 100_2109]#

Und auch Greyhole kann mehr, als im Amahi Home Server aktuell über die HDA Konsole genutzt wird. Wenn man mal auf der Konsole den Befehl Greyhole ausführt, kann man sich die Hilfe anzeigen lassen.

 

 

Usage: greyhole [ACTION] [OPTIONS]

Where ACTION is one of:

  -?, –help            Display this help and exit.

  -D, –daemon          Start the daemon.

  -f, –fsck            Schedule a fsck.

  -l, –balance         Balance available space on storage pool devices.

  -s, –stats           Display storage pool statistics.

  -q, –view-queue      Display the current work queue.

  -a, –empty-attic     Empty the attic.

  -b, –debug=filename  Debug past file operations.

  -p, –prerotate       Pre-rotate task (for logrotate).

  -P, –postrotate      Post-rotate task (for logrotate).

  -t, –thaw[=path]     Thaw a frozen directory. Greyhole will start working on

                        files inside <path>. If you don’t supply an option, the list

                        of frozen directories will be displayed.

  -w, –wait-for[=path] Tell Greyhole that the missing drive at <path> will return

                        soon, and that it shouldn’t re-create additional file copies

                        to replace it. If you don’t supply an option, the available

                        options (paths) will be displayed.

  -g, –gone[=path]     Tell Greyhole that the missing drive at <path> is gone for

                        good. Greyhole will start replacing the missing file copies

                        instantly. If you don’t supply an option, the available

                        options (paths) will be displayed.

  -n, –going[=path]    Tell Greyhole that you want to remove a drive. Greyhole will

                        then make sure you don’t loose any files, and that the

                        correct number of file copies are created to replace the

                        missing drive. If you don’t supply an option, the available

                        options (paths) will be displayed.

For –fsck, the available OPTIONS are:

  -e, –email-report    Send an email when fsck completes, to report on what was

                        checked, and any error that was found.

  -y, –dont-walk-graveyard

                        Speed up fsck by skipping the scan of the graveyard

                        directories. Scanning the graveyards is only required to

                        re-create symbolic links that might be missing from your

                        shared directories.

  -d, –dir=path        Only scan a specific directory, and all sub-directories.

                        The specified directory should be a Samba share, or a

                        sub-directory of a Samba share.

Ja, was soll ich nun sagen. Die Funktion von Greyhole ähnelt dem Drive Extender doch sehr, doch wie es ja so immer ist, ist die Implementierung in Windows einfacher gestaltet, zumindest vom Aspekt des Bedieners her. Nichtsdestotrotz kann Greyhole eine Menge und ich denke, dass es einfach nur in der Zukunft besser in die Amahi Konsole integriert werden muss. Auch das Hinzufügen von Festplatten muss einfacher werden. Wenn der Server hochfährt und Amahi merkt, dass eine neue Festplatte gefunden wurde, dann muss ein Dialog aufpoppen oder eine Meldung angezeigt werden, was denn nun mit dieser Festplatte passieren soll. Die Funktionalitäten sind ja alle schon gegeben, nur bei der Umsetzung fehlt es meiner Meinung nach noch ein wenig. Ich selbst bin IT-Tekkie und weiß ungefähr immer was ich mache, auch wenn ich es zuvor noch nie gemacht habe, doch was ist eben mit dem Anwender, der einfach nur einen Home Server haben möchte, der läuft? Mal sehen wie es weiter geht in dieser Serie hier.

Über den Autor