Przejdź do głównej zawartości

Linux RHCSA cz.23 - System plików - AutoFS

Aby życie administratora było łatwiejsze może on używać narzędzia zwanego AutoFS, czyli automatycznego systemu plików. Korzyść z tego jest taka, iż możliwe jest montowanie zdalnych zasobów automatycznie i to bez konieczności używania konta root. Odbywa się to przy zastosowaniu specjalnego pliku konfiguracyjnego zwanego mapą. Do konfiguracji i pracy z AutoFS należy znać dwa pliki. 

/etc/sysconfig/autofs         - Główny plik konfiguracyjny usługi
/etc/auto.master                - Główny plik mapowania

W /etc/sysconfig/autofs można zdefiniować domyślne wartości dla usługi zawierające limit czasu, nazwę pliku mapy, logowanie i wiele więcej. Zobaczmy jak się tym posługiwać:

# cat /etc/sysconfig/autofs | grep -v ^#
TIMEOUT=300
BROWSE_MODE=”no”
MOUNT_NFS_DEFAULT_PROTOCOL=4
USE_MISC_DEVICE=”yes”

Powyższe wartości są dobre dla domyślnej konfiguracji z komentarzem i innymi opcjami zawartymi w pliku. Jeżeli potrzebujemy podstawowej usługi wystarczy zastosować właśnie takie ustawienia. Jeżeli jednak chcemy lepiej wykorzystać możliwości AutoFS mamy dostępne 4 różne pliki mapowań: 

  • master        - Domyślny plik mapowań zawierający inne typy plików mapowań
  • special        - Plik mapowań umożliwiający mapowania grupowe zawarte w jednym pliku
  • direct         - Plik mapowań wymagający ręcznego restartu przed zastosowaniem zmian
  • indirect      - Plik mapowań używany do montowania źródeł pod katalog rodzica
Oto jak wygląda plik /etc/auto.master :

# cat auto.master | grep -v ^#
/misc /etc/auto.misc
/net -hosts
+auto.master

Pierwszy wpis jest mapowaniem pośrednim. Pierwsza część wpisu "/misc" definiuje wspólny katalog nadrzędny, pod którym montowane będą zasoby. Następnie wskazujemy plik który przechowuje rzeczywiste zasoby, w tym ich lokalizację, uprawnienia i nazwę. Plik /etc/auto.misc jest już utworzony i zawiera przykładowe wpisy : 

# cat /etc/auto.misc
#
# $Id: auto.misc,v 1.2 2003/09/29 08:22:35 raven Exp $
#
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# Details may be found in the autofs(5) manpage
cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
# the following entries are samples to pique your imagination
#linux -ro,soft,intr ftp.example.org:/pub/linux
#boot -fstype=ext2 :/dev/hda1
#floppy -fstype=auto :/dev/fd0
#floppy -fstype=ext2 :/dev/fd0
#e2floppy -fstype=ext2 :/dev/fd0
#jaz -fstype=ext2 :/dev/hdc1
#removable -fstype=ext2 :/dev/hdd

W pliku używana jest składnia : 

[relative pathname]      [mount options]      [location]

Możemy zobaczyć w jaki sposób zdefiniowano CD-ROM.

Przygotowanie RHEL01

Aby przetestować możliwości "autofs" należy na maszynie RHEL01 udostępnić dany katalog jaki będzie  automatycznie montowany w Client01. Aby tego dokonać dodajemy na maszynie RHEL01 wpis w pliku /etc/exports:

[root@RHEL01 opt]# cat /etc/exports
/opt/company_data1      *(rw,sync)
/opt/company_data2      *(rw,sync)
/opt/company_data       *(rw,sync)

Następnie restartujemy usługi :

/etc/init.d/nfs restart
/etc/init.d/nfslock restart


W celu sprawdzenia dokonanego udostępniania możemy wydać polecenie : 

# showmount -e localhost
Export list for localhost:
/opt/company_data  *

Krok 1 - Na wcześniej utworzonej maszynie "Client01" utworzymy wpis w pliku /etc/auto.misc

company_data -rw,sync              rhel01:/opt/company_data

Krok 2 - Zapisz plik i odśwież usługę autofs: 

# service autofs reload
Reloading maps

Teraz przeglądając /misc widać inną lokalizację odwołującą się do "company_data". Jeżeli ten zasób jest dostępny zostanie zamontowany z maszyny RHEL01 do /misc/company_data. Jest to bardzo wygodna opcja dająca dostęp do wielu zasobów z jednego klienta.



Trzeba pamiętać tylko o jednym stosując mapowanie pośrednie. Możliwe jest stosowanie dwóch symboli. Jeżeli chcemy podmontować w taki sposób katalog domowy użytkownika trzeba utworzyć następujący wpis w pliku mapowań: 

*         -rw,sync             &:/home/&

System automatycznie weryfikuję nazwę użytkownika i automatycznie wyszukuje wszystkie dostępne zdalne zasoby. Pozwala to na łatwiejsze centralne zarządzanie katalogami domowymi. Konfiguracja pliku /etc/auto.master wykonywana jest w podobny sposób.

Krok 3 - W pliku /etc/auto.master dodajemy wpis : 

/-        /etc/auto.direct_maps

Wpis ten przekazuje informację dla /etc/auto.master że mapowania znajdują się w /etc/auto.direct_maps. Kiedy tworzymy mapowanie "indirect" czyli map pośrednich należy podać względną ścieżkę dla każdego mapowania, ale z bezpośrednich mapowań, po prostu podajemy ścieżkę bezwzględną dla każdego mapowania. Na przykład chcemy na maszynie "Client01" zamontować zdalny zasób /opt/company_data z maszyny RHEL01 do lokalnego katalogu /usr zamiast do /misc

Krok 4 - Musimy utworzyć plik /etc/auto.direct_maps i dodać wpis : 

/usr/data      -rw,sync             rhel01:/opt/company_data

Krok 5 - Zapis pliku i przeładowanie usługi autofs

# service autofs reload
Reloading maps

Teraz lokalna ścieżka /usr/data na maszynie "Client01" automatycznie montowana będzie z /opt/company_data na maszynie RHEL01. Należy zrozumieć różnicę pomiędzy lokalnym katalogiem a plikiem mapowań kiedy pracujemy z autoFS. 

Wróćmy do /etc/auto.master gdzie drugi wpis dotyczył mapowania grupowego.Wpis ten powoduje wyszukiwanie wszystkich dostępnych zdalnych zasobów jakie istnieją w sieci oraz montuje dostępne zasoby  pod zdefiniowane katalogi lokalne. Funkcja ta staje się przydatna chcąc zamontować wiele zasobów pod jednego klienta bez konieczności tworzenia indywidualnych mapowań dla każdego z nich. Nie jest to jednak dobry pomysł jeżeli mamy wiele zasobów na różnych maszynach. Korzystanie z autoFS nie sprawia trudności. Wymaga jedynie trochę praktyki by dobrze zrozumieć zagadnienie.

Przydatne linki :
http://blog.grzeszy.net/automontowanie-systemow-plikow-w-systemie-linux
http://www.adminlinux.org/2009/06/how-to-autofs-nfs-automount.html
http://banita.pl/konf/smbmapunix.html


Komentarze

Najczęściej czytane w tym miesiącu

50 popularnych pytań dotyczących systemu Linux zadawanych na rozmowach kwalifikacyjnych. (Pytania & Odpowiedzi)

Jak dodać użytkownika w systemie Windows z poziomu konsoli CMD? (net user, net localgroup)

Generowanie testowych plików o określonej wielkości