NFS(网络文件系统)与服务器架站


Google

NFS(网络文件系统)与服务器架站
一、NFS相关基本概念:
1 NFS
NFS就是 Network FileS ystem的��,最早之前是由SUN公司所�展出�的。他最大的功能就是可以透�网络,�不同的�器、不同的作�系�、可以分享彼此的�案
(share files)。所以,您也可以��的�他看做是一��案伺服器(file server)!�� NFS 伺服器可以�您的PC��网络�端的NFS主�分享的目�,��到本地端的�器�中,在本地端的�器看起�,那��端主�的目�就好像是自己的一�磁盘分区一�(partition)。
2 RPC (Remote Procedure Call)
因� NFS 支援的功能相�的多,而不同的功能都�使用不同的程式���,每��一�功能就��用一些port����料,因此,NFS 的功能所��的port才�有固定住,而是�用��取用一些未被使用的小於1024的端口�作���之用。但如此一�又造成用�端想要�上伺服器�的困�,
因�用�端得要知道伺服器端的相�端口才能���吧!
此�我�就得需要�端程序呼叫(RPC)的服�啦!RPC最主要的功能就是在指定每� NFS功能所��的port number,�且回��用�端,�用�端可以��到正�的端口上去。
那 RPC 又是如何知道每� NFS 的埠口呢?�是因��伺服器在�� NFS ����取用��端口,�主�的向 RPC ��,因此 RPC 可以知道每�端口��的 NFS 功能,RPC 又是固定使用 port 111 ���用�端的需求�回�用�端正�的端口的。
二、NFS ��的 RPC daemonsrpc.nfsd:�� daemon 主要的功能就是在管理 Client 是否能�登入主�的�限,其中�包含��登入者的 ID 的判�!rpc.mountd:�� daemon 主要的功能,�是在管理 NFS 的�案系�!� Client 端�利的通� rpc.nfsd 而登入主�之後,在他可以使用 NFS 伺服器提供的�案之前,�����案使用�限 (就是那� -rwxrwxrwx � owner, group 那���限啦) 的��程序!他�去� NFS 的�定� /etc/exports �比� Client 的�限,�通��一�之後 Client 就可以取得使用 NFS �案的�限!rpc.lockd (非必要):��daemon可以用在管理�案的�定 (lock) 用途。�何�案需要『�定』呢? 因�既然分享的 NFS �案可以�用�端使用,那��多�用�端同����入某��案�, 就可能�於��案造成一些��!�� rpc.lockd �可以用�克服����。但 rpc.lockd 必�要同�在用�端�伺服器端都��才行喔!此外,rpc.lockd 也常� rpc.statd 同��用。
rpc.statd (非必要):可以用��查�案的一致性,� rpc.lockd 有�!若�生因�用�端同�使用同一�案造成�案可能有所���,rpc.statd 可以用������回���案。� rpc.lockd 同�的,��功能必�要在伺服器端�用�端都��才�生效。三、NFS 的�案存取�限NFS 本身的服���有�行身份登入的��,所以�,�你在用�端以某个用户名比如 benben(UID:1000)
的身份想要存取伺服器端的�案系��,伺服器端�以用�端的使用者 UID � GID 等身份����取伺服器端的�案系�。
3.1 NFS
server/NFS client �好有相同的���群�
�此�使用者可以直接以 benben 的身份�行伺服器所提供的�案系�之存取。3.2 NFS server 的 1000 �� UID ����� haha若 NFS 伺服器上的
/etc/passwd �面 UID 1000 的使用者名�� haha �, �用�端的 benben 可以存取伺服器端的 haha ��使用者的�案喔!只因��者具有相同的 UID 而已。�就造成很大的��了!因��有人可以保�用�端的 UID 所��的����伺服器端相同,那伺服器所提供的�料不就可能�被��的使用者�改?
3.3 NFS server ��有 501 �� UID另一��端的情�是,在伺服器端��有 1000 ��
UID 的存在,�此� benben 的身份在�目�下�被��成匿名者, 一般 NFS 的匿名者�以 UID � 65534 �其使用者,早期的 Linux distributions �� 65534 的��名�通常是 nobody ,还有一些distributions�取名� nfsnobody 。
3.4 如果使用者身份是 root
有�比�特殊的使用者,那就是每� Linux 主�都有的
UID � 0 的 root 。 想一想,如果用�端可以用 root 的身份去存取伺服器端的�案系��,那伺服器端的�料哪有什�保�性?所以在��的情�下,root 的身份�被主�的��成�匿名者。
�之,用�端使用者能做的事情是� UID 及其 GID 有�的,那�用�端�伺服器端的 UID 及��的��不一致�,可能就�造成�案系�使用上的困�,��就是 NFS �案系�在使用上面的一�很重要的地方!
而在�解使用者��� UID 及�案系�的��之後,要��在用�端以 NFS
取用伺服器端的�案系��,你�得需要具有:
  • NFS 伺服器有�放可�入的�限 (� /etc/exports
    �定有�);
  • ��的�案�限具有可�入 (w) 的�限。
    �你�足了:(1)使用者��,亦即 UID 的相�身份;(2)NFS 伺服器允�有�入的�限; (3)�案系���具有 w 的�限�,你才具有��案的可�入�限。尤其是身份 (UID) ��的��部分,最容易搞�啦!也因�如此,
    所以 NFS 通常需要� NIS �一�可以��用�端�伺服器端身份一致的服�搭配使用,以避免身份的��!
    四、NFS Server 端的�定4.1 套件的安装CentOS:
    NFS 主程式:nfs-utils
    RPC
    主程式:portmap
    portmap
    就如同��提的到,我�的 NFS
    其�可以被��一� RPC 程式,而要��任何一� RPC 程式之前,我�都需要做好 port 的�� (mapping) 的工作才行,��工作其�就是『 portmap 』��服�所��的!也就是�, 在��任何一� RPC server 之前,我�都需要�� portmap 才行!
    nfs-utils
    就是提供 rpc.nfsd 及 rpc.mountd ��� NFS daemons �其他相� documents ��明文件、�行�等的套件!��就是 NFS 的主要套件!
    4.2 NFS 的套件��
  • /etc/exports
    ���案就是 NFS 的主要�定�了!不�,系���有��值,所以���案『不一定�存在』,您可能必�要使用 vi 主�的建立起���案!
  • /usr/sbin/exportfs
    ��是�� NFS 分享�源的指令,我�可以利用��指令重新分享/etc/exports �更的目��源、� NFS Server 分享的目�卸�或重新分享等等,��指令是 NFS 系��面相�重要的一�喔!
  • /usr/sbin/showmount
    �是另一�重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount �主要用在 Client 端。�� showmount 可以用�察看 NFS 分享出�的目��源喔!
    • /var/lib/nfs/*tab

    在 NFS 伺服器的登��都放置到 /var/lib/nfs/ 目��面,在�目�下有�    �比�重要的登��,
    一�是 etab,主要��了 NFS 所分享出�的目�的    完整�限�定值;另一� xtab ���曾���到此 NFS 主�的相�用�端    �料。
    4.3 /etc/exports �定�的�法���
    待续……




    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/43759/showart_344194.html
  • 免责声明:
    1、本文系本网编辑转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
    2、如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除内容