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.
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:
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)
Dzięki poleceniu ‚date +%Y-%m-%d_%H.%M.%S’ uzyskamy dokładnie taki sam format nazwy jak podaliśmy w pliku konfiguracyjnym.
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.
8. Automatyczne migawki
Dodatkowo można skonfigurować automatyczne robienie migawek. Oto przykładowy 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
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