Dnbd2

Version 3 (jl, 06/29/2011 09:00 am)

1 1 schmelzs
h1. Distributed Network Block Device v2
2 1 schmelzs
3 2 jl
Annon Checkout (r):
4 2 jl
git clone git://git.openslx.org/dnbd2.git dnbd2
5 2 jl
6 2 jl
Checkout (rw) (vorher ssh-key laden):
7 2 jl
git clone git@openslx.org:dnbd2.git
8 2 jl
9 2 jl
Kernelmodul debuggen: [[Debug]]
10 3 jl
11 3 jl
h2. Installationsanleitung
12 3 jl
13 3 jl
h3. Server
14 3 jl
15 3 jl
# Image erstellen
16 3 jl
Zum Testen kann ein beliebiges ISO Image genommen oder ein eigenes erstellt werden:
17 3 jl
@sudo dd if=/dev/zero of=/test.img count=1000k # create an empty file (512MB)
18 3 jl
sudo losetup /dev/loop0 /test.img # connect loopback device to the file
19 3 jl
sudo mkfs.ext3 -b 4096 /dev/loop0 # create filesystem with blocksize 4096 Byte
20 3 jl
sudo mount /dev/loop0 /mnt # mount image@
21 3 jl
Nun kann unter /mnt der zu exportierende Inhalt abgespeichert werden.
22 3 jl
@sudo umount /mnt # unmount image
23 3 jl
sudo losetup -d /dev/loop0 # detach  loopback device@
24 3 jl
# Server kompilieren und installieren
25 3 jl
@cd server/
26 3 jl
make && make install@
27 3 jl
# Eine Dataset Konfigurationsdatei _/etc/dnbd2/dataset_ mit folgendem Inhalt anlegen:
28 3 jl
@/test.img
29 3 jl
17
30 3 jl
42@
31 3 jl
Dabei steht in der ersten Zeile das zu exportierende Image. Die zwei weiteren Zeilen definieren die vid bzw. die rid.
32 3 jl
# Die Serverkonfiguration wird in der Datei _/etc/dnbd2/server.conf_ abgelegt (IP bitte anpassen):
33 3 jl
@10.1.1.1
34 3 jl
5001
35 3 jl
/etc/dnbd2/dataset@
36 3 jl
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.
37 3 jl
38 3 jl
Der Start des Server erfolgt nun durch die Eingabe:
39 3 jl
@sudo dnbd2-server /etc/dnbd2/server.conf@
40 3 jl
41 3 jl
h3. Client
42 3 jl
43 3 jl
# Kernel Modul kompilieren
44 3 jl
@cd kernel/
45 3 jl
make && make install && depmod -a # compile and install kernel module
46 3 jl
modprobe dnbd2@
47 3 jl
# Treiber Setup
48 3 jl
@cd /sys/block/vnbd0
49 3 jl
sudo echo 10.1.1.1 5001 > server0/sock
50 3 jl
sudo echo 17 > config/vid
51 3 jl
sudo echo 42 > config/rid
52 3 jl
sudo echo 1 > config/running@
53 3 jl
54 3 jl
Ein anschließendes _sudo mount /dev/vnbd0 /mnt/_ hängt das vom Server exportierte Image ins Dateisystem ein.