亚洲av色香蕉一区二区三区,十四以下岁毛片带血a级,亚洲 校园 欧美 国产 另类,亚洲av日韩av一区谷露,色欲av无码一区二区三区

  • 相關(guān)軟件
    >網(wǎng)絡(luò)文件系統(tǒng)(NFS)使用指南 創(chuàng)建者:webmaster 更新時(shí)間:2005-07-02 01:07

    What is NFS ?
    就是Network File?。樱螅簦澹怼   ?

    NFS 是由SUN公司發(fā)展, 并於1984年推出, NFS是一個(gè)RPC service ,
    它使我們能夠達(dá)到檔案的共享, 它的設(shè)計(jì)是為了在不同的系統(tǒng)間使用, 所
    以它的通訊協(xié)定設(shè)計(jì)與主機(jī)及作業(yè)系統(tǒng)無(wú)關(guān).當(dāng)使用者想用遠(yuǎn)端檔案時(shí)只
    要用"mount"就可把remote檔案系統(tǒng)掛接在自己的檔案系統(tǒng)之下,使得遠(yuǎn)端
    的檔案使用上和local機(jī)器的檔案沒(méi)兩樣.

    machine A machine B

    / /

    bin etc usr bin etc usr

    man man share local

    假如我們?cè)跈C(jī)器A上, 要把機(jī)器B上的 /usr/man 掛接到machine A 的
    /usr/home下,只要

    mount machine_name:/usr/man /usr/home

    就可mount過(guò)來(lái).而我們不只是可以mount目錄,就是一個(gè)檔也是可以的.在
    掛接之後我們只能對(duì)檔案做reading (or writing) 的動(dòng)作,而不能在
    remote machie上把此檔或目錄move,delete掉 , 但須注意的是如我們
    mount /usr 後 , 不能再mount /usr底下的目錄, 否則會(huì)發(fā)生錯(cuò)誤

    □ Servers & Clients

    NFS就是促使Servers上的檔案能被其他的機(jī)器mount,而達(dá)到資源共享,
    享用這些檔案的機(jī)器就可稱為Client,一個(gè)client可以從server上mount一
    個(gè)檔或是一個(gè)層次的目錄(file hierarchies) . 然而事實(shí)上任何一臺(tái)機(jī)器
    都可以做NFS server or NFS client ,甚至同時(shí)為NFS server and NFS
    client 也可以.

    □ Server's Exporting & Client's Mounting

    NFS server 所export 出來(lái)的檔案或目錄都記錄在 /etc/exports 這
    一個(gè)檔中,當(dāng)我們啟動(dòng)NFS server 時(shí) 在 /etc/rc.local 的這一個(gè)script
    會(huì)自動(dòng)的啟動(dòng) exportfs 這一個(gè)程式 , 搜尋 /etc/exports 這一個(gè)檔是否
    存在, 并且賦予正確的權(quán)限給所有export出去的 file hierarchies .

    exports文件中記錄了哪些目錄可以export給哪些機(jī)器。例如:
    /usr/tmp -root=machine2
    /usr/bak
    說(shuō)明啟動(dòng)nfs后,/usr/tmp目錄允許machine2的root用戶mount,而/usr/bak
    目錄則export給所有的機(jī)器。

    但須注意的是,只有server所export出去的路徑,NFS client才能夠mount
    , 同樣的當(dāng)啟動(dòng)client時(shí) , 系統(tǒng)會(huì)自動(dòng)去mount所有server export的路徑,
    而mount到的所有路徑都會(huì)記錄在 /etc/fstab 下 , 類似如下的fstab檔


    /dev/sd0a / 4.2 rw 1 1
    /dev/sd0h /tmp 4.2 rw 1 3
    /dev/sd0g /usr 4.2 rw 1 2
    /dev/fd0 /pcfs pcfs rw,noauto 0 0
    sparc20:/swap /swap nfs rw,intr,bg,soft 0 0
    sparc17:/home /home nfs rw,intr,bg,soft 0 0
    sparc17:/home3 /home3 nfs rw,intr,bg,soft 0 0
    sparc14:/home4 /home4 nfs rw,intr,bg,soft 0 0
    sparc20:/home2 /home2 nfs rw,intr,bg,soft 0 0
    sparc20:/var/spool/mail /var/spool/mail nfs rw,intr,bg,soft 0 0
    rs970:/home1 /home1 nfs rw,intr,bg,soft 0 0


    ★ Noted :

    當(dāng)client mount 到一個(gè)路徑,絕對(duì)不是說(shuō)copy server上的這一個(gè)路徑
    到local的機(jī)器上,我們可以用 cd 進(jìn)入這一個(gè)mount到的路徑,就如同是使用
    local directory一樣




    □ Setting Up a NFS Server

    1. 定義機(jī)器為 NFS file server

    2. 劃分server's disk ,定義哪一些partitions 是要提供出來(lái)作為
    client 所共享的file system

    3. 在 Client Form 上定義每一臺(tái)client 的參數(shù)

    4. 寫(xiě)出 /etc/exports (一般系統(tǒng)都有一個(gè)default exports)

    5. 重新boot NFS server or 用指令 exportfs -a 輸出所有的
    directories 并且用 nfsd 8 & 啟動(dòng) nfsd守護(hù)程式,常駐在背景


    ※ ps. 一些細(xì)節(jié)

    1. 檢查 /etc/exports 輸出路徑的權(quán)限,確定只有root能修改,
    all user只能read
    2. 用exportfs 去增加或刪除directories
    exportfs -o access=engineering,ro=dancer /usr
    exportfs -u /usr
    3. 假如你的機(jī)器沒(méi)有NIS(YP server)的服務(wù),當(dāng)更改資料時(shí)記得修改
    /etc/passwd
    /etc/group
    /etc/hosts
    /etc/ethers
    4. 為你自己的network 設(shè)置security


    exportfs的語(yǔ)法

    /usr/etc/exportfs [ -avu ] [ -o option ] [ directory ]

    -a : 把 /etc/exports 中所有路徑export出去

    -u : 把 export出去的路徑卸下 , 如 exportfs -u /usr

    -o option : 如 exportfs -o ro /usr ,所有人對(duì)/usr 都為read only

    option 還有 root = hostname , access = client

    access = netgroup


    For example :

    exportfs -a 把exports中的路徑全部export出去

    exportfs -o access=engineering:other /usr

    /usr 這路徑export後只有engineering and other 這兩個(gè)
    group 能夠 read & write

    exportfs -o access=oak,ro=dancer /usr

    設(shè)定dancer 這臺(tái)client 對(duì) /usr 為read only ,且只有
    oak這一個(gè) group 能做read



    /etc/exports 檔的□例


    ● syntax : directory -option[,option]

    (設(shè)定兩個(gè)group能rw)
    /usr -access=engineering:accounting
    /home -access=engineering:accounting
    /var/spool/mail -access=engineering:accounting
    /export/exec/sun3 -access=engineering:accounting
    /export/exec/sun3.sunos.4.1 -access=engineering:accounting
    /export/exec/kvm/sun3.sunos.4.1 -access=engineering:accounting
    /export/root/birch -access=birch,root=birch
    /export/swap/birch -access=birch,root=birch
    /export/root/oak -access=oak,root=oak
    /export/swap/oak -access=oak,root=oak
    /export/root/willow -access=willow,root=willow
    /export/swap/willow -access=willow,root=willow
    /export/root/pine -accsee=pine,root=pine
    /export/swap/pine -accsee=pine,root=pine

    (access=client , root=hostname 如此只有這一臺(tái)client的superuser有權(quán)力rw)


    □ Setting Up a NFS Client


    1. 宣告機(jī)器為沒(méi)有磁碟機(jī)或沒(méi)有資料的Client,在使用SunInstall之前

    2. 編輯好 /etc/fstab 這一個(gè)檔,確定要mount的路徑都在fstab中

    3. 依照f(shuō)stab所設(shè)的內(nèi)容,在Client上設(shè)定好Mount points
    (mount_points 就是用mkdir 設(shè)exports所輸出的路徑)

    4. 確定我們所要mount的路徑,都有出現(xiàn)在 /etc/exports 中

    5. 可以啟動(dòng)mount去連結(jié)server上的directories ( mount -a )



    /etc/fstab 檔的□例

    ● syntax filesystem directory type options freq pass

    oak:/export/root/boomer / nfs rw 0 0
    ^^^
    因?yàn)闄n案在server上,not on client
    所以client的設(shè)定為0
    oak:/export/exec/sun3 /usr nfs ro 0 0
    oak:/export/exec/kvm/sun3 /usr/kvm nfs ro 0 0
    oak:/usr/share /usr/share nfs ro 0 0
    oak:/home/oak /home/oak nfs rw,bg 0 0




    § mount 的語(yǔ)法


    ● syntax : mount -t type [-rv] -o [option] server:pathname /mount_point

    MOUNT :
    mount -a 把/etc/fstab 中所列的路徑全部掛上

    mount -o ro,soft,bg dancer:/usr/local /usr/local/dancer

    把dancer server 的/usr/local mount 到 client的
    /usr/local/dancer 并且是read only


    -t type : 你所要mount的型別, 如 nfs or 4.2
    -r : 所mount的路徑定為read only
    -v : mount過(guò)程的每一個(gè)動(dòng)作,都有messages 傳回到螢?zāi)簧?
    hard : 重復(fù)要求,直到server回應(yīng)為止,但如server一直不回應(yīng)
    the server may be down !
    soft : 當(dāng)client的請(qǐng)求得不到回應(yīng),retry one time 後 傳回
    error message
    bg : 當(dāng)?shù)谝淮握?qǐng)求不成功,第二次的mount將放到背景執(zhí)行
    fg : retries mount 都一直在提示符號(hào)下進(jìn)行
    intr : 當(dāng)正在進(jìn)行 NFS 請(qǐng)求時(shí),允許用鍵盤(pán)中斷


    mount 成功時(shí)的message

    NFS server hostname ok

    <hard> mount fail

    NFS server hostname not responding, still trying

    <soft> . . .hostname server not reponding: RPC: Timed out



    § UNMOUNT :


    umount mount_point

    umount -a 卸下所有已經(jīng)mount上的路徑



    ==========================================================================



    ◎ How NFS Work ?


    當(dāng)我們啟動(dòng) NFS file server 時(shí),/etc/rc.local 會(huì)自動(dòng)啟動(dòng)exportfs這
    一個(gè)程式,指定可以export的檔案或目錄,而我們所能mount的也只能是其所指定
    的目錄.



    □ NFS 架設(shè)在 XDR/RPC的協(xié)定之上


    XDR : (eXternal Data Representation) 外部資料表示法

    XDR(eXternal Data Representation) 提供一種方法把資料從一種格式轉(zhuǎn)換
    成另一種標(biāo)準(zhǔn)資料格式表示法,確保在不同的電腦,作業(yè)系統(tǒng)及電腦語(yǔ)言中,所
    有資料代表的意義都是相同的


    RPC : (Remote Procedure Calls) 遠(yuǎn)端程序呼叫

    RPC(Remote Procedure Calls) 遠(yuǎn)端程序呼叫, 請(qǐng)求遠(yuǎn)端電腦給予服務(wù). 委
    托器(client)就會(huì)透過(guò)網(wǎng)路傳送RPC到遠(yuǎn)端電腦,請(qǐng)求服務(wù).

    (一般 local machine : client remote machine : server )




    □ NFS 如何運(yùn)用 RPC 傳送資料



    客戶端process 主服務(wù)端process
    ┌????┐ ┌?????┐
    │ 客戶端 │ │ 主服務(wù)站 │
    │routines│ │ routines │
    └?┬??┘ └┬????┘
    本地程序呼叫 │ 《 │ 《
    (1)│ │(10)(6)│ │ (5)
    》 │ 》 │
    ┌???┴┐ ┌????┴┐
    │ 客戶端 │ │ 主服務(wù)端 │
    │ stub │ │ stub │
    └?┬??┘ └┬????┘
    系統(tǒng)呼叫 │《 │ 《
    (2)│ │(9) (7)│ │ (4)
    》│ 》 │
    ┌???┴┐ (8) ┌????┴┐
    │network │<??┤ network │
    │routines├??>│ routines │
    └????┘ (3) └?????┘
    本地系統(tǒng)核心 網(wǎng)路通訊 遠(yuǎn)端系統(tǒng)核心


    (1) client 送出訊息,請(qǐng)求服務(wù)

    (2) client stub (客戶株) 把client 送出的參數(shù)轉(zhuǎn)換成XDR---標(biāo)準(zhǔn)資料
    格式并用系統(tǒng)呼叫(system call) 把訊息送到網(wǎng)路上

    (3) 訊息經(jīng)過(guò)網(wǎng)路送達(dá)遠(yuǎn)端主機(jī)系統(tǒng)

    (4) 遠(yuǎn)端主機(jī)將接受到的訊息傳給server stub (服務(wù)站株)

    (5) 把XDR形式的資料,轉(zhuǎn)換成符合主機(jī)端的格式,取出client發(fā)出的服務(wù)
    請(qǐng)求參數(shù),送給server

    (6) -- (10) 則是逆向而行 , server 送出服務(wù)給 client




    □ rc.local 啟動(dòng)守護(hù)程式


    一個(gè)NFS server 要 inet , portmap , nfs , mount 此四個(gè)守護(hù)程式,保
    持在背景執(zhí)行的狀態(tài)下才能運(yùn)作. (if running NIS must add ypbind daemon)


    ◆ 當(dāng)啟動(dòng) NFS file server 時(shí),


    the /etc/rc.local script 會(huì)做如下的動(dòng)作

    1. 執(zhí)行exportfs , 讀取server's /etc/exports 告訴kernel
    所要輸出的file hierarchies 和 存取的權(quán)限
    ( exportfs -a )

    2. 啟動(dòng) rpc.mountd daemon 和 nfsd daemon (通常是 8 個(gè))
    ( rpc.mountd -n nfsd 8 & echo -n 'nfsd' )



    ◆ 當(dāng)啟動(dòng) NFS client 時(shí)


    rc.local 會(huì)做如下的動(dòng)作

    1. 啟動(dòng) boid daemons 處理讀寫(xiě)的程序
    (biod 8 echo -n ' biod' )

    2. 執(zhí)行 mount -vat nfs 讀取client's /etc/fstab 并且 mount 所
    有屬於 NFS-type 的files



    □ NFS daemons (守護(hù)程式) 的功用


    nfsd, biod, rpc.mountd, inetd, portmap 都可在/usr/etc 下找到


    nfsd : 依client 對(duì)檔案系統(tǒng)的需求情況, 而啟動(dòng)
    " file system request daemon "
    應(yīng)付client 的需求,而一般file system request daemon 的數(shù)目
    是 " 8 ", 這也就是我們?cè)趓c.local 中寫(xiě) " nfsd 8 & "的原因了


    biod : 此指令是在NFS client上用的 , 用來(lái)啟動(dòng)
    " asynchronous block I/O daemon"
    用來(lái)建立buffer cache , 處理在client上的讀寫(xiě)


    mountd : mountd 是一臺(tái) RPC server ,啟動(dòng)rpc.mountd daemon後 它會(huì)讀取
    /etc/xtab 查看哪一臺(tái)client正在mount 哪一個(gè)file system,并回
    應(yīng)client 所要mount 的路徑
    (mountd處理的過(guò)程可用 showmount 來(lái)看)


    inetd : inetd (Internet services daemon) , 當(dāng)系統(tǒng)啟動(dòng)時(shí)rc.local
    會(huì)啟動(dòng)inetd 讀取 inetd.conf 這一個(gè) configuration-file ,
    讀取網(wǎng)路上所有 server's address , 連結(jié)啟動(dòng)inetd.conf中所
    有的server , 當(dāng)client 請(qǐng)求服務(wù)時(shí), inetd 就會(huì)為clinet 啟動(dòng)
    相關(guān)的server daemon 負(fù)責(zé)任務(wù), 如user 用 telnet 時(shí) , 則
    inetd 啟動(dòng)telnetd 迎合user telnet 的需求, 其馀像 ftp ,
    finger , rlogin 之類的應(yīng)用程式 , inetd 也都會(huì)啟動(dòng)相對(duì)應(yīng)的
    daemons, ftpd, fingerd, rloingd

    portmap : portmap 是一臺(tái)server , 主要功能 轉(zhuǎn)換 TCP/IP 通訊協(xié)定的
    port number 變成 RPC program number , 因?yàn)檫@樣clinet才能
    做RPC calls


    一般 RPC server 是被inetd 所啟動(dòng)的, 所以portmap 必須
    在inetd之前啟動(dòng), 否則無(wú)法做 RPC call




    □ NFS 的網(wǎng)路安全的


    NFS 使server上的檔案能被client所取用, 乍看之下好像server 上
    的檔案任何人都可取用沒(méi)什麼保護(hù)性, 其實(shí)不是如此的. 一開(kāi)始server
    要 exportfs 之前在 /etc/exporrc 中就已經(jīng)設(shè)定了檔案的使用權(quán)限, 像

    /usr/src -access=engineering:accounting

    就是限定只有 rcgineering 和 accounting 這兩臺(tái) client 才能 mount
    /usr/src

    /usr/src -access=oak,root=oak

    這是說(shuō)只有 oak 這臺(tái) cilent 能 mount這一個(gè)路徑 且只有 oak client's
    superuser 才能行使 read & write 的權(quán)力


    另外管理者為了維護(hù) exported 和 mounted 的安全, 一定要建
    立公共(public)和私人(secret)的 key(password), 然而這些安全性
    問(wèn)題是要建立在 NIS (network infomation system) 上的, 有一個(gè)
    /etc/publickey檔 ,里面記錄了public and secret keys , 而這些key
    是依照 machine_name 和 user_name ,以16 進(jìn)位碼表示出來(lái)的, 管理
    者可在有NIS的機(jī)器上用

    newkey -u username 給予user login 權(quán)力

    newkey -h hostname 造出login 此機(jī)器時(shí)所需的password


    在NFS剛安裝時(shí) user 是 "nobody" 任何人都可以進(jìn)入, 所以管理者
    一定要做修改, 以保護(hù)資料的安全.


    當(dāng)使用者為 nobody 時(shí) publickey 的內(nèi)容

    netname user's public key : user's secret key

    nobody 3d91f44568fbbefada5a7:7675cd9b8753b5db09dabf12


    在管理者給予user權(quán)力之後, user 就可使用 chkey 修改自己的
    secret key 創(chuàng)造自己的帳號(hào)路口,


    willow% chkey
    Generating new key for username
    password : <enter password>
    Sending key change request to server ...
    Done.
    willow%


    所設(shè)定的password 是使用者位於 NIS 中的加密鍵 , 當(dāng)我們login 時(shí)
    NIS 就會(huì)將此密碼解開(kāi),(因?yàn)閜ublickey中是以16進(jìn)位碼記錄) , 存放到
    keyserv 里加以保管, 再將加密鍵傳給client , 當(dāng)client 發(fā)出請(qǐng)求時(shí) ,
    此鍵會(huì)附在每個(gè)NFS 請(qǐng)求上一起送到 NFS server 上, 當(dāng)加密鍵和server上
    所保存的keyserv核對(duì)無(wú)錯(cuò)後, 請(qǐng)求就會(huì)被接受






    □ When fail to mount server


    1. 用 rpcinfo -p server_name 去查看此server是否存在

    2. 用 rpcinfo -u server_name mount 查看mountd daemon 是否有
    在server上執(zhí)行

    3. 假如server 都沒(méi)問(wèn)題,檢查 server 和 client 之間的
    Ethernet connetions

    4. 在client 上 用 ps ax 看portmap and several biod daemons
    running or not !

    (rpcinfo : 用來(lái)對(duì) RPC server 做 RPC 呼叫,回傳遠(yuǎn)端程序呼叫

    過(guò)程中的訊息)


    一些mount 失敗的錯(cuò)誤訊息


    1. /etc/mtab : No such file or directory

    mtab 這一個(gè)路徑或是檔案必須存在,在mount之前

    2. mount : ... Block device required

    遠(yuǎn)端的機(jī)器名稱可能打錯(cuò)了

    3. mount: ... not found in /etc/fstab

    fstab 一定要存在,client 上 /etc下

    4. ... not in hosts database

    /etc/hosts 沒(méi)有這一個(gè) hosts database , 或是
    NIS 的daemon, ypbind 沒(méi)有在執(zhí)行

    5. Must be root to use mount

    一般都只有 root 才能mount ,所以mount之前先成
    為superuser

    6. Stale NFS file handle

    當(dāng)我們已經(jīng)mount 上的file or directory ,在server
    上突然被remove or unexport ,就會(huì)出現(xiàn)此訊息

    相關(guān)文章
    本頁(yè)查看次數(shù):