Sistem Fail Rangkaian (NFS) - sistem fail rangkaian. Perkhidmatan Fail Rangkaian

#image.jpgSelamat bersenang-senang, pembaca dan tetamu blog saya. Terdapat rehat yang sangat lama antara siaran, tetapi saya kembali dalam perjuangan). Dalam artikel hari ini saya akan melihat Operasi protokol NFS, dan menyediakan pelayan NFS dan klien NFS pada Linux.

Pengenalan kepada NFS

NFS (Sistem Fail Rangkaian- sistem fail rangkaian) pada pendapat saya - penyelesaian ideal pada rangkaian tempatan yang anda perlukan pantas (lebih pantas berbanding SAMBA dan kurang intensif sumber berbanding sistem fail jauh dengan penyulitan - sshfs, SFTP, dll...) pertukaran data dan Keselamatan maklumat yang dihantar bukanlah keutamaan. protokol NFS membolehkan anda melekapkan sistem fail jauh melalui rangkaian ke dalam pepohon direktori tempatan, seolah-olah ia adalah sistem fail cakera yang dipasang.

Oleh itu, aplikasi tempatan boleh berfungsi dengan sistem fail jauh seolah-olah ia adalah aplikasi tempatan. Tetapi anda perlu berhati-hati (!) dengan menyediakan NFS, kerana dengan konfigurasi tertentu adalah mungkin untuk membekukan sistem pengendalian pelanggan menunggu I/O yang tidak berkesudahan.

protokol NFS berasaskan kerja protokol RPC, yang masih di luar pemahaman saya)) jadi bahan dalam artikel akan menjadi sedikit kabur... Sebelum anda boleh menggunakan NFS, sama ada pelayan atau pelanggan, anda mesti memastikan bahawa kernel anda mempunyai sokongan untuk fail NFS sistem. Anda boleh menyemak sama ada kernel menyokong sistem fail NFS dengan mencari kehadiran baris yang sepadan dalam fail /proc/filesystems:

ARCHIV ~ # grep nfs /proc/filesystems nodev nfs nodev nfs4 nodev nfsd

Jika baris yang dinyatakan tiada dalam fail /proc/filesystems, maka anda perlu memasang pakej yang diterangkan di bawah. Ini mungkin akan membolehkan anda memasang modul kernel bergantung untuk menyokong sistem fail yang sesuai.

Jika, selepas memasang pakej, sokongan NFS tidak dipaparkan dalam fail yang ditetapkan, maka anda perlu menyusun semula kernel untuk mendayakan fungsi ini.

cerita Sistem Fail Rangkaian

protokol NFS dibangunkan oleh Sun Microsystems dan mempunyai empat versi dalam sejarahnya. NFSv1 telah dibangunkan pada tahun 1989 dan adalah percubaan, berjalan pada protokol UDP. Versi Satu diterangkan dalam RFC 1094.

NFSv2 dikeluarkan pada tahun yang sama 1989, diterangkan oleh RFC1094 yang sama dan juga berdasarkan protokol UDP, sementara pada masa yang sama membenarkan untuk membaca sekurang-kurangnya 2GB daripada fail. NFSv3 telah dimuktamadkan pada tahun 1995 dan diterangkan dalam RFC 1813.

Inovasi utama versi ketiga ialah sokongan untuk fail besar, sokongan tambahan untuk protokol TCP dan paket TCP yang lebih besar, yang mempercepatkan prestasi teknologi dengan ketara. NFSv4 telah dimuktamadkan pada tahun 2000 dan diterangkan dalam RFC 3010, disemak pada tahun 2003 dan diterangkan dalam RFC 3530.

Versi ke-4 termasuk peningkatan prestasi, sokongan untuk pelbagai cara pengesahan (khususnya, Kerberos dan LIPKEY dengan pengenalan protokol RPCSEC GSS) dan senarai kawalan akses (kedua-dua jenis POSIX dan Windows). NFS v4.1 telah diluluskan oleh IESG pada tahun 2010 dan menerima RFC 5661.

Inovasi asas versi 4.1 ialah spesifikasi pNFS - NFS Selari, mekanisme untuk akses selari klien NFS kepada data daripada pelayan NFS berbilang teragih. Kehadiran mekanisme sedemikian dalam sistem fail rangkaian sampel akan membantu membina sistem storan dan maklumat "awan" yang diedarkan.

pelayan NFS

Memandangkan kita ada NFS- Ini rangkaian sistem fail, anda perlu mengkonfigurasi jaring dalam Linux. (Anda juga boleh membaca artikel konsep utama rangkaian). Seterusnya anda perlu memasang pakej yang sesuai. Pada Debian ini ialah pakej nfs-kernel-server dan nfs-common, pada RedHat ini ialah pakej nfs-utils.

Dan juga, anda perlu membenarkan syaitan berjalan pada tahap pelaksanaan yang sesuai (arahan dalam RedHat - /sbin/chkconfig nfs on, dalam Debian - /usr/sbin/update-rc.d nfs-kernel-server defaults).

Pakej yang dipasang dalam Debian dilancarkan dalam susunan berikut:

ARKIB ~ # ls -la /etc/rc2.d/ | grep nfs lrwxrwxrwx Satu akar punca 20 Okt Lapan Belas 15:02 S15nfs-common -> ../init.d/nfs-common lrwxrwxrwx Satu akar punca 20 tujuh Okt 20 dua 01:23 S16nfs-kernel-server -> ../init .d/nfs-kernel-server

Dengan kata lain, ia bermula dahulu nfs-common, kemudian pelayan itu sendiri nfs-kernel-server.

Dalam RedHat keadaannya adalah serupa, dengan satu-satunya pengecualian bahawa skrip pertama dipanggil nfslock, dan pelayan dipanggil secara ringkas nfs. Tentang nfs-common Tapak debian secara literal memberitahu kami perkara berikut: fail kongsi untuk klien dan pelayan NFS, pakej ini mesti dipasang pada mesin yang akan berfungsi sebagai klien atau pelayan NFS.

Pakej ini termasuk program: lockd, statd, showmount, nfsstat, gssd dan idmapd. Dengan melihat kandungan skrip permulaan /etc/init.d/nfs-common, anda boleh mengesan urutan kerja berikut: skrip menyemak kehadiran fail binari boleh laku /sbin/rpc.statd, menyemak kehadiran dalam fail /etc/default/nfs-common, /etc/fstab dan /etc/exports ciri-ciri yang memerlukan menjalankan syaitan idmapd Dan gssd, memulakan daemon /sbin/rpc.statd, kemudian sebelum memulakan /usr/sbin/rpc.idmapd dan /usr/sbin/rpc.gssd menyemak kehadiran fail binari boleh laku ini, kemudian untuk demon /usr/sbin/rpc.idmapd menyemak kehadiran modul kernel sunrpc, nfs dan nfsd, dan juga menyokong sistem fail rpc_pipefs dalam kernel (dengan kata lain, kehadirannya dalam fail /proc/filesystems), jika semuanya berjaya, ia dilancarkan /usr/sbin/rpc.idmapd. Selain itu, untuk syaitan /usr/sbin/rpc.gssd menyemak modul kernel rpcsec_gss_krb5 dan memulakan syaitan.

Jika anda melihat kandungannya Skrip permulaan pelayan NFS pada Debian (/etc/init.d/nfs-kernel-server), maka anda boleh mengikuti urutan berikut: pada permulaan, skrip menyemak kewujudan fail /etc/exports, kehadiran modul kernel nfsd, kehadiran sokongan untuk sistem fail NFS dalam kernel Linux (perkataan lain dalam fail /proc/filesystems), jika semuanya sudah sedia, maka syaitan akan mula /usr/sbin/rpc.nfsd, kemudian semak sama ada parameter NEED_SVCGSSD ditetapkan (ditetapkan dalam fail pilihan pelayan /etc/default/nfs-kernel-server) dan, jika ditetapkan, memulakan syaitan /usr/sbin/rpc.svcgssd, yang terakhir melancarkan syaitan /usr/sbin/rpc.mountd. Daripada skrip ini jelas bahawa Operasi pelayan NFS terdiri daripada demons rpc.nfsd, rpc.mountd dan jika pengesahan Kerberos digunakan, maka demon rcp.svcgssd. Dalam topi merah, demon rpc.rquotad dan nfslogd masih berjalan (Atas sebab tertentu dalam Debian saya tidak menemui maklumat tentang syaitan ini dan sebab ketiadaannya, nampaknya ia telah dipadamkan...).

Daripada ini menjadi jelas bahawa Pelayan Sistem Fail Rangkaian terdiri daripada proses berikut (baca - setan), terletak dalam direktori /sbin dan /usr/sbin:

  • rpc.statd- Pemantauan status rangkaian yang mustahil (aka Network Status Monitor, aka NSM). Ia membolehkan anda membatalkan kunci dengan betul selepas ranap/but semula. Untuk memberitahu tentang pelanggaran, gunakan program /usr/sbin/sm-notify. Imp statd berfungsi pada kedua-dua pelayan dan pelanggan. Sebelum ini, pelayan ini diperlukan untuk rpc.lockd berfungsi, tetapi kernel kini bertanggungjawab untuk mengunci (nota: kalau tak silap #image.jpg). (Program RPC 100 ribu 20 satu dan 100 ribu 20 empat - dalam versi baharu)
  • rpc.lockd- Lockd lock imp (aka pengurus kunci NFS (NLM)) mengendalikan permintaan kunci fail. Imp penyekat berfungsi pada kedua-dua pelayan dan pelanggan. Pelanggan meminta penguncian fail, dan pelayan membenarkannya. (lapuk dan tidak digunakan dalam pengedaran baharu sebagai setan. Fungsinya dalam pengedaran moden (dengan kernel lebih lama daripada 2.2.18) dilakukan oleh kernel, lebih tepat lagi oleh modul kernel (lockd).) (RPC program 100024)
  • rpc.nfsd- Syaitan utama pelayan NFS ialah nfsd (dalam versi baharu kadangkala dipanggil nfsd4). Imp ini menyediakan permintaan pelanggan NFS. Parameter RPCNFSDCOUNT dalam fail /etc/default/nfs-kernel-server pada Debian dan NFSDCOUNT dalam fail /etc/sysconfig/nfs pada RedHat menentukan bilangan syaitan untuk dijalankan (lalai ialah 8). (program RPC 100003)
  • rpc.mountd- Tanpa pemasangan NFS mountd mengendalikan permintaan pelanggan untuk melekapkan direktori. Imp yang dipasang berjalan pada pelayan NFS. (Program RPC 100005)
  • rpc.idmapd- Idmapd untuk NFSv4 pada pelayan menukar uid/gid tempatan pengguna kepada format nama@domain, dan perkhidmatan pada klien menukar nama pengguna/kumpulan nama@jenis domain kepada pengguna tempatan dan pengecam kumpulan (mengikut konfigurasi fail /etc/idmapd.conf, butiran lanjut dalam man idmapd.conf):.
  • Selain itu, versi lama NFS menggunakan imp: nfslogd- NFS log imp merekodkan aktiviti untuk sistem fail yang dieksport, berfungsi pada pelayan NFS dan rquotad- pelayan kuota jauh menyediakan maklumat tentang kuota pengguna dalam sistem fail jauh, boleh berfungsi pada kedua-dua pelayan dan pelanggan. (program RPC 100011)

Dalam NFSv4, apabila menggunakan Kerberos, syaitan juga dilancarkan:

  • rpc.gssd- Bes NFSv4 menyediakan kaedah pengesahan melalui GSS-API (pengesahan Kerberos). Berfungsi pada klien dan pelayan.
  • rpc.svcgssd- Imp pelayan NFSv4, yang menyediakan pengesahan klien sebelah pelayan.

peta port dan protokol RPC (Sun RPC)

Sebagai tambahan kepada pakej yang dinyatakan di atas, NFSv2 dan v3 memerlukan pakej tambahan untuk operasi yang betul peta port(digantikan dalam pengedaran yang lebih baharu dengan dinamakan semula kepada rpcbind). Pakej ini biasanya dipasang secara automatik dengan NFS sebagai pakej bergantung dan melaksanakan operasi pelayan RPC, dengan kata lain, ia bertanggungjawab untuk penetapan dinamik port untuk beberapa perkhidmatan yang didaftarkan dalam pelayan RPC.

Secara harfiah, menurut dokumentasi, ini adalah pelayan yang menukar nombor program RPC (Panggilan Prosedur Jauh) kepada nombor port TCP/UDP. portmap beroperasi pada beberapa entiti: panggilan atau permintaan RPC, port TCP/UDP, versi protokol (tcp atau udp), nombor program dan versi program. Demon portmap dilancarkan oleh skrip /etc/init.d/portmap sebelum permulaan perkhidmatan NFS.

Secara ringkasnya, tugas pelayan RPC (Remote Procedure Call) adalah untuk memproses panggilan RPC (yang dipanggil prosedur RPC) daripada proses tempatan dan jauh.

Menggunakan panggilan RPC, perkhidmatan mendaftar atau mengalih keluar diri mereka sendiri ke/daripada pemeta port (aka port mapper, aka portmap, aka portmapper, aka, dalam versi baharu, rpcbind), dan pelanggan menggunakan panggilan RPC untuk menghantar permintaan kepada portmapper menerima maklumat yang berkaitan. Nama mesra pengguna perkhidmatan program dan nombor yang sepadan ditakrifkan dalam fail /etc/rpc.

Memandangkan mana-mana perkhidmatan menghantar permintaan yang sepadan dan mendaftar sendiri pada pelayan RPC dalam pemeta port, pelayan RPC memperuntukkan, memetakan kepada perkhidmatan port TCP dan UDP di mana perkhidmatan bermula dan menyimpan dalam kernel maklumat yang sepadan tentang perkhidmatan yang sedang berjalan. (nama), nombor perkhidmatan yang unik (mengikut /etc/rpc), tentang protokol dan port di mana perkhidmatan berjalan dan tentang versi perkhidmatan dan memberikan maklumat yang ditunjukkan kepada pelanggan atas permintaan. Penukar port itu sendiri mempunyai nombor program (100000), nombor versi 2, port TCP 100 sebelas dan port UDP 111.

Di atas, apabila menunjukkan komposisi syaitan pelayan NFS, saya menunjukkan nombor program RPC utama. Saya mungkin telah mengelirukan anda sedikit dengan perenggan ini, jadi saya akan menyatakan frasa utama yang sepatutnya menjelaskan: fungsi utama pemeta pelabuhan adalah untuk kembali, atas permintaan pelanggan yang memberikan nombor program RPC (atau Nombor program RPC) dan versi kepadanya (pelanggan) port di mana program yang diminta sedang berjalan. Sehubungan itu, jika pelanggan perlu mengakses RPC dengan nombor program tertentu, ia mesti terlebih dahulu menghubungi proses peta port pada mesin pelayan dan mencari nombor port komunikasi dengan perkhidmatan RPC yang diperlukannya.

Pengendalian pelayan RPC boleh diwakili oleh langkah-langkah berikut:

Untuk mendapatkan maklumat daripada pelayan RPC, gunakan utiliti rpcinfo. Apabila anda menentukan ciri hos -p, atur cara memaparkan senarai semua program RPC berdaftar pada hos hos. Tanpa menyatakan hos, program akan memaparkan perkhidmatan pada localhost. Contoh:

ARCHIV ~ # rpcinfo -p prog-ma vers proto port 100 ribu Dua tcp 100 sebelas portmapper 100 ribu Dua udp 100 sebelas portmapper 100 ribu 20 empat Satu udp 50 sembilan ribu empat ratus 50 satu status 100 ribu 20 empat puluh Satu tcp lapan ratus 70 dua status 100 ribu 20 satu Satu udp 40 empat ribu tiga ratus 10 nlockmgr 100 ribu 20 satu Tiga udp 40 empat ribu tiga ratus 10 nlockmgr 100 ribu 20 satu Empat udp 40 empat ribu tiga ratus 10 nlockmgr 100 ribu 20 satu empat tcp 40 Satu tcp ribu lapan ratus 50 satu nlockmgr 100 ribu 20 satu Tiga tcp 40 empat ribu lapan ratus 50 satu nlockmgr 100 ribu 20 satu Empat tcp 40 empat ribu lapan ratus 50 satu nlockmgr 100 ribu tiga Dua tcp Dua ribu 40 sembilan nfs 100 ribu dua Tiga tcp ribu 40 sembilan nfs 100 ribu tiga Empat tcp Dua ribu 40 sembilan nfs 100 ribu tiga Dua udp Dua ribu 40 sembilan nfs 100 ribu tiga Tiga udp Dua ribu 40 sembilan nfs 100 ribu tiga Empat udp Dua ribu 40 sembilan nfs 100 ribu 5 Satu udp 50 seribu tiga ratus 6 dipasang 100 ribu 5 Satu tcp 40 seribu empat ratus 5 dipasang 100 ribu 5 Dua udp 50 seribu tiga ratus 6 dipasang 100 ribu 5 Dua tcp 40 seribu empat ratus 5 dipasang 100 ribu 5 Tiga udp 50 seribu tiga ratus 6 dipasang 100 ribu 5 Tiga tcp 40 seribu empat ratus 5 dipasang

Seperti yang anda lihat, rpcinfo menunjukkan (dalam lajur dari kiri ke kanan) nombor program, versi, protokol, port dan nama yang didaftarkan.

Menggunakan rpcinfo anda boleh mengalih keluar pendaftaran program atau mendapatkan maklumat tentang perkhidmatan RPC tertentu (lebih banyak pilihan dalam man rpcinfo). Seperti yang anda lihat, versi portmapper Dua syaitan didaftarkan pada port udp dan tcp, versi rpc.statd Satu pada port udp dan tcp, pengurus kunci NFS versi 1,3,4, pelayan nfs versi 2,3,4, serta memasang setan versi 1,2,3.

Pelayan NFS (lebih tepat, rpc.nfsd) menerima permintaan daripada klien dalam bentuk datagram UDP pada port 2049. Walaupun fakta bahawa NFS berfungsi dengan penyelesai port, yang membolehkan pelayan menggunakan port yang ditetapkan secara dinamik, port UDP Dua ribu 40 sembilan diberikan secara ketat kepada NFS dalam kebanyakan pelaksanaan.

Operasi Protokol Sistem Fail Rangkaian

Memasang NFS jauh

Proses pemasangan sistem fail NFS jauh boleh diwakili oleh rajah berikut:

Perihalan protokol NFS semasa memasang direktori jauh:

  1. Pelayan RPC dilancarkan pada pelayan dan klien (biasanya semasa boot), diservis oleh proses portmapper dan didaftarkan pada port tcp/111 dan udp/111.
  2. Perkhidmatan dilancarkan (rpc.nfsd, rpc.statd, dsb.), yang didaftarkan pada pelayan RPC dan didaftarkan pada port rangkaian rawak (jika port statik tidak dinyatakan dalam tetapan perkhidmatan).
  3. arahan mount pada komputer klien menghantar kernel permintaan untuk melekapkan direktori rangkaian yang menunjukkan jenis sistem fail, hos dan secara praktikal direktori, kernel menghantar dan menjana permintaan RPC ke proses peta port pada pelayan NFS pada port udp/ 111 (jika fungsi untuk berfungsi melalui tcp tidak ditetapkan pada klien )
  4. Kernel pelayan NFS menanyakan RPC untuk kehadiran imp rpc.mountd dan mengembalikan kepada kernel klien port rangkaian di mana imp sedang berjalan.
  5. mount menghantar permintaan RPC ke port di mana rpc.mountd sedang berjalan. Pada ketika ini, pelayan NFS boleh mengesahkan klien berdasarkan alamat IP dan nombor portnya untuk melihat sama ada klien boleh memasang sistem fail yang ditetapkan.
  6. Mountless mengembalikan perihalan sistem fail yang diminta.
  7. Perintah pelekap pelanggan mengeluarkan panggilan sistem pelekap untuk mengaitkan pemegang fail yang terdapat dalam langkah 5 dengan titik pelekap setempat pada hos pelanggan. Pemegang fail disimpan dalam kod klien NFS, dan mulai sekarang sebarang capaian oleh proses pengguna kepada fail pada sistem fail pelayan akan menggunakan pemegang fail sebagai titik permulaan.

Pertukaran data antara klien dan pelayan NFS

Akses biasa kepada sistem fail jauh boleh diterangkan dengan skema berikut:

Perihalan proses mengakses fail yang terletak pada pelayan NFS:

Menyediakan pelayan NFS

Penalaan Pelayan umumnya terdiri daripada menetapkan direktori tempatan yang dibenarkan untuk dipasang oleh sistem jauh dalam fail /etc/exports. Tindakan ini dipanggil hierarki direktori eksport. Sumber utama maklumat mengenai direktori yang dieksport ialah fail berikut:

  • /etc/exports- fail konfigurasi utama yang menyimpan konfigurasi direktori yang dieksport. Digunakan semasa memulakan NFS dan oleh utiliti exportfs.
  • /var/lib/nfs/xtab- mengandungi senarai direktori yang dipasang oleh pelanggan jauh. Digunakan oleh imp rpc.mountd apabila pelanggan cuba melekapkan hierarki (rekod pelekapan dibuat).
  • /var/lib/nfs/etab- senarai direktori yang boleh dipasang oleh sistem jauh, menunjukkan semua ciri direktori yang dieksport.
  • /var/lib/nfs/rmtab- senarai direktori yang tidak dieksport pada masa ini.
  • /proc/fs/nfsd- sistem fail khas (kernel 2.6) untuk menguruskan pelayan NFS.
    • eksport- senarai hierarki yang dieksport aktif dan pelanggan kepada siapa mereka dieksport, serta hartanah. Kernel mendapat maklumat ini daripada /var/lib/nfs/xtab.
    • benang- mengandungi bilangan benang (boleh juga diubah)
    • menggunakan filehandle anda boleh mendapatkan penunjuk ke fail
    • dan lain-lain...
  • /proc/net/rpc- mengandungi statistik "mentah", yang boleh diperoleh menggunakan nfsstat, serta pelbagai cache.
  • /var/run/portmap_mapping- maklumat tentang perkhidmatan yang didaftarkan dalam RPC

Catatan: Secara umumnya, di Internet terdapat banyak tafsiran dan rumusan tujuan fail xtab, etab, rmtab, saya tidak tahu siapa yang perlu dipercayai #image.jpg Walaupun di http://nfs.sourceforge.net/ tafsiran tidak jelas.

Menyediakan fail /etc/exports

Dalam kes biasa, fail /etc/exports ialah satu-satunya fail yang memerlukan pengeditan untuk fungsi pelayan NFS. Fail ini mengawal sifat berikut:

  • Apa jenis pelanggan boleh mengakses fail pada pelayan
  • hierarki yang mana? direktori pada pelayan boleh diakses oleh setiap klien
  • Bagaimanakah nama pelanggan tersuai dipaparkan kepada nama pengguna tempatan

Tidak kira baris mana fail eksport mempunyai format berikut:

export_point klien1(fungsi) [klien2(fungsi) ...]

di mana export_point laluan mutlak hierarki direktori yang dieksport, pelanggan1 - n nama 1 atau lebih pelanggan atau alamat IP, dipisahkan oleh ruang, yang dibenarkan untuk dipasang export_point. Fungsi gariskan peraturan pemasangan untuk pelanggan yang ditunjukkan sebelum pilihan.

Ini yang biasa contoh konfigurasi fail eksport:

ARCHIV ~ # cat /etc/exports /archiv1 files(rw,sync) 10.0.0.1(ro,sync) 10.0.230.1/24(ro,sync)

Dalam contoh ini, fail komputer dan 10.0.0.1 dibenarkan akses ke titik eksport /archiv1, manakala fail hos mempunyai akses baca/tulis dan hos 10.0.0.1 dan subnet 10.0.230.1/24 mempunyai akses baca sahaja.

Penerangan hos dalam /etc/exports dibenarkan dalam format berikut:

  • Nama nod individu diterangkan sebagai fail atau fail.DOMAIN.local.
  • Penerangan topeng domain dibuat dalam format berikut: *DOMAIN.local merangkumi semua nod domain DOMAIN.local.
  • Subnet ditentukan sebagai alamat IP/pasangan topeng. Contohnya: 10.0.0.0/255.255.255.0 termasuk semua nod yang alamatnya bermula dengan 10.0.0.
  • Menentukan nama kumpulan rangkaian @myclients yang mempunyai akses kepada sumber (apabila menggunakan pelayan NIS)

Fungsi umum untuk mengeksport hierarki direktori

Fungsi biasa berikut digunakan dalam fail eksport:(pertama, fungsi yang digunakan secara lalai dalam kebanyakan sistem ditunjukkan, dalam kurungan - bukan lalai):

  • auth_nlm (no_auth_nlm) atau kunci_selamat (kunci_tidak selamat)- menyatakan bahawa pelayan harus mendapatkan pengesahan permintaan kunci (menggunakan protokol Pengurus Kunci NFS).
  • nohide (sembunyikan)- jika pelayan mengeksport dua hierarki direktori, manakala satu bersarang (dipasang) dalam satu lagi. Pelanggan mesti, sudah tentu, melekapkan hierarki kedua (kanak-kanak), jika tidak, titik pelekap hierarki kanak-kanak akan kelihatan seperti direktori kosong. Fungsi nohide menghasilkan hierarki direktori ke-2 tanpa pemasangan remeh. (nota: Saya tidak dapat menggunakan pilihan ini...)
  • ro(rw)- Membenarkan permintaan baca (tulis) sahaja. (Akhirnya, sama ada ia boleh dibaca/ditulis atau tidak ditentukan berdasarkan hak sistem fail, dengan semua ini, pelayan tidak dapat membezakan permintaan untuk membaca fail daripada permintaan untuk dilaksanakan, jadi ia membenarkan membaca jika pengguna telah membaca atau melaksanakan hak.)
  • selamat (tidak selamat)- permintaan bahawa permintaan NFS datang dari port selamat (< 1024), чтобы программа без прав root не могла монтировать иерархию каталогов.
  • subtree_check (no_subtree_check)- Jika subdirektori sistem fail dieksport, tetapi bukan keseluruhan sistem fail, pelayan menyemak sama ada fail yang diminta berada dalam subdirektori yang dieksport. Melumpuhkan pengesahan mengurangkan keselamatan tetapi meningkatkan kelajuan pemindahan data.
  • segerak (async)- menyatakan bahawa pelayan harus bertindak balas kepada permintaan hanya selepas menulis konfigurasi yang dilakukan oleh permintaan tersebut ke cakera. Fungsi async memberitahu pelayan untuk tidak menunggu maklumat ditulis ke cakera, yang meningkatkan prestasi tetapi mengurangkan kebolehpercayaan, kerana Sekiranya sambungan putus atau kegagalan peralatan, maklumat mungkin hilang.
  • wdelay (no_wdelay)- mengarahkan pelayan untuk menangguhkan pelaksanaan permintaan tulis jika permintaan tulis berikutnya belum selesai, menulis data dalam blok yang lebih besar. Ini meningkatkan prestasi apabila menghantar baris gilir besar bagi arahan tulis. no_wdelay menentukan untuk tidak menangguhkan pelaksanaan perintah tulis, yang boleh berguna jika pelayan menerima bilangan arahan yang tidak berkaitan tanpa had.

Eksport pautan simbolik dan fail peranti. Apabila mengeksport hierarki direktori yang mengandungi pautan simbolik, objek pautan mesti boleh diakses oleh sistem klien (jauh), dengan kata lain, salah satu daripada peraturan berikut mestilah benar:

  • objek pautan mesti wujud pada sistem fail klien
  • perlu mengeksport dan melekapkan objek rujukan

Fail peranti merujuk kepada antara muka kernel Linux. Apabila anda mengeksport fail peranti, antara muka ini dieksport. Jika sistem klien tidak mempunyai peranti jenis yang sama, peranti yang dieksport tidak akan berfungsi.

Pada sistem klien, apabila memasang objek NFS, anda boleh menggunakan pilihan nodev supaya fail peranti dalam direktori yang dipasang tidak digunakan.

Fungsi lalai mungkin berbeza antara sistem dan boleh didapati dalam /var/lib/nfs/etab. Selepas menerangkan direktori yang dieksport dalam /etc/exports dan memulakan semula pelayan NFS, semua fungsi yang hilang (baca: fungsi lalai) akan ditunjukkan dalam fail /var/lib/nfs/etab.

Fungsi untuk memaparkan (padanan) ID pengguna

Untuk pemahaman yang lebih baik tentang perkara berikut, saya akan menasihati anda untuk membaca artikel Menguruskan Pengguna Linux. Setiap pengguna Linux mempunyai UID dan GID induknya sendiri, yang diterangkan dalam fail /etc/passwd dan /etc/group.

Pelayan NFS menganggap bahawa sistem pengendalian hos jauh telah mengesahkan pengguna dan memberikan mereka UID dan GID yang betul. Mengeksport fail memberikan pengguna sistem klien akses yang sama kepada fail tersebut seolah-olah mereka dilog terus pada pelayan. Sehubungan itu, apabila klien NFS menghantar permintaan kepada pelayan, pelayan menggunakan UID dan GID untuk mengenal pasti pengguna pada sistem setempat, yang boleh membawa kepada beberapa masalah:


Fungsi berikut menetapkan peraturan untuk memaparkan pengguna jauh dalam yang tempatan:

Contoh menggunakan fail pemetaan pengguna:

ARCHIV ~ # cat /etc/file_maps_users # Pemetaan pengguna # ulasan tempatan jauh uid 0-50 Seribu dua # pengguna pemetaan dengan UID jauh 0-50 ke UID setempat Seribu dua gid 0-50 Seribu dua # pengguna pemetaan dengan /span GID jauh 0-50 kepada GID 1002 tempatan

Pengurusan Pelayan NFS

Pelayan NFS diurus menggunakan utiliti berikut:

  • nfsstat
  • showmsecure (tidak selamat)mount
  • exportfs

nfsstat: statistik NFS dan RPC

Utiliti nfsstat membolehkan anda melihat statistik pelayan RPC dan NFS. Fungsi arahan boleh didapati dalam man nfsstat.

showmount: memaparkan maklumat tentang status NFS

utiliti showmount pertanyaan rpc.mountd pada hos jauh tentang sistem fail yang dipasang. Secara lalai, senarai pelanggan yang diisih dikembalikan. kunci:

  • --semua- senarai pelanggan dan titik lekap dipaparkan menunjukkan tempat pelanggan melekapkan direktori. Maklumat ini mungkin tidak boleh dipercayai.
  • --direktori- senarai titik pelekap dipaparkan
  • --eksport- senarai sistem fail yang dieksport diberikan berdasarkan kepercayaan nfsd

Apabila anda menjalankan showmount tanpa hujah, maklumat tentang sistem yang dibenarkan untuk dipasang akan dicetak ke konsol tempatan koleksi. Sebagai contoh, hos ARCHIV memberikan kami senarai direktori yang dieksport dengan alamat IP hos yang dibenarkan untuk melekapkan koleksi yang ditetapkan:

FILES ~ # showmount --exports archive Senarai eksport untuk arkib: /archiv-big 10.0.0.2 /archiv-small 10.0.0.2

Jika anda menentukan nama hos/IP dalam hujah, maklumat tentang hos ini akan dipaparkan:

ARCHIV ~ # fail showmount clnt_create: RPC: Program tidak didaftarkan # mesej ini memberitahu kami bahawa NFSd tidak berjalan pada hos FILES

exportfs: menguruskan direktori yang dieksport

Perintah ini menyediakan koleksi yang dieksport, data dalam fail /etc/exports, adalah lebih tepat untuk menulis bahawa ia tidak berfungsi, tetapi menyegerakkan dengan fail /var/lib/nfs/xtab dan mengalih keluar yang tidak wujud daripada xtab. exportfs dilakukan apabila menjalankan nfsd demon dengan hujah -r. Utiliti exportfs dalam mod kernel 2.6 bercakap dengan imp rpc.mountd melalui fail dalam direktori /var/lib/nfs/ dan tidak bercakap dengan kernel secara langsung. Tanpa ciri, memaparkan senarai sistem fail yang sedang dieksport.

hartanah exportfs:

  • [client:directory-name] - tambah atau alih keluar sistem fail yang ditetapkan untuk klien yang ditetapkan)
  • -v - memaparkan lebih banyak maklumat
  • -r - eksport semula semua koleksi (segerakkan /etc/exports dan /var/lib/nfs/xtab)
  • -u - keluarkan daripada senarai yang dieksport
  • -a - tambah atau alih keluar semua sistem fail
  • -o - fungsi dipisahkan dengan koma (serupa dengan pilihan yang digunakan dalam /etc/exports; iaitu anda boleh menukar fungsi sistem fail yang telah dipasang)
  • -i - jangan gunakan /etc/exports semasa menambah, hanya sifat baris arahan semasa
  • -f - set semula senarai sistem yang dieksport dalam kernel 2.6;

Pelanggan NFS

Sebelum mengakses fail pada sistem fail jauh, pelanggan mesti lekapkannya dan terima daripada pelayan penunjuk kepadanya. Gunung NFS boleh dilakukan menggunakan lekapkan arahan atau menggunakan salah satu pelekap automatik yang membiak (amd, autofs, automount, supermount, superpupermount). Proses pemasangan ditunjukkan dengan sempurna dalam ilustrasi di atas.

hidup pelanggan NFS tidak perlu melepaskan sebarang syaitan, fungsi klien membuat kernel modul kernel/fs/nfs/nfs.ko, yang digunakan semasa memasang sistem fail jauh. Koleksi yang dieksport daripada pelayan boleh dipasang pada klien dengan cara berikut:

  • secara manual menggunakan arahan mount
  • secara automatik semasa but, apabila memasang sistem fail yang digariskan dalam /etc/fstab
  • secara automatik menggunakan syaitan autofs

Saya tidak akan mempertimbangkan kaedah ke-3 dengan autof dalam artikel ini, kerana jumlah maklumatnya yang besar. Mungkin akan ada penerangan berasingan dalam artikel-artikel seterusnya.

Memasang Sistem Fail Rangkaian dengan arahan pelekap

Contoh penggunaan arahan mount dibentangkan dalam post Block Device Control Commands. Di sini saya akan melihat contoh arahan mount untuk memasang sistem fail NFS:

FAIL ~ # mount -t nfs archiv:/archiv-small /archivs/archiv-small FILES ~ # mount -t nfs -o ro archiv:/archiv-big /archivs/archiv-big FILES ~ # mount ..... .. arkiv:/archiv-small pada /archivs/archiv-jenis kecil nfs (rw,addr=10.0.0.6) archiv:/archiv-besar pada /archivs/archiv-jenis nfs (ro,addr=10.0.0.6)

Perintah pertama melekapkan direktori /archiv-small yang dieksport pada pelayan arkiv ke titik pelekap setempat /archivs/archiv-small dengan pilihan lalai (dengan kata lain, baca-tulis).

Walaupun arahan mount dalam pengedaran terkini ia dapat memikirkan jenis sistem fail yang digunakan walaupun tanpa menyatakan jenisnya; namun, lebih baik untuk menentukan parameter -t nfs. Perintah ke-2 melekapkan direktori yang dieksport /archiv-big pada pelayan arkiv ke direktori tempatan /archivs/archiv-big dengan pilihan baca sahaja (ro). arahan mount tanpa ciri jelas menunjukkan kepada kita hasil pemasangan. Selain fungsi baca sahaja (ro), yang lain boleh ditentukan fungsi utama apabila memasang NFS:

  • nosuid- Fungsi ini melarang pelaksanaan program setuid daripada direktori yang dipasang.
  • nodev(tiada peranti - bukan peranti) - Fungsi ini melarang penggunaan aksara dan menyekat fail khas sebagai peranti.
  • kunci (nolock)- Membenarkan penguncian NFS (lalai). nolock melumpuhkan penguncian NFS (tidak menjalankan lockd) dan mudah apabila bekerja dengan pelayan lama yang tidak menyokong penguncian NFS.
  • mounthost=nama- Nama hos yang NFS mountless dijalankan - mountd.
  • mountport=n - Port yang digunakan oleh imp yang dipasang.
  • pelabuhan=n- port yang digunakan untuk menyambung ke pelayan NFS (lalai ialah 2049 jika rpc.nfsd tidak didaftarkan pada pelayan RPC). Jika n=0 (lalai), maka NFS menghantar permintaan ke peta port pada pelayan untuk mencari port.
  • saiz=n(baca saiz blok - baca saiz blok) - Bilangan bait dibaca pada satu masa daripada pelayan NFS. Standard - 4096.
  • wsize=n(tulis saiz blok - tulis saiz blok) - Bilangan bait yang ditulis pada satu masa ke pelayan NFS. Standard - 4096.
  • tcp atau udp- Untuk memasang NFS, gunakan protokol TCP atau UDP, masing-masing.
  • bg- Jika anda kehilangan akses kepada pelayan, ulangi ujian di latar belakang supaya tidak mengganggu proses but sistem.
  • fg- Jika anda kehilangan akses kepada pelayan, ulangi ujian dalam mod keutamaan. Pilihan ini boleh menyekat proses but sistem dengan mengulangi percubaan pemasangan. Atas sebab ini, parameter fg digunakan terutamanya untuk penyahpepijatan.

Fungsi yang mempengaruhi caching atribut pada lekapan NFS

Atribut fail, disimpan dalam inod (deskriptor indeks), seperti masa pengubahsuaian, saiz, pautan keras, pemilik, biasanya berubah sekali-sekala untuk fail biasa dan lebih jarang untuk direktori. Banyak program, seperti ls, mengakses fail baca sahaja dan tidak menukar atribut atau kandungan fail, tetapi membuang sumber sistem pada operasi rangkaian yang mahal.

Untuk mengelakkan pembaziran sumber yang tidak perlu, anda boleh cache atribut ini. Kernel menggunakan masa pengubahsuaian fail untuk menentukan sama ada cache sudah lapuk dengan membandingkan masa pengubahsuaian dalam cache dan masa pengubahsuaian fail itu sendiri. Cache atribut dikemas kini secara berkala mengikut parameter ini:

  • ac (noac)(cache attrebute - caching atribut) - Membenarkan caching atribut (secara lalai). Walaupun noac memperlahankan pelayan, ia mengelakkan sifat basi apabila berbilang pelanggan secara aktif menulis maklumat kepada hierarki biasa.
  • acdirmax=n(maksimum fail direktori cache atribut - cache atribut maksimum untuk fail direktori) - Bilangan maksimum saat yang NFS tunggu sebelum mengemas kini atribut direktori (lalai Enam puluh saat)
  • acdirmin=n(minimum fail direktori cache atribut - cache atribut minimum untuk fail direktori) - Sebilangan kecil saat yang NFS tunggu sebelum mengemas kini atribut direktori (lalai 30 saat)
  • acregmax=n(maksimum fail cache atribut - cache atribut maksimum untuk fail biasa) - Bilangan saat maksimum yang NFS tunggu sebelum mengemas kini atribut fail biasa (lalai: Enam puluh saat)
  • acregmin=n(minimum fail cache atribut - cache atribut minimum untuk fail biasa) - Sebilangan kecil saat yang NFS tunggu sebelum mengemas kini atribut fail biasa (lalai Tiga saat)
  • acteo=n(masa tamat cache atribut - tamat masa cache atribut) - Menggantikan nilai untuk semua pilihan di atas. Jika acteo tidak dinyatakan, maka nilai di atas mengambil nilai lalai.

Fungsi Pengendalian Ralat NFS

Fungsi berikut mengawal perkara yang dilakukan oleh NFS apabila tiada respons daripada pelayan atau apabila ralat I/O berlaku:

  • fg(bg)(latar depan - latar depan, latar belakang - latar belakang) - Buat probe pelekap NFS yang gagal di latar depan/latar belakang.
  • keras (lembut)- memaparkan mesej "pelayan tidak bertindak balas" kepada konsol apabila tamat masa dicapai dan meneruskan ujian pemasangan. Dengan fungsi ini lembut- semasa tamat masa, melaporkan ralat I/O kepada program yang memanggil operasi. (adalah disyorkan untuk tidak menggunakan pilihan lembut)
  • nointr (intr)(tiada gangguan) - Tidak membenarkan isyarat untuk mengganggu operasi fail dalam hierarki direktori yang dipasang keras apabila tamat masa yang besar dicapai. intr- membolehkan gangguan.
  • retrans=n(nilai penghantaran semula) - Selepas n tamat masa kecil, NFS menjana tamat masa yang besar (lalai 3). Tamat masa yang besar menghentikan operasi atau mencetak mesej "pelayan tidak bertindak balas" ke konsol, bergantung pada sama ada fungsi keras/lembut ditentukan.
  • cuba semula=n(nilai cuba semula) - Bilangan minit perkhidmatan NFS akan mengulangi operasi pelekap sebelum menyerah (lalai 10000).
  • timeo=n(nilai tamat masa) - Bilangan ke-10 saat perkhidmatan NFS menunggu sebelum menghantar semula sekiranya RPC atau tamat masa kecil (lalai 7). Nilai ini meningkat dengan setiap tamat masa kepada nilai yang lebih besar iaitu Enam puluh saat atau sehingga tamat masa yang besar berlaku. Jika rangkaian sibuk, pelayan lambat, atau permintaan melalui berbilang penghala atau get laluan, meningkatkan nilai ini boleh meningkatkan prestasi.

Lekapkan NFS automatik semasa but (penerangan sistem fail dalam /etc/fstab)

Saya menyentuh perihalan fail /etc/fstab dalam artikel yang sepadan. Dalam contoh semasa, saya akan melihat beberapa contoh pemasangan sistem fail NFS dengan penerangan tentang pilihan:

FAIL ~ # kucing /etc/fstab | grep nfs archiv:/archiv-small /archivs/archiv-small nfs rw,timeo=4,rsize=16384,wsize=16384 Null Null nfs-server:/archiv-big /archivs/archiv-big nfs rw,timeo=50 ,keras,fg Zero 0

Contoh pertama melekapkan sistem fail /archiv-small daripada hos arkiv ke titik lekap /archivs/archiv-small, jenis sistem fail ditentukan sebagai nfs (sentiasa mesti dinyatakan untuk jenis ini), sistem fail dipasang dengan pilihan baca-tulis (rw) .

Hos arkib disambungkan melalui saluran tempatan yang pantas, jadi untuk meningkatkan prestasi, parameter timeo telah dikurangkan dan nilai rsize dan wsize telah meningkat dengan ketara. Medan untuk program dump dan fsck ditetapkan kepada sifar supaya program ini tidak menggunakan sistem fail yang dipasang NFS.

Contoh ke-2 memasang sistem fail /archiv-big daripada hos pelayan nfs. Kerana Kami disambungkan kepada hos pelayan nfs melalui sambungan yang perlahan, parameter timeo dinaikkan kepada 5 saat (50 10 saat), dan parameter keras juga ditetapkan keras supaya NFS terus memasang semula sistem fail selepas lama. tamat masa, parameter fg juga ditetapkan, supaya apabila sistem but dan hos pelayan nfs tidak tersedia, ia tidak membeku.

Sebelum menyimpan konfigurasi dalam /etc/fstab, pastikan anda cuba melekap secara manual dan pastikan semuanya berfungsi!!!

Prestasi NFS yang dipertingkatkan

Prestasi NFS boleh dipengaruhi oleh beberapa perkara, terutamanya apabila menjalankan sambungan yang perlahan. Apabila bekerja dengan sambungan yang perlahan dan banyak dimuatkan, lebih baik menggunakan parameter keras supaya tamat masa tidak menyebabkan program berhenti berfungsi. Tetapi anda perlu mempertimbangkan bahawa jika anda memasang sistem fail melalui NFS dengan parameter keras melalui fstab, dan hos jauh tidak dapat dicapai, maka sistem akan membeku apabila but.

Selain itu, salah satu cara paling mudah untuk meningkatkan prestasi NFS adalah dengan meningkatkan bilangan bait yang dipindahkan pada satu masa. Saiz Empat ribu sembilan puluh enam bait adalah sangat kecil untuk sambungan pantas moden, meningkatkan nilai ini kepada Lapan ribu 100 sembilan puluh dua atau lebih boleh didapati secara eksperimen untuk mencari kelajuan terbaik.

Juga, seseorang tidak boleh terlepas pandang fungsi tamat masa. NFS menunggu respons kepada pemindahan data dalam tempoh masa yang dinyatakan dalam fungsi timeo; jika respons tidak diterima dalam masa ini, maka pemindahan berulang dibuat.

Tetapi pada sambungan yang sibuk dan perlahan, masa ini mungkin kurang daripada masa tindak balas pelayan dan kapasiti saluran komunikasi, mengakibatkan penghantaran semula yang tidak perlu yang melambatkan kerja. Secara lalai, timeo ialah 0.7 saat (700 milisaat). selepas tiada respons untuk Tujuh ratus ms, pelayan akan menghantar semula dan menggandakan masa menunggu kepada 1.4 saat, peningkatan masa akan terus ke nilai yang lebih tinggi iaitu Enam puluh saat. Seterusnya, bergantung pada parameter keras/lembut, beberapa tindakan akan berlaku (lihat di atas).

Anda boleh memilih masa terbaik untuk nilai khusus paket yang dihantar (nilai saiz/wsize) menggunakan arahan ping:

FAIL ~ # ping -s 30 dua ribu tujuh ratus enam puluh lapan arkib PING arkib.DOMAIN.tempatan (10.0.0.6) 32768(32796) bait data. 30 dua ribu tujuh ratus 70 6 bait daripada archiv.domain.local (10.0.0.6): icmp_req=1 ttl=64 masa=0.931 ms 30 dua ribu tujuh ratus 70 6 bait daripada archiv.domain.local (10.0.0.6): icmp_req= 2 ttl=64 masa=0.958 ms 30 dua ribu tujuh ratus 70 6 bait daripada archiv.domain.local (10.0.0.6): icmp_req=3 ttl=64 masa=1.03 ms 30 dua ribu tujuh ratus 70 6 bait daripada arkib .domain.local (10.0.0.6): icmp_req=4 ttl=64 masa=1.00 ms 30 dua ribu tujuh ratus 70 6 bait daripada archiv.domain.local (10.0.0.6): icmp_req=5 ttl=64 masa=1.08 ms ^C --- archiv.DOMAIN.statistik ping tempatan --- 5 paket dihantar, 5 diterima, kehilangan paket 0%, masa 4006ms rtt min/avg/max/mdev = 0.931/1.002/1.083/0.061 ms

Seperti yang anda lihat, apabila menghantar paket bersaiz 30 dua ribu tujuh ratus enam puluh lapan (32Kb), masa perjalanannya dari klien ke pelayan dan belakang terapung sekitar Satu milisaat. Jika masa ini melebihi dua ratus ms, maka anda harus berfikir tentang meningkatkan nilai masa supaya ia melebihi nilai pertukaran sebanyak tiga hingga empat kali. Oleh itu, adalah lebih baik untuk melakukan ujian ini semasa beban rangkaian yang berat

Melancarkan NFS dan menyediakan Firewall

Nota itu disalin dari blog http://bog.pp.ru/work/NFS.html, yang mana terima kasih banyak!!!

Jalankan pelayan NFS, lekapkan, sekat, kuota dan status dengan port "betul" (untuk tembok api)

  • adalah lebih baik untuk mula-mula menyahlekap semua sumber pada pelanggan
  • hentikan dan lumpuhkan rpcidmapd daripada bermula jika NFSv4 tidak dirancang: chkconfig --level Three hundred 40 5 rpcidmapd off service rpcidmapd stop
  • jika perlu, benarkan perkhidmatan portmap, nfs dan nfslock bermula: chkconfig --levels Three hundred 40 5 portmap/rpcbind on chkconfig --levels Three hundred 40 5 nfs on chkconfig --levels Three hundred 40 5 nfslock on
  • jika perlu, hentikan perkhidmatan nfslock dan nfs, mulakan portmap/rpcbind, punggah modul perkhidmatan nfslock stop service nfs stop service portmap start # service rpcbind start umount /proc/fs/nfsd service rpcidmapd stop rmmod nfsd service autofs stop # somewhere later it mesti dijalankan rmmod nfs rmmod nfs_acl rmmod lockd
  • buka port dalam iptables
    • untuk RPC: UDP/111, TCP/111
    • untuk NFS: UDP/2049, TCP/2049
    • untuk rpc.statd: UDP/4000, TCP/4000
    • untuk dikunci: UDP/4001, TCP/4001
    • untuk dipasang: UDP/4002, TCP/4002
    • untuk rpc.rquota: UDP/4003, TCP/4003
  • untuk pelayan rpc.nfsd, tambah baris RPCNFSDARGS="--port 2049" ke /etc/sysconfig/nfs
  • untuk pelayan mount, tambahkan baris MOUNTD_PORT=4002 ke /etc/sysconfig/nfs
  • untuk fungsi rpc.rquota untuk versi baharu anda perlu menambah baris RQUOTAD_PORT=4003 ke /etc/sysconfig/nfs
  • untuk fungsi rpc.rquota adalah perlu untuk versi lama (lagipun, anda mesti mempunyai pakej kuota 3.08 atau lebih baru) tambah pada /etc/services rquotad 4003/tcp rquotad 4003/udp
  • akan menyemak kecukupan /etc/exports
  • jalankan perkhidmatan rpc.nfsd, mountd dan rpc.rquota (rpcsvcgssd dan rpc.idmapd dilancarkan pada masa yang sama, jika anda ingat untuk memadamkannya) perkhidmatan nfsd mula atau dalam versi baharu perkhidmatan nfs mula
  • untuk pelayan penyekat untuk sistem baharu, tambahkan baris LOCKD_TCPPORT=4001 LOCKD_UDPPORT=4001 ke /etc/sysconfig/nfs
  • untuk pelayan kunci untuk sistem lama, tambah terus ke /etc/modprobe[.conf]: options lockd nlm_udpport=4001 nlm_tcpport=4001
  • ikat pelayan status rpc.statd ke port Empat ribu (untuk sistem lama, jalankan rpc.statd dengan kekunci -p 4000 dalam /etc/init.d/nfslock) STATD_PORT=4000
  • mulakan perkhidmatan lockd dan rpc.statd perkhidmatan nfslock bermula
  • pastikan semua port diikat secara normal menggunakan "lsof -i -n -P" dan "netstat -a -n" (sesetengah port digunakan oleh modul kernel yang lsof tidak nampak)
  • jika sebelum "membina semula" pelayan digunakan oleh pelanggan dan mereka tidak dapat dinyahlekap, maka anda perlu memulakan semula perkhidmatan pemasangan automatik pada pelanggan (am-utils, autofs)

Contoh konfigurasi pelayan dan klien NFS

Konfigurasi pelayan

Jika anda ingin menjadikan direktori partition NFS anda awam dan boleh ditulis, anda boleh menggunakan pilihan all_squash dalam kombinasi dengan pilihan anonuid dan anongid. Sebagai contoh, untuk menetapkan kebenaran untuk pengguna "tiada sesiapa" dalam kumpulan "tiada sesiapa", anda boleh melakukan perkara berikut:

ARCHIV ~ # cat /etc/exports # Akses baca dan tulis untuk klien pada 192.168.0.100, dengan akses rw untuk pengguna Sembilan puluh sembilan dengan gid Ninety-nine /files 192.168.0.100(rw,sync,all_squash,anonuid=99,anongid = 99)) # Akses baca dan tulis untuk klien pada 192.168.0.100, dengan akses rw untuk pengguna Sembilan puluh sembilan dengan gid Sembilan puluh sembilan /files 192.168.0.100(rw,sync,all_squash,anonuid=99,anongid=99))

Ini juga bermakna jika anda ingin membenarkan akses kepada direktori yang ditetapkan, nobody.nobody mesti menjadi pemilik direktori kongsi:

# chown -R nobody.nobody /files

Konfigurasi Pelanggan

Pada klien, anda perlu melekapkan direktori jauh dengan cara yang mudah, contohnya dengan arahan pelekap:

FAIL ~ # mount -t nfs archive:/files /archivs/files

Ringkasan

Fuh... Artikel dah habis. Pada masa ini kami telah belajar apa itu Sistem Fail Rangkaian dan cara memakannya, dalam artikel seterusnya saya akan cuba membuat HOWTO dengan pengesahan Kerberos. Saya harap bahan itu boleh difahami dan diperlukan.

Saya akan gembira melihat penambahan dan komen anda!

NFS HOWTO, nfs.sourceforge, man nfs? man mount, man eksport

RFC Seribu sembilan puluh empat - NFSv1, v2
RFC Seribu lapan ratus tiga belas - NFSv3
RFC Tiga ribu 500 30 - NFSv4
RFC 5 ribu 600 enam puluh satu - NFSv4.1
NFS HOWTO
nfs.sourceforge.net
lelaki gunung
eksport manusia

Sistem fail rangkaian (NFS)- Protokol capaian rangkaian untuk sistem fail, membolehkan anda menyambungkan sistem fail jauh.
Asalnya dibangunkan oleh Sun Microsystems pada tahun 1984. Asasnya ialah Sun RPC: Panggilan Prosedur Jauh. NFS adalah bebas daripada jenis sistem fail pelayan dan klien. Terdapat banyak pelaksanaan pelayan dan klien NFS untuk pelbagai sistem pengendalian. Versi semasa NFS v.4 menyokong pelbagai cara pengesahan (khususnya, Kerberos dan LIPKEY menggunakan protokol RPCSEC GSS) dan senarai kawalan akses (kedua-dua jenis POSIX dan Windows).
NFS memberikan pelanggan akses telus kepada fail pelayan dan sistem fail. Tidak seperti FTP, protokol NFS hanya mengakses bahagian fail yang diakses oleh proses, dan kelebihan utamanya ialah ia menjadikan akses ini telus. Terima kasih kepada ini, mana-mana aplikasi klien yang boleh berfungsi dengan fail tempatan boleh berfungsi dengan kejayaan yang sama dengan fail NFS, tanpa mengubah program itu sendiri.
Pelanggan NFS mengakses fail pada pelayan NFS dengan menghantar permintaan RPC ke pelayan. Ini boleh dilaksanakan menggunakan proses pengguna biasa - iaitu, klien NFS boleh menjadi proses pengguna yang membuat panggilan RPC khusus ke pelayan, yang juga boleh menjadi proses pengguna.

Versi
NFSv1 adalah untuk kegunaan dalaman sahaja untuk tujuan percubaan. Butiran pelaksanaan ditakrifkan dalam RFC 1094.
NFSv2 (RFC 1094, Mac 1989) pada asalnya dijalankan sepenuhnya di atas UDP.
NFSv3 (RFC 1813, Jun 1995). Deskriptor fail dalam versi 2 ialah tatasusunan bersaiz tetap 32 bait. Dalam versi 3, ia adalah tatasusunan bersaiz berubah-ubah dengan saiz sehingga 64 bait. Tatasusunan panjang berubah-ubah dalam XDR ditakrifkan oleh pembilang 4-bait diikuti oleh bait sebenar. Ini mengurangkan saiz deskriptor fail dalam pelaksanaan seperti UNIX, di mana hanya kira-kira 12 bait diperlukan, tetapi membenarkan pelaksanaan bukan Unix bertukar maklumat tambahan.
Versi 2 mengehadkan bilangan bait setiap RPC READ atau WRITE kepada 8192 bait. Had ini tidak terpakai dalam versi 3, yang seterusnya bermakna bahawa menggunakan UDP had hanya akan menjadi saiz datagram IP (65535 bait). Ini membolehkan paket besar digunakan untuk membaca dan menulis pada rangkaian pantas.
Saiz fail dan offset bait permulaan untuk prosedur READ dan WRITE kini menggunakan pengalamatan 64-bit dan bukannya 32-bit, yang membolehkan bekerja dengan fail yang lebih besar.
Atribut fail dikembalikan dalam setiap panggilan yang boleh menjejaskan atribut.
Tulisan (WRITEs) boleh menjadi tak segerak, manakala dalam versi 2 ia sepatutnya segerak.
Satu prosedur telah dialih keluar (STATFS) dan tujuh telah ditambah: ACCESS (semak kebenaran fail), MKNOD (buat fail Unix khas), READDIRPLUS (mengembalikan nama fail dalam direktori bersama-sama dengan atributnya), FSINFO (mengembalikan maklumat statistik tentang sistem fail ), FSSTAT (mengembalikan maklumat sistem fail dinamik), PATHCONF (mengembalikan maklumat fail POSIX.1) dan COMMIT (melakukan penulisan tak segerak yang dibuat sebelum ini kepada storan berterusan).
Pada masa pengenalan versi 3, pembangun mula menggunakan TCP lebih sebagai protokol pengangkutan. Walaupun sesetengah pembangun telah menggunakan TCP untuk NFSv2, Sun Microsystems menambah sokongan TCP dalam NFS versi 3. Ini menjadikan penggunaan NFS melalui Internet lebih sesuai.
NFSv4 (RFC 3010, Disember 2000, RFC 3530, disemak April 2003), dipengaruhi oleh AFS dan CIFS, termasuk peningkatan prestasi, keselamatan yang tinggi dan menjadi protokol sepenuhnya. Versi 4 ialah versi pertama yang dibangunkan bersama dengan Pasukan Petugas Kejuruteraan Internet (IETF) selepas Sun Microsystems memindahkan pembangunan protokol kepada NFS. NFS v4.1 telah diluluskan oleh IESG pada Januari 2010, dan menerima nombor RFC 5661. Inovasi penting dalam versi 4.1 ialah spesifikasi pNFS - Parallel NFS, mekanisme untuk akses pelanggan NFS selari kepada data daripada pelayan NFS yang diedarkan berbilang. Kehadiran mekanisme sedemikian dalam standard sistem fail rangkaian akan membantu membina sistem storan dan maklumat "awan" yang diedarkan.

struktur NFS
Struktur NFS merangkumi tiga komponen pada tahap yang berbeza:
Lapisan aplikasi (NFS sendiri) terdiri daripada panggilan prosedur jauh (rpc), yang melaksanakan operasi yang diperlukan dengan fail dan direktori di bahagian pelayan.
Fungsi lapisan pembentangan dilakukan oleh protokol XDR (eXternal Data Representation), yang merupakan standard abstraksi data merentas platform. Protokol XDR menerangkan bentuk perwakilan data bersatu, berkanun, yang tidak bergantung pada seni bina sistem komputer. Apabila menghantar paket, klien RPC menukar data tempatan ke dalam bentuk kanonik, dan pelayan melakukan operasi terbalik.
Perkhidmatan RPC (Panggilan Prosedur Jauh), yang membolehkan pelanggan meminta prosedur jauh dan melaksanakannya pada pelayan, mewakili fungsi peringkat sesi. Menyambung sumber rangkaian
Prosedur untuk menyambungkan sumber rangkaian menggunakan NFS dipanggil "mengeksport". Pelanggan boleh meminta pelayan untuk menyenaraikan sumber yang dieksport yang diwakilinya. Pelayan NFS sendiri tidak menyiarkan senarai sumber yang dieksportnya.
Bergantung pada pilihan yang ditentukan, sumber yang dieksport boleh dipasang (dilampirkan) "baca sahaja", anda boleh menentukan senarai hos yang dibenarkan untuk dipasang, menentukan penggunaan RPC selamat (secureRPC), dsb. Salah satu pilihan menentukan kaedah pemasangan: "keras" ( keras) atau "lembut" (lembut).
Dengan pelekap "keras", pelanggan akan cuba memasang sistem fail pada semua kos. Jika pelayan tidak berfungsi, ini akan menyebabkan keseluruhan perkhidmatan NFS menjadi beku: proses mengakses sistem fail akan berada dalam keadaan menunggu permintaan RPC selesai. Dari sudut pandangan proses pengguna, sistem fail akan kelihatan seperti cakera tempatan yang sangat perlahan. Apabila pelayan dikembalikan kepada keadaan berfungsi, perkhidmatan NFS akan terus berfungsi.
Dengan pelekap lembut, klien NFS akan membuat beberapa percubaan untuk menyambung ke pelayan. Jika pelayan tidak bertindak balas, sistem memaparkan mesej ralat dan berhenti cuba untuk melekapkan. Dari sudut pandangan logik operasi fail apabila pelayan gagal, pelekap "lembut" meniru kegagalan cakera tempatan.
Pilihan mod bergantung pada keadaan. Jika data pada klien dan pelayan mesti disegerakkan semasa kegagalan perkhidmatan sementara, maka pemasangan "keras" adalah lebih baik. Mod ini juga amat diperlukan dalam kes di mana sistem fail yang dipasang mengandungi program dan fail yang penting untuk operasi pelanggan, khususnya untuk mesin tanpa cakera. Dalam kes lain, terutamanya apabila ia berkaitan dengan sistem baca sahaja, mod pelekap lembut kelihatan lebih mudah.

Berkongsi pada rangkaian bercampur
NFS sesuai untuk rangkaian berasaskan UNIX kerana ia disertakan dengan kebanyakan versi sistem pengendalian. Selain itu, sokongan NFS dilaksanakan pada peringkat kernel UNIX. Menggunakan NFS pada komputer klien Windows mencipta masalah tertentu yang berkaitan dengan keperluan untuk memasang perisian klien khusus dan agak mahal. Dalam rangkaian sedemikian, penggunaan alat perkongsian sumber berdasarkan protokol SMB/CIFS, khususnya perisian Samba, kelihatan lebih disukai.

Piawaian
RFC 1094 NFS: Spesifikasi Protokol Sistem Fail Rangkaian] (Mac 1989)
Spesifikasi Protokol RFC 1813 NFS Versi 3] (Jun 1995)
Skim URL RFC 2224 NFS
RFC 2339 Perjanjian Antara Masyarakat Internet, IETF dan Sun Microsystems, Inc. dalam perkara NFS V.4 Protocols
RFC 2623 NFS Versi 2 dan Versi 3 Isu Keselamatan dan Penggunaan Protokol NFS RPCSEC_GSS dan Kerberos V5
Pertimbangan Reka Bentuk RFC 2624 NFS Versi 4
RFC 3010 NFS versi 4 Protokol
Sistem Fail Rangkaian RFC 3530 (NFS) versi 4 Protokol
Sistem Fail Rangkaian RFC 5661 (NFS) Versi 4 Protokol Versi Kecil 1

Sumber yang digunakan
1. ru.wikipedia.org
2. ru.science.wikia.com
3. telefon16.ru
4. 4stud.info
5. yandex.ru
6.google.com

Saya menyediakan arahan untuk memasang dan mengkonfigurasi NFS (Sistem Fail Rangkaian). NFS ialah sistem fail rangkaian yang membolehkan anda mengakses fail dan direktori pada komputer jauh (pelayan) seolah-olah fail dan direktori ini adalah setempat. Kelebihan utama sistem sedemikian ialah stesen kerja individu boleh menggunakan kurang ruang cakera mereka sendiri, kerana data yang dikongsi disimpan pada mesin berasingan (gudang data) dan tersedia untuk mesin lain pada rangkaian. NFS ialah aplikasi pelayan pelanggan di mana peranan storan diberikan kepada pelayan. Setiap peserta rangkaian ialah klien NFS yang memasang pemacu rangkaian pelayan dalam sistem failnya.

Mari ambil Ubuntu 12.04 sebagai pelayan.
Kami akan menggunakan dan menguji Centos dan Winows 7 sebagai pelanggan.

Pelayan induk: 192.168.2.213 (Ubuntu)

Pelanggan: 192.168.2.72 (Centos), 192.168.2.180 (Windows)

Penalaan Pelayan

Mula-mula anda perlu mengkonfigurasi pelayan. Oleh kerana kami akan menggunakan Ubuntu sebagai pelayan, kami perlu memasang pakej yang sesuai

Root@ubuntu:~# apt-get install nfs-kernel-server

Selepas memasang pakej yang diperlukan, kami mencipta dua fail konfigurasi. Daripada log pemasangan:

... Mencipta fail konfigurasi /etc/idmapd.conf dengan versi baharu Mencipta fail konfigurasi /etc/default/nfs-common dengan versi baharu ...

Fail pertama menerangkan pengguna (dicipta semasa memasang pakej) dan kumpulan untuk mengambil bahagian dalam pemetaan (pengenalan pengguna).

Root@ubuntu:~# cat /etc/idmapd.conf Verbosity = 0 Pipefs-Directory = /run/rpc_pipefs # tetapkan domain anda sendiri di sini, jika id berbeza daripada FQDN tolak nama hos # Domain = localdomain Nobody-User = nobody Nobody-Group = tiada kumpulan

Seperti yang kita ketahui, di Linux setiap fail adalah milik pengguna tertentu, yang mempunyai sendiri (UID, GID), tetapi pada sistem Windows skemanya sedikit berbeza. Dan dalam hal ini, mekanisme pemetaan dicipta, yang menterjemahkan pengguna yang berbeza daripada sistem pengendalian yang berbeza ke dalam bentuk yang boleh difahami untuk sistem fail Linux.
Fail kedua diperlukan untuk mengkonfigurasi pengesahan Kerberos dan mengkonfigurasi port bukan standard di mana daemon akan mendengar. Kita belum perlukan dia lagi. Menyediakan Kerberos akan dibincangkan dalam artikel seterusnya.

Root@ubuntu:~# cat /etc/default/nfs-common # Jika anda tidak menetapkan nilai untuk pilihan NEED_, ia akan cuba # autodetected; ini sepatutnya mencukupi untuk kebanyakan orang. Alternatif # yang sah untuk pilihan NEED_ ialah "ya" dan "tidak". # Adakah anda mahu memulakan daemon statd? Ia tidak diperlukan untuk NFSv4. NEED_STATD= # Pilihan untuk rpc.statd. # Patutkah rpc.statd mendengar pada port tertentu? Ini amat berguna # apabila anda mempunyai tembok api berasaskan port. Untuk menggunakan port tetap, tetapkan # pembolehubah ini kepada argumen statd seperti: "--port 4000 --outgoing-port 4001". # Untuk maklumat lanjut, lihat rpc.statd(8) atau http://wiki.debian.org/SecuringNFS STATDOPTS= # Adakah anda mahu memulakan daemon gssd? Ia diperlukan untuk pemasangan Kerberos. NEED_GSSD=

Sekarang mari kita teruskan dengan persediaan.
Semua direktori untuk perkongsian mesti didaftarkan dalam fail /etc/exports. Mula-mula, mari buat 2 folder dalam direktori rumah dan letakkan fail ke dalamnya. Pokok direktori dan fail untuk eksport:

Root@ubuntu:~# tree /home/alex/ /home/alex/ ├── nfs_dir1 │ ├── file1_dir1 │ ├── file2_dir1 │ └── file3── file3_dir_2 ─ 2 ├── fail2_dir2 └─ ─ fail3_dir2

Sekarang anda perlu menetapkan pengguna dan kumpulan untuk direktori ini (ambil dari fail /etc/idmapd.conf).

Root@ubuntu:~# chown –R nobody:nogroup nfs_dir1/ root@ubuntu:~# chown –R nobody:nogroup nfs_dir2/

Mula-mula, mari kita eksport direktori nfs_dir1 untuk IP tertentu. Edit fail /etc/exprots.

Root@ubuntu:~# vim /etc/exports # Untuk hos tertentu (Windows) /home/alex/nfs_dir1 192.168.2.180(rw,sync,all_squash,no_subtree_check,insecure) # Untuk mana-mana hos pada subnet /home/alex /nfs_dir2 192.168 .2.0/24(rw,no_root_squash,sync,no_subtree_check)

Berikut ialah set minimum pilihan untuk storan berfungsi dengan betul dengan Windows OS.

  • /home/alex/nfs_dir1– laluan ke folder yang akses diberikan;
  • 192.168.2.180 – Alamat IP yang diberikan akses kepada folder (anda boleh menentukan keseluruhan rangkaian, maka entri akan kelihatan seperti 192.168.2.0/24)
  • (rw,sync,all_squash,no_subtree_check)– satu set pilihan.

Pilihan popular:

  • rw–baca/tulis (boleh mengambil nilai ro - baca sahaja);
  • tiada_akar_labu– secara lalai, pengguna root pada mesin klien tidak akan mempunyai akses kepada direktori kongsi pelayan. Dengan pilihan ini kami mengalih keluar had ini. Atas sebab keselamatan, lebih baik tidak melakukan ini;
  • penyegerakan– mod akses segerak (boleh mengambil nilai yang bertentangan - tak segerak);
  • tiada akses– menafikan akses kepada direktori yang ditentukan. Ia boleh berguna jika anda sebelum ini menetapkan akses untuk semua pengguna rangkaian kepada direktori tertentu, dan kini anda mahu mengehadkan akses kepada subdirektori kepada beberapa pengguna sahaja.
  • all_squash– membayangkan bahawa semua sambungan akan dibuat daripada pengguna tanpa nama (diperlukan untuk klien Windows)
  • anonuid= 1000 – memautkan pengguna tanpa nama kepada pengguna “tempatan”;
  • anongid= 1000 - mengikat pengguna tanpa nama kepada kumpulan pengguna "tempatan".
  • no_subtree_check(subtree_check)–Jika subdirektori sistem fail dieksport, tetapi bukan keseluruhan sistem fail, pelayan menyemak sama ada fail yang diminta berada dalam subdirektori yang dieksport. Melumpuhkan pengesahan mengurangkan keselamatan tetapi meningkatkan kelajuan pemindahan data.
  • Biasanya, Linux (dan sistem pengendalian seperti Unix lain) menempah port TCP dan UDP daripada 1-1023 (dipanggil port selamat) untuk digunakan oleh proses pengguna root. Untuk memastikan bahawa akar memulakan sambungan jauh NFS, pelayan NFS biasanya memerlukan pelanggan jauh untuk menggunakan port selamat. Konvensyen ini, bagaimanapun, tidak dihormati oleh sesetengah sistem pengendalian (cth Windows). Dalam kes sedemikian, pilihan tidak selamat Membenarkan klien NFS menggunakan mana-mana port TCP/UDP. Ini biasanya diperlukan semasa memberi perkhidmatan kepada pelanggan Windows.

Semua pilihan dan sintaks yang tersedia untuk menulis hos, kumpulan hos, dsb. anda boleh membacanya dalam manual

Root@ubuntu:~# exportfs –a

Sekarang mari kita semak apa yang kami eksport.

Root@ubuntu:~# exportfs -v /home/alex/nfs_dir1 192.168.2.180(rw,wdelay,all_squash,no_subtree_check,insecure) /home/alex/nfs_dir2 192.168.2.0/24(rw,wdelay_squash,no_subtree_check,insecure)

Pelayan dikonfigurasikan.

Menyediakan pelanggan

Menyediakan klien Windows

Jika tiada mesej ralat. Anda boleh mula memasang pada bahagian pelanggan.
Pertama, anda perlu menambah perkhidmatan NFS (perkhidmatan pelanggan). Untuk melakukan ini, pergi ke Mula -> Panel Kawalan -> Program dan Ciri dan klik pada item menu di sebelah kiri Hidupkan atau matikan ciri Windows. Dalam tetingkap yang muncul, pilih Pelanggan untuk NFS dan klik okey(Rajah 1).


Gambar 1

Seterusnya anda perlu memasang cakera. Untuk melakukan ini, anda boleh menggunakan baris arahan atau hanya klik klik kanan pada My Computer dan pilih Map Network Drive. DAN masukkan baris \\192.168.2.213\home\alex\nfs_dir1. Ini ialah IP pelayan dan laluan ke folder (Gamb. 2).


Rajah 2

Jika semuanya ok, kita akan melihat cakera (Gamb. 3).


Rajah 3

Perkara yang sama boleh dilakukan menggunakan baris arahan (Gamb. 4).


Rajah 4

Kesilapan yang mungkin:

Anda tidak akan dapat menyambung pemacu rangkaian NFS ke OS Windows (Gamb. 5) jika
1. Pelanggan NFS tidak dipasang
2. Firewall didayakan (tidak dikonfigurasikan)
3. Tiada akses rangkaian ke pelayan
4. Parameter pemasangan yang salah dimasukkan
5. Eksport tidak dikonfigurasikan (tetapan tidak digunakan) pada pelayan.
6. Tambah pilihan tidak selamat dalam tetapan eksport


Rajah 5 – Ralat menyambungkan pemacu NFS rangkaian

Anda tidak akan dapat menambah fail pada sistem fail yang dipasang (Rajah 6) jika:
1. Kebenaran folder tidak ditetapkan pada pelayan (nobody:nogroup)
2. Pilihan all_squash tidak ditetapkan dalam tetapan eksport
3. Pilihan rw tidak ditetapkan dalam tetapan eksport


Rajah 6 – Ralat semasa menambah fail pada cakera NFS

Menyediakan pelanggan Centos

Menyediakan sistem Linux agak mudah dan tidak menyakitkan. Anda hanya perlu memasang pakej yang diperlukan dan lekapkan cakera. Centos memerlukan pakej berikut

# yum pasang nfs-utils nfs-utils-lib

# mkdir -p /mnt/nfs # mount 192.168.2.213:/home/alex/nfs_dir1 /mnt/nfs # mount /dev/mapper/vg_slave-lv_root on / taip ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0" ) /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) 192.168.2.213:/home/ alex/nfs_dir1 pada /mnt/nfs jenis nfs (rw,vers=4,addr=192.168.2.213,clientadr=192.168.2.72)

Dalam kes ini, kami boleh menambah sebarang fail dan direktori pada folder nfs_dir1 yang dipasang bagi pihak mana-mana pengguna pada sistem ( all_squash). Tetapi jika kita memasang folder kedua nfs_dir2, maka HANYA root boleh menulis kepadanya, kerana terdapat pilihan di sana tiada_akar_labu. Jom semak.

# mkdir /mnt/dir1 # mkdir /mnt/dir2 # mount 192.168.2.213:/home/alex/nfs_dir1 /mnt/dir1 # mount 192.168.2.213:/home/alex/nfs_dir2 /mnt/dir2 atau # mount -t nfs4 -o rw,hard,intr,bg 192.168.2.213:/home/alex/nfs_dir2 /mnt/dir2 # echo "Hello" > /mnt/dir1/file1 # echo "Hello" > /mnt/dir2/file1 # su alex $ echo "Hello" > /mnt/dir1/file1 $ echo "Hello" > /mnt/dir2/file1 bash: /mnt/dir2/file1: Kebenaran ditolak

Kemungkinan memasang bendera.

Bendera Penerangan
rw Lekapkan sistem fail untuk baca/tulis (ia mesti dieksport oleh pelayan dalam mod baca/tulis)
ke Memasang sistem fail baca sahaja
bg Jika sistem fail tidak boleh dipasang (pelayan tidak bertindak balas), anda harus mengalihkan operasi ke latar belakang dan terus memproses permintaan pemasangan lain
keras Jika pelayan turun, operasi yang cuba mengaksesnya disekat sehingga pelayan kembali dalam talian
lembut Jika pelayan turun, operasi yang cuba mengaksesnya gagal dengan mesej ralat. Bendera ini berguna untuk ditetapkan bagi mengelakkan proses daripada tergantung sekiranya kegagalan pemasangan sistem fail yang tidak penting
intr Membolehkan anda mengganggu operasi yang disekat dari papan kekunci (mesej ralat akan dipaparkan)
nointr Tidak membenarkan anda mengganggu operasi yang disekat dari papan kekunci
retrans=n Menentukan berapa kali permintaan mesti diulang sebelum mesej ralat dikembalikan (untuk sistem fail yang dipasang dengan bendera lembut)
timeo=n Menetapkan selang masa tamat untuk permintaan (dalam persepuluh saat)
saiz=n Menetapkan saiz penimbal baca kepada n bait
wsize=fl Menetapkan saiz penimbal tulis kepada n bait
sec=mod Menetapkan mod keselamatan
vers=n Menetapkan versi protokol NFS
proto = protokol Memilih protokol pengangkutan; ia sepatutnya protokol tcp untuk NVS versi 4

Anda juga boleh menyemak dari konsol sama ada pelayan mengeksport sistem fail dengan betul.

Root@centos ~# showmount -e 192.168.2.213 Senarai eksport untuk 192.168.2.213: /home/alex/nfs_dir2 192.168.2.0/24 /home/alex/nfs_dir1 192.168.2.180

Menambah pelekap pada permulaan

# cat /etc/fstab ... 192.168.2.213:/home/alex/nfs_dir2 /mnt/dir2 nfs4 rw,bg,intr,hard,nodev,nosuid 0 0

Root@centos ~# mount -a -t nfs4

Kesilapan yang mungkin.

Root@centos ~# mount -a -t nfs4 mount.nfs4: mount point /mnt/dir2 tidak wujud root@centos ~# mount -a -t nfs4 mount.nfs4: bahagian jauh bukan dalam format "host:dir"

Dalam kes pertama, anda perlu membuat folder. Yang kedua mengandungi ralat sintaks dalam fstab.
Jika anda menghadapi ralat semasa memasang partition NFS, semak senarai Kesilapan yang mungkin daripada bahagian sebelumnya.
Anda juga boleh menggunakan autofs untuk memasang partition NFS. Apa yang akan dibincangkan dalam.

N FS ( Sistem Fail Rangkaian) terutamanya direka untuk perkongsian fail Dan folder antara / Unix sistem daripada Sistem Mikro Matahari V 1980. Ia membolehkan anda memasang sistem fail tempatan melalui rangkaian dan hos jauh untuk berinteraksi dengan mereka seolah-olah ia dipasang secara setempat pada sistem yang sama. Dengan menggunakan NFS, kita boleh menyediakan perkongsian fail antara Unix V Linux sistem dan Linux untuk sistem Unix.

Faedah NFS

  1. NFS mencipta akses tempatan kepada fail jauh.
  2. Ia menggunakan seni bina standard pelanggan/pelayan untuk berkongsi fail antara semua mesin berasaskan * NIX.
  3. Dengan menggunakan NFS tidak perlu kedua-dua mesin berjalan pada sama OS.
  4. Dengan menggunakan NFS kita boleh menyesuaikan penyelesaiannya penyimpanan berpusat.
  5. Pengguna menerima mereka data tanpa mengira lokasi fizikal mereka.
  6. Automatik kemas kini untuk fail baharu.
  7. Versi yang lebih baru NFS menyokong pemasangan acl, pseudo di bawah akar.
  8. Boleh dilindungi tembok api Dan Kerberos.

Perkhidmatan NFS

Perkhidmatan Sistem V dilancarkan. Pakej pelayan NFS termasuk tiga produk termasuk dalam pakej peta port Dan nfs-Utils.

  1. peta port: Memaparkan panggilan yang dibuat daripada mesin lain ke perkhidmatan yang betul RPC(tidak diperlukan dengan NFSv4).
  2. nfs: menukar permintaan jauh perkongsian fail kepada permintaan pada sistem fail tempatan.
  3. rpc.mountd: perkhidmatan ini bertanggungjawab untuk melekap Dan menyahlekap sistem fail.

Fail konfigurasi penting untuk NFS

  1. /etc/exports: fail konfigurasi utamanya NFS, semua dieksport fail Dan katalog, yang ditakrifkan dalam fail ini dan seterusnya pelayan destinasi NFS.
  2. /etc/fstab: Untuk melekap Direktori NFS pada sistem anda tanpa but semula, kita perlu merekodkan /etc/fstab.
  3. /etc/sysconfig/nfs: Fail konfigurasi NFS untuk kawalan pada port mana RPC dan perkhidmatan lain uji bakat.

Menyediakan dan memasang NFS pada pelayan Linux

Untuk mengkonfigurasi pelekap NFS, kami memerlukan sekurang-kurangnya dua kereta Linux/Unix. Di sini dalam tutorial ini, kami akan menggunakan dua pelayan.

  1. Pelayan NFS: nfserver.example.ru dengan IP – 192.168.0.55
  2. Pelanggan NFS: nfsclient.example.ru dengan IP – 192.168.0.60

Memasang Pelayan NFS dan Pelanggan NFS

Kami perlu memasang pakej NFS pada kami pelayan NFS dan juga dengan kereta Pelanggan NFS. Kami boleh memasangnya menggunakan “ ” ( topi merah Linux) dan pakej pemasangan “ apt-get” (Debian Dan Ubuntu).

# yum install nfs-utils nfs-utils-lib # yum install portmap (tidak diperlukan dengan NFSv4) # apt-get install nfs-utils nfs-utils-lib

Sekarang lari perkhidmatan pada kedua-dua mesin.

# /etc/init.d/portmap start # /etc/init.d/nfs start # chkconfig --level 35 portmap on # chkconfig --level 35 nfs on

Selepas memasang pakej dan menjalankan perkhidmatan pada kedua-dua mesin, kami perlu mengkonfigurasi kedua-dua mesin untuk berkongsi fail.

Menyediakan pelayan NFS

Mula-mula, mari kita sediakan pelayan NFS.

Menyediakan direktori eksport

#mkdir/nfsshare

Sekarang kita perlu membuat entri dalam " /etc/exports"Dan mula semula perkhidmatan untuk menjadikan direktori kami boleh dikongsi di web.

# vi /etc/exports /nfsshare 192.168.0.60(rw,sync,no_root_squash)

Dalam contoh di atas, terdapat direktori di bawah / bertajuk " nfsshare", kini dikongsi dengan klien IP " 192.168.0.60 ” dengan keistimewaan membaca Dan rekod (RW), anda juga boleh menggunakan nama hos pelanggan sebaliknya IP dalam contoh di atas.

Tetapan NFS

Beberapa pilihan lain yang boleh kami gunakan dalam fail " /etc/exports” perkongsian fail kelihatan seperti ini.

  1. ro: Dengan pilihan ini kami boleh sediakan akses baca sahaja kepada fail yang dikongsi, iaitu pelanggan hanya akan dapat membaca.
  2. rw: Pilihan ini membenarkan klien ke pelayan akses untuk kedua-duanya membaca Dan rekod dalam katalog am.
  3. penyegerakan: Penyegerakan mengakui permintaan kepada direktori kongsi hanya selepas perubahan telah komited.
  4. no_subtree_check: Pilihan ini menghalang pemeriksaan pokok pokok. Apabila direktori kongsi ialah subdirektori sistem fail yang lebih besar, NFS mengimbas setiap direktori di atasnya untuk menyemak kebenaran dan butirannya. Melumpuhkan pengesahan pokok pokok boleh meningkatkan kebolehpercayaan NFS, tetapi kurangkan keselamatan.
  5. tiada_akar_labu: Frasa ini membenarkan akar, menyambung ke folder tertentu.

Untuk lebih banyak pilihan dengan " /etc/exports“Bacaan yang disyorkan muka surat manual untuk eksport.

Menyediakan klien NFS

Selepas persediaan NFS-pelayan, kita perlukan lekapkan direktori atau partition kongsi ini pada pelanggan pelayan.

Memasang direktori kongsi pada klien NFS

Sekarang Pelanggan NFS, kita perlu lekapkan direktori ini untuk mengaksesnya secara setempat. Untuk melakukan ini, pertama sekali, kita perlu mengetahui sumber yang tersedia pada pelayan jauh atau pelayan NFS.

# showmount -e 192.168.0.55 Senarai eksport untuk 192.168.0.55: /nfsshare 192.168.0.60

Memasang direktori yang boleh diakses pada NFS

Untuk lekapkan umum NFS direktori, kita boleh menggunakan arahan mount berikut.

# mount -t nfs 192.168.0.55:/nfsshare /mnt/nfsshare

Perintah di atas akan menetapkan direktori kongsi kepada " /mnt/nfsshare” pada pelayan pelanggan. Anda boleh menyemaknya dengan arahan berikut.

#gunung | grep nfs sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) nfsd on /proc/fs/nfsd type nfsd (rw) 192.168.0.55:/nfsshare on /mnt type nfs (rw,addr=192.1568.0.0)

Perintah pelekap di atas dilekapkan ke Direktori kongsi NFS pada Pelanggan NFS buat sementara waktu untuk melekapkan direktori NFS secara berterusan pada sistem anda, tanpa mengira but semula, kami perlu membuat entri dalam “ /etc/fstab“.

# vi /etc/fstab

Tambah baris baharu berikut seperti yang ditunjukkan di bawah.

192.168.0.55:/nfsshare /mnt nfs lalai 0 0

Menguji mod pemasangan NFS

Kita boleh menguji kita Pemasangan pelayan NFS dengan mencipta fail ujian pada bahagian pelayan dan semak kehadirannya dihidupkan Pelanggan NFS sebelah atau sebaliknya.

Pada bahagian pelayan nfserver

Kami telah mencipta fail teks baharu yang dipanggil “ nfstest.txt” dalam direktori kongsi ini.

# cat > /nfsshare/nfstest.txt Ini ialah fail ujian untuk menguji kerja persediaan pelayan NFS.

Pada bahagian klien nfsclient

Pergi ke direktori kongsi di pelayan pelanggan dan anda akan menemui fail kongsi tanpa sebarang kemas kini manual atau perkhidmatan but semula.

# ll /mnt/nfsshare jumlah 4 -rw-r--r-- 1 root root 61 Sep 21 21:44 nfstest.txt root@nfsclient ~]# cat /mnt/nfsshare/nfstest.txt Ini ialah fail ujian untuk menguji kerja persediaan pelayan NFS.

Mengeluarkan pelekap NFS

Jika anda mahu nyahlekap direktori kongsi ini daripada pelayan selepas anda selesai dengan perkongsian fail anda boleh dengan mudah nyahlekap direktori khusus itu menggunakan arahan " umount“. Lihat contoh ini di bawah.

Root@nfsclient ~]# umount /mnt/nfsshare

Anda dapat melihat bahawa pelekap telah dialih keluar daripada sistem fail.

# df -h -F nfs

Anda akan melihat bahawa direktori kongsi ini tidak lagi tersedia.

Perintah Penting untuk NFS

Beberapa arahan yang lebih penting untuk NFS .

  1. showmount -e: Rancangan tersedia objek yang dikongsi pada komputer tempatan anda
  2. showmount -e : Senarai yang tersedia objek yang dikongsi pada jauh pelayan
  3. showmount -d: Senarai semua subdirektori
  4. exportfs -v: Memaparkan senarai yang dikongsi fail Dan pilihan pada pelayan
  5. exportfs -a: Mengeksport semua objek tersedia yang disenaraikan dalam /etc/exports, atau nama
  6. exportfs -u: Eksport semula semua objek tersedia yang disenaraikan dalam /etc/exports, atau nama
  7. exportfs -r: Kemas kini senarai pelayan selepas perubahan /etc/exports

Ini semua tentang Lekapkan NFS pada masa ini, jika berminat, anda boleh membaca panduan tentang itu. tinggalkan awak

Apabila bercakap tentang rangkaian komputer, anda sering boleh mendengar sebutan NFS. Apakah maksud singkatan ini?

Ia adalah protokol sistem fail teragih yang asalnya dibangunkan oleh Sun Microsystems pada tahun 1984, membenarkan pengguna pada komputer klien untuk mengakses fail melalui rangkaian, sama seperti mengakses storan tempatan. NFS, seperti banyak protokol lain, adalah berdasarkan sistem Panggilan Prosedur Jauh Pengkomputeran Rangkaian Terbuka (ONC RPC).

Dengan kata lain, apakah itu NFS? Ia adalah standard terbuka, ditakrifkan oleh Permintaan untuk Komen (RFC), membenarkan sesiapa sahaja untuk melaksanakan protokol.

Versi dan variasi

Pencipta hanya menggunakan versi pertama untuk tujuan percubaannya sendiri. Apabila pasukan pembangunan menambah perubahan ketara pada NFS asal dan mengeluarkannya di luar kepengarangan Sun, mereka menetapkan versi baharu sebagai v2 supaya mereka boleh menguji kesalingoperasian antara pengedaran dan mencipta sandaran.

NFS v2

Versi 2 pada mulanya hanya berfungsi melalui Protokol Datagram Pengguna (UDP). Pembangunnya mahu mengekalkan bahagian pelayan tanpa menyekat dilaksanakan di luar protokol utama.

Antara muka sistem fail maya membolehkan pelaksanaan modular dicerminkan dalam protokol mudah. Menjelang Februari 1986, penyelesaian telah ditunjukkan untuk sistem pengendalian seperti keluaran Sistem V 2, DOS dan VAX/VMS menggunakan Eunice. NFS v2 hanya membenarkan 2 GB fail pertama dibaca kerana pengehadan 32-bit.

NFS v3

Cadangan pertama untuk membangunkan NFS versi 3 di Sun Microsystems diumumkan sejurus selepas pengeluaran pengedaran kedua. Motivasi utama adalah untuk cuba mengurangkan masalah prestasi rakaman segerak. Menjelang Julai 1992, penambahbaikan praktikal telah menyelesaikan banyak kelemahan NFS versi 2, hanya meninggalkan sokongan fail yang tidak mencukupi (saiz fail 64-bit dan mengimbangi fail).

  • sokongan untuk saiz fail 64-bit dan offset untuk mengendalikan data yang lebih besar daripada 2 gigabait (GB);
  • sokongan untuk rakaman tak segerak pada pelayan untuk meningkatkan prestasi;
  • atribut fail tambahan dalam banyak jawapan untuk mengelak daripada mengambilnya semula;
  • Operasi READDIRPLUS untuk mendapatkan data dan atribut bersama-sama dengan nama fail semasa mengimbas direktori;
  • banyak lagi penambahbaikan.

Semasa pengenalan versi 3, sokongan untuk TCP sebagai protokol lapisan pengangkutan mula meningkat. Penggunaan TCP sebagai cara memindahkan data, dilakukan menggunakan NFS melalui WAN, mula membenarkan saiz fail yang besar dipindahkan untuk dilihat dan ditulis. Terima kasih kepada ini, pembangun dapat mengatasi had 8 KB yang dikenakan oleh Protokol Datagram Pengguna (UDP).

Apakah NFS v4?

Versi 4, dipengaruhi oleh Sistem Fail Endres (AFS) dan Blok Mesej Pelayan (SMB, juga dipanggil CIFS), termasuk peningkatan prestasi, menyediakan keselamatan yang lebih baik dan memperkenalkan protokol pematuhan.

Versi 4 ialah pengedaran pertama yang dibangunkan oleh Pasukan Petugas Kejuruteraan Internet (IETF) selepas pembangunan protokol penyumberan luar Sun Microsystems.

NFS versi 4.1 bertujuan untuk menyediakan sokongan protokol untuk memanfaatkan penggunaan pelayan berkelompok, termasuk keupayaan untuk menyediakan akses selari berskala kepada fail yang diedarkan merentasi berbilang pelayan (sambungan pNFS).

Protokol sistem fail terbaharu, NFS 4.2 (RFC 7862), telah dikeluarkan secara rasmi pada November 2016.

Sambungan lain

Dengan pembangunan standard, alat yang sepadan untuk bekerja dengannya muncul. Sebagai contoh, WebNFS, sambungan untuk versi 2 dan 3, membenarkan Protokol Akses Sistem Fail Rangkaian untuk disepadukan dengan lebih mudah ke dalam pelayar web dan membolehkan kerja merentas tembok api.

Pelbagai protokol pihak ketiga juga telah dikaitkan dengan NFS. Yang paling terkenal di antara mereka ialah:

  • Pengurus Kunci Rangkaian (NLM) dengan sokongan protokol bait (ditambah untuk menyokong API penguncian fail Sistem V UNIX);
  • Kuota Jauh (RQUOTAD), yang membolehkan pengguna NFS melihat kuota storan pada pelayan NFS;
  • NFS over RDMA ialah adaptasi NFS yang menggunakan capaian ingatan langsung jauh (RDMA) sebagai medium penghantaran;
  • NFS-Ganesha ialah pelayan NFS yang berjalan di ruang pengguna dan menyokong CephFS FSAL (Lapisan Abstraksi Sistem Fail) menggunakan libcephfs.

Platform

Sistem Fail Rangkaian sering digunakan dengan sistem pengendalian Unix (seperti Solaris, AIX, HP-UX), MacOS Apple dan sistem pengendalian seperti Unix (seperti Linux dan FreeBSD).

Ia juga tersedia untuk platform seperti Acorn RISC OS, OpenVMS, MS-DOS, Microsoft Windows, Novell NetWare dan IBM AS/400.

Protokol capaian fail jauh alternatif termasuk Blok Mesej Pelayan (SMB, juga dipanggil CIFS), Protokol Pemindahan Apple (AFP), Protokol Teras NetWare (NCP) dan Sistem Fail Pelayan OS/400 (QFileSvr.400).

Ini disebabkan oleh keperluan NFS, yang kebanyakannya ditujukan kepada "cangkang" seperti Unix.

Walau bagaimanapun, protokol SMB dan NetWare (NCP) digunakan lebih kerap daripada NFS pada sistem yang menjalankan Microsoft Windows. AFP adalah yang paling biasa pada platform Apple Macintosh, dan QFileSvr.400 adalah yang paling biasa pada OS/400.

Pelaksanaan biasa

Dengan mengandaikan senario gaya Unix biasa di mana satu komputer (pelanggan) memerlukan akses kepada data yang disimpan pada yang lain (pelayan NFS):

  • Pelayan melaksanakan proses Sistem Fail Rangkaian, berjalan secara lalai sebagai nfsd, untuk menjadikan datanya tersedia secara terbuka kepada pelanggan. Pentadbir pelayan menentukan cara untuk mengeksport nama dan tetapan direktori, biasanya menggunakan fail konfigurasi /etc/exports dan arahan exportfs.
  • Mentadbir keselamatan pelayan memastikan bahawa ia boleh mengenali dan meluluskan klien yang disahkan. Konfigurasi rangkaiannya memastikan pelanggan yang layak boleh berunding dengannya melalui mana-mana sistem tembok api.
  • Mesin klien meminta akses kepada data yang dieksport, biasanya dengan mengeluarkan arahan. Ia menanyakan pelayan (rpcbind) yang menggunakan port NFS dan seterusnya menyambung kepadanya.
  • Jika semuanya berlaku tanpa ralat, pengguna pada mesin klien akan dapat melihat dan berinteraksi dengan sistem fail yang dipasang pada pelayan dalam parameter yang dibenarkan.

Perlu diingatkan juga bahawa automasi proses Sistem Fail Rangkaian juga boleh berlaku - mungkin menggunakan etc/fstab dan/atau alatan lain yang serupa.

Perkembangan sehingga kini

Menjelang abad ke-21, protokol bersaing DFS dan AFS tidak mencapai sebarang kejayaan komersial utama berbanding Sistem Fail Rangkaian. IBM, yang sebelum ini memperoleh semua hak komersial untuk teknologi di atas, mendermakan sebahagian besar kod sumber AFS kepada komuniti perisian percuma pada tahun 2000. Projek Open AFS masih wujud hari ini. Pada awal tahun 2005, IBM mengumumkan penamatan jualan AFS dan DFS.

Seterusnya, pada Januari 2010, Panasas mencadangkan NFS v 4.1 berdasarkan teknologi yang meningkatkan keupayaan capaian data selari. Protokol Sistem Fail Rangkaian v 4.1 mentakrifkan kaedah untuk memisahkan metadata sistem fail daripada lokasi fail tertentu. Jadi ia melampaui pemisahan nama/data yang mudah.

Apakah NFS versi ini dalam amalan? Ciri di atas membezakannya daripada protokol tradisional, yang mengandungi nama fail dan datanya di bawah satu sambungan ke pelayan. Dengan Sistem Fail Rangkaian v 4.1, sesetengah fail boleh dikongsi merentasi pelayan berbilang nod, tetapi penglibatan pelanggan dalam perkongsian metadata dan data adalah terhad.

Apabila melaksanakan pengedaran keempat protokol, pelayan NFS ialah satu set sumber atau komponen pelayan; ia diandaikan dikawal oleh pelayan metadata.

Pelanggan masih menghubungi pelayan metadata tunggal untuk melintasi atau berinteraksi dengan ruang nama. Semasa ia memindahkan fail ke dan dari pelayan, ia boleh berinteraksi secara langsung dengan set data yang dimiliki oleh kumpulan NFS.