Zasoby sieciowe na linuksie z migawkami widocznymi pod windowsem

Konfiguracja samby z ZFSem na ubuntu 19.04, jako migawki (shadow copy) widoczne pod windowsem.

Windows shadow copy

Jest to mechanizm, który umożliwia tworzenie migawek plików i poprzednich przywracanie wersji pliku z poziomu użytkownika, bez ingerencji administratora. Jest to bardzo użyteczne narzędznie, ale domyślnie da się je skonfigurować tylko udostępniając zasób przez Windows Server. Co jeśli w firmie korzystamy z serwerów Linuxowych? Z pomocą przychodzi samba oraz ZFS.

Samba, co to jest?

Samba to prosty serwer umożliwiający udostępnianie plików oraz drukarek, dostępny na linuxa. Korzysta z protokołu SMB, co daje nam kompatybilność również z systemami Windows.
Konfiguracja daje wiele możliwości i nie jest zbyt skomplikowana.

ZFS

Zetta file system, czyli system plików stworzony do przechowywania dużych ilości danych, posiada wbudowaną funkcję tworzenia migawek plików. Nie trzeba instalować dodatkowego oprogramowania, jednym poleceniem można stworzyć migawkę, a później ją przywrócić. Poza tym posiada jeszcze kilka innych zalet jak np. możliwość łączenia dysków fizycznych w jeden dysk logiczny.

Konfiguracja

1. ZFS – instalacja

Pierwszym krokiem jest instalacja ZFSa na Linuxie.
Aby to zrobić należy wykonać polecenie:

  $ apt-get install zfsutils-linux

2. Tworzenie systemu plików ZFS

Następnie musimy sformatować dysk w systemie ZFS.

zfs

Poniższe polecenie tworzy system plików na dysku sdb, „Share” to nazwa systemu plików oraz miejsce, w którym będzie on zamontowany, czyli folder Share w katalogu głównym.
  $ zpool create Share /dev/sdb

Kolejne polecenia służą do wyświetlenia dysku logicznego oraz instancji ZFS.

 3. Instalacja samby

Teraz musimy zainstalować sambę, wykonujemy polecenie:

$ apt-get install samba

 4. Konfiguracja samby

Konfiguracja opiera się na pliku /etc/samba/smb.conf.

Otwieramy plik konfiguracyjny i edytujemy według własnych potrzeb. Przykładowy config zasobu ZFS:

config zasobu ZFS

path – ścieżka do lokalizacji systemu plików ZFS

shadow:snapdir – ścieżka do katalogu z migawkami (ścieżka względna z katalogu /Share)

shadow:format – format nazw migawek (rok-miesiac-dzien_godzina.minuta.sekunda)

5. Tworzenie migawek

Przy tworzeniu migawek musimy zwrócić uwagę na jego nazwę. Pierwsza część to nazwa systemu plików, a druga to nazwa konkretnej migawki.
Nazwa musi być zgodna z tym co podaliśmy w parametrze shadow:format w konfiguracji samby.
Polecenie do tworzenia migawek:

$ zfs snapshot Share@$(date +%Y-%m-%d_%H.%M.%S)

snapshot

Dzięki poleceniu ‚date +%Y-%m-%d_%H.%M.%S’ uzyskamy dokładnie taki sam format nazwy jak podaliśmy w pliku konfiguracyjnym.

polecenie

Polecenie ‚zfs list -t snapshot’ wyświetla listę migawek.

6. Użytkownik i uprawnienia dostępu

Samba operuje na użytkownikach systemowych, więc żeby stworzyć użtykownika mogącego dostać się do zasobu najpierw należy stworzyć użytkownika systemowego:

 $ adduser test

 Nadajemy hasło dla użytkownika do zasobów samby:

 $ smbpasswd -a test

Nadajemy uprawnienia dostępu do katalogu utworzonemu użytkownikowi:

 $ chown test /Share

7. Dostęp do zasobu

Teraz wystarczy zalogować się na Windowsie do zasobu, utworzyć migawkę, prawym przyciskiem kliknąć na plik, właściwości i w zakładce poprzednie wersje widać migawki zrobione na linuxie.

migawki

 8. Automatyczne migawki

Dodatkowo można skonfigurować automatyczne robienie migawek. Oto przykładowy skrypt:

skrypt

Tworzy migawkę, oraz usuwa migawkę sprzed tygodnia.

Dodajemy wpis do crona, aby skrypt wykonywał się cyklicznie, np. codziennie o 9:00 oraz 16:00:

  $ crontab -e

crontab

Dodatkowe informacje

 Aby przywrócić stan z konkretnej migawki wpisujemy:

 $ zfs rollback Share@27-08-2019_15:12:43

Oczywiście używając swojej daty.

Usuwamy migawki poleceniem

 $ zfs destroy Share@11:55_27-08-2019

 ZFS do poprawnego funkcjonowanie wymaga około 10% wolnego miejsca, a na każdy 1TB zaleca się 1GB RAMu.

Autor: Tomasz Łakomy | IT-Leader.pl

[Głosów:13    Średnia:5/5]

ZOSTAW ODPOWIEDŹ

Please enter your comment!
Please enter your name here