Auto File System (AutoFS) to usługa realizowana po stronie klienta używana do montowania zasobów sieciowych (NFS i CIFS) na żądanie. Prawidłowo skonfigurowana usługa AutoFS potrafi automatycznie montować zasoby sieciowe na podstawie detekcji aktywności w punktach montowania zasobu. Taką aktywnością może być próba wejścia do punktu montowania (cd) lub próba wyświetlenia zawartości punktu montowania zasobu sieciowego (ls). W taki sam sposób zasób jest odmontowywany gdy nie jest on używany przez określony przedział czasu. Zasoby montowane przez AutoFS nie powinny być montowane ręcznie (mount) lub przez plik /etc/fstab. Demonem usługi AutoFS jest automount, który po uruchomieniu czyta master mapę i w pliku /etc/mtab tworzy odpowiednie punkty montowania. Zasoby montuje na żądanie i odmontowuje je gdy nie są używane. Są cztery typy map AutoFS: master, special, direct i indirect.
Zalety korzystania z AutoFS:
- Nie korzysta z pliku /etc/fstab. Wymaga aby systemy plików NFS były definiowane w plikach nazywanych mapami (maps), zlokalizowanymi w katalogu /etc. Konfiguracja opiera się na głównym pliku konfiguracyjnym
/etc/auto.master
oraz na plikach uzupełniających/etc/auto.*.
W pliku/etc/auto.master
wskazywane są katalogi, które będą kontrolowane przez AutoFS.
- Nie wymaga uprawnień roota do montowania zasobów NFS. Ręczne montowanie przez mount i korzystając z pliku /etc/fstab wymaga uprawnień roota.
- Zapobiega zawieszeniu się klienta NFS jeżeli zasoby sieciowe ustawione “na sztywno” (mount lub fstab) nie są dostępne.
- Zasoby sieciowe odmontowywane są automatycznie jeżeli nie są używane przez pięć (domyślnie) minut.
- Wspiera znaki wildcard i zmienne środowiskowe, których metody “na sztywno” nie wspierają.
- Dostępna jest specjalna mapa, która montuje automatycznie wszystkie dostępne zasoby sieciowe z serwera NFS.
Plik konfiguracyjny AutoFS: /etc/sysconfig/autofs.
1 2 3 4 5 6 7 8 |
MASTER_MAP_NAME="auto.master" TIMEOUT=300 NEGATIVE_TIMEOUT=60 BROWSE_MODE="no" MOUNT_NFS_DEFAULT_PROTOCOL=4 APPEND_OPTIONS="yes" LOGGING="none" OPTIONS="" |
Dyrektywa | Opis |
MASTER_MAP_NAME |
Definiuje nazwę master mapy. Domyślnie jest to plik /etc/auto.master. |
TIMEOUT |
Czas braku aktywności, po którym zasób zostanie odmontowany. Domyślnie 5 minut. |
NEGATIVE_TIMEOUT |
Specifies, in seconds, a timeout value for failed mount attempts. The default is one minute. |
BROWSE_MODE |
Defines whether maps are to be made browsable. |
MOUNT_NFS_DEFAULT_PROTOCOL |
Określa domyślną wersję NFS używaną do montowania zasobów NFS. |
APPEND_OPTIONS |
Dodatkowe opcje dla dyrektywy OPTIONS. |
LOGGING |
Poziom logowania. Inne opcje to: verbose i debug. |
OPTIONS |
Opcje globalne. |
Mapa master: /etc/auto.master
Mapa master zawiera wpisy dla map: special, direct i indirect. Przykładowy wpisy zamieszczone są poniżej.
1 2 3 |
/net –hosts /– /etc/auto.direct /misc /etc/auto.misc |
Pierwszy wpis jest dla mapy special, powoduje on montowanie wszystkich zasobów dostępnych z serwera NFS wylistowanych jako /net/<serwer_NFS> gdy w tym punkcie montowania pojawi się aktywność użytkownika. Drugi wpis definiuje mapę direct i wskazuje na plik /etc/auto.direct. Trzeci wpis określa mapę indirect, która jest używana do automatycznego montowania wymiennych systemów plików takich jak CD, DVD, dyskietki, USB itd.
Mapa special.
Mapa special -hosts pozwala na montowanie zasobów z wszystkich dostępnych serwerów NFS w punktach montowania /net/<serwer_NFS> bez montowania każdego z zasobów osobno. Domyślny wpis /net -hosts w pliku /etc/auto.master nie jest rekomendowany w środowisku z wieloma serwerami NFS i wieloma zasobami ponieważ AutoFS będzie próbował podmontować wszystkie zasoby nawet te nieużywane.
Mapa direct.
Każdy wpis w pliku konfiguracyjnym mapy direct ma swoje odbicie w pliku /etc/mtab, który zawiera listę wszystkich zamontowanych systemów plików lokalnych i zdalnych. Zasoby zamontowane na podstawie mapy direct zawsze widoczne są dla standardowych użytkowników systemu i mogą koegzystować z zasobami lokalnymi w jednym nadrzędnym katalogu. Wejście do katalogu zawierającego wiele punktów montowania powoduje podmontowanie wszystkich zasobów.
Mapa indirect.
Używana jest do automatycznego montowania zasobów w jednym wspólnym nadrzędnym katalogu. Zasoby montowane mapą indirect widoczne są tylko gdy ktoś próbuje się do nich dostać i mogą koegzystować z zasobami lokalnymi w jednym nadrzędnym katalogu. Każda mapa indirect wprowadza tylko jeden wpis w pliku /etc/mtab. Wejście do katalogu zawierającego wiele punktów montowania indirect spowoduje wyświetlenie tylko zasobów, które są już zamontowane.
Automatyczne montowanie katalogów domowych korzystając z maski wildcard.
AutoFS pozwala na korzystanie w mapach indirect ze specjalnych znaków: gwiazdki (*) i and (&). Znaki te zmieniają odniesienie do określonych punktów montowania, do serwerów NFS i katalogów z zasobami. Dodajmy do pliku master /etc/auto.master wpis:
1 |
/home /etc/auto.home |
Teraz załóżmy plik /etc/auto.home o zawartości:
1 |
* –nfs4,rw &:/home/& |
Dzięki temu po zalogowaniu się użytkownika na komputer-klient demon automount podmontuje tylko katalog domowy tego konkretnego użytkownika a nie cały katalog /home. Jeżeli istnieje tylko jeden serwer NFS udostępniający katalogi domowe użytkowników można pierwszy znak & zastąpić nazwą tego serwera NFS.
Ćwiczenie 1. Dostęp do zasobu NFS korzystając z mapy direct.
Instalacja pakietu autofs:
1 2 3 |
# yum –y install autofs <span style="color: #808080;">…… . .</span> <span style="color: #808080;">Package 1:autofs-5.0.7-40.el7.x86_64 already installed and latest version</span> <span style="color: #808080;">Nothing to do</span> |
Utworzenie punktu montowania /autodir:
1 |
# mkdir /autodir |
Dodaj poniższy wpis do pliku /etc/auto.master. Wpis będzie nakazywał usłudze AutoFS odnieść się do pliku auto.direct celem zapoznania się z mapami direct.
1 |
/– /etc/auto.direct |
Utworzenie pliku /etc/auto.direct i wprowadzenie do niego: punktu montowania, serwera NFS i zasobu:
1 |
/autodir server1.example.com:/nfsrhcsa |
Dodanie do autostartu usługi AutoFS:
1 2 |
# systemctl enable autofs <span style="color: #808080;">ln -s '/usr/lib/systemd/system/autofs.service' '/etc/systemd/system/multi-user.target.wants/autofs.service'<code></code></span> |
Uruchomienie usługi AutoFS i sprawdzenie jej stanu:
1 2 3 4 5 6 7 8 |
# systemctl start autofs # systemctl status autofs <span style="color: #808080;">autofs.service - Automounts filesystems on demand</span> <span style="color: #808080;">Loaded: loaded (/usr/lib/systemd/system/autofs.service; enabled)</span> <span style="color: #808080;">Active: active (running) since Mon 2015-03-16 23:35:47 MIST; 1h 1min ago</span> <span style="color: #808080;">Main PID: 8219 (automount)</span> <span style="color: #808080;">CGroup: /system.slice/autofs.service</span> <span style="color: #808080;">L¦8219 /usr/sbin/automount --pid-file /run/aut…<code></code></span> |
Uruchomienie komendy ll na punkcie montowania /autodir i weryfikacja czy zasób zostanie automatycznie podmontowany:
1 2 3 4 5 |
# ll /autodir # mount | grep autodir <span style="color: #808080;">/etc/auto.direct on /autodir type autofs (ro,relatime,fd=18,pgrp=9129,timeout=300,minproto=5,maxproto=5,direct)</span> <span style="color: #808080;">server1.example.com:/nfsrhcsa on /autodir type nfs4</span> <span style="color: #808080;">(ro,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.120,local_lock=none,addr=192.168.0.110)</span> |
Tak wygląda automatyczne montowanie systemu plików NFS przy wykorzystaniu mapy direct na komputerze-kliencie
Można poczekać pięć minut i ponownie zweryfikować czy zasób NFS jest nadal zamontowany.
Komendy cd lub ll wydane na punkcie montowania spowodują ponowne zamontowanie zasobu NFS.
Ćwiczenie 2. Dostęp do zasobu NFS przy wykorzystaniu mapy indirect.
Instalacja pakietu autofs:
1 |
# yum –y install autofs |
Edycja pliku /etc/auto.master i upewnienie się, że poniższa mapa indirect jest wprowadzona. Poniższy wpis wpłynie na AutoFS aby usługa odniosła się do pliku auto.misc celem wczytania mapy indirect.
1 |
/misc /etc/auto.misc |
Utworzenie punktu montowania /autodir:
1 |
# mkdir /misc |
Edycja pliku /etc/auto.misc i dodanie: punktu montowania, serwera NFS i zasobu:
1 |
autoind server1.example.com:/nfsrhcsa |
Dodanie do autostartu usługi AutoFS:
1 |
# systemctl enable autofs |
Uruchomienie usługi AutoFS i sprawdzenie jej stanu:
1 2 |
# systemctl start autofs # systemctl status autofs |
Uruchomienie komendy ll na punkcie montowania /misc/autoind i weryfikacja czy zasób zostanie automatycznie podmontowany. Obserwacja utworzenia przez AutoFS podkatalogu autoind w katalogu /misc:
1 2 3 4 |
# ll /misc/autoind # mount | grep autoind <span style="color: #808080;">server1.example.com:/nfsrhcsa on /misc/autoind type nfs4</span> <span style="color: #808080;">(ro,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.120,local_lock=none,addr=192.168.0.110)</span> |