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

NFS: mfumo wa faili wa mtandao unaofaa na wa kuahidi

Mfumo wa faili wa mtandao ni muhtasari wa mtandao juu ya mfumo wa faili wa kawaida unaoruhusu mteja wa mbali kuufikia kupitia mtandao kwa njia sawa na wakati wa kufikia mifumo ya faili ya ndani. Ingawa NFS haikuwa mfumo wa kwanza wa faili wa mtandao, umebadilika na kuwa mfumo wa faili wa mtandao wenye uwezo na maarufu zaidi katika UNIX® leo. NFS inaruhusu watumiaji wengi kushiriki mfumo wa faili wa kawaida na kuweka data kati ili kupunguza nafasi ya diski inayohitajika kuihifadhi.

Nakala hii inaanza na muhtasari mfupi wa historia ya NFS na kisha inaendelea kuchunguza usanifu wa NFS na jinsi inaweza kubadilika katika siku zijazo.

Historia fupi ya NFS

Mfumo wa faili wa kwanza wa mtandao uliitwa FAL (File Access Listener) na ulianzishwa mwaka wa 1976 na DEC (Shirika la Vifaa vya Dijiti). Ilikuwa ni utekelezaji wa itifaki ya DAP (Itifaki ya Ufikiaji wa Data) na ilikuwa sehemu ya kundi la itifaki ya DECnet. Kama ilivyo kwa TCP/IP, DEC imechapisha vipimo vya itifaki zake za mtandao, ikijumuisha itifaki ya DAP.

NFS ilikuwa mfumo wa kwanza wa kisasa wa faili wa mtandao uliojengwa juu ya itifaki ya IP. Mfano wake unaweza kuchukuliwa kuwa mfumo wa majaribio wa faili uliotengenezwa katika Mifumo midogo ya jua katika miaka ya 80 ya mapema. Kwa kuzingatia umaarufu wa suluhisho hili, itifaki ya NFS ilianzishwa kama vipimo vya RFC na baadaye ikabadilishwa kuwa NFSv2. NFS ilijiimarisha haraka kama kiwango kutokana na uwezo wake wa kuingiliana na wateja na seva zingine.

Kiwango kilisasishwa hadi NFSv3, kilichofafanuliwa katika RFC 1813. Toleo hili la itifaki lilikuwa rahisi zaidi kuliko matoleo ya awali na liliauni faili kubwa zaidi (zaidi ya GB 2), uandishi usiolingana na TCP kama itifaki ya usafiri. NFSv3 iliweka mwelekeo wa ukuzaji wa mifumo ya faili kwa mitandao ya eneo pana (WAN). Mnamo 2000, RFC 3010 (iliyorekebishwa kama RFC 3530) ilileta NFS katika mazingira ya biashara. Sun ilianzisha NFSv4 iliyo salama zaidi kwa usaidizi wa hali ya juu (matoleo ya awali ya NFS hayakutumia hifadhi ya hali ya juu, yaani, yaliainishwa kuwa yasiyo na uraia). Hivi sasa, toleo la hivi karibuni la NFS ni toleo la 4.1, lililofafanuliwa katika RFC 5661, ambalo linaongeza itifaki kwa kupanua. pNFS usaidizi wa ufikiaji sambamba kwa seva zilizosambazwa umeongezwa.

Historia ya NFS, ikijumuisha RFC maalum zinazoelezea matoleo yake, imeonyeshwa kwenye Mchoro 1.


Kwa kushangaza, NFS imekuwa katika maendeleo kwa karibu miaka 30. Ni mfumo wa faili wa mtandao dhabiti na unaobebeka na wenye uwezo bora wa kubadilika, utendakazi na ubora wa vipengele vya huduma. Kadiri kasi inavyoongezeka na muda wa kusubiri unapungua wakati wa kuwasiliana ndani ya mtandao, NFS inaendelea kuwa njia maarufu ya kutekeleza mfumo wa faili ndani ya mtandao. Hata katika kesi ya mitandao ya ndani, virtualization inahimiza kuhifadhi data kwenye mtandao ili kutoa uhamaji wa ziada kwa mashine pepe. NFS pia inasaidia miundo ya hivi punde zaidi ya mazingira ya kompyuta inayolenga kuboresha miundo mbinu pepe.

Usanifu wa NFS

NFS hutumia muundo wa kawaida wa usanifu wa seva ya mteja (kama inavyoonyeshwa kwenye Mchoro 2). Seva ina jukumu la kutekeleza mfumo wa faili ulioshirikiwa na hifadhi ambayo wateja huunganisha. Mteja anatumia kiolesura cha mfumo wa faili ulioshirikiwa uliowekwa ndani ya nafasi ya faili ya ndani ya mteja.

Kielelezo 2. Utekelezaji wa mfano wa seva ya mteja katika usanifu wa NFS

Katika Linux®, swichi ya mfumo wa faili pepe (VFS) hutoa njia ya kusaidia mifumo mingi ya faili (kwa mfano, mfumo wa faili wa ISO 9660 kwenye CD-ROM na mfumo wa faili wa ext3fs kwenye diski kuu ya ndani) wakati huo huo kwenye seva pangishi moja. . Swichi pepe huamua ni kiendeshi gani ambacho ombi linatumwa na kwa hivyo ni mfumo gani wa faili unapaswa kutumika kushughulikia ombi. Kwa hiyo, NFS ina utangamano sawa na mifumo mingine ya faili inayotumiwa katika Linux. Tofauti pekee na NFS ni kwamba badala ya kuchakatwa ndani ya nchi kwenye mwenyeji, maombi ya I/O yanaweza kutumwa kwa mtandao ili kutekelezwa.

VFS huamua kuwa ombi lililopokelewa ni NFS na kuipitisha kwa kidhibiti cha NFS kilicho kwenye kernel. Kidhibiti cha NFS huchakata ombi la I/O na kulitafsiri katika utaratibu wa NFS (FUNGUA, FIKIA, UNDA, SOMA, FUNGA, ONDOA, n.k.). Taratibu hizi, zilizoelezwa katika vipimo tofauti vya RFC, hufafanua tabia ya itifaki ya NFS. Utaratibu unaohitajika huchaguliwa kulingana na ombi na inatekelezwa kwa kutumia teknolojia ya RPC (simu ya mbali). Kama jina lake linavyopendekeza, RPC inaruhusu simu za utaratibu kupigwa kati ya mifumo tofauti. Huduma ya RPC inaambatanisha ombi la NFS na hoja zake na kutuma matokeo kwa seva pangishi ya mbali inayofaa, kisha inafuatilia upokeaji na uchakataji wa jibu ili kulirudisha kwa mwombaji.

RPC pia inajumuisha safu muhimu ya XDR ( uwakilishi wa data ya nje- uwakilishi huru wa data), kuhakikisha kuwa watumiaji wote wa NFS wanatumia umbizo sawa kwa aina sawa za data. Mfumo unapotuma ombi, aina ya data inayotumia inaweza kuwa tofauti na aina ya data inayotumika kwenye seva pangishi kuchakata ombi. Teknolojia ya XDR inashughulikia kazi ya kubadilisha aina kuwa uwakilishi wa kawaida (XDR) ili majukwaa yanayotumia usanifu tofauti yanaweza kuingiliana na kushiriki mifumo ya faili. XDR inafafanua umbizo la biti la aina kama vile kuelea na mpangilio wa baiti kwa aina kama vile safu za urefu usiobadilika na tofauti. Ingawa XDR inajulikana sana kwa matumizi yake katika NFS, vipimo hivi vinaweza kuwa muhimu katika hali zote ambapo lazima ufanye kazi katika mazingira sawa na usanifu tofauti.

Baada ya XDR kutafsiri data katika uwakilishi wa kawaida, ombi hutumwa kupitia mtandao kwa kutumia itifaki maalum ya usafiri. Utekelezaji wa awali wa NFS ulitumia UDP, lakini leo TCP inatumiwa kwa kuaminika zaidi.

Algorithm sawa inatumika kwa upande wa seva ya NFS. Ombi husafirisha rundo la mtandao kupitia safu ya RPC/XDR (kubadilisha aina za data kulingana na usanifu wa seva) na hadi kwenye seva ya NFS, ambayo inawajibika kushughulikia ombi. Huko, ombi linapitishwa kwa daemon ya NFS ili kuamua mfumo wa faili unaolengwa ambao unashughulikiwa, na kisha tena huenda kwa VFS ili kufikia mfumo huo wa faili kwenye diski ya ndani. Mchoro kamili wa mchakato huu umeonyeshwa kwenye Mchoro 3. Katika kesi hii, mfumo wa faili wa ndani wa seva ni mfumo wa faili wa Linux wa kawaida, kwa mfano, ext4fs. Kwa asili, NFS sio mfumo wa faili kwa maana ya jadi ya neno, lakini itifaki ya ufikiaji wa mbali kwa mifumo ya faili.


Kwa mitandao yenye latency ya muda mrefu, NFSv4 inatoa utaratibu maalum wa kiwanja ( utaratibu wa kiwanja) Utaratibu huu hukuruhusu kupiga simu nyingi za RPC ndani ya ombi moja ili kupunguza gharama ya kutuma maombi kupitia mtandao. Utaratibu huu pia hutekeleza utaratibu wa utendakazi wa kurudi nyuma kwa kupokea majibu.

Itifaki ya NFS

Wakati mteja anapoanza kutumia NFS, hatua ya kwanza ni kufanya operesheni ya kupachika, ambayo ni kuweka mfumo wa faili wa mbali kwenye nafasi ya mfumo wa faili wa ndani. Utaratibu huu huanza na wito kwa utaratibu wa kupachika (moja ya kazi za mfumo wa Linux), ambayo inaelekezwa kupitia VFS hadi sehemu ya NFS. Kisha, simu ya RPC kwa kazi ya get_port kwenye seva ya mbali huamua nambari ya mlango ambayo itatumika kupachika, na mteja hutuma ombi la kupachika kupitia RPC. Ombi hili kwa upande wa seva linachakatwa na daemon maalum rpc.mountd, ambayo inawajibika kwa itifaki ya mlima ( weka itifaki) Daemon hukagua kuwa mfumo wa faili ulioombwa na mteja uko kwenye orodha ya mifumo inayopatikana kwenye seva iliyotolewa. Ikiwa mfumo ulioombwa upo na mteja anaufikia, majibu ya RPC ya kupachika hubainisha kifafanuzi cha mfumo wa faili. Mteja huhifadhi maelezo kuhusu sehemu za kupachika za ndani na za mbali na anaweza kutuma maombi ya I/O. Itifaki ya kupachika si salama kwa mtazamo wa usalama, kwa hivyo NFSv4 hutumia simu za ndani za RPC badala yake, ambayo inaweza pia kudhibiti sehemu za kupachika.

Ili kusoma faili, lazima kwanza uifungue. Hakuna utaratibu wa OPEN katika RPC; badala yake, mteja hukagua tu ikiwa faili na saraka iliyoainishwa ipo kwenye mfumo wa faili uliowekwa. Mteja huanza kwa kutuma ombi la GETATTR RPC kwenye saraka, ambayo inarudisha sifa za saraka au kiashirio kwamba saraka haipo. Kisha, ili kuangalia uwepo wa faili, mteja atatoa ombi la LOOKUP RPC. Ikiwa faili iko, ombi la GETATTR RPC hufanywa juu yake ili kujua sifa za faili. Kwa kutumia maelezo yaliyopatikana kutoka kwa simu za LOOKUP na GETATTR zilizofaulu, mteja huunda mpini wa faili ambao hutolewa kwa mtumiaji kwa maombi ya siku zijazo.

Baada ya faili kutambuliwa kwenye mfumo wa faili wa mbali, mteja anaweza kutoa maombi ya RPC READ. Ombi hili linajumuisha kifafanuzi cha faili, hali, urekebishaji, na idadi ya baiti za kusoma. Mteja hutumia hali ( jimbo) ili kuamua ikiwa operesheni inaweza kufanywa kwa sasa, i.e. Je, faili imefungwa? Kukabiliana ( kukabiliana) inaonyesha katika nafasi gani ya kuanza kusoma, na kaunta ya byte ( hesabu) huamua ni baiti ngapi zinahitaji kusomwa. Kama matokeo ya simu ya RPC READ, seva hairudishi baiti nyingi kama ilivyoombwa kila wakati, lakini pamoja na data iliyorejeshwa huripoti ni baiti ngapi zilitumwa kwa mteja.

Ubunifu katika NFS

Matoleo mawili ya hivi karibuni ya NFS yanavutia zaidi - 4 na 4.1, kama mifano ambayo unaweza kusoma vipengele muhimu zaidi vya mageuzi ya teknolojia ya NFS.

Kabla ya NFSv4 kupatikana kufanya kazi za usimamizi wa faili kama vile kuweka, kufunga, nk. kulikuwa na itifaki maalum za ziada. Katika NFSv4, mchakato wa usimamizi wa faili umerahisishwa kwa itifaki moja; Kwa kuongeza, kuanzia na toleo hili, UDP haitumiki tena kama itifaki ya usafiri. NFSv4 inajumuisha usaidizi kwa UNIX na Windows® semantiki za ufikiaji wa faili, ikiruhusu NFS kuunganishwa kwa kawaida katika mifumo mingine ya uendeshaji.

NFSv4.1 ilianzisha dhana ya NFS sambamba(NFS sambamba - pNFS). Ili kutoa viwango vikubwa vya upanuzi, NFSv4.1 hutumia usanifu ambamo data na metadata ( kuashiria) husambazwa katika vifaa vyote kwa njia sawa na jinsi inavyofanywa katika mifumo iliyounganishwa ya faili. Kama inavyoonyeshwa katika , pNFS inagawanya mfumo ikolojia katika vipengele vitatu: mteja, seva, na hifadhi. Katika kesi hii, njia mbili zinaonekana: moja ya kusambaza data, na nyingine ya kupeleka amri za udhibiti. pNFS hutenganisha data kutoka kwa metadata inayoielezea, ikitoa usanifu wa njia mbili. Wakati mteja anataka kufikia faili, seva huituma metadata na "markup". Metadata ina taarifa kuhusu eneo la faili kwenye vifaa vya kuhifadhi. Mara mteja anapopata maelezo haya, anaweza kufikia hifadhi moja kwa moja bila kuingiliana na seva, kuboresha utendakazi na uboreshaji. Wakati mteja anamaliza kufanya kazi na faili, inathibitisha mabadiliko yaliyofanywa kwenye faili na "markup" yake. Ikiwa ni lazima, seva inaweza kuomba metadata na markup kutoka kwa mteja.

Pamoja na ujio wa pNFS, shughuli kadhaa mpya ziliongezwa kwa itifaki ya NFS kusaidia utaratibu kama huo. Mbinu ya LayoutGet inatumika kupata metadata kutoka kwa seva, mbinu ya LayoutReturn "hukomboa" metadata "iliyokamatwa" na mteja, na mbinu ya LayoutCommit hupakia "mpangilio" uliopokewa kutoka kwa mteja hadi kwenye hifadhi ili ipatikane kwa watumiaji wengine. Seva inaweza kukumbuka metadata kutoka kwa mteja kwa kutumia mbinu ya LayoutRecall. Metadata "iliyotambulishwa" inasambazwa kwenye vifaa vingi vya hifadhi ili kutoa ufikiaji sambamba na utendakazi wa juu.


Data na metadata huhifadhiwa kwenye vifaa vya kuhifadhi. Wateja wanaweza kutekeleza maombi ya moja kwa moja ya I/O kulingana na lebo iliyopokelewa, na seva ya NFSv4.1 huhifadhi na kudhibiti metadata. Utendaji huu wenyewe si mpya, lakini pNFS iliongeza usaidizi kwa mbinu mbalimbali za kufikia vifaa vya kuhifadhi. Leo, pNFS inasaidia matumizi ya itifaki za kuzuia (Fibre Channel), itifaki za kitu, na NFS yenyewe (hata katika fomu ya pNFS).

Maendeleo ya NFS yanaendelea, na mnamo Septemba 2010, mahitaji ya NFSv4.2 yalichapishwa. Baadhi ya uvumbuzi unahusiana na uhamishaji unaoendelea wa teknolojia za kuhifadhi data kuelekea uboreshaji. Kwa mfano, katika mazingira ya mtandaoni yenye hypervisor, kuna uwezekano mkubwa wa kutokea tena kwa data (mifumo mingi ya uendeshaji kusoma/kuandika na kuakibisha data sawa). Kwa sababu hii, ni kuhitajika kwa mfumo wa kuhifadhi kwa ujumla kuelewa ambapo kurudia hutokea. Mbinu hii itasaidia kuokoa nafasi ya akiba ya mteja na uwezo wa jumla wa kuhifadhi. NFSv4.2 inapendekeza kutumia "ramani ya kuzuia ya vizuizi vilivyoshirikiwa" kutatua tatizo hili. Mifumo ya kisasa ya uhifadhi inapozidi kuja na uwezo wao wa ndani wa kompyuta, kunakili upande wa seva kunaanzishwa ili kupunguza mzigo wa kunakili data kwenye mtandao wa ndani wakati kunaweza kufanywa kwa ufanisi kwenye kifaa chenyewe cha kuhifadhi. Ubunifu mwingine ni pamoja na uhifadhi wa faili ndogo kwa kumbukumbu ya flash na mapendekezo ya kurekebisha ya I/O ya upande wa mteja (kama vile kutumia mapadvise).

NFS Mbadala

Ingawa NFS ndio mfumo maarufu wa faili wa mtandao katika UNIX na Linux, kuna mifumo mingine ya faili za mtandao. Kwenye jukwaa la Windows®, SMB hutumiwa sana, pia inajulikana kama CIFS; hata hivyo, Windows OS pia inasaidia NFS, vilevile Linux inasaidia SMB.

Mojawapo ya mifumo mipya ya faili iliyosambazwa inayotumika kwenye Linux, Ceph, imeundwa kuanzia mwanzo hadi kuwa mfumo wa faili unaohimili makosa wa POSIX. Habari zaidi kuhusu Ceph inaweza kupatikana katika sehemu.

Inafaa pia kutaja mifumo ya faili ya OpenAFS (Toleo la Chanzo Huria la mfumo wa faili uliosambazwa wa Andrew, uliotengenezwa katika Chuo Kikuu cha Carnegie Mellon na IBM Corporation), GlusterFS (mfumo wa faili uliosambazwa kwa madhumuni ya jumla ya kuandaa uhifadhi wa data mbaya) na Luster (kwa wingi. mfumo wa faili wa mtandao sambamba kwa ufumbuzi wa nguzo). Mifumo hii yote ya chanzo huria inaweza kutumika kujenga hifadhi iliyosambazwa.

Hitimisho

Uendelezaji wa mfumo wa faili wa NFS unaendelea. Sawa na mfumo wa uendeshaji wa Linux, ambao unaweza kusaidia masuluhisho ya hali ya chini, iliyopachikwa na ya hali ya juu, NFS hutoa usanifu wa suluhu za uhifadhi mbaya zinazofaa kwa watu binafsi na mashirika. Unapoangalia safari ya NFS tayari imechukua na matarajio ya maendeleo yake ya baadaye, inakuwa wazi kwamba mfumo huu wa faili utaendelea kubadilisha njia tunayofikiri kuhusu jinsi teknolojia za kuhifadhi faili zinatekelezwa na kutumika.

Mifumo ya faili ya mtandao

Moja ya kazi muhimu zaidi ambayo inaweza kupatikana kwa kutumia mtandao ni kushiriki faili kupitia mfumo wa faili wa mtandao. Mfumo unaotumiwa sana unaitwa Mfumo wa Faili ya Mtandao au NFS, ambao unatengenezwa na Sun Corporation.

Wakati wa kufanya kazi na mfumo wa faili wa mtandao, shughuli zozote kwenye faili zilizofanywa kwenye kompyuta ya ndani zinahamishwa kupitia mtandao hadi kwenye mashine ya mbali. Wakati mfumo wa faili wa mtandao unafanya kazi, programu inaamini kwamba faili zote kwenye kompyuta ya mbali ziko kwenye kompyuta ambako inaendesha. Kwa hivyo, kutenganisha habari kupitia mfumo kama huo hauitaji mabadiliko yoyote kwenye programu.

Barua

Barua pepe ni njia muhimu zaidi ya mawasiliano kati ya kompyuta. Barua pepe huhifadhiwa katika faili moja katika muundo maalum. Programu maalum hutumiwa kusoma na kutuma barua.

Kila mtumiaji ana sanduku la barua tofauti, faili ambapo habari huhifadhiwa katika muundo maalum ambao barua zinazoingia huhifadhiwa. Ikiwa barua inakuja kwenye kompyuta, programu ya usindikaji wa barua hupata faili ya mailbox ya mtumiaji sambamba na kuongeza barua iliyopokelewa huko. Ikiwa sanduku la barua la mtumiaji liko kwenye kompyuta nyingine, basi barua hiyo inaelekezwa kwenye kompyuta hii, ambako inasindika zaidi.

Mfumo wa barua unajumuisha programu nyingi tofauti. Uwasilishaji wa barua kwa sanduku za barua za ndani au za mbali hufanywa na programu moja (kwa mfano, barua pepe au smail), wakati kwa kutuma mara kwa mara au kutazama barua idadi kubwa ya programu tofauti hutumiwa (kwa mfano, Pine au elm). Faili za sanduku la barua. kawaida huhifadhiwa kwenye saraka. var/spool/mail.

Maswali

1. NOS ni nini na kusudi lake ni nini?

2. Mfumo wa uendeshaji wa mtandao hufanya kazi gani?

3. Je, muundo wa NOS unajumuisha sehemu gani?

4. Redirector ni nini?

5. Mifumo ya uendeshaji ya mtandao imegawanywaje kulingana na haki za upatikanaji wa rasilimali?

6. Mifumo ya uendeshaji ya mtandao imegawanywaje kulingana na ukubwa wa mitandao?

7. Je, mali ya mfumo wa uendeshaji wa mtandao inategemeaje ukubwa wa mitandao?

8. Eleza mfumo wa uendeshaji wa mtandao wa NetWare kutoka Novell.

9. Ni vipengele gani vinavyounda muundo wa mfumo wa uendeshaji wa mtandao wa NetWare?

10. Eleza mfumo wa faili wa mfumo wa uendeshaji wa mtandao wa NetWare.

11. Mfumo wa uendeshaji wa mtandao wa NetWare unaunga mkono viwango gani vya itifaki?

12. Orodhesha kazi za itifaki za IPX, SPX.

13. Eleza mfumo wa uendeshaji wa mtandao wa Windows NT.

14. Orodhesha kazi za mfumo wa uendeshaji wa mtandao wa Windows NT.

15. Je, muundo wa mfumo wa uendeshaji wa mtandao wa Windows NT unajumuisha vipengele gani?

16. Eleza mfumo wa faili wa OS ya mtandao wa Windows NT.

17. Ni kanuni gani za usalama zinazotumiwa katika mfumo wa uendeshaji wa mtandao wa Windows NT?

18. Orodhesha vipengele vya mfumo wa uendeshaji wa mtandao wa Windows NT kutoka kwa mtazamo wa kutekeleza zana za mtandao.

19. Taja sifa za mfumo wa uendeshaji wa mtandao wa Windows NT.

20. Je! ni matumizi gani ya Windows NT?

21. Eleza mfumo wa uendeshaji wa mtandao wa UNIX.

22. Orodhesha kazi za mfumo wa uendeshaji wa mtandao wa UNIX.

23. Tabia ya mfumo wa faili wa UNIX mtandao OS.

24. Ni kanuni gani za usalama zinazotumiwa na UNIX?

25. Toa muhtasari wa mfumo wa uendeshaji wa mtandao wa Linux.

Kila mtu anajua kwamba kwenye mifumo ya UNIX, mfumo wa faili kimantiki ni mkusanyiko wa mifumo ya faili ya kimwili iliyounganishwa na hatua moja. Moja ya faida kuu za shirika kama hilo, kwa maoni yangu, ni uwezo wa kurekebisha kwa nguvu muundo wa mfumo uliopo wa faili. Pia, kutokana na jitihada za watengenezaji, leo tuna fursa ya kuunganisha mfumo wa faili wa karibu aina yoyote na kwa njia yoyote rahisi. Kwa "mbinu", mimi kwanza kabisa nataka kusisitiza uwezo wa kernel ya OS kufanya kazi na mifumo ya faili kupitia viunganisho vya mtandao.

Itifaki nyingi za mtandao hutupatia uwezo wa kufanya kazi na faili za mbali, iwe FTP, SMB, Telnet au SSH. Shukrani kwa uwezo wa kernel hatimaye kutotegemea aina ya mfumo wa faili unaounganishwa, tuna uwezo wa kuunganisha chochote na hata hivyo tunataka kutumia programu ya mount.

Leo ningependa kuzungumza juu ya NFS - Mfumo wa Faili ya Mtandao. Teknolojia hii inakuwezesha kuunganisha pointi za mfumo wa faili binafsi kwenye kompyuta ya mbali kwenye mfumo wa faili wa kompyuta ya ndani. Itifaki ya NFS yenyewe hukuruhusu kufanya shughuli za faili haraka, kwa usalama na kwa uhakika. Tunahitaji nini kingine? :-)

Ni nini kinachohitajika kwa hii kufanya kazi

Ili sio kupiga kelele kwa muda mrefu juu ya mada ya matoleo ya NFS na usaidizi wao katika kernels mbalimbali, tutafanya mara moja dhana kwamba toleo lako la kernel sio chini kuliko 2.2.18. Katika nyaraka rasmi, watengenezaji huahidi usaidizi kamili kwa utendaji wa toleo la 3 la NFS katika kernel hii na matoleo ya baadaye.

Ufungaji

Ili kuendesha seva ya NFS kwenye Ubuntu 7.10 yangu - Gibbon ya Gutsy, nilihitaji kusakinisha vifurushi vya nfs-kawaida na nfs-kernel-server. Ikiwa unahitaji tu mteja wa NFS, basi nfs-kernel-server haihitaji kusakinishwa.

Urekebishaji wa Seva

Baada ya vifurushi vyote kusanikishwa kwa ufanisi, unahitaji kuangalia ikiwa daemon ya NFS inafanya kazi:

/etc/init.d/nfs-kernel-server hali

Ikiwa daemon haifanyi kazi, unahitaji kuianzisha kwa amri

/etc/init.d/nfs-kernel-server kuanza

Baada ya kila kitu kuanza kwa ufanisi, unaweza kuanza kusafirisha mfumo wa faili. Mchakato yenyewe ni rahisi sana na huchukua muda mdogo.

Faili kuu ya usanidi wa seva ya NFS iko katika /etc/exports na ina umbizo lifuatalo:

Mashine ya saraka1(chaguo11,chaguo12) mashine2(chaguo21,chaguo22)

saraka- njia kamili ya saraka ya seva ya FS ambayo unahitaji kutoa ufikiaji

mashineX- Jina la DNS au anwani ya IP ya kompyuta ya mteja ambayo ufikiaji unaruhusiwa

chaguoXX- Vigezo vya usafirishaji wa FS, vinavyotumiwa zaidi kati yao:

  • ro- ufikiaji wa faili ni wa kusoma tu
  • rw— ufikiaji wa kusoma/kuandika umetolewa
  • hakuna_mizizi_boga- kwa chaguo-msingi, ukiunganisha kwa rasilimali ya NFS kama mzizi, seva, kwa ajili ya usalama, upande wake itafikia faili kama mtumiaji asiye na mtu. Walakini, ukiwezesha chaguo hili, faili zilizo kwenye upande wa seva zitafikiwa kama mzizi. Kuwa makini na chaguo hili.
  • no_subtree_check- kwa chaguo-msingi, ikiwa husafirisha nje si kizigeu kizima kwenye seva, lakini ni sehemu tu ya mfumo wa faili, daemoni itaangalia ikiwa faili iliyoombwa iko kwenye kizigeu sawa au la. Ikiwa unasafirisha kizigeu kizima au sehemu ya kupachika ya mfumo wa faili uliohamishwa haiathiri faili kutoka kwa kiasi kingine cha kawaida, basi unaweza kuwezesha chaguo hili. Hii itakupa ongezeko la kasi ya seva.
  • kusawazisha— Wezesha chaguo hili ikiwa kuna uwezekano wa kupotea kwa muunganisho wa ghafla au kukatika kwa seva. Ikiwa chaguo hili halijawezeshwa, kuna hatari kubwa sana ya kupoteza data ikiwa seva ya NFS itaacha ghafla.

Kwa hivyo, tuseme tunahitaji kutoa ufikiaji wa kompyuta ya ashep-desktop kwa saraka ya /var/backups ya kompyuta ya ashep-laptop. Ufikiaji wa saraka unahitajika ili kunakili faili za chelezo kutoka kwa ashep-desktop. Faili yangu iligeuka kama hii:

/var/chelezo ashep-desktop(rw,no_subtree_check,sync)

Baada ya kuongeza mstari kwa /etc/exports, lazima uanze upya seva ya NFS ili mabadiliko yaanze kutumika.

/etc/init.d/nfs-kernel-server kuanzisha upya

Ni hayo tu. Unaweza kuanza kuunganisha FS iliyosafirishwa kwenye kompyuta ya mteja.

Mpangilio wa mteja

Kwa upande wa mteja, mfumo wa faili wa mbali umewekwa kwa njia sawa na wengine wote - kwa amri ya mlima. Pia, hakuna mtu anayekukataza kutumia /etc/fstab ikiwa unahitaji kuunganisha FS moja kwa moja wakati buti za OS. Kwa hivyo, chaguo la mlima litaonekana kama hii:

Mount -t nfs ashep-laptop:/var/backups/ /mnt/ashep-laptop/backups/

Ikiwa kila kitu kilikwenda vizuri na unahitaji kuunganishwa na FS ya mbali kiatomati kwenye buti, ongeza tu laini kwa /etc/fstab:

Ashep-laptop:/var/backups /mnt/ashep-laptop/backups nfs auto 0 0

Nini kingine

Kwa hivyo tuna muhtasari wa vitendo, mdogo wa uwezo wa NFS. Kwa kweli, hii ni sehemu ndogo tu ya kile NFS inaweza kufanya. Hii ni ya kutosha kwa matumizi ya nyumbani au katika ofisi ndogo. Ikiwa hii haitoshi kwako, napendekeza kusoma kwanza

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 hifadhi rudufu 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 bandari 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 "faili-ya majaribio" 10:30:16.012729 eth0 192.168.1.254.73 ok476.3476.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.5. .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 unaoweza 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.

Mfumo wa Faili za Mtandao (NFS) ni suluhisho la kushiriki faili kwa mashirika ambayo yamechanganya mazingira ya mashine ya Windows na Unix/Linux. Mfumo wa faili wa NFS hukuwezesha kushiriki faili kwenye majukwaa mahususi unapoendesha mfumo wa uendeshaji wa Windows Server 2012. Huduma za NFS katika Windows Server 2012 zinajumuisha vipengele na viboreshaji vifuatavyo.

1. Utafutaji wa Saraka Inayotumika. Una uwezo wa kutumia Windows Active Directory kufikia faili. Kiendelezi cha Usimamizi wa Utambulisho cha Unix cha schema cha Saraka Inayotumika kina vitambulisho vya mtumiaji vya Unix (UID) na sehemu za kitambulisho cha kikundi (GID). Hii inaruhusu Seva ya NFS na Mteja wa NFS kutazama upangaji wa akaunti ya mtumiaji wa Windows kwenye Unix moja kwa moja kutoka kwa Active Directory Domain Services. Usimamizi wa Utambulisho kwa Unix hurahisisha udhibiti wa upangaji wa akaunti za watumiaji wa Windows kwenye Unix hadi Huduma za Kikoa cha Saraka inayotumika.

2. Utendaji ulioboreshwa wa seva. Huduma za NFS ni pamoja na kiendeshi cha kichujio cha faili ambacho hupunguza sana muda wa kusubiri wakati wa kufikia faili kwenye seva.

3. Msaada kwa vifaa maalum vya Unix. Huduma za NFS inasaidia vifaa maalum vya Unix (mknod).

4. Usaidizi wa Unix uliopanuliwa. Huduma za NFS zinaauni matoleo yafuatayo ya Unix: toleo la 9 la Sun Microsystems Solaris, toleo la 9 la Red Hat Linux, toleo la IBM AIX la 5L 5.2, na toleo la 11i la Hewlett Packard HP-UX, pamoja na usambazaji mwingi wa Linux wa kisasa.

Mojawapo ya matukio ya kawaida ambayo yanaleta hitaji la NFS inahusisha kufichua mfumo wa upangaji wa rasilimali za biashara wa Unix (ERP) kwa watumiaji wa Windows. Wakiwa katika mfumo wa ERP, watumiaji wanaweza kuunda ripoti na/au kuhamisha data ya kifedha kwa Microsoft Excel kwa uchambuzi zaidi. Mfumo wa faili wa NFS huruhusu faili hizi kufikiwa zikiwa bado katika mazingira ya Windows, na hivyo kupunguza hitaji la ujuzi maalum wa kiufundi na muda unaotumika kusafirisha faili kwa kutumia hati ya Unix na kisha kuziingiza kwenye programu mahususi ya Windows.

Kunaweza pia kuwa na hali ambapo una mfumo wa Unix unaotumika kuhifadhi faili kwenye aina fulani ya Mtandao wa Eneo la Hifadhi (SAN). Kuendesha huduma za NFS kwenye mashine ya Windows Server 2012 huruhusu watumiaji katika shirika kufikia faili zilizohifadhiwa hapo bila uwekaji hati wa upande wa Unix.

Kabla ya kusakinisha Huduma za NFS, lazima uondoe vipengele vyovyote vya NFS vilivyosakinishwa hapo awali, kama vile vijenzi vya NFS ambavyo vilijumuishwa na Huduma za Unix.

Vipengele vya Huduma za NFS

Vipengele viwili vifuatavyo vya huduma za NFS vinapatikana.

1. Seva ya NFS(Seva ya NFS). Kwa kawaida, kompyuta yenye msingi wa Unix haiwezi kufikia faili zilizo kwenye kompyuta yenye msingi wa Windows. Walakini, kompyuta inayoendesha Windows Server 2012 R2 na Seva ya NFS inaweza kufanya kama seva ya faili kwa kompyuta za Windows na Unix.

2. Mteja wa NFS(Mteja wa NFS). Kwa kawaida, kompyuta ya Windows haiwezi kufikia faili zilizo kwenye kompyuta ya Unix. Hata hivyo, kompyuta inayoendesha Windows Server 2012 R2 na kipengele cha Mteja wa NFS kinaweza kufikia faili ambazo zimehifadhiwa kwenye seva ya NFS yenye msingi wa Unix.

Kufunga Seva kwa NFS kwa kutumia PowerShell

Wacha tuone jinsi ya kutumia PowerShell kusakinisha jukumu la NFS kwenye seva na kuunda sehemu ya faili ya NFS.

1. Fungua dirisha la Windows PowerShell kupitia upau wa kazi kama akaunti ya msimamizi.

2. Weka amri zifuatazo ili kusakinisha jukumu la NFS kwenye seva:

PS C:\> Ingiza-Moduli ServerManager PS C:\> Ongeza-WindowsFeature FS-NFS-Services PS C:\> Ingiza-Moduli NFS

3. Ingiza amri hapa chini ili kuunda faili mpya ya NFS:

PS C:\> New-NfsShare -Jina "Jaribio" -Njia "C:\Shares\Test"

4. Ili kuona cmdlets zote mpya za PowerShell maalum za NFS ambazo zinapatikana katika Windows Server 2012 R2, endesha amri ifuatayo:

PS C:\>Pata-Amri -Moduli ya NFS

5. Bonyeza-click kwenye folda ya C:\Shares\Test, chagua "mali", kisha uende kwenye kichupo cha Kushiriki NFS. Bofya kwenye kifungo cha Kudhibiti Ushiriki wa NFS, katika sanduku la mazungumzo linaloonekana, unaweza kudhibiti ruhusa za kufikia folda, kuruhusu ufikiaji usiojulikana, na usanidi mipangilio ya encoding ya faili. Unaweza kushiriki folda juu ya NFS kwa kutumia kidirisha cha Kushiriki kwa Hali ya Juu cha NFS bila kutumia PowerShell.

Kuweka maazimio ya kawaida

Sasa tutahitaji kufungua bandari zingine za ngome ili NFS ifanye kazi. Bandari zinazohitajika ili huduma za NFS zifanye kazi vizuri zimewasilishwa kwenye jedwali hapa chini.