Distributed Network Block Device v2¶
Annon Checkout (r):
git clone git://git.openslx.org/dnbd2.git dnbd2
Checkout (rw) (vorher ssh-key laden):
git clone git@openslx.org:dnbd2.git
Kernelmodul debuggen: Debug
Installationsanleitung¶
Server¶
- Image erstellen
Zum Testen kann ein beliebiges ISO Image genommen oder ein eigenes erstellt werden:sudo dd if=/dev/zero of=/test.img count=1000k # create an empty file (512MB)
sudo losetup /dev/loop0 /test.img # connect loopback device to the file
sudo mkfs.ext3 -b 4096 /dev/loop0 # create filesystem with blocksize 4096 Byte
sudo mount /dev/loop0 /mnt # mount image
Nun kann unter /mnt der zu exportierende Inhalt abgespeichert werden.sudo umount /mnt # unmount image
sudo losetup -d /dev/loop0 # detach loopback device - Server kompilieren und installieren
cd server/
make && make install - Eine Dataset Konfigurationsdatei /etc/dnbd2/dataset mit folgendem Inhalt anlegen:
/test.img
17
42
Dabei steht in der ersten Zeile das zu exportierende Image. Die zwei weiteren Zeilen definieren die vid bzw. die rid. - Die Serverkonfiguration wird in der Datei /etc/dnbd2/server.conf abgelegt (IP bitte anpassen):
10.1.1.1
5001
/etc/dnbd2/dataset
Hier können mehrere DNBD2 Server angegeben werden. Dabei wird jeweils ein Server durch drei aufeinander folgende Zeilen definiert: IP, Port und die Dataset Konfigurationsdatei.
Der Start des Server erfolgt nun durch die Eingabe:sudo dnbd2-server /etc/dnbd2/server.conf
Client¶
- Kernel Modul kompilieren
cd kernel/
make && make install && depmod -a # compile and install kernel module
modprobe dnbd2 - Treiber Setup
cd /sys/block/vnbd0
sudo echo 10.1.1.1 5001 > server0/sock
sudo echo 17 > config/vid
sudo echo 42 > config/rid
sudo echo 1 > config/running
Ein anschließendes sudo mount /dev/vnbd0 /mnt/ hängt das vom Server exportierte Image ins Dateisystem ein.