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. |