wtorek, 3 czerwca 2008

Replikacja ZFS za pomocą: est-repl

Jakiś czas temu napisałem proste narzędzie do zdalnej replikacji ZFS między dwoma hostami.
Widzę, że nadal nie ma tego typu narzędzi dostępnych w systemie,
więc postanowiłem wypuścić 'est-repl' na świat :)

est-repl - główne narzędzie, replikuje przyrostowo system plików
est-repl.config - konfiguracja
est-repl_initial - tworzy pełną replikę - nie przyrostową
est-repl_initial_CREATE - tworzy pełną replikę, usuwa zdalny system plików - uruchamiane do inicjacji zdalnego systemu plików
est-repl_initial_RECURSIVELY - tworzy pełną replikę, usuwa zdalny system plików rekurencyjnie!


Konfiguracja jest banalna:
-bash-3.00$ cat est-repl_0.1/est-repl.config
#! /bin/sh
#
# est-rep.config
#
# AUTHOR: Piotr Jasiukajtis / estibi
# VERSION: 0.1

# destination host and user
DEST_HOST="my-remote-host"
DEST_USER="my-remote-user"

# what to replicate
REPL_FS="my/dataset/to/replicate"

#DEBUG="1"

# EOF


Użytkownik na lokalnym jak i zdalnym systemie musi mieć odpowiednie uprawnienia:
-bash-3.00$ grep my-remote-user /etc/user_attr
my-remote-user::::type=normal;profiles=ZFS File System Management


Dodatkowo komunikacja między hostami odbywa się za pomocą kluczy SSH bez hasła!


A sama replikacja wygląda tak:

-bash-3.00$ ./est-repl ./est-repl.config
Using config file: ./est-repl.config
Used filesystem: data/zones_data/mail1_maildirs
NAME USED AVAIL REFER MOUNTPOINT
data/zones_data/mail1_maildirs 231M 4.77G 49.4M /zones_data/mail1_maildirs

Checking remote snapshots ...
Trying Latest remote snapshot: data/zones_data/mail1_maildirs@backup_080603_18-35-28
data/zones_data/mail1_maildirs@backup_080603_18-35-28
Restoring remote data/zones_data/mail1_maildirs ...
Latest remote snapshot: data/zones_data/mail1_maildirs@backup_080603_18-35-28
Creating snapshot ...
Creating incremental snapshot ...
Sending snapshot to host remote-host ...
inc_snap_080603_18-5 100% |*********************************************************************************************************************************| 2888 KB 00:00
Receiving snapshot ...
receiving incremental stream of data/zones_data/mail1_maildirs@backup_080603_18-55-47 into data/zones_data/mail1_maildirs@backup_080603_18-55-47
received 2.82Mb stream in 2 seconds (1.41Mb/sec)
Deleting temporary files ...
OK, done

Można go dodać to do crona, aby replikował system plików co np 5 minut:

5 * * * * /usr/est-repl /config.repl

To jest wstępna wersja, jest wiele niedociągnięć itp.
Proszę używać go na własną odpowiedzialność.

Brak komentarzy: