NFS文件系統共享服務

內容:node

一、NFS簡介windows

二、NFS服務端的配置centos

三、NFS客戶端的配置以及使用命令bash

四、NFS服務的搭建測試服務器



1、NFS簡介網絡

        一、NFS(Network File System)即網絡文件系統,是FreeBSD支持的文件系統中的一種,它容許網絡中的計算機之間經過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的客戶端應用能夠透明地讀寫位於遠端NFS服務器上的文件,就像訪問本地文件同樣。架構

1)、設置Linux系統之間的文件共享(Linux與Windows中間文件共享採用SAMBA服務);app

2)、NFS只是一種文件系統,自己沒有傳輸功能,是基於RPC協議實現的,才能達到兩個Linux系統之間的文件目錄共享;負載均衡

3)、NFS爲C/S架構;異步


2、NFS服務端的配置

    一、須要安裝的軟件包:

    rpcbind:提供rpc服務(mapping),在centos5之前叫portmap,5之後更名爲rpcbind

    nfs-utils:提供nfs,mountd與其餘相關程序。


    咱們能夠rpm -ql nfs-utils來查看nfs服務的應用程序主要有如下幾個:

        nfsd:NFS的守護進程,工做在tcp與udp的2049端口上。

        mountd:NFS用來驗證客戶端信息的守護進程,工做在隨機端口。

        rquotad:磁盤限額進程。

        lockd:文件鎖。

        idmapd:權限映射。

    輔助類的服務:rpc (portmap)

        rpc.mountd:認證;

        rpc.lockd:加鎖

        rpc.statd:狀態


    二、配置文件:

    /etc/exports:nfs的主要設定文件。

    /var/lib/nfs/*tab:設定記錄文件。

        etab:共享目錄的完整權限設定。

        xtab:曾經鏈接的客戶端資料。

    /usr/sbin/exportfs:NFS分享資源命令,能夠用來從新獲取共享文件設定,掛載,卸載等。

    /usr/sbin/showmount:用來查看遠程主機的共享信息。

    三、exports文檔設定格式

    管理共享的nfs文件系統:配置文件每一行定義一個共享文件系統

        /PATH/TO/SOME_DIR   CLIENTS_1(export_options,...)  CLIENTS_2(export_options,...) 

    CLIENTS:

    single host: IPv4, IPv6, FQDN

    IP networks:network/netmask,支持兩種格式的掩碼;

    wildcards:在主機名字符串中使用通,*.maideliang.com,

    anonymous:*,表示全部的客戶端主機;

    export_options:

        ro:只讀;

        rw:讀寫;

        sync:同步

        async:異步

    User ID Mapping:

    root_squash:壓縮root用戶的權限,默認行爲;nfsnobody

    no_root_squash:不壓縮root用戶的權限;

    all_squash:壓縮全部用戶的權限; 

    anonuid and anongid:將壓縮的用戶映射爲此處指定的用戶

命令:

    exportfs命令(能夠不重啓nfs而生效):

        -a:跟-r或-u選項同時使用,表示從新掛載全部文件系統或取消導出全部文件系統;

        -r: 從新導出

        -u: 取消導出

        -v: 顯示詳細信息

    四、權限相關

        當遠程用戶訪問共享文件夾時是使用什麼權限呢?若是建立文件那麼屬主和屬組又是什麼呢?  

        其實也samba共享服務同樣,nfs默認是使用你本地主機當前用戶UID與GID相對應的身份來使用,若是遠程服務端沒有此用戶或組就會以數字的形式呈現。  

        若是是root用戶,那麼在遠程主機上確定就是使用root了,由於root默認的uid gid都是0!這樣就太危險了,因此若是使用了root訪問,NFS會自動壓縮權限爲最小權限nfsnobady。

當本地用戶使用不同的名字,UID倒是相同的建立文件,會經過idmapd這個進程來映射,因此你在遠程看到的還會是你原來的name。

        當你將權限都設定完成後記得去更改服務器端文件夾的權限,推薦使用acl來設定,由於你的權限其實爲 "用戶權限與文件夾權限的交集"。

3、NFS客戶端命令:

        一、掛載NFS目錄:

        mount -t nfs NFS_SERVER:/PATH/TO/EXPORTED_DIR  /MOUNT_POINT  [-rvVwfnsh] [-o OPTIONS]


        二、查看NFS服務的命令:

        showmount -e NFS_SERVER: 查看NFS服務器「導出」的各文件系統

        showmount -a NFS_SERVER: 查看NFS服務器全部被掛載的文件系統及其掛載的客戶端對應關係列表

        showmount -d NFS_SERVER: 顯示NFS服務器全部導出的文件系統中被客戶端掛載了文件系統列表


        三、開機自動掛載

    編輯fstab文件添加便可,不過須要注意添加掛載選項

    例:設定開機自動掛載:

        10.1.252.109:/shared
/mnt/nfs  
nfs  
defaults,_rnetdev  
0  
0

        最好加載掛載選項:_rnetdev,表明若是檢查nfs遠端服務若是沒開則跳過檢查,不然會致使開機不成功(已測試驗證)

4、NFS服務的搭建測試

        一、服務端安裝相關的程序包

[00:18 root@centos6.8~]# yum install -y nfs-utils rpcbind

        二、編寫/etc/exports處處列表,並啓動nfs服務

[00:39 root@centos6.8~]# cat !$
cat /etc/exports
/shared 10.1.0.0/16(rw) #把/shared目錄共享給10.1.0.0/16的全部用戶,並有讀寫權限
[00:42 root@centos6.8~]# service nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]


        三、客戶端掛載測試

[root@localhost ~]# showmount -e 10.1.252.109 #查看服務端的exports處處列表
clnt_create: RPC: Program not registered
[root@localhost ~]# showmount -e 10.1.252.109
Export list for 10.1.252.109:
/shared 10.1.0.0/16
[root@localhost ~]# showmount -a 10.1.252.109
All mount points on 10.1.252.109:
[root@localhost ~]# showmount -d 10.1.252.109
Directories on 10.1.252.109:
[root@localhost ~]# mkdir /mydata/nfs
[root@localhost ~]# mount -t nfs 10.1.252.109:/shared /mydata/nfs/ #掛載NFS文件系統
[root@localhost ~]# showmount -e 10.1.252.109
Export list for 10.1.252.109:
/shared 10.1.0.0/16
[root@localhost ~]# showmount -d 10.1.252.109
Directories on 10.1.252.109:
[root@localhost ~]# showmount -a 10.1.252.109
All mount points on 10.1.252.109:
[root@localhost ~]# mount #檢查已經掛載成功
/dev/mapper/vg0-root on / type ext4 (rw)
/dev/mapper/vg0-usr on /usr type ext4 (rw)
/dev/mapper/vg0-var on /var type ext4 (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)
//10.1.252.109/windows on /mydata/samba type cifs (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
10.1.252.109:/shared on /mydata/nfs type nfs (rw,vers=4,addr=10.1.252.109,clientaddr=10.1.252.187)



        注意:若是出現如下錯誤說明,本機沒有安裝 mount.nfs了,咱們只要安裝mount.nfs就能夠了

[root@localhost ~]# mount -t nfs 10.1.252.109:/shared /mnt
mount: wrong fs type, bad option, bad superblock on 10.1.252.109:/shared,
       missing codepage or helper program, or other error
       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount.<type> helper program)
       In some cases useful info is found in syslog - try
       dmesg | tail or so.
      
[root@localhost ~]# yum install -y nfs-utils   
[root@localhost ~]# mount
mount       mount.nfs   mount.nfs4  mountpoint  mountstats  
[root@localhost ~]# mount -t nfs 10.1.252.109:/shared /mnt

  


        接下來就能夠作各類基於NFS共享的負載均衡實驗了。

OK,更多內容請關注個人博客

相關文章
相關標籤/搜索