NFS服務

NFS服務:

     

NFS:Network File System 網絡文件系統,基于內核的文件系統。
Sun公司開發,通過使用NFS,用戶和程序可以像訪 問本地文件一樣訪問遠端系統上的文件,基于RPC(Remote Procedure Call Protocol遠程過程調用)實現 。
RPC采用C/S模式??蛻魴C請求程序調用進程發送一個有進程參數的調用信息到服務進程,然后等待應答信息。在服務器端 ,進程保持睡眠狀態直到調用信息到達為止。當一個調用信息到達,服務器獲得進程參數,計算結果,發送答復信息,然后等待下一個調用信息,最后,客戶端調用進程接收答復信息, 獲得進程結果,然后調用執行繼續進行

NFS優勢:節省本地存儲空間,將常用的數據如:home目錄, 存放在一臺NFS服務器上且可以通過網絡訪問,那么本地終端 將可以減少自身存儲空間的使用。

NFS服務介紹

        軟件包:nfs-utils

          Kernel支持:nfs.ko

              查看NFS服務的模塊文件:

             NFS服務

          端口:2049(nfsd), 其它端口由portmap(111)分配
          配置文件:/etc/exports, /etc/exports.d/*.exports
           CentOS7不支持同一目錄同時用nfs和samba共享,因為使用鎖機制不同。
          相關軟件包:rpcbind(必須),tcp_wrappers
           CentOS6開始portmap進程由rpcbind代替
    NFS服務主要進程:
             rpc.nfsd 最主要的NFS進程,管理客戶端是否可登錄
             rpc.mountd 掛載和卸載NFS文件系統,包括權限管理
             rpc.lockd 非必要,管理文件鎖,避免同時寫出錯
             rpc.statd 非必要,檢查文件一致性,可修復文件
            日志:/var/lib/nfs/
         #rpcinfo -p 查看NFS服務的端口;
centos6 ,NFS服務的啟動依賴于rpcbind;centos7上由systemd控制,
NFS依賴的服務rpcbind.server,rpcbind.socket,會按序激活。

當rpcbind.server停止時,rpcbind.socket還處于監聽狀態。說明centos7,服務和端口號是分離的,服務可以睡眠,但端口號還在干活。當服務被用戶訪問時,再自行激活。


配置防火墻
      配置防火墻,開放NFS服務
      配置NFS使用固定端口
           vim /etc/sysconfig/nfs
           RQUOTAD_PORT=875
           LOCKD_TCPPORT=32803
           LOCKD_UDPPORT=32769
           MOUNTD_PORT=892
           STATD_PORT=662
           STATD_OUTGOING_PORT=2020
          防火墻除開放上述端口,還需開放TCP和UDP的111和2049 共4個端口
NFS配置文件
          導出的文件系統的格式:
                        /dir 主機1(opt1,opt2) 主機2(opt1,opt2)…
          #開始為注釋
                 主機格式:
                         單個主機:ipv4,ipv6,FQDN
                         IP networks:兩種掩碼格式均支持
                               172.18.0.0/255.255.0.0
                               172.18.0.0/16
                        wildcards:主機名通配,例如*.magedu.com,IP不可以
                        netgroups:NIS域的主機組,@group_name 
                        anonymous:表示使用*通配所有客戶端

           

           每個條目指定目錄導出到的哪些主機,及相關的權限和選項
                 默認選項:(ro,sync,root_squash,no_all_squash)
                 ro,rw 只讀和讀寫
                 async 異步,數據變化后不立即寫磁盤,性能高
                 sync(1.0.0后為默認)同步,數據在請求時立即寫入共享
                 no_all_squash (默認)保留共享文件的UID和GID
                 all_squash 所有遠程用戶(包括root)都變成nfsnobody

                 root_squash (默認)遠程root映射為nfsnobody,UID為 65534,

                                       早期版本是4294967294 (nfsnobody)

                 no_root_squash 遠程root映射成root用戶
                 anonuid和anongid 指明匿名用戶映射為特定用戶UID和組 GID,                   而非nfsnobody,可配合all_squash使用。

實驗:簡單搭建NFS服務,進行客戶端的掛載:
               1、在NFS服務器上
                  yum -y install nfs-ntils
                  system start nfs-server
                  要確保rpcbind.server,rpcbind.socket是啟動狀態

                        NFS服務

                    

                 #exportfs -v 重新加載配置文件
                 #exportfs -r 查看

              NFS服務

                 復制文件,好進行測試查看:

                      cp /etc/fstab /app/nfsdir/dir1/nfs1.txt
                      cp /etc/fstab /app/nfsdir/dir1/nfs2.tx

              

               2 、在客戶端centos6上,showmount 客戶端查看工具
                 NFS服務

                          

                        創建文件夾,并進行掛載:
                            mkdir /mnt/nfs{1,2}
                            mount 192.168.164.29:/app/nfsdir/dir1 /mnt/nfs1
NFS服務

           

                 showmount -d 192.168.164.29 只列出被客戶端已掛載的目錄
                   由于服務器端,加載配置文件時是ro,所以在客戶端
                   cd /mnt/nfs1 ; touch xxxx
  NFS服務

                      上述只能臨時掛載;永久掛載設置:

                                      vim/etc/fstab
NFS服務


自動掛載

        可使用autofs按需要掛載NFS共享,在空閑時自動卸載。
        由autofs包提供
        系統管理器指定由/etc/auto.master自動掛載器守護進程控 制的掛載點
        自動掛載監視器訪問這些目錄并按要求掛載文件系統
        文件系統在失活的指定間隔5分鐘后會自動卸載
         為所有導出到網絡中的NFS啟用特殊匹配 -host 至 “browse”
        參看幫助:man 5 autofs
         支持含通配符的目錄名
                   * server:/export/&
        直接匹配包括絕對路徑名稱
        不會影響本地目錄結構
          示例:
            /dev/cdrom /mount/cdrom
           相對路徑:
              /etc/auto.master:
                     dirname /etc/auto.direct
                     /mount
             /etc/auto.direct: 子配置文件
                     basename
              cdrom  -fstype=iso9660(文件系統類型,可以不寫) :/dev/cdrom
        絕對路徑:
           /etc/auto.master:
                  /etc/auto.direct
                      /-          /etc/子配置文件
                     /etc/auto.direct: 子配置文件
                 完整路徑       :/dev/cdrom

實驗:實現NFS服務,把NFS服務器上的多用戶家目錄共享給客戶端,并實現自動掛載。
          1、在NFS服務器上 創建用戶,指定家目錄,UID號
             useradd -u 6000 -d /app/homedir/user1 -s /sbin/nologin user1
             useradd -u 6001 -d /app/homedir/user2 -s /sbin/nologin user2
             vim /etc/exports
                   /app/homedir/          192.168.164.129(rw)
             systemctl start nfs-server
         2、在centos6客戶端上
                 showmount -e 192.168.164.29 客戶端查看
                 useradd -u 6000 user1
                 useradd -u 6001 user2 (用戶名可以不一樣,UID必須一致)
               配置自動掛載配置文件
                    vim /etc/auto.master
NFS服務

               #vim /etc/nfsauto   子配置文件 

/home/user1 -fstype=nfs,vers=3 192.168.164.29:/app/homedir/user1
/home/user2 -fstype=nfs,vers=3 192.168.164.29:/app/homedir/user2
               #service autofs restart
         NFS服務


實驗:實現NFS偽根 ,centos7上vers=4支持偽根。
                   1、在NFS服務器上:192.168.164.29
                         #mkdir /app/{read,write}
                         #vim /etc/exports
                             /app *(fsid=0,rw,crossmnt)
                             /app/read *(ro)
                             /app/write *(rw)
                        #exportfs -r
                  2、在192.168.164.129客戶端上:
                       mkdir /mnt/nfsdir
                       mount 192.168.164.29:/ /mnt/nfsdir
                NFS服務

                       vim /etc/fstab

                     192.168.164.29:/      /mnt/nfsdir nfs4,rw   0 0
NFS相關SELinux設置
CentOS7默認SELinux 的布爾值 nfs_export_all_ro 和 nfs_export_all_rw都啟用. 這允許 NFS服務可以讀寫任意文件,基于安全考慮可關閉.


對于只讀的NFS目錄SELinux安全上下文件應設為:

                  public_content_t 或 nfs_t
對于讀寫的NFS目錄SELinux安全上下文件應設為:
              public_content_rw_t 或 nfs_t context,并且布爾值
              nfsd_anon_write Boolean 必須啟用,以允許寫操作.


幫助參考nfsd_selinux(8)( selinux-policy-devel 包) nfs(5), mount(8), mount.nfs(8), exportfs(8), exports( 5), nfsd_selinux(8)








































原創文章,作者:shenjialong,如若轉載,請注明出處:http://www.www58058.com/84741

(0)
shenjialongshenjialong
上一篇 2017-08-14
下一篇 2017-08-14

相關推薦

  • Linux的軟件包管理(RPM)

    軟件包管理(RPM)   本章節內容:   軟件運行環境   軟件包基礎  Rpm包管理   一、軟件運行環境(了解API和ABI)  API:應用程序開發接口,POSIX國際標準。  程序源代碼–> 預處理–> 編譯–&…

    Linux干貨 2016-08-21
  • N23-第一周 記流水賬

      機器已經設置好了  屏幕左邊是linux控制臺,屏幕中間放置記事本來記筆記,屏幕右邊是教學視頻,如圖 費我老大勁 筆記本的無線網卡驅動不好弄啊   注重操作實踐,全程跟著操作,一定要照著做,動手啊動手…………..前十五天內容以查漏補缺為主,所以筆記是興之所至,遵循以下原則:&n…

    Linux干貨 2016-09-18
  • 1017練習題

    1017練習題 作業 10月17日 柴震 1.生產環境發現一臺服務器系統時間產生偏差,造成服務異常,請幫忙校正。 hwclock 查看硬件是否準確,如準確無誤,可以使用hwclock -s以硬件時間為準。 或者使用ntpdate命令指定一臺NTP服務器,進行同步。 2.生產有一個數據同步腳本需要執行很長時間,怎樣做到無人值守,在…

    Linux干貨 2016-10-18
  • N26 第二周博客作業

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 常用的文件管理工具有: cp mv rm cp 命令 : copy 的簡寫 語法格式:    1) 單源復制 cp [OPTION]… [-T] SOURCE DEST      …

    Linux干貨 2017-02-24
  • N25期–第七周作業

    1、創建一個10G分區,并格式為ext4文件系統; fdisk /dev/sda n p 2 enter +10G w partx -a /dev/sda (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; mke2fs -t ext4 -…

    Linux干貨 2017-02-20
  • 文件的查找作業

    1、查找/var目錄下屬主為root,且屬組為mail的所有文件 2、查找/var目錄下不屬于root、lp、gdm的、所有文件 3、查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是postfix的文件 4、查找當前系統上沒有屬主或屬組,且最近一個周內曾被訪問過的文件 5、查找/etc目錄下大于1M且類型為普通文件的所有文件 6、查找/…

    Linux干貨 2016-08-15
欧美性久久久久