Standart Linux Dosya Sistemlerini Kurma ve NFSv4 Sunucusunu Yapılandırma - Bölüm 2


Linux Foundation Sertifikalı Mühendisi (LFCE) Linux sistemlerinde ağ hizmetlerini kurmak, yapılandırmak, yönetmek ve sorunlarını gidermek için eğitilir ve sistem mimarisinin tasarımı ve uygulanmasından ve günlük ilgili sorunların çözümünden sorumludur. Sorunlar.

Linux Vakfı Sertifikasyon Programına (LFCE) Giriş.

Bu serinin 1. Bölümünde bir NFS (Ağ Dosya Sistemi) sunucusunun nasıl kurulacağını ve hizmetin açılışta otomatik olarak başlayacak şekilde nasıl ayarlanacağını açıkladık. Henüz yapmadıysanız, lütfen bu makaleye bakın ve devam etmeden önce belirtilen adımları izleyin.

  1. Ağ Hizmetlerini Yükleme ve Önyükleme Sırasında Otomatik Başlatmayı Yapılandırma - Bölüm 1

Şimdi size NFSv4 sunucunuzu (kimlik doğrulama güvenliği olmadan) nasıl düzgün bir şekilde yapılandıracağınızı göstereceğim, böylece ağ paylaşımlarını Linux istemcilerinde sanki bu dosya sistemleri yerel olarak kurulmuş gibi kullanılacak şekilde ayarlayabilirsiniz. Kimlik doğrulama amacıyla LDAP veya NIS'yi kullanabileceğinizi ancak her iki seçeneğin de LFCE sertifikasyonunun kapsamı dışında olduğunu unutmayın.

NFSv4 sunucusunu yapılandırma

NFS sunucusu çalışır hale geldiğinde dikkatimizi aşağıdakilere yoğunlaştıracağız:

  1. ağ üzerinden paylaşmak istediğimiz yerel dizinleri belirleyip yapılandırmak ve
  2. bu ağ paylaşımlarını istemcilere /etc/fstab dosyası veya automount çekirdek tabanlı yardımcı program (autofs) aracılığıyla otomatik olarak bağlar.

Daha sonra bir yöntemin veya diğerinin ne zaman seçileceğini açıklayacağız.

Bunu yapmadan önce idmapd arka plan programının çalıştığından ve yapılandırıldığından emin olmalıyız. Bu hizmet, NFSv4 adlarının (kullanıcı@etkialanım) kullanıcı ve grup kimlikleriyle eşlenmesini gerçekleştirir ve bir NFSv4 sunucusunun uygulanması için gereklidir.

idmapd'yi etkinleştirmek için /etc/default/nfs-common dosyasını düzenleyin.

NEED_IDMAPD=YES

Ve /etc/idmapd.conf dosyasını yerel alan adınızla düzenleyin (varsayılan, ana bilgisayarın FQDN'sidir).

Domain = yourdomain.com

Ardından idmapd'yi başlatın.

service nfs-common start 	[sysvinit / upstart based systems]
systemctl start nfs-common 	[systemd based systems]

Ağ Paylaşımlarını Dışa Aktarma

/etc/exports dosyası, NFS sunucumuz için ana yapılandırma yönergelerini içerir, uzak ana bilgisayarlara aktarılacak dosya sistemlerini tanımlar ve mevcut seçenekleri belirtir. Bu dosyada her ağ paylaşımı, varsayılan olarak aşağıdaki yapıya sahip ayrı bir satır kullanılarak gösterilir:

/filesystem/to/export client1([options]) clientN([options])

Burada /filesystem/to/export dışa aktarılan dosya sisteminin mutlak yoludur, oysa istemci1 (istemciN'ye kadar) belirli istemciyi (ana bilgisayar adı veya IP adresi) veya ağı temsil eder (joker karakterlere izin verilir). Son olarak seçenekler, sırasıyla paylaşımı dışa aktarırken dikkate alınan virgülle ayrılmış değerlerin (seçenekler) listesidir. Lütfen her ana bilgisayar adı ile önünde yer alan parantezlerin arasında boşluk bulunmadığını unutmayın.

En sık kullanılan seçeneklerin ve bunların açıklamalarının bir listesi aşağıda verilmiştir:

  1. ro (salt okunur kelimesinin kısaltması): Uzak istemciler, dışa aktarılan dosya sistemlerini yalnızca okuma izinleriyle bağlayabilir.
  2. rw (okuma-yazmanın kısaltması): Uzak ana bilgisayarların, dışa aktarılan dosya sistemlerinde yazma değişiklikleri yapmasına olanak tanır.
  3. wdelay (yazma gecikmesinin kısaltması): NFS sunucusu, ilgili başka bir yazma isteğinin yakında olacağından şüphelenirse değişikliklerin diske işlenmesini geciktirir. Ancak, NFS sunucusu birden fazla küçük, ilgisiz istek alırsa bu seçenek performansı düşürecektir, dolayısıyla onu kapatmak için no_wdelay seçeneği kullanılabilir.
  4. senkronizasyon: NFS sunucusu, yalnızca değişiklikler kalıcı depolama birimine (yani sabit diske) aktarıldıktan sonra isteklere yanıt verir. Bunun tersi olan async seçeneği performansı artırabilir, ancak bu, kirli bir sunucunun yeniden başlatılmasından sonra veri kaybı veya bozulması pahasına olur.
  5. root_squash: Uzak kök kullanıcıların sunucuda süper kullanıcı ayrıcalıklarına sahip olmasını engeller ve onlara, hiç kimse kullanıcısının kullanıcı kimliğini atar. Tüm kullanıcıları (sadece root'u değil) “squash” etmek istiyorsanız, all_squash seçeneğini kullanabilirsiniz.
  6. anonuid/anongid: Anonim hesabın (hiç kimse) UID'sini ve GID'sini açıkça ayarlar.
  7. subtree_check: Bir dosya sisteminin yalnızca bir alt dizini dışa aktarılıyorsa, bu seçenek, istenen dosyanın dışa aktarılan alt dizinde bulunduğunu doğrular. Öte yandan, eğer dosya sisteminin tamamı dışa aktarılmışsa, bu seçeneğin no_subtree_check ile devre dışı bırakılması aktarımları hızlandıracaktır. Man 5 Export'a göre, alt ağaç denetimi değerinden daha fazla soruna neden olma eğiliminde olduğundan günümüzde varsayılan seçenek no_subtree_check'tir.
  8. fsid=0 | kök (sıfır veya kök): Belirtilen dosya sisteminin dışa aktarılan birden çok dizinin kökü olduğunu belirtir (yalnızca NFSv4'te geçerlidir).

Bu makalede 192.168.0.10 (NFS sunucusu) üzerindeki /NFS-SHARE ve /NFS-SHARE/mydir dizinlerini veri kaynağımız olarak kullanacağız. dosya sistemlerini test edin.

Aşağıdaki komutu kullanarak bir NFS sunucusundaki mevcut ağ paylaşımlarını her zaman listeleyebiliriz:

showmount -e [IP or hostname]

Yukarıdaki çıktıda, 192.168.0.10 üzerindeki /NFS-SHARE ve /NFS-SHARE/mydir paylaşımlarının dışa aktarıldığını görebiliriz. 192.168.0.17 IP adresine sahip istemciye.

Dışa aktarılan dizin için ilk yapılandırmamız (NFS sunucunuzdaki /etc/exports dizinine bakın) aşağıdaki gibidir:

/NFS-SHARE  	192.168.0.17(fsid=0,no_subtree_check,rw,root_squash,sync,anonuid=1000,anongid=1000)
/NFS-SHARE/mydir    	192.168.0.17(ro,sync,no_subtree_check)

Yapılandırma dosyasını düzenledikten sonra NFS hizmetini yeniden başlatmalıyız:

service nfs-kernel-server restart 		[sysvinit / upstart based system]
systemctl restart nfs-server			[systemd based systems]
Dışa aktarılan ağ paylaşımlarını autofs kullanarak bağlama

Uzaktan NFS paylaşımlarını isteğe bağlı olarak kullanarak bağlama hakkında ayrıntılar için LFCS serisinin Bölüm 5'ine (“Linux'ta Yerel ve Ağ (Samba ve NFS) Dosya Sistemlerini Bağlama/Çıkarma”) bakmak isteyebilirsiniz. mount komutunu kullanarak veya kalıcı olarak /etc/fstab dosyası aracılığıyla.

Bu yöntemleri kullanarak bir ağ dosya sistemi kurmanın dezavantajı, paylaşımın her zaman bağlı kalması için veya en azından biz bunları manuel olarak kaldırmaya karar verene kadar sistemin gerekli kaynakları ayırması gerekmesidir. Bir alternatif, istenen dosya sistemini isteğe bağlı olarak (mount komutunu kullanmadan) autofs aracılığıyla otomatik olarak bağlamaktır; bu, dosya sistemlerini kullanıldıkları zaman bağlayabilir ve daha sonra bağlantısını kesebilir. hareketsizlik dönemi.

Autofs, aşağıdaki formata sahip olan /etc/auto.master dosyasını okur:

[mount point]	[map file]

Burada [harita dosyası], [bağlama noktası] içindeki birden çok bağlama noktasını belirtmek için kullanılır.

Bu ana harita dosyası (/etc/auto.master) daha sonra hangi bağlama noktalarının tanımlandığını belirlemek için kullanılır ve ardından her bağlama noktası için belirtilen parametrelerle bir otomatik bağlama işlemi başlatır.

Dışa aktarılan NFS paylaşımlarını autofs kullanarak bağlama

/etc/auto.master dosyanızı aşağıdaki gibi düzenleyin:

/media/nfs	/etc/auto.nfs-share	--timeout=60

ve aşağıdaki içeriklere sahip /etc/auto.nfs-share adında bir harita dosyası oluşturun:

writeable_share  -fstype=nfs4 192.168.0.10:/
non_writeable_share  -fstype=nfs4 192.168.0.10:/mydir

/etc/auto.nfs-share dosyasındaki ilk alanın, /media/nfs içindeki bir alt dizinin adı olduğunu unutmayın. Her alt dizin autofs tarafından dinamik olarak oluşturulur.

Şimdi autofs hizmetini yeniden başlatın:

service autofs restart 			[sysvinit / upstart based systems]
systemctl restart autofs 			[systemd based systems]

ve son olarak autofs'un açılışta başlamasını sağlamak için aşağıdaki komutu çalıştırın:

chkconfig --level 345 autofs on
systemctl enable autofs 			[systemd based systems]
Autofs arka plan programını başlattıktan sonra bağlı dosya sistemlerini inceleme

autofs'i yeniden başlattığımızda, mount komutu bize harita dosyasının (/etc/auto.nfs-share) belirtilen dosyaya monte edildiğini gösterir. /etc/auto.master içindeki dizin:

Lütfen henüz hiçbir dizinin bağlanmadığını, ancak /etc/auto.nfs-share dosyasında belirtilen paylaşımlara erişmeye çalıştığımızda otomatik olarak bağlanacağını unutmayın:

Gördüğümüz gibi, autofs hizmeti, tabiri caizse harita dosyasını "bağlar", ancak bunları gerçekten bağlamak için dosya sistemlerine bir istek yapılana kadar bekler.

Dışa aktarılan dosya sistemlerinde yazma testleri gerçekleştirme

anonuid ve anongid seçenekleri, ilk paylaşımda ayarlanan root_squash ile birlikte, kök kullanıcı tarafından gerçekleştirilen istekleri eşlememize olanak tanır. istemciyi sunucudaki yerel bir hesaba bağlayın.

Başka bir deyişle, istemcideki kök, dışa aktarılan dizinde bir dosya oluşturduğunda, bu tür bir hesabın sunucuda mevcut olması koşuluyla, bu dosyanın sahipliği UID ve GID=1000 olan kullanıcı hesabına otomatik olarak eşlenecektir:

Çözüm

Bu makaleyi bir kılavuz olarak kullanarak ortamınıza uygun bir NFS sunucusunu başarıyla kurup yapılandırabileceğinizi umuyorum. Daha fazla yardım için ilgili kılavuz sayfalarına da başvurmak isteyebilirsiniz (örneğin, man Export ve man idmapd.conf).

Daha önce belirtildiği gibi diğer seçenekleri ve test senaryolarını denemekten çekinmeyin ve yorumlarınızı, önerilerinizi veya sorularınızı göndermek için aşağıdaki formu kullanmaktan çekinmeyin. Sizden haber almaktan mutluluk duyacağız.