NFS ni nini? Mfumo wa Faili za Mtandao. Itifaki ya ufikiaji wa mtandao kwa mifumo ya faili. Ufungaji wa Seva ya NFS

Itifaki ya Seva ya Faili ya Mtandao (NFS) ni kiwango cha wazi cha kutoa ufikiaji wa mtumiaji wa mbali kwa mifumo ya faili. Mifumo ya faili ya kati iliyojengwa juu yake hurahisisha kazi za kila siku kama vile chelezo au uchanganuzi wa virusi, na sehemu za diski zilizounganishwa ni rahisi kudumisha kuliko nyingi ndogo, zilizosambazwa.

Mbali na kutoa hifadhi ya kati, NFS imethibitisha kuwa muhimu sana kwa programu zingine, ikiwa ni pamoja na wateja wasio na diski na wembamba, kuunganisha mtandao, na ushirikiano wa vifaa vya kati.

Uelewa bora wa itifaki yenyewe na maelezo ya utekelezaji wake itafanya iwe rahisi kukabiliana na matatizo ya vitendo. Makala hii imejitolea kwa NFS na ina sehemu mbili za mantiki: kwanza, inaelezea itifaki yenyewe na malengo yaliyowekwa wakati wa maendeleo yake, na kisha utekelezaji wa NFS katika Solaris na UNIX.

YOTE ILIPOANZIA...

Itifaki ya NFS ilitengenezwa na Sun Microsystems na ilionekana kwenye Mtandao mwaka wa 1989 kama RFC 1094 chini ya kichwa kifuatacho: Uainishaji wa Itifaki ya Mfumo wa Faili ya Mtandao (NFS). Inafurahisha kutambua kwamba mkakati wa Novell wakati huo ulilenga kuboresha zaidi huduma za faili. Hadi hivi majuzi, kabla ya vuguvugu la chanzo wazi kuanza, Sun alikuwa akisita kushiriki siri za suluhisho la mitandao yake, lakini hata hivyo kampuni hiyo ilielewa umuhimu wa kushirikiana na mifumo mingine.

RFC 1094 ilikuwa na maelezo mawili ya awali. Kufikia wakati wa kuchapishwa kwake, Sun ilikuwa tayari ikitengeneza toleo la pili, la tatu la vipimo, ambalo limewekwa katika RFC 1813 "Maelezo ya Itifaki ya Toleo la 3 la NFS". Toleo la 4 la itifaki hii limefafanuliwa katika RFC 3010, Itifaki ya Toleo la 4 la NFS.

NFS inatumika sana kwa aina zote za wapangishi wa UNIX, kwenye mitandao ya Microsoft na Novell, na kwenye suluhu za IBM kama vile AS400 na OS/390. Ingawa haijulikani nje ya ufalme wa mtandao, NFS labda ndio mfumo wa faili wa mtandao unaojitegemea zaidi wa jukwaa.

UNIX ILIKUWA MWANZO

Ingawa NFS ni mfumo unaojitegemea wa jukwaa, babu yake ni UNIX. Kwa maneno mengine, usanifu wa kihierarkia wa usanifu na mbinu za kufikia faili, ikiwa ni pamoja na muundo wa mfumo wa faili, njia za kutambua watumiaji na vikundi, na mbinu za kushughulikia faili, zote zinafanana sana na mfumo wa faili wa UNIX. Kwa mfano, mfumo wa faili wa NFS, unaofanana kimuundo na mfumo wa faili wa UNIX, umewekwa moja kwa moja juu yake. Wakati wa kufanya kazi na NFS kwenye mifumo mingine ya uendeshaji, vigezo vya utambulisho wa mtumiaji na haki za kufikia faili zinakabiliwa na ramani.

NFS

NFS imeundwa kwa matumizi katika usanifu wa seva ya mteja. Mteja hufikia mfumo wa faili unaosafirishwa na seva ya NFS kupitia sehemu ya kupachika kwenye mteja. Ufikiaji huu kwa kawaida huwa wazi kwa programu ya mteja.

Tofauti na mifumo mingi ya seva-teja, NFS hutumia Simu za Utaratibu wa Mbali (RPC) kubadilishana taarifa. Kwa kawaida, mteja huanzisha uunganisho kwenye bandari iliyojulikana hapo awali na kisha, kwa mujibu wa itifaki, hutuma ombi la kufanya hatua maalum. Katika kesi ya simu za utaratibu wa mbali, mteja huunda simu ya utaratibu na kisha kuituma kwa seva kwa utekelezaji. Maelezo ya kina ya NFS yatawasilishwa hapa chini.

Kama mfano, tuseme mteja ameweka saraka ya usr2 kwenye mfumo wa faili wa mizizi ya ndani:

/mzizi/usr2/ -> kijijini:/root/usr/

Ikiwa programu ya mteja inahitaji rasilimali kutoka kwa saraka hii, inatuma tu ombi kwa mfumo wa uendeshaji kwa ajili yake na jina la faili, ambayo hutoa upatikanaji kupitia mteja wa NFS. Kwa mfano, fikiria amri rahisi ya UNIX cd, ambayo "haijui chochote" kuhusu itifaki za mtandao. Timu

Cd /mizizi/usr2/

itaweka saraka ya kazi kwenye mfumo wa faili wa mbali, "bila hata kutambua" (mtumiaji pia hawana haja ya hili) kwamba mfumo wa faili ni mbali.

Baada ya kupokea ombi, seva ya NFS itaangalia ikiwa mtumiaji ana haki ya kufanya kitendo kilichoombwa na, ikiwa jibu ni chanya, atalitekeleza.

TUJUE VIZURI

Kwa mtazamo wa mteja, mchakato wa kuweka ndani mfumo wa faili wa mbali kwa kutumia NFS unajumuisha hatua kadhaa. Kama ilivyoelezwa, mteja wa NFS atatoa simu ya utaratibu wa mbali ili kuitekeleza kwenye seva. Kumbuka kuwa katika UNIX, mteja ni programu moja (amri ya kuweka), wakati seva inatekelezwa kama programu kadhaa na seti ya chini ifuatayo: huduma ya ramani ya bandari, daemon ya mlima, na seva ya NFS. .

Amri ya kupachika mteja kwanza huwasiliana na huduma ya utafsiri ya bandari ya seva, ambayo husikiliza maombi kwenye mlango wa 111. Utekelezaji mwingi wa amri ya kuweka mteja inasaidia matoleo mengi ya NFS, ambayo huongeza uwezekano wa kupata toleo la kawaida la itifaki kwa mteja na seva. Utafutaji unafanywa kwa kuanzia na toleo la juu zaidi, kwa hivyo linapopatikana la kawaida, litakuwa toleo jipya zaidi linaloungwa mkono na mteja na seva.

(Nyenzo zinazowasilishwa zimeangazia toleo la tatu la NFS, kwa kuwa ndilo linaloenea zaidi kwa sasa. Toleo la nne bado halijaauniwa na utekelezaji mwingi.)

Huduma ya utafsiri ya mlango wa seva hujibu maombi kulingana na itifaki inayotumika na mlango ambao daemon ya kupachika inatumika. Mpango wa mteja wa mount kwanza huanzisha muunganisho kwa daemon ya kupachika seva na kisha kutoa amri ya kuiweka kupitia RPC. Ikiwa utaratibu huu umefanikiwa, basi maombi ya mteja huunganisha kwenye seva ya NFS (bandari 2049) na, kwa kutumia moja ya taratibu 20 za kijijini ambazo zinafafanuliwa katika RFC 1813 na zilizoorodheshwa katika Jedwali 1, hupata upatikanaji wa mfumo wa faili wa mbali.

Maana ya amri nyingi ni angavu na haisababishi ugumu wowote kwa wasimamizi wa mfumo. Orodha ifuatayo, iliyopatikana kwa kutumia tcdump, inaonyesha amri ya kusoma iliyotolewa na UNIX paka amri ya kusoma faili inayoitwa test-file:

10:30:16.012010 eth0 > 192.168.1.254. 3476097947 > 192.168.1.252.2049: 144 lookup fh 32.0/ 224145 "faili la majaribio" 10:30:16.012010 eth0 > 192.168.1.254. 3476097947 > 192.168.1.252.2049: 144 lookup fh 32.0/ 224145 "jaribio-faili" 10:30:16.012729 eth0 192.168.1.254.3476 angalia 2 ok476.3476. 43 07 (DF) 10:30: 16.012729 eth0 192.168 .1.254.3476097947: jibu sawa 128 lookup fh 32.0/224307 (DF) 10:30:16.013124 eth0 > 192.168.1.254. 3492875163 > 192.168.1.252.2049: 140 soma fh 32.0/ 224307 4096 byte @ 0 10:30:16.013124 eth0 > 192.168.1.254. 3492875163 > 192.168.1.252.2049: 140 soma fh 32.0/ 224307 4096 byte @ 0 10:30:16.013650 eth0 192.168.1.254 192.168.1.254 1717 1DF6 192.168.1.258 soma tena 0 :16.013650 eth0 192.168.1.254.3492875163 : jibu sawa 108 soma (DF)

NFS imetekelezwa kijadi juu ya UDP. Hata hivyo, baadhi ya matoleo ya NFS yanaunga mkono TCP (msaada wa TCP umefafanuliwa katika vipimo vya itifaki). Faida kuu ya TCP ni utaratibu wa ufanisi zaidi wa kurejesha tena katika mitandao isiyoaminika. (Kwa UDP, hitilafu ikitokea, ujumbe kamili wa RPC, unaojumuisha pakiti kadhaa za UDP, hutumwa tena. Kwa TCP, kipande kilichovunjika pekee ndicho hutumwa tena.)

UPATIKANAJI WA NFS

Utekelezaji wa NFS kwa kawaida huauni njia nne za kutoa haki za ufikiaji: kupitia sifa za mtumiaji/faili, katika kiwango cha rasilimali iliyoshirikiwa, katika kiwango cha nodi kuu, na kama mchanganyiko wa mbinu nyingine za ufikiaji.

Njia ya kwanza inategemea mfumo uliojengwa wa UNIX wa ruhusa za faili kwa mtumiaji binafsi au kikundi. Ili kurahisisha udumishaji, kitambulisho cha mtumiaji na kikundi kinapaswa kuwa sawa kwa wateja na seva zote za NFS. Usalama lazima uzingatiwe kwa uangalifu: NFS inaweza kutoa ufikiaji wa faili ambazo hazikukusudiwa wakati ziliundwa.

Ufikiaji wa kiwango cha kushiriki hukuruhusu kuzuia haki za kuruhusu vitendo fulani pekee, bila kujali umiliki wa faili au mapendeleo ya UNIX. Kwa mfano, kufanya kazi na mfumo wa faili wa NFS kunaweza kupunguzwa kwa kusoma tu. Utekelezaji mwingi wa NFS hukuruhusu kuweka kikomo zaidi cha ufikiaji katika kiwango cha rasilimali iliyoshirikiwa kwa watumiaji maalum na/au vikundi. Kwa mfano, kikundi cha Rasilimali Watu kinaruhusiwa kutazama habari na hakuna zaidi.

Ufikiaji wa kiwango cha nodi kuu hukuruhusu kuweka mfumo wa faili kwenye nodi maalum tu, ambayo kwa ujumla ni wazo nzuri kwani mifumo ya faili inaweza kuunda kwa urahisi kwenye nodi zozote zinazowezeshwa na NFS.

Ufikiaji uliounganishwa unachanganya tu aina zilizo hapo juu (kwa mfano, ufikiaji wa kiwango cha pamoja na ufikiaji uliotolewa kwa mtumiaji maalum) au inaruhusu watumiaji kufikia NFS kutoka kwa nodi maalum pekee.

NFS KATIKA MTINDO WA PENGUIN

Nyenzo zinazohusiana na Linux zinatokana na Red Hat 6.2 yenye kernel toleo la 2.4.9, ambayo husafirishwa na nfs-utils toleo la 0.1.6. Pia kuna matoleo mapya zaidi: wakati wa kuandika, sasisho la hivi karibuni la kifurushi cha nfs-utils ni 0.3.1. Inaweza kupakuliwa kutoka:.

Kifurushi cha nfs-utils kina utekelezwaji ufuatao: usafirishaji nje, uliofungwa, uliowekwa, nfsd, nfsstat, nhfsstone, rquotad, showmount, na statd.

Kwa bahati mbaya, usaidizi wa NFS wakati mwingine ni chanzo cha mkanganyiko kwa wasimamizi wa Linux kwa sababu upatikanaji wa kipengele fulani unategemea moja kwa moja nambari za toleo la kernel na kifurushi cha nfs-utils. Kwa bahati nzuri, mambo yanaboreka katika eneo hili, na usambazaji wa hivi punde ukijumuisha matoleo mapya zaidi ya zote mbili. Kwa matoleo ya awali, Sehemu ya 2.4 ya NFS-HOWTO hutoa orodha kamili ya utendaji wa mfumo unaopatikana kwa kila mchanganyiko wa vifurushi vya kernel na nfs-utils. Watengenezaji hudumisha utangamano wa nyuma wa kifurushi na matoleo ya awali, wakizingatia sana kuhakikisha usalama na kuondoa makosa ya programu.

Usaidizi wa NFS unapaswa kuanzishwa wakati wa kukusanya kernel. Ikiwa ni lazima, uwezo wa kufanya kazi na toleo la 3 la NFS unapaswa kuongezwa kwenye kernel.

Kwa usambazaji unaotumia linuxconf, ni rahisi kusanidi huduma za NFS kwa wateja na seva. Hata hivyo, njia ya haraka ya kufunga NFS kwa kutumia linuxconf haitoi taarifa kuhusu faili gani zilizoundwa au kuhaririwa, ambayo ni muhimu sana kwa msimamizi kujua hali katika tukio la kushindwa kwa mfumo. Usanifu wa NFS kwenye Linux umeunganishwa kwa urahisi na toleo la BSD, kwa hivyo faili na programu muhimu za usaidizi ni rahisi kupata kwa wasimamizi wanaoendesha BSD, Sun OS 2.5, au matoleo ya awali ya NFS.

Faili ya /etc/exports, kama ilivyo katika matoleo ya awali ya BSD, inafafanua mifumo ya faili ambayo wateja wa NFS wanaruhusiwa kufikia. Kwa kuongeza, ina idadi ya vipengele vya ziada vinavyohusiana na masuala ya usimamizi na usalama, kumpa msimamizi njia ya kurekebisha vizuri. Hili ni faili la maandishi linalojumuisha maingizo, mistari tupu au yenye maoni (maoni huanza na ishara #).

Wacha tuseme tunataka kuwapa wateja ufikiaji wa kusoma tu kwa saraka ya nyumbani kwenye nodi ya Kushoto. Hii italingana na kiingilio kifuatacho katika /etc/exports:

/ nyumbani (ro)

Hapa tunahitaji kuuambia mfumo ni saraka gani tutafanya kupatikana kwa kutumia rpc.mountd daemon:

# exportfs -r exportfs: Hakuna jina la mpangishaji lililobainishwa ndani /nyumbani (ro), weka *(ro) ili kuepusha onyo #

Inapoendeshwa, amri ya exportfs inatoa onyo kwamba /etc/exports haizuii ufikiaji wa nodi fulani, na inaunda kiingilio kinacholingana katika /var/lib/nfs/etab kutoka /etc/exports ikiambia ni rasilimali gani zinaweza kutazamwa kwa kutumia paka. :

# paka /var/lib/nfs/etab /nyumbani (ro,async,wdelay,ficha,salama,root_squash, no_all_squash,subtree_check, secure_locks,mapping=identity,anonuid= -2,anongid=-2)

Chaguzi zingine zilizoorodheshwa katika etab ni pamoja na maadili chaguo-msingi yanayotumiwa na NFS. Maelezo yataelezwa hapa chini. Ili kutoa ufikiaji wa saraka ya nyumbani, lazima uanze huduma zinazofaa za NFS:

# portmap # rpc.mountd # rpc.nfsd # rpc.statd # rpc.rquotad

Wakati wowote baada ya kuanzisha mount daemon (rpc.mountd), unaweza kuona faili mahususi zinazopatikana kwa utoaji kwa kutazama yaliyomo kwenye faili ya /proc/fs/nfs/exports:

# paka /proc/fs/nfs/exports # Toleo la 1.0 # Mteja wa Njia(Alama) # IPs /home 192.168.1.252(ro,root_squash,async, wdelay) # 192.168.1.252 #

Vile vile vinaweza kutazamwa kwa kutumia showmount amri na -e paramu:

# showmount -e Orodha ya kuuza nje ya kushoto: /nyumbani (kila mtu) #

Kuruka mbele kidogo, amri ya showmount inaweza pia kutumika kuamua mifumo yote ya faili iliyowekwa, au kwa maneno mengine, ili kujua ni nodi zipi ni wateja wa NFS kwa mfumo unaoendesha amri ya showmount. Amri ya showmount -a itaorodhesha alama zote za mteja:

# showmount -a Pointi zote za mlima kwenye lefty: 192.168.1.252:/nyumbani #

Kama ilivyoelezwa hapo juu, utekelezaji mwingi wa NFS unasaidia matoleo mbalimbali ya itifaki hii. Utekelezaji wa Linux hukuruhusu kuweka kikomo orodha ya matoleo ya NFS ambayo yanaweza kuzinduliwa kwa kubainisha swichi ya -N kwa daemon ya kupachika. Kwa mfano, ili kuendesha toleo la 3 la NFS, na toleo la 3 pekee, ingiza amri ifuatayo:

# rpc.iliyowekwa -N 1 -N 2

Watumiaji wa mara kwa mara wanaweza kupata usumbufu kwamba daemon ya NFS ya Linux (rpc.nfsd) inangoja toleo la 1 na vifurushi vya toleo la 2, ingawa hii ina athari inayotaka ya kutotumia itifaki inayolingana. Hebu tumaini kwamba watengenezaji wa matoleo ya baadaye watafanya marekebisho muhimu na wataweza kufikia uwiano mkubwa kati ya vipengele vya mfuko kuhusiana na matoleo tofauti ya itifaki.

"OGELEA NA PENGUIN"

Ufikiaji wa Lefty uliosanidiwa hapo juu, mfumo wa faili unaoweza kuhamishwa wa NFS wa Linux, unategemea mfumo wa uendeshaji wa mteja. Mtindo wa usakinishaji wa mifumo mingi ya uendeshaji ya familia ya UNIX ni sawa na ule wa mifumo ya awali ya Sun OS na BSD au Solaris mpya zaidi. Kwa kuwa nakala hii inahusu Linux na Solaris, hebu tuangalie usanidi wa mteja wa Solaris 2.6 kutoka kwa mtazamo wa kuanzisha muunganisho na toleo la Linux la NFS ambalo tulielezea hapo juu.

Shukrani kwa vipengele vilivyorithiwa kutoka kwa Solaris 2.6, inaweza kusanidiwa kwa urahisi ili kufanya kazi kama mteja wa NFS. Hii inahitaji amri moja tu:

# mlima -F nfs 192.168.1.254:/home /tmp/tmp2

Kwa kudhani amri ya awali ya mlima ilifanikiwa, basi amri ya mlima bila vigezo itatoa zifuatazo:

# weka / on /dev/dsk/c0t0d0s0 soma/andika/setuid/ faili kubwa mnamo Mon Sep 3 10:17:56 2001 ... ... /tmp/tmp2 mnamo 192.168.1.254:/home soma/ andika/remote on Jumatatu Septemba 3 23:19:25 2001

Wacha tuchambue pato la tcpdump lililopokelewa kwenye nodi ya Kushoto baada ya mtumiaji kutoa ls /tmp/tmp2 amri kwenye nodi ya Jua:

# tcpdump mwenyeji lefty na mwenyeji sunny -s512 06:07:43.490583 sunny.2191983953 > lefty.mcwrite.n.nfs: 128 getattr fh Unknown/1 (DF) 06:07:43.4906mcwri. 2191983953: jibu sawa 112 getattr DIR 40755 vitambulisho 0/0 sz 0x000001000 (DF) 06:07:43.491397 sunny.2191983954 > lefty.mcwrites1: Unknown 3954 f01: 3950 fm2f0: 3950 fdf0 haijulikani. 7:4 3.491463 kushoto .mcwrite.n.nfs > sunny.2191983954: reply ok 120 access c0001 (DF) 06:07:43.492296 sunny.2191983955 > lefty.mcwrite.n.nfs: 159/14 f60 760 kusomadir 159/8 kwa 7 70 70 plus 70. x00000 0000 (DF) 06:07:43.492417 lefty.mcwrite.n.nfs > sunny.2191983955: jibu sawa 1000 readdirplus (DF)

Tunaona kwamba nodi Sunny inaomba kipini cha faili (fh) kwa ls, ambayo nodi ya Lefty hujibu kwa OK na kurudisha muundo wa saraka. Sunny kisha hukagua ruhusa ya kufikia yaliyomo kwenye saraka (132 ufikiaji fh) na kupokea jibu la ruhusa kutoka kwa Lefty. Nodi ya Jua kisha inasoma yaliyomo kwenye saraka kwa kutumia utaratibu wa readdirplus. Simu za utaratibu wa mbali zimeelezewa katika RFC 1813 na zimeorodheshwa mwanzoni mwa nakala hii.

Ingawa mlolongo wa amri ya kupata mifumo ya faili ya mbali ni rahisi sana, hali kadhaa zinaweza kusababisha mfumo kutowekwa kwa usahihi. Kabla ya kuweka saraka, sehemu ya mlima lazima iwe tayari, vinginevyo lazima iundwe kwa kutumia amri ya mkdir. Kawaida sababu pekee ya makosa kwa upande wa mteja ni ukosefu wa saraka ya mlima wa ndani. Matatizo mengi yanayohusiana na NFS yanatokana na kutolingana kati ya mteja na seva au usanidi usio sahihi wa seva.

Njia rahisi zaidi ya kutatua shida kwenye seva ni kutoka kwa nodi ambayo seva inafanya kazi. Walakini, wakati mtu mwingine anakusimamia seva, hii haiwezekani kila wakati. Njia ya haraka ya kuhakikisha kuwa huduma zinazofaa za seva zimesanidiwa kwa usahihi ni kutumia amri ya rpcinfo na -p chaguo. Kutoka kwa mpangishi wa Solaris Sunny, unaweza kubainisha ni michakato gani ya RPC iliyosajiliwa kwenye seva pangishi ya Linux:

# rpcinfo -p 192.168.1.254 mpango dhidi ya huduma ya bandari ya proto 100000 2 tcp 111 rpcbind 100000 2 udp 111 rpcbind 100024 1 udp 692 hadhi 10001 hali 10002p 10002p 10002p 24 iliyowekwa /100005 3 tcp 1024 iliyowekwa 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100021 1 udp 1026 nlockmgr 100021 3 udp 1026 nlockmgr 100021 4 udp 1026 nlockmgr #

Kumbuka kwamba maelezo ya toleo pia yametolewa hapa, ambayo ni muhimu sana wakati mfumo unahitaji usaidizi wa itifaki mbalimbali za NFS. Ikiwa huduma yoyote haifanyiki kwenye seva, basi hali hii lazima irekebishwe. Ikiwa mlima utashindwa, amri ifuatayo ya rpcinfo -p itakusaidia kuamua kuwa huduma iliyowekwa kwenye seva haifanyi kazi:

# rpcinfo -p 192.168.1.254 mpango dhidi ya huduma ya bandari ya proto 100000 2 tcp 111 rpcbind ... ... 100021 4 udp 1026 nlockmgr #

Amri ya rpcinfo ni muhimu sana kwa kujua ikiwa mchakato fulani wa mbali unafanya kazi. Kigezo cha -p ni muhimu zaidi ya swichi. Ili kuona vipengele vyote vya rpcinfo, angalia ukurasa wa mtu.

Chombo kingine muhimu ni amri ya nfsstat. Kwa msaada wake, unaweza kujua ikiwa wateja wanafikia mfumo wa faili uliosafirishwa, na pia kuonyesha habari ya takwimu kwa mujibu wa toleo la itifaki.

Mwishowe, zana nyingine muhimu ya kuamua sababu za kushindwa kwa mfumo ni tcpdump:

# tcpdump mwenyeji lefty na mwenyeji jua -s512 tcpdump: kusikiliza kwenye eth0 06:29:51.773646 sunny.2191984020 > lefty.mcwrite.n.nfs: 140 lookup fh Unknown/1"test.016:78:79 DF16:78" (DF) lefty.mcwrite.n.nfs > sunny.2191984020: reply ok 116 lookup HITILAFU: Hakuna faili au saraka kama hiyo (DF) 06:29:51.774593 sunny.2191984021 > lefty.mcwrite.n.2nh8 gettknown: . DF) 06:29:51.774670 lefty.mcwrite.n.nfs > jua.2191984021: jibu sawa 112 getattr DIR 40755 ids 0/0 sz 0x000001000 (DF) 051984021 sunny.729 .m candika.n. nfs : 140 lookup fh Haijulikani/1"test.c" (DF) 06:29:51.775357 lefty.mcwrite.n.nfs > sunny.2191984022: jibu sawa 116 kuangalia HITILAFU: Hakuna faili au saraka kama hiyo (DF) 06: : 51.776029 jua.2191984023 > lefty.mcwrite.n.nfs: 184 create fh Unknown/1 "test.c" (DF) 06:29:51.776169 lefty.mcwrite.n.nfs >19 reply08.219 : Ruhusa imekataliwa (DF)

Uorodheshaji ulio hapo juu, uliotolewa kwa kutekeleza taarifa ya touch test.c, unaonyesha mlolongo ufuatao wa vitendo: kwanza amri ya mguso inajaribu kufikia faili inayoitwa test.c, kisha inatafuta saraka yenye jina sawa, na baada ya majaribio yasiyofaulu. inajaribu kuunda faili test.c , ambayo pia haileti mafanikio.

Ikiwa mfumo wa faili umewekwa, makosa ya kawaida yanahusiana na ruhusa za kawaida za UNIX. Kutumia uid au NIS+ on Sun husaidia kuzuia kuweka ruhusa duniani kote kwenye mifumo yote ya faili. Baadhi ya wasimamizi hufanya mazoezi ya saraka "wazi", ambapo ufikiaji wa kusoma hutolewa kwa "ulimwengu mzima." Walakini, hii inapaswa kuepukwa kwa sababu za usalama. Masuala ya usalama kando, mbinu hii bado ni mazoea mabaya, kwani watumiaji mara chache huunda data kwa nia ya kuifanya isomwe na kila mtu.

Ufikiaji wa mtumiaji aliyebahatika (mzizi) kwa mifumo ya faili ya NFS iliyowekwa huchukuliwa kwa njia tofauti. Ili kuepuka kumpa mtumiaji aliyebahatika ufikiaji usio na kikomo, maombi kutoka kwa mtumiaji aliyebahatika huchukuliwa kana kwamba hayatoki kwa mtumiaji yeyote. Utaratibu huu wenye nguvu huweka kikomo kwa mtumiaji aliyebahatika kufikia faili zinazoweza kusomeka na kuandikwa kimataifa.

NFS SEVER SOLARIS VERSION

Kusanidi Solaris kufanya kazi kama seva ya NFS ni rahisi kama ilivyo kwa Linux. Walakini, amri na maeneo ya faili ni tofauti kidogo. Solaris inapowashwa, inapofika kiwango cha 3, huduma za NFS huanzishwa kiotomatiki na mifumo yote ya faili inasafirishwa nje. Ili kuanza michakato hii kwa mikono, ingiza amri:

#/usr/lib/nfs/mountd

Kuanzisha daemon ya mlima na seva ya NFS, ingiza:

#/usr/lib/nfs/nfsd

Kuanzia na toleo la 2.6, Solaris hatumii tena faili ya kuhamisha ili kubainisha mifumo ya faili ya kusafirisha. Faili sasa zinasafirishwa kwa kutumia amri ya kushiriki. Wacha tuseme tunataka kuruhusu wapangishi wa mbali kuweka /export/home. Ili kufanya hivyo, ingiza amri ifuatayo:

Shiriki -F nfs /export/home

Hatua za usalama

USALAMA KATIKA LINUX

Baadhi ya huduma za mfumo wa NFS zenye msingi wa Linux zina utaratibu wa ziada wa vizuizi vya ufikiaji kupitia orodha za udhibiti au majedwali. Katika ngazi ya ndani, utaratibu huu unatekelezwa kwa kutumia maktaba ya tcp_wrapper, ambayo hutumia faili mbili ili kuzalisha orodha za udhibiti wa ufikiaji: /etc/hosts.allow na /etc/hosts/deny. Muhtasari wa kina wa sheria za kufanya kazi na tcp_wrapper ni zaidi ya upeo wa makala haya, lakini kanuni ya msingi ni kama ifuatavyo: kulinganisha kwanza hufanywa na etc/hosts.allow, na kisha kwa /etc/hosts. kukataa. Ikiwa sheria haipatikani, basi huduma ya mfumo iliyoombwa haijawasilishwa. Ili kuzunguka hitaji hili la mwisho na kutoa kiwango cha juu sana cha usalama, unaweza kuongeza ingizo lifuatalo hadi mwisho wa /etc/hosts.deny:

WOTE: Wote

Baada ya hayo, unaweza kutumia /etc/hosts.allow kuweka mode moja au nyingine ya uendeshaji. Kwa mfano, faili /etc/hosts. kuruhusu, ambayo nilitumia wakati wa kuandika nakala hii, ilikuwa na mistari ifuatayo:

Imefungwa:192.168.1.0/255.255.255.0 imewekwa:192.168.1.0/255.255.255.0 portmap:192.168.1.0/255.255.255.0 rquotad.2.255.0 rquotad.255.2.1952.192.1952.1. .16 8.1.0/255.255.255.0

Hii inaruhusu aina mahususi ya ufikiaji kwa wapangishaji kabla ya kutoa ufikiaji wa kiwango cha programu. Kwenye Linux, ufikiaji wa kiwango cha programu unadhibitiwa na faili ya /etc/exports. Inajumuisha maingizo katika muundo ufuatao:

Hamisha saraka (nafasi) mwenyeji|mtandao(chaguo)

"Saraka ya usafirishaji" ni saraka ambayo daemon ya nfsd inaruhusiwa kushughulikia maombi yake. "Nodi|mtandao" ni nodi au mtandao ambao unaweza kufikia mfumo wa faili unaosafirishwa nje, na "chaguo" hufafanua vizuizi ambavyo daemon ya nfsd inaweka juu ya matumizi ya rasilimali hii iliyoshirikiwa - ufikiaji wa kusoma tu au uchoraji wa kitambulisho cha mtumiaji. .

Mfano ufuatao unapeana ufikiaji wa kusoma pekee wa kikoa cha mcwrite.net kwa /home/mcwrite.net:

/home/mcwrite.net *.mcwrite.net(ro)

Mifano zaidi inaweza kupatikana katika ukurasa wa mtu wa usafirishaji.

USALAMA wa NFS KATIKA SOLARIS

Katika Solaris, uwezo wa kutoa upatikanaji wa NFS ni sawa na Linux, lakini katika kesi hii, vikwazo vinawekwa kwa kutumia vigezo fulani katika amri ya kushiriki na kubadili -o. Mfano ufuatao unaonyesha jinsi ya kuwezesha uwekaji wa kusoma pekee wa /export/mcwrite.net kwenye seva pangishi yoyote kwenye kikoa cha mcwrite.net:

#shiriki -F nfs -o ro=.mcwrite.net/ export/ mcwrite.net

Ukurasa wa mtu wa maelezo ya share_nfs kutoa ufikiaji kwa kutumia orodha za udhibiti kwenye Solaris.

Rasilimali za Mtandao

NFS na RPC sio bila mashimo. Kwa ujumla, NFS haipaswi kutumiwa wakati wa kutumia mtandao. Huwezi kutoboa mashimo kwenye ngome ili kuruhusu ufikiaji wa aina yoyote kupitia NFS. Ni muhimu kuweka jicho la karibu kwenye viraka vyovyote vya RPC na NFS vinavyojitokeza, na vyanzo vingi vya taarifa za usalama vinaweza kusaidia. Vyanzo viwili maarufu zaidi ni Bugtraq na CERT:

Ya kwanza inaweza kutazamwa mara kwa mara katika kutafuta habari muhimu au kwa kujiandikisha kwa majarida ya mara kwa mara. Ya pili hutoa, labda, sio habari ya haraka ikilinganishwa na zingine, lakini kwa kiasi kamili na bila kivuli cha tabia ya hisia za baadhi ya tovuti zinazojitolea kwa usalama wa habari.

Kwa kusambaza faili ndani ya mtandao wa ndani, teknolojia zifuatazo zinaweza kutofautishwa (mifumo ya Linux inazingatiwa):

  • Mfumo wa Faili ya Mtandao (NFS) - itifaki ya ufikiaji wa mtandao kwa mifumo ya faili;
  • Faili zinazohamishwa kupitia itifaki ya Shell (FISH) ni itifaki ya mtandao inayotumia au RSH kuhamisha faili kati ya kompyuta;
  • Secure Shell FileSystem (SSHFS) - mteja wa mfumo wa faili wa kuweka vifaa vya diski kwenye mifumo ya mbali, inayotumiwa kuingiliana na mfumo wa mbali. SFTP;
  • Samba ni mfuko wa programu ambayo inakuwezesha kufikia anatoa mtandao na printers kwenye mifumo mbalimbali ya uendeshaji kupitia itifaki ya SMB / CIFS;

Katika maelezo haya tutazungumzia NFS.

Mfumo wa Faili wa Mtandao (NFS) muhimu wakati unahitaji kusambaza faili/saraka kwa kila mtu kwenye mtandao. Fikia uwazi na NFS inaruhusu wateja kuweka mfumo wa faili wa mbali kama saraka ya ndani, na mifumo ya faili inaweza kuwa ya aina tofauti. Hii ina maana kwamba programu yoyote ya mteja ambayo inaweza kufanya kazi na faili ya ndani inaweza kufanya kazi kwa urahisi na faili iliyounganishwa kupitia NFS, bila marekebisho yoyote kwa programu yenyewe.

Kwa faida NFS inaweza kuhusishwa:

  • kupunguza mzigo kwenye processor;
  • kuonyesha rasilimali zilizoshirikiwa kama saraka za kawaida katika mfumo;
  • Inapatikana kwa sasa NFS v4.1, ambayo ilianzisha kipengele kipya pNFS hukuruhusu kusawazisha utekelezaji wa kushiriki faili. Pia kuna kiendelezi cha NFS 2 na 3 - WebNFS, ambayo inaruhusu ujumuishaji rahisi kwenye vivinjari vya wavuti na uwezo wa kufanya kazi kupitia firewall.

    Mpango wa kazi NFS itifaki.

    Kusakinisha na kusanidi seva ya NFS chini ya Linux

    Wacha tuangalie ikiwa mfumo unaunga mkono NFS

    Paka /proc/filesystems | grep nfs

    Chini ya Arch Linux seva na mteja ziko kwenye kifurushi sawa

    Yaourt -S nfs-utils

    Ili kufunga seva ( seva ya nfs-kernel) na mteja ( nfs-ya kawaida) chini Ubuntu vifurushi vinavyohitajika

    Sudo apt-get install nfs-kernel-server nfs-common portmap

    Zaidi katika dokezo hili, IP itatumika kwa seva 192.168.1.100 . Ili IP sawa daima ipewe kwa seva, ni muhimu kutaja katika seva ya DHCP (kawaida router) usambazaji wa IP maalum kwa anwani maalum ya MAC. Au inua seva yako ya karibu ya DNS. Kwa mfano au.

    Anwani ya MAC inaweza kupatikana kwa kutumia ifconfig (uwanja etha V Arch Linux).

    NFSv4 inadhania kuwa kuna saraka ya mizizi, ndani ambayo faili za usambazaji tayari ziko. Kwa mfano, /srv/nfs- mizizi, /srv/nfs/sauti- saraka ya kusambaza muziki. Ikiwa hutafuata mwongozo huu mpya katika toleo 4 , basi unaweza kupokea hitilafu wakati wa kuunganisha na mteja:

    Mount.nfs: ufikiaji umekataliwa na seva wakati wa kuweka 192.168.1.100:/home/proft/torrents

    Ikiwa bado unataka kutumia mbinu kwenye seva bila saraka ya mizizi ya NFS, basi unapowekwa na mteja, lazima ueleze toleo hilo waziwazi 3

    # kwa amri ya mlima mount -o "vers=3" 192.168.1.100:/home/proft/torrents /home/proft/nfs/torrents # kwa fstab 192.168.1.100:/home/proft/torrents /home/proft/nfs / torrents nfs laini,nfsvers=3 0 0

    nitatumia NFSv4 na saraka ya mizizi ndani /srv/nfs/ na kuweka saraka ndogo kwa kutumia mount --bind .

    Tuseme tunataka

    • kusambaza saraka ~/torrents Na rw ufikiaji kwa kila mtu ndani ya mtandao wa ndani;
    • kusambaza saraka ~/picha Na ro ufikiaji wa mwenyeji na IP 192.168.1.101 ;

    Kwanza, hebu tuunde saraka ya mizizi na subdirectories muhimu.

    Sudo mkdir -p /srv/nfs/(mito,picha)

    Weka saraka zilizopo mito, picha V /srv/nfs.

    # sudo vim /etc/fstab /home/proft/torrents /srv/nfs/torrents hakuna kumfunga 0 0 /home/proft/photos /srv/nfs/photos hakuna kumfunga 0 0

    Hebu tuhariri /etc/exports, ambayo inaelezea saraka zote zilizoshirikiwa

    # sudo vim /etc/exports # umbizo la faili: saraka inaruhusiwa-hosts(chaguo) /srv/nfs/torrents 192.168.1.1/24(rw,async) /srv/nfs/photos 192.168.1.101(ro,async)

    Kumbuka kwamba hakuna nafasi kati kuruhusiwa-majeshi Na (chaguo). Uwepo wa nafasi huleta tafsiri tofauti ya sheria.

    Chaguzi zinazopatikana:

    • ro (rw) - kuruhusu ufikiaji wa kusoma tu (kusoma / kuandika);
    • subtree_check (no_subtree_check) - katika baadhi ya matukio ni muhimu kusafirisha si sehemu nzima, lakini sehemu yake tu. Katika kesi hii, seva NFS lazima ifanye ukaguzi wa ziada kwa maombi ya mteja ili kuhakikisha kuwa wanajaribu tu kufikia faili zilizo katika saraka ndogo zinazofaa. Udhibiti huu mdogo ( hundi ndogo) kwa kiasi fulani hupunguza kasi ya mwingiliano na wateja, lakini ukiikataa, inaweza kusababisha matatizo na usalama wa mfumo. Unaweza kughairi udhibiti wa mti mdogo kwa kutumia chaguo no_subtree_check. Chaguo subtree_check, ambayo inajumuisha udhibiti huo, inachukuliwa na chaguo-msingi. Kuangalia kwa chini kunaweza kuachwa ikiwa saraka iliyosafirishwa ni sawa na kizigeu cha diski;
    • kusawazisha (async) - inabainisha kuwa seva inapaswa kujibu maombi tu baada ya mabadiliko yaliyofanywa na maombi hayo yameandikwa kwenye diski. Chaguo Async inaambia seva isingojee habari kuandikwa kwa diski, ambayo inaboresha utendaji lakini inapunguza kuegemea kwa sababu katika tukio la kushindwa kwa uunganisho au kushindwa kwa vifaa, kupoteza data kunaweza kutokea;
    • noaccess - inakataa ufikiaji wa saraka maalum. Inaweza kuwa muhimu ikiwa hapo awali uliweka ufikiaji wa watumiaji wote wa mtandao kwenye saraka fulani, na sasa unataka kuzuia ufikiaji wa subdirectory kwa watumiaji wengine tu;
    • no_root_squash - mtumiaji chaguo-msingi mzizi kwenye mashine ya mteja haitakuwa na haki sawa kwenye saraka kwenye seva. Chaguo hili huondoa kizuizi hiki;
    • nohide- NFS haonyeshi kiotomatiki rasilimali zisizo za ndani (kwa mfano, zimewekwa kwa kutumia mount --bind), chaguo hili huwezesha uonyeshaji wa rasilimali hizo;
    • ukosefu wa usalama - matumizi ya bandari zisizo na usalama (> 1024);

    Kuanzisha seva ya NFS

    # chini ya archlinux sudo systemctl anza rpc-idmapd.service rpc-mountd.service # chini ya ubuntu sudo /etc/init.d/nfs-kernel-server start

    Katika siku zijazo, wakati wa kubadilisha faili ya usanidi, isome tena kwa amri:

    Sudo exportfs -rav

    Amri rpcinfo -p | grep nfs hukuruhusu kuangalia ikiwa seva ilianza kwa mafanikio.

    Mteja wa Linux

    Ufungaji

    # chini ya archlinux yaourt -S nfs-utils # chini ya ubuntu sudo apt-get install portmap nfs-common

    Wacha tuunde saraka za kuweka rasilimali za mtandao mito Na picha

    Mkdir -p ~/nfs/(mito,picha)

    Kwa uwekaji wa mwongozo tutafanya

    Sudo mount -t nfs -o rw,soft 192.168.1.100:/srv/nfs/torrents /home/proft/nfs/torrents sudo mount -t nfs -o rw,soft 192.168.1.100:/srv/photos/nfmes / /proft/nfs/picha

    Chaguo laini inabainisha kughairi kimya majaribio ya kuunganisha hisa baada ya muda fulani (wakati umebainishwa na chaguo retrans) Maelezo zaidi ndani mtu nfs.

    Njia hii sio rahisi sana, kwani kila wakati baada ya kuanza upya utalazimika kutekeleza amri hizi. Hebu tufanye ufungaji wa moja kwa moja.

    Ili kupachika kiotomatiki, hariri faili /etc/fstab

    # sudo vim /etc/fstab 192.168.1.100:/srv/nfs/torrents /home/proft/net/torrents nfs rw,soft 0 0 192.168.1.100:/srv/nfs/picha /net/sf/sf ro, laini 0 0

    Lakini njia hii pia ina vikwazo vyake, kwa mfano, ikiwa seva haipatikani, upakiaji wa mteja unaweza kufungia kutokana na majaribio ya kuunganisha kwenye seva ya NFS. Ili kurekebisha hii, tazama hapa chini kuhusu AutoFS.

    AutoFS - uunganisho wa moja kwa moja wa rasilimali za mtandao

    Inawezekana kuweka rasilimali ya mbali kwa kutumia AutoFS inapofikia mara ya kwanza na kuishusha kiotomatiki wakati hakuna shughuli.

    AutoFS hutumia violezo vilivyomo ndani /etc/autofs. Template kuu inaitwa auto.bwana, inaweza kuelekeza kwenye ruwaza moja au zaidi nyingine za aina mahususi za midia.

    Ufungaji

    # chini ya archlinux yaourt -S autofs # chini ya ubuntu sudo apt-get install autofs

    Kuna njia kadhaa za kutaja njia za automount. Ninatumia hii: in /nyumbani/faida/nfs Saraka huundwa kiatomati na jina la seva ya NFS, ambayo saraka zinazopatikana kwenye seva huundwa kiatomati.

    # sudo vim /etc/autofs/auto.master /home/proft/nfs /etc/autofs/auto.nfs --timeout=60

    Parameta ya ziada muda umeisha huweka idadi ya sekunde ambapo kifaa kitashushwa. Kigezo mzimu inabainisha kuwa rasilimali zilizosanidiwa zitaonyeshwa kila wakati, na sio tu wakati zinapatikana (chaguo hili linawezeshwa kwa chaguo-msingi katika AutoFS 5)

    Tutaelezea ndani /etc/autofs/auto.nfs Seva ya NFS na saraka ya mizizi.

    # sudo vim /etc/autofs/auto.nfs nfsserver 192.168.1.100:/srv/nfs

    Sasa kwa ombi la kwanza /home/proft/nfs/torrents Rasilimali ya NFS itawekwa kiotomatiki.

    Wacha tuanze tena huduma ya autofs:

    # chini ya archlinux sudo systemctl anzisha tena autofs # chini ya ubuntu sudo /etc/init.d/autofs anzisha tena

    Unaweza pia kubainisha muda wa kusubiri kwa rasilimali ya NFS kupatikana. Ili kufanya hivyo, unahitaji kubadilisha maadili MOUNT_WAIT.

    # chini ya archlinux # sudo vim /etc/conf.d/autofs MOUNT_WAIT=5 # chini ya ubuntu sudo /etc/default/autofs MOUNT_WAIT=5

    Kulazimisha matumizi ya NFS v3

    Katika baadhi ya kesi NFSv4 inaweza kufanya kazi polepole. Ili kurekebisha hili, unaweza kulazimisha kutumia toleo la tatu.

    "na tayari una wazo kuhusu "mfumo wa faili wa mtandao", uwezo wake na kiwango cha usalama. Hata hivyo, katika makala hii kila kitu kilieleweka hasa kutoka kwa mtazamo wa mteja ... lakini ni nini cha kufanya ikiwa ungependa kuwa na seva yako ya NFS? (kumbuka: "tomba" haimaanishi "kuvunja", lakini inamaanisha "sakinisha na kusanidi").

    Kweli, ikiwa una hamu kama hiyo, basi swali la kwanza unapaswa kujiuliza ni: "Mbuzi anahitaji accordion kwa nini?" Kwa kusakinisha seva ya NFS nyumbani
    haina maana - hakuna mtu atakayeithamini, lakini ikiwa una bahati ya kuwa msimamizi katika ofisi ya "wanaume wenye rangi nyeusi", au kwenye "Mtandao wa NYUMBANI" mpya - basi ni jambo tofauti kabisa ...

    Kuzindua seva yenyewe ni jambo rahisi sana; ukisoma nakala iliyotangulia, unaweza kuishughulikia vizuri. Kwa hivyo, utahitaji daemoni zifuatazo:

    • nfsd - huduma ya itifaki ya moja kwa moja
      NFS;
    • vyema - kuhudumia shughuli za mlima;
    • rpc.portmap - RPC bandari daemon; inahitajika kwa sababu maombi kwa seva ya NFS hutumwa kwa njia ya pakiti
      RPC;

    Jinsi ya kufanya hivyo? Ni rahisi sana - nenda kwenye faili "/etc/rc.d/rc.inet2" na uondoe mistari inayolingana. Kila kitu kinaweza kuzingatiwa kuwa uzinduzi wa awali umekamilika; itakuwa ngumu zaidi kuiweka yote ...
    Jambo la kwanza ambalo linahitaji kuamuliwa ni nani ana haki gani kuhusu hii au habari hiyo. Hii imeundwa kupitia /etc/exports faili. Kuna ruhusa za "kusoma" na "kusoma-kuandika". Jinsi ya kuweka hii imeelezewa katika "Msingi"
    NFS".

    Ya pili ni, bila shaka, mzigo kwenye seva, i.e. idadi ya watumiaji wanaotumika na takriban maombi yao. Maombi kwa seva ya NFS kawaida hugawanywa katika aina mbili: ya kwanza ni wakati mteja anafanya kazi na sifa, pili ni wakati mteja anaomba data moja kwa moja. Maombi ya aina ya kwanza ni kutafuta faili, kusoma orodha ya ruhusa, nk, bila shaka, unaelewa kuwa wao hupakia mtandao kwa urahisi. Maombi ya aina ya pili ni uhamisho na mapokezi ya maudhui ya faili moja kwa moja kutoka kwa mteja; na hapa ndipo swali linatokea: "ni nini kitapitishwa na mara ngapi?" Hii ni muhimu hasa ikiwa una mtandao wa 10 Mbit / s (vizuri, kuiweka kwa urahisi, mtandao wa kawaida wa Kirusi). Ikiwa unajua, basi 10 Mbit / s ni kidogo zaidi ya 1 MB kwa pili; Kwa kawaida, ikiwa faili za makumi ya megabytes kwa ukubwa zinahamishwa mara kwa mara, mtandao utakufa tu. Ikiwa hii ndio hali yako, basi utahitaji kusakinisha uhifadhi wa data kwenye mashine ya mteja (daemon ya biod). Kisha, baada ya mara moja kuomba faili na kuipata tena, mteja "haitaipakua" tena kutoka kwa seva, lakini ataichukua kutoka kwenye cache yake; wakati huo huo, itaangaliwa mara kwa mara ikiwa faili kwenye seva imebadilika, na ikiwa ukweli wa mabadiliko hugunduliwa, faili iliyo kwenye cache itabadilishwa na "toleo jipya"
    (kama unavyoelewa, kuangalia "imebadilishwa faili" ni swala "kwa sifa", ambayo mara nyingi ni mamia ya mara ndogo kuliko faili yenyewe).

    Naam: tulizindua seva ya NFS, ilifafanua ruhusa za kufikia, ilishughulikia mzigo ... Sasa kinachobakia ni kujaza screw na taarifa muhimu na kuitumia.
    Uwezo wa NFS kwa ukamilifu...

    Badala ya hitimisho:

    Ikiwa unakabiliwa na swali la kuandaa kubadilishana data kwenye mtandao, basi usisite kuchagua NFS - NFS ni vichwa vitatu vya juu kuliko
    FTP ni kichwa na mabega juu ya "puto" za Windows, na sio ngumu kusanidi...

    Ninatoa maagizo ya kusakinisha na kusanidi NFS (Mfumo wa Faili za Mtandao). NFS ni mfumo wa faili wa mtandao unaokuruhusu kufikia faili na saraka kwenye kompyuta ya mbali (seva) kana kwamba faili na saraka hizi ni za ndani. Faida kuu ya mfumo huo ni kwamba vituo vya kazi vya mtu binafsi vinaweza kutumia chini ya nafasi yao ya disk, kwani data iliyoshirikiwa imehifadhiwa kwenye mashine tofauti (ghala la data) na inapatikana kwa mashine nyingine kwenye mtandao. NFS ni programu-tumizi ya seva ya mteja ambapo jukumu la uhifadhi limetolewa kwa seva. Kila mshiriki wa mtandao ni mteja wa NFS ambaye huweka hifadhi ya mtandao ya seva katika mfumo wake wa faili.

    Wacha tuchukue Ubuntu 12.04 kama seva.
    Tutatumia na kujaribu Centos na Windows 7 kama wateja.

    Seva kuu: 192.168.2.213 (Ubuntu)

    Wateja: 192.168.2.72 (Centos), 192.168.2.180 (Windows)

    Urekebishaji wa Seva

    Kwanza unahitaji kusanidi seva. Kwa kuwa tutatumia Ubuntu kama seva, tunahitaji kusanikisha kifurushi kinachofaa

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

    Baada ya kufunga vifurushi vinavyohitajika, tumeunda faili mbili za usanidi. Kutoka kwa logi ya ufungaji:

    ... Inaunda faili ya usanidi /etc/idmapd.conf na toleo jipya Kuunda faili ya usanidi /etc/default/nfs-common na toleo jipya ...

    Faili ya kwanza inaeleza mtumiaji (iliyoundwa wakati wa kusakinisha kifurushi) na kikundi cha kushiriki katika uchoraji ramani (kitambulisho cha mtumiaji).

    Root@ubuntu:~# cat /etc/idmapd.conf Verbosity = 0 Pipefs-Directory = /run/rpc_pipefs # weka kikoa chako hapa, ikiwa kitambulisho kinatofautiana na FQDN minus hostname # Domain = localdomain Nobody-Mser = nobody Nobody-Group = hakuna kikundi

    Kama tunavyojua, katika Linux kila faili ni ya mtumiaji maalum, ambaye ana yake mwenyewe (UID, GID), lakini kwenye mifumo ya Windows mpango huo ni tofauti kidogo. Na katika suala hili, utaratibu wa ramani uligunduliwa, ambayo hutafsiri watumiaji tofauti kutoka kwa mifumo tofauti ya uendeshaji katika fomu inayoeleweka kwa mfumo wa faili wa Linux.
    Faili ya pili inahitajika ili kusanidi uthibitishaji wa Kerberos na kusanidi lango lisilo la kawaida ambalo daemon itasikiliza. Hatumhitaji bado. Kuweka Kerberos kutajadiliwa katika makala inayofuata.

    Root@ubuntu:~# cat /etc/default/nfs-common # Usipoweka thamani za chaguo za NEED_, zitajaribiwa # kutambuliwa kiotomatiki; hii inapaswa kutosha kwa watu wengi. Chaguo mbadala # za chaguo za NEED_ ni "ndiyo" na "hapana". # Je, unataka kuanzisha daemon ya statd? Haihitajiki kwa NFSv4. NEED_STATD= Chaguzi # za rpc.statd. # Je, rpc.statd inapaswa kusikiliza kwenye bandari maalum? Hii ni muhimu sana # unapokuwa na ngome ya msingi ya bandari. Ili kutumia lango lisilobadilika, weka kigezo hiki # kwa hoja ya takwimu kama vile: "--port 4000 --outgoing-port 4001". # Kwa maelezo zaidi, angalia rpc.statd(8) au http://wiki.debian.org/SecuringNFS STATDOPTS= # Je, ungependa kuanzisha daemon ya gssd? Inahitajika kwa milipuko ya Kerberos. NEED_GSSD=

    Sasa hebu tuendelee na usanidi.
    Saraka zote za kushiriki lazima zisajiliwe katika faili ya /etc/exports. Kwanza, wacha tuunde folda 2 kwenye saraka ya nyumbani na tuweke faili ndani yao. Mti wa saraka na faili za usafirishaji:

    Mzizi@ubuntu:~# mti /home/alex/ /home/alex/ ├── nfs_dir1 │ ├── file1_dir1 │ ├── file2_dir1 │ └── nfs_dir1 └── faili 3_dir1 3_dir1 ─ file1_dir2 ├── file2_dir2 └─ ─ faili3_dir2

    Sasa unahitaji kukabidhi mtumiaji na kikundi kwa saraka hizi (ichukue kutoka /etc/idmapd.conf faili).

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

    Kwanza, wacha tuhamishe saraka ya nfs_dir1 kwa IP maalum. Hariri faili /etc/exprots.

    Root@ubuntu:~# vim /etc/exports # Kwa mwenyeji maalum (Windows) /home/alex/nfs_dir1 192.168.2.180(rw,sync,all_squash,no_subtree_check,insecure) # Kwa mwenyeji yeyote kwenye subnet /home/alex /nfs_dir2 192.168 .2.0/24(rw,no_root_squash,sync,no_subtree_check)

    Hapa kuna seti ya chini ya chaguo kwa hifadhi kufanya kazi kwa usahihi na Windows OS.

    • /nyumbani/alex/nfs_dir1- njia ya folda ambayo ufikiaji umepewa;
    • 192.168.2.180 - Anwani ya IP ambayo imepewa ufikiaji wa folda (unaweza kutaja mtandao mzima, kisha kiingilio kitaonekana kama 192.168.2.0/24)
    • (rw,sync, all_squash,no_subtree_check)- seti ya chaguzi.

    Chaguzi maarufu:

    • rw-soma/andika (inaweza kuchukua thamani ro - kusoma tu);
    • hakuna_mizizi_boga- kwa chaguo-msingi, mtumiaji wa mizizi kwenye mashine ya mteja hatakuwa na ufikiaji wa saraka iliyoshirikiwa ya seva. Kwa chaguo hili tunaondoa kizuizi hiki. Kwa sababu za usalama, ni bora kutofanya hivi;
    • kusawazisha- modi ya ufikiaji iliyosawazishwa (inaweza kuchukua thamani tofauti - Async);
    • hakuna ufikiaji- inakataa ufikiaji wa saraka maalum. Inaweza kuwa muhimu ikiwa hapo awali uliweka ufikiaji wa watumiaji wote wa mtandao kwenye saraka fulani, na sasa unataka kuzuia ufikiaji wa saraka kwa watumiaji wengine tu.
    • boga_yote- inamaanisha kuwa miunganisho yote itafanywa kutoka kwa mtumiaji asiyejulikana (inahitajika kwa mteja wa Windows)
    • anonuid= 1000 - huunganisha mtumiaji asiyejulikana kwa mtumiaji wa "ndani";
    • anongid= 1000 - hufunga mtumiaji asiyejulikana kwa kikundi cha mtumiaji "ndani".
    • no_subtree_check(subtree_check)-Ikiwa orodha ndogo ya mfumo wa faili inasafirishwa, lakini sio mfumo mzima wa faili, seva hukagua ikiwa faili iliyoombwa iko katika saraka ndogo iliyosafirishwa. Kuzima uthibitishaji kunapunguza usalama lakini huongeza kasi ya uhamishaji data.
    • Kwa kawaida, Linux (na mifumo mingine ya uendeshaji kama Unix) huhifadhi bandari za TCP na UDP kutoka 1-1023 (zinazoitwa bandari salama) ili zitumike na michakato ya mtumiaji wa mizizi. Ili kuhakikisha kuwa mzizi ulianzisha muunganisho wa mbali wa NFS, seva ya NFS kwa kawaida huhitaji wateja wa mbali kutumia milango salama. Mkataba huu, hata hivyo, hauheshimiwi na baadhi ya mifumo ya uendeshaji (km Windows). Katika hali kama hizo, chaguo kutokuwa na usalama Huruhusu mteja wa NFS kutumia mlango wowote wa TCP/UDP. Hii kawaida inahitajika wakati wa kuhudumia wateja wa Windows.

    Chaguo zote zinazopatikana na syntax ya kuandika wapangishi, vikundi vya waandaji, n.k. unaweza kuisoma kwenye mwongozo

    Mzizi@ubuntu:~# usafirishaji nje -a

    Sasa hebu tuangalie kile tulichouza nje.

    Mizizi@ubuntu: ~# mauzo ya nje -v/nyumbani/alex/nfs_dir1 192.168.2.180 (rw, wdelay, all_squash, no_subtree_check, ukosefu wa usalama)/nyumbani/alex/nfs_dir2 192.168.2.0/wdw.

    Seva imesanidiwa.

    Kuweka wateja

    Kuanzisha mteja wa Windows

    Ikiwa hakukuwa na ujumbe wa makosa. Unaweza kuanza kuweka kwenye upande wa mteja.
    Kwanza, unahitaji kuongeza huduma ya NFS (huduma ya mteja). Ili kufanya hivyo, nenda kwa Anza -> Jopo la Kudhibiti -> Programu na Vipengele na ubofye kipengee cha menyu upande wa kushoto Washa au uzime vipengele vya Windows. Katika dirisha inayoonekana, chagua Mteja wa NFS na bonyeza sawa(Mchoro 1).


    Picha 1

    Ifuatayo, unahitaji kuweka diski. Ili kufanya hivyo, unaweza kutumia mstari wa amri au bonyeza tu bonyeza kulia kwenye Kompyuta yangu na uchague Hifadhi ya Mtandao ya Ramani. NA weka mstari \\192.168.2.213\nyumbani\lex\nfs_dir1. Hii ni IP ya seva na njia ya folda (Mchoro 2).


    Kielelezo cha 2

    Ikiwa kila kitu ni sawa, tutaona diski (Mchoro 3).


    Kielelezo cha 3

    Vile vile vinaweza kufanywa kwa kutumia mstari wa amri (Mchoro 4).


    Kielelezo cha 4

    Makosa yanayowezekana:

    Hutaweza kuunganisha gari la mtandao la NFS kwenye Windows OS (Mchoro 5) ikiwa
    1. Kiteja cha NFS hakijasakinishwa
    2. Firewall imewashwa (haijasanidiwa)
    3. Hakuna ufikiaji wa mtandao kwa seva
    4. Vigezo vya mlima visivyo sahihi vimeingia
    5. Uhamishaji haujasanidiwa (mipangilio haitumiki) kwenye seva.
    6. Ongeza chaguo lisilo salama katika mipangilio ya kuuza nje


    Kielelezo 5 - Hitilafu ya kuunganisha gari la NFS la mtandao

    Hutaweza kuongeza faili kwenye mfumo wa faili uliopachikwa (Mchoro 6) ikiwa:
    1. Ruhusa za folda hazijawekwa kwenye seva (hakuna mtu: hakuna kikundi)
    2. Chaguo la all_squash halijawekwa katika mipangilio ya kusafirisha nje
    3. Chaguo la rw halijawekwa katika mipangilio ya kuhamisha


    Kielelezo 6 - Hitilafu wakati wa kuongeza faili kwenye diski ya NFS

    Kuanzisha mteja wa Centos

    Kuweka mifumo ya Linux ni rahisi sana na haina uchungu. Unahitaji tu kufunga vifurushi muhimu na kuweka diski. Centos inahitaji vifurushi vifuatavyo

    # yum kusakinisha nfs-utils nfs-utils-lib

    # mkdir -p /mnt/nfs # mlima 192.168.2.213:/home/alex/nfs_dir1 /mnt/nfs # weka /dev/mapper/vg_slave-lv_root kwenye / chapa ext4 (rw) proc kwenye /proc aina proc (rw) sysfs kwenye /sys aina sysfs (rw) devpts kwenye /dev/pts aina devpts (rw,gid=5,mode=620) tmpfs kwenye /dev/shm aina tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0" ) /dev/sda1 kwenye /boot aina ext4 (rw) hakuna kwenye /proc/sys/fs/binfmt_misc aina binfmt_misc (rw) sunrpc kwenye /var/lib/nfs/rpc_pipefs aina rpc_pipefs (rw) 192.23:16. alex/nfs_dir1 kwenye /mnt/nfs aina ya nfs (rw,vers=4,addr=192.168.2.213,clientaddr=192.168.2.72)

    Katika kesi hii, tunaweza kuongeza faili na saraka yoyote kwenye folda ya nfs_dir1 iliyowekwa kwa niaba ya mtumiaji yeyote kwenye mfumo ( boga_yote) Lakini ikiwa tutaweka folda ya pili nfs_dir2, basi mizizi PEKEE inaweza kuiandikia, kwani kuna chaguo hapo. hakuna_mizizi_boga. Hebu tuangalie.

    # mkdir /mnt/dir1 # mkdir /mnt/dir2 # mount 192.168.2.213:/home/alex/nfs_dir1 /mnt/dir1 # mlima 192.168.2.213:/home/alex/nfnt/dir2 nf #4/m -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 "Hujambo" > /mnt/dir1/file1 $ echo "Hujambo" > /mnt/dir2/file1 bash: /mnt/dir2/file1: Ruhusa imekataliwa

    Inawezekana kuweka bendera.

    Bendera Maelezo
    rw Panda mfumo wa faili kwa kusoma/kuandika (lazima isafirishwe na seva katika hali ya kusoma/kuandika)
    th Inaweka mfumo wa faili wa kusoma tu
    bg Ikiwa mfumo wa faili hauwezi kupachikwa (seva haijibu), unapaswa kusogeza utendakazi chinichini na uendelee kuchakata maombi mengine ya kupachika.
    ngumu Seva ikishuka, shughuli zinazojaribu kuipata huzuiwa hadi seva irudi mtandaoni
    laini Ikiwa seva itashuka, shughuli zinazojaribu kuipata hushindwa na ujumbe wa hitilafu. Bendera hii ni muhimu kuweka ili kuzuia michakato kutoka kuning'inia katika tukio la kupachika bila kufaulu kwa mifumo ya faili isiyo muhimu.
    intr Hukuruhusu kukatiza shughuli zilizozuiwa kutoka kwa kibodi (ujumbe wa hitilafu utaonyeshwa)
    nointr Haikuruhusu kukatiza shughuli zilizozuiwa kutoka kwa kibodi
    retrans=n Hubainisha ni mara ngapi ombi lazima lirudiwe kabla ya ujumbe wa hitilafu kurudishwa (kwa mifumo ya faili iliyowekwa na bendera laini)
    muda=n Huweka muda wa kuisha kwa maombi (katika sehemu ya kumi ya sekunde)
    rsize=n Huweka saizi ya bafa iliyosomwa kuwa baiti n
    wsize=fl Huweka saizi ya bafa ya uandishi kuwa baiti n
    sekunde=modi Inaweka hali ya usalama
    mistari=n Inaweka toleo la itifaki ya NFS
    proto = itifaki Inachagua itifaki ya usafiri; inapaswa kuwa itifaki ya tcp ya toleo la 4 la NVS

    Unaweza pia kuangalia kutoka kwa kiweko ikiwa seva ilihamisha mfumo wa faili kwa usahihi.

    Root@centos ~# showmount -e 192.168.2.213 Orodha ya Hamisha ya 192.168.2.213: /home/alex/nfs_dir2 192.168.2.0/24 /home/alex/nfs_dir1 192.1808.2.

    Inaongeza mahali pa kupachika ili kuanza

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

    Mzizi@centos ~# weka -a -t nfs4

    Makosa yanayowezekana.

    Root@centos ~# mount -a -t nfs4 mount.nfs4: mount point /mnt/dir2 haipo root@centos ~# mount -a -t nfs4 mount.nfs4: kushiriki kwa mbali sio katika umbizo la "host:dir"

    Katika kesi ya kwanza, unahitaji kuunda folda. Ya pili ina makosa ya kisintaksia katika fstab.
    Ikiwa utapata makosa wakati wa kuweka sehemu za NFS, pitia orodha Makosa yanayowezekana kutoka sehemu iliyotangulia.
    Unaweza pia kutumia otomatiki kuweka sehemu za NFS. Nini kitajadiliwa katika.

    NFS, au Mfumo wa Faili za Mtandao, ni itifaki maarufu ya mfumo wa faili ya mtandao ambayo inaruhusu watumiaji kuweka saraka za mtandao wa mbali kwenye mashine zao na kuhamisha faili kati ya seva. Unaweza kutumia nafasi ya diski kwenye mashine nyingine kwa faili zako na ufanye kazi na faili zilizo kwenye seva zingine. Kimsingi, hii ni njia mbadala ya kushiriki Windows kwa Linux, tofauti na Samba, inatekelezwa katika kiwango cha kernel na inafanya kazi kwa utulivu zaidi.

    Nakala hii itashughulikia kusakinisha nfs kwenye Ubuntu 16.04. Tutaangalia kufunga vipengele vyote muhimu, kuanzisha folda iliyoshirikiwa, na kuunganisha folda za mtandao.

    Kama ilivyoelezwa tayari, NFS ni mfumo wa faili wa mtandao. Ili kufanya kazi, unahitaji seva ambayo itapangisha folda iliyoshirikiwa na wateja ambao wanaweza kuweka folda ya mtandao kama diski ya kawaida kwenye mfumo. Tofauti na itifaki zingine, NFS hutoa ufikiaji wa uwazi kwa faili za mbali. Programu zitaona faili kama katika mfumo wa kawaida wa faili na kufanya kazi nao kama ilivyo kwa faili za kawaida, nfs inarudisha tu sehemu iliyoombwa ya faili, badala ya faili nzima, kwa hivyo mfumo huu wa faili utafanya kazi kikamilifu kwenye mifumo iliyo na mtandao wa haraka au kwenye a. mtandao wa ndani.

    Inasakinisha Vipengee vya NFS

    Kabla ya kufanya kazi na NFS, tutalazimika kusakinisha programu kadhaa. Kwenye mashine ambayo itakuwa seva, unahitaji kusakinisha kifurushi cha nfs-kernel-server, ambacho kitatumika kufungua hisa za nfs katika ubuntu 16.04. Ili kufanya hivyo, endesha:

    sudo apt install nfs-kernel-server

    Sasa hebu tuangalie ikiwa seva imewekwa kwa usahihi. Huduma ya NFS husikiliza miunganisho ya TCP na UDP kwenye bandari 2049. Unaweza kuona kama bandari hizi zinatumika na amri:

    rpcinfo -p | grep nfs

    Ni muhimu pia kuangalia ikiwa NFS inaungwa mkono katika kiwango cha kernel:

    paka /proc/filesystems | grep nfs

    Tunaona kuwa inafanya kazi, lakini ikiwa sivyo, unahitaji kupakia kwa mikono moduli ya kernel ya nfs:

    Wacha pia tuongeze nfs kwa kuanza:

    sudo systemctl kuwezesha nfs

    Unahitaji kusakinisha kifurushi cha nfs-kawaida kwenye kompyuta ya mteja ili kuweza kufanya kazi na mfumo huu wa faili. Sio lazima usakinishe vifaa vya seva, kifurushi hiki tu kitatosha:

    sudo apt install nfs-kawaida

    Kuanzisha seva ya NFS kwenye Ubuntu

    Tunaweza kufungua ufikiaji wa NFS kwa folda yoyote, lakini wacha tuunde mpya kwa kusudi hili:

    folda_anwani_ya mteja (chaguo)

    Anwani ya folda ni folda ambayo inahitaji kupatikana kupitia mtandao. Mteja - Anwani ya IP au anwani ya mtandao ambayo folda hii inaweza kupatikana. Lakini kwa chaguzi ni ngumu zaidi. Hebu tuangalie baadhi yao:

    • rw- Ruhusu kusoma na kuandika kwenye folda hii
    • ro- Ruhusu kusoma tu
    • kusawazisha- jibu maombi yanayofuata tu wakati data imehifadhiwa kwenye diski (chaguo-msingi)
    • Async- usizuie miunganisho wakati data inaandikwa kwenye diski
    • salama- tumia bandari zilizo chini ya 1024 pekee kwa unganisho
    • kutokuwa na usalama- tumia bandari yoyote
    • nohide- usifiche subdirectories wakati wa kufungua upatikanaji wa saraka kadhaa
    • mzizi_boga- Badilisha maombi kutoka kwa mizizi na yale yasiyojulikana
    • boga_yote- geuza maombi yote yasijulikane
    • anonuid Na anongid- inabainisha uid na gid kwa mtumiaji asiyejulikana.

    Kwa mfano, kwa folda yetu mstari huu unaweza kuonekana kama hii:

    /var/nfs 127.0.0.1(rw,sync,no_subtree_check)

    Mara tu kila kitu kilipoundwa, kilichobaki ni kusasisha jedwali la usafirishaji la NFS:

    sudo exportfs -a

    Hiyo yote, kufungua hisa za nfs katika ubuntu 16.04 imekamilika. Sasa hebu tujaribu kusanidi mteja na jaribu kuiweka.

    Muunganisho wa NFS

    Hatutazingatia suala hili kwa undani katika makala ya leo. Hii ni mada kubwa ambayo inastahili nakala yake. Lakini bado nitasema maneno machache.

    Ili kuweka folda ya mtandao, hauitaji mteja wowote wa Ubuntu nfs, tumia tu amri ya kuweka:

    sudo mount 127.0.0.1:/var/nfs/ /mnt/

    Sasa unaweza kujaribu kuunda faili kwenye saraka iliyounganishwa:

    Pia tutaangalia mifumo ya faili iliyowekwa kwa kutumia df:

    127.0.0.1:/var/nfs 30G 6.7G 22G 24% /mnt

    Ili kuzima mfumo huu wa faili, tumia tu umount kawaida:

    sudo umount /mnt/

    hitimisho

    Nakala hii ilijadili kusanidi nfs ubuntu 16.04, kama unavyoona, kila kitu kinafanywa kwa urahisi sana na kwa uwazi. Kuunganisha hisa za NFS hufanywa kwa kubofya mara chache kwa kutumia amri za kawaida, na kufungua hisa za nfs katika ubuntu 16.04 sio ngumu zaidi kuliko kuunganisha. Ikiwa una maswali yoyote, andika kwenye maoni!

    Machapisho yanayohusiana: