Dieses Tutorial zeigt, wie man einen eigenständigen Speicherserver auf Debian Squeeze 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. Speicherbausteine können aus jeder gängigen 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 localhost192.168.0.100 server1.example.com server1192.168.0.101 client1.example.com client1# Die folgenden Zeilen sind wünschenswert für IPv6-fähige Hosts::1 localhost ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::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 Squeeze verfügbar, daher können wir es wie folgt installieren:
apt-get install glusterfs-server
Der Befehl
glusterfs --version
sollte nun die gerade installierte GlusterFS-Version anzeigen (in diesem Fall 3.0.5):
[email protected]:~# glusterfs --version
glusterfs 3.0.5 erstellt am 13. Juli 2010 16:44:21
Repository-Revision:v3.0.5
Copyright (c) 2006-2009 Gluster Inc.
GlusterFS wird mit ABSOLUT KEINER GARANTIE geliefert.
Sie dürfen Kopien von GlusterFS unter den Bedingungen der GNU General Public License weitergeben.
[ E-Mail-geschützt]:~#
Als nächstes erstellen wir ein paar Verzeichnisse:
mkdir /data/
mkdir /data/export
mkdir /data/export-ns
Jetzt erstellen wir die GlusterFS-Serverkonfigurationsdatei /etc/glusterfs/glusterfsd.vol (wir erstellen zuerst eine Sicherungskopie der ursprünglichen /etc/glusterfs/glusterfsd.vol-Datei), die definiert, welches Verzeichnis exportiert wird (/data/export) und was Client darf sich verbinden (192.168.0.101 =client1.example.com):
cp /etc/glusterfs/glusterfsd.vol /etc/glusterfs/glusterfsd.vol_orig
cat /dev/null> /etc/glusterfs/glusterfsd.vol
vi /etc/glusterfs/glusterfsd.vol
volume posix type storage/posix option directory /data/exportend-volumevolume locks type features/locks optional-locks on subvolumes posixend-volumevolume brick type performance /io-threads option thread-count 8 subvolumes locksend-volumevolume server type protocol/server option transport-type tcp option auth.addr.brick.allow 192.168.0.101 # Bearbeiten und fügen Sie hier eine Liste erlaubter Clients durch Kommas getrennte IP-Adressen(Namen) hinzu Subvolumes Brickend-Volume |
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).
Anschließend starten wir den GlusterFS-Server:
/etc/init.d/glusterfs-server start
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
Als nächstes erstellen wir die Datei /etc/glusterfs/glusterfs.vol (wir erstellen zuerst eine Sicherungskopie der Originaldatei /etc/glusterfs/glusterfs.vol):
cp /etc/glusterfs/glusterfs.vol /etc/glusterfs/glusterfs.vol_orig
cat /dev/null> /etc/glusterfs/glusterfs.vol
vi /etc/glusterfs/glusterfs.vol
volume remote type Protokoll-/Client-Option transport-type tcp option remote-host server1.example.com # kann IP oder hostname option remote-subvolume brickend sein -volumevolume Writebehind-Typ Performance/Write-Behind-Option Window-Size 4 MB Subvolumes Remoteend-VolumeVolume-Cache-Typ Performance/io-Cache-Option Cache-Größe 512 MB Subvolumes WriteBehind-Volume |
Stellen Sie sicher, dass Sie den richtigen Server-Hostnamen oder die richtige IP-Adresse in der Option Remote-Host-Zeile verwenden!
Das ist es! Jetzt können wir das GlusterFS-Dateisystem mit einem der folgenden beiden Befehle in /mnt/glusterfs einhängen:
glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs
oder
mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs
Sie sollten nun die neue Freigabe in den Ausgaben von...
seheneinhängen
[email protected]:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs auf /dev/shm geben Sie tmpfs (rw,nosuid,nodev)
devpts auf /dev/pts geben Sie devpts (rw,noexec,nosuid,gid=5,mode =620)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
/etc/glusterfs/glusterfs.vol on /mnt/glusterfs type fuse.glusterfs (rw,allow_other,default_permissions, max_read=131072)
[email protected]:~#
... und ...
df -h
[E-Mail geschützt]:~#df -h
Dateisystemgröße verwendete Verfügung Use Used%montiert auf
/dev/sda1 29g 778m 27g 3%/
TMPFS 249m 0 249m 0%/lib/init /rw
udev 244m 100k 244m 1%/dev
TMPFS 249m 0 249m 0%/dev/shm
/etc/gusterfs/glusterfs.vol
29G 1,2G 27G 5% /mnt/glusterfs
[E-Mail-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
[...]/etc/glusterfs/glusterfs.vol /mnt/glusterfs glusterfs defaults,_netdev 0 0 |
Um zu testen, ob Ihre modifizierte /etc/fstab funktioniert, starten Sie den Client neu:
Neustart
Nach dem Neustart sollten Sie die Freigabe in den Ausgaben von ...
findendf -h
... und ...
einhängen
Wenn das Ändern von /etc/fstab nicht hilft, machen Sie Ihre Änderung an /etc/fstab rückgängig und fügen Sie stattdessen diese Zeile zu /etc/rc.local hinzu (vor der Zeile exit 0):
vi /etc/rc.local
[...]/bin/mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs[...] |
Dadurch wird sichergestellt, dass die Freigabe gemountet wird, nachdem das Netzwerk hochgefahren ist.
4 Links
- GlusterFS:http://www.gluster.org/
- Debian:http://www.debian.org/