Project

General

Profile

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 :dnbd2.git

Kernelmodul debuggen: Debug

Installationsanleitung

Server

  1. 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
  2. Server kompilieren und installieren
    cd server/
    make && make install
  3. 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.
  4. 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

  1. Kernel Modul kompilieren
    cd kernel/
    make && make install && depmod -a # compile and install kernel module
    modprobe dnbd2
  2. 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.