Dieses Tutorial zeigt, wie man einen eigenständigen Speicherserver auf Debian Wheezy einrichtet. Anstelle von NFS werde ich hier GlusterFS verwenden. Das Client-System kann auf den Speicher zugreifen, als wäre es ein lokales Dateisystem. GlusterFS ist ein geclustertes Dateisystem, das auf mehrere Petabyte skaliert werden kann. Es aggregiert verschiedene Speicherbausteine über Infiniband-RDMA- oder TCP/IP-Verbindungen zu einem großen parallelen Netzwerkdateisystem. Storage Bricks können aus jeder handelsüblichen Hardware wie x86_64-Servern mit SATA-II-RAID und Infiniband-HBA hergestellt werden.
Ich gebe keine Garantie dafür, dass dies bei Ihnen funktioniert!
1 Vorbemerkung
In diesem Tutorial verwende ich zwei Systeme, einen Server und einen Client:
- server1.example.com:IP-Adresse 192.168.0.100 (Server)
- client1.example.com:IP-Adresse 192.168.0.101 (Client)
Beide Systeme sollten in der Lage sein, den Hostnamen des anderen Systems aufzulösen. Wenn dies nicht über DNS möglich ist, sollten Sie die Datei /etc/hosts so bearbeiten, dass sie auf beiden Systemen wie folgt aussieht:
vi /etc/hosts
127.0.0.1 localhost.localdomain localhost 192.168.0.100 server1.example.com server1 192.168.0.101 client1.example.com client1 # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters |
(Es ist auch möglich, IP-Adressen anstelle von Hostnamen im folgenden Setup zu verwenden. Wenn Sie lieber IP-Adressen verwenden, müssen Sie sich nicht darum kümmern, ob die Hostnamen aufgelöst werden können oder nicht.)
2 Einrichten des GlusterFS-Servers
server1.beispiel.com:
GlusterFS ist als Paket für Debian Wheezy verfügbar, daher können wir es wie folgt installieren:
apt-get install glusterfs-server
Der Befehl
glusterfsd --version
sollte jetzt die gerade installierte GlusterFS-Version anzeigen (in diesem Fall 3.2.7):
[email protected]:~# glusterfsd --version
glusterfs 3.2.7 erstellt am 12. November 2012 19:30:08
Repository-Überarbeitung:git://git.gluster.com/glusterfs.git
Copyright (c) 2006-2011 Gluster Inc.
GlusterFS wird mit ABSOLUT KEINER GARANTIE geliefert.
Sie dürfen Kopien von GlusterFS unter den Bedingungen der weitergeben GNU General Public License.
[email protected]:~#
Wenn Sie eine Firewall verwenden, stellen Sie sicher, dass die TCP-Ports 111, 24007, 24008, 24009-(24009 + Anzahl der Bricks über alle Volumes) auf server1.example.com geöffnet sind.
Als nächstes erstellen wir die Freigabe namens testvol auf localhost (=server1) im /data-Verzeichnis (dieses wird erstellt, wenn es nicht existiert):
gluster volume create testvol server1.example.com:/data
[email protected]:~# gluster volume create testvol server1.example.com:/data
Die Erstellung des Volumes testvol war erfolgreich. Bitte starten Sie das Volume, um auf die Daten zuzugreifen.
[email protected]:~#
Lautstärke starten:
gluster volume start testvol
Es ist möglich, dass der obige Befehl Ihnen mitteilt, dass die Aktion nicht erfolgreich war:
[email protected]:~# gluster volume start testvol
Das Starten von volume testvol war nicht erfolgreich
[email protected]:~#
Sie können den Status des Volumes mit dem Befehl
überprüfengluster volume info
[email protected]:~# gluster volume info
Name des Volumes:testvol
Typ:Verteilen
Status:Gestartet
Anzahl der Bricks:1
Transporttyp:tcp
Bricks:
Brick1:server1. example.com:/data
[E-Mail-geschützt]:~#
Wenn es Ihnen sagt, dass das Volume gestartet wurde, ist alles in Ordnung, ansonsten starten Sie es einfach erneut.
Standardmäßig können sich alle Clients mit dem Volume verbinden. Wenn Sie nur client1.example.com (=192.168.0.101) Zugriff gewähren möchten, führen Sie Folgendes aus:
gluster volume set testvol auth.allow 192.168.0.101
Bitte beachten Sie, dass für die IP-Adressen Wildcards verwendet werden können (z. B. 192.168.*) und mehrere IP-Adressen durch Komma getrennt angegeben werden können (z. B. 192.168.0.101,192.168.0.102).
Die Volume-Info sollte nun den aktualisierten Status anzeigen:
gluster volume info
[email protected]:~# gluster volume info
Name des Volumes:testvol
Typ:Verteilen
Status:Gestartet
Anzahl der Bricks:1
Transporttyp:tcp
Bricks:
Brick1:server1. example.com:/data
Optionen neu konfiguriert:
auth.allow:192.168.0.101
[email protected]:~#
3 Einrichten des GlusterFS-Clients
client1.beispiel.com:
Auf dem Client können wir den GlusterFS-Client wie folgt installieren:
apt-get install glusterfs-client
Dann erstellen wir folgendes Verzeichnis:
mkdir /mnt/glusterfs
Das ist es! Jetzt können wir das GlusterFS-Dateisystem mit dem folgenden Befehl in /mnt/glusterfs einhängen:
mount.glusterfs server1.example.com:/testvol /mnt/glusterfs
Sie sollten nun die neue Freigabe in den Ausgaben von...
sehenmount
[email protected]:~# mount
sysfs auf /sys geben Sie sysfs (rw,nosuid,nodev,noexec,relatime) ein
proc auf /proc geben Sie proc (rw,nosuid,nodev,noexec,relatime) ein
udev auf /dev geben Sie devtmpfs (rw,relatime,size=10240k,nr_inodes=126813,mode=755)
devpts auf /dev/pts geben Sie devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=102704k,mode=755)
/dev/mapper/server1-root on / ext4 eingeben (rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k )
tmpfs auf /run/shm tippe tmpfs (rw,nosuid,nodev,noexec,relatime,size=205400k)
/dev/sda1 auf /boot tippe ext2 (rw,relatime,errors=Continue)
rpc_pipefs auf /var/lib/nfs/rpc_pipefs geben Sie rpc_pipefs (rw,relatime) ein
server1.example.com:/testvol geben Sie auf /mnt/glusterfs fuse.glusterfs (rw,relatime,user_id=0 ,group_id=0,default_permissions,allow_other,max_read=131072)
fusectl auf /sys/fs/fu se/connections type fusectl (rw,relatime)
[email protected]:~#
... und ...
df -h
[E-Mail geschützt]:~#df -h
Dateisystemgröße verwendet. Verfügende Verwendung%MOTTED AUF
rootfs 29g 1,2 g 26g 5% /
Udev 10m 0 10m 0% /Dev
TMPFS 101m 240K 101m 1%/Lauf
/dev/mapper/server1-root 29g 1,2g 26g 5%/
TMPFS 5,0 m 0 5,0 m 0%/run/lock
TMPFS 201M 0 201M 0 % /run/shm
/dev/sda1 228M 18M 199M 9 % /boot
server1.example.com:/testvol 29G 1.2G 26G 5 % /mnt/glusterfs
[email geschützt]:~#
Anstatt die GlusterFS-Freigabe manuell auf dem Client zu mounten, könnten Sie /etc/fstab so ändern, dass die Freigabe automatisch gemountet wird, wenn der Client startet.
Öffnen Sie /etc/fstab und fügen Sie die folgende Zeile an:
vi /etc/fstab
[...] server1.example.com:/testvol /mnt/glusterfs glusterfs defaults,_netdev 0 0 |
Um zu testen, ob Ihre modifizierte /etc/fstab funktioniert, starten Sie den Client neu:
reboot
Nach dem Neustart sollten Sie die Freigabe in den Ausgaben von ...
findendf -h
... und ...
mount
4 Links
- GlusterFS:http://www.gluster.org/
- GlusterFS 3.2-Dokumentation:http://download.gluster.com/pub/gluster/glusterfs/3.2/Documentation/AG/html/index.html
- Debian:http://www.debian.org/