Ubuntu NFS搭建過程

先簡單介紹一下NFS服務器是什麼?

  NFS server能夠看做是一個FILE SERVER,它可讓你的PC經過網絡將遠端的NFS SERVER共享出來的檔案MOUNT到本身的系統中,在CLIENT看來使用NFS的遠端文件就象是在使用本地文件同樣。

RPC(Remote Procedure Call)

  NFS自己是沒有提供信息傳輸的協議和功能的,但NFS卻能讓咱們經過網絡進行資料的分享,這是由於NFS使用了一些其它的傳輸協議。而這些傳輸協議用到這個RPC功能的。能夠說NFS自己就是使用RPC的一個程序。或者說NFS也是一個RPC SERVER.因此只要用到NFS的地方都要啓動RPC服務,不管是NFS SERVER或者NFS CLIENT。這樣SERVER和CLIENT才能經過RPC來實現PROGRAM PORT的對應。能夠這麼理解RPC和NFS的關係:NFS是一個文件系統,而RPC是負責負責信息的傳輸。
ubuntu系統
服務器端(192.168.94.54)

1.1安裝NFS服務:

執行如下命令安裝NFS服務器,

apt會自動安裝nfs-common、rpcbind等13個軟件包

sudo apt install nfs-kernel-server

 
1.2編寫配置文件:

編輯/etc/exports 文件:

sudo vi /etc/exports


/etc/exports文件的內容以下:

/tmp *(rw,sync,no_subtree_check,no_root_squash)

/data *(rw,sync,no_subtree_check,no_root_squash)

/logs *(rw,sync,no_subtree_check,no_root_squash)

[共享目錄] [第一臺主機(權限)] [可用主機名錶示] [可用通配符表示]php

* 表明0到無窮多個任意字符html

? 表明必定有一個任意字符linux


Exports文件中能夠設定的參數主要有如下這些:

  參數 說明

(1) Ro 該主機對該共享目錄有隻讀權限

(2) Rw 該主機對該共享目錄有讀寫權限

(3) Root_squash 客戶機用root用戶訪問該共享文件夾時,將root用戶映射成匿名用戶

(4) No_root_squash 客戶機用root訪問該共享文件夾時,不映射root用戶

(5) All_squash 客戶機上的任何用戶訪問該共享目錄時都映射成匿名用戶

(6) Anonuid 將客戶機上的用戶映射成指定的本地用戶ID的用戶

(7) Anongid 將客戶機上的用戶映射成屬於指定的本地用戶組ID

(8) Sync 資料同步寫入到內存與硬盤中

(9) Async 資料會先暫存於內存中,而非直接寫入硬盤

(10) Insecure 容許從這臺機器過來的非受權訪問
 
(11) subtree_check 若是共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的權限(默認)

(12) no_subtree_check 和上面相對,不檢查父目錄權限

(13) wdelay 若是多個用戶要寫入NFS目錄,則歸組寫入(默認)

(14 )no_wdelay 若是多個用戶要寫入NFS目錄,則當即寫入,當使用async時,無需此設置。

(15) hide 在NFS共享目錄中不共享其子目錄

(16) no_hide 共享NFS目錄的子目錄

(17) secure NFS經過1024如下的安全TCP/IP端口發送

(18) insecure NFS經過1024以上的端口發送

/ user01(rw) user02(rw,no_root_squash) 表示共享服務器上的根目錄(/)只有user01和user02兩臺主機能夠訪問,且有讀寫權限;user01主機用root用戶身份訪問時,將客戶機的root用戶映射成服務器上的匿名用戶(root_squash,該參數爲缺省參數),至關於在服務器使用nobody用戶訪問目錄;user02主機用root用戶身份訪問該共享目錄時,不映射root用戶(no_root_squash),即至關於在服務器上用root身份訪問該目錄

  /root/share/ 192.168.1.2(rw,insecure,sync,all_squash) 表示共享服務器上的/root/share/目錄只有192.168.1.2主機能夠訪問,且有讀寫權限;此主機用任何身份訪問時,將客戶機的用戶都映射成服務器上的匿名用戶(all_squash),至關於在服務器上用nobody用戶訪問該目錄(若客戶機要在該共享目錄上保存文件(即寫操做),則服務器上的nobody用戶對該目錄必須有寫的權限)

  /home/ylw/ .test.com (rw,insecure,sync,all_squash) 表示共享/home/ylw/目錄,.test.com域中全部的主機均可以訪問該目錄,且有讀寫權限

  /home/share/ .test.com (ro,sync,all_squash,anonuid=zh3,anongid=wa4) 表示共享目錄/home/share/,*.test.com域中的全部主機均可以訪問,但只有只讀的權限,全部用戶都映射成服務器上的uid爲zh三、gid爲wa4的用戶

1.3建立共享目錄

在服務器端建立/tmp /data和/logs共享目錄

sudo mkdir -p /tmp

sudo mkdir -p /data

sudo mkdir -p /logs


1.4重啓nfs服務:

sudo service nfs-kernel-server restart


1.5經常使用命令工具:

在安裝NFS服務器時,已包含經常使用的命令行工具,無需額外安裝。

顯示已經mount到本機nfs目錄的客戶端機器。

sudo showmount -e localhost


將配置文件中的目錄所有從新export一次!無需重啓服務。

sudo exportfs -rv


查看NFS的運行狀態

sudo nfsstat


查看rpc執行信息,能夠用於檢測rpc運行狀況

sudo rpcinfo


查看網絡端口,NFS默認是使用111端口。

sudo netstat -tu -4


客戶端(192.168.94.76)

2.1安裝客戶端工具:

在須要鏈接到NFS服務器的客戶端機器上,

須要執行如下命令,安裝nfs-common軟件包。

apt會自動安裝nfs-common、rpcbind等12個軟件包

sudo apt install nfs-common


2.2查看NFS服務器上的共享目錄

顯示指定的(192.168.94.54)NFS服務器上export出來的目錄

sudo showmount -e 192.168.94.54


2.3建立本地掛載目錄

sudo mkdir -p /mnt/data

sudo mkdir -p /mnt/logs


2.4掛載共享目錄

將NFS服務器192.168.94.54上的目錄,掛載到本地的/mnt/目錄下

sudo mount -t nfs 192.168.94.54:/data /mnt/data

sudo mount -t nfs 192.168.94.54:/logs /mnt/logs


注:在沒有安裝nfs-common或者nfs-kernel-server軟件包的機器上,

直接執行showmount、exportfs、nfsstat、rpcinfo等命令時,

系統會給出友好的提示,

好比直接showmount會提示須要執行sudo apt install nfs-common命令,

好比直接rpcinfo會提示須要執行sudo apt install rpcbind命令。ubuntu


centos6系統

一、安裝nfs和rpcbind

檢查本身的電腦是否已經默認安裝了nfs和rpcbind:

# rpm -aq | grep nfs
nfs-utils-lib-1.1.5-13.el6.x86_64
nfs-utils-1.2.3-75.el6_9.x86_64

# rpm -aq | grep rpcbind
rpcbind-0.2.0-13.el6_9.1.x86_64


這表示系統已經默認安裝。若是沒有安裝也沒事,能夠採用下面的命令安裝

# yum install nfs-utils rpcbind  


二、配置nfs的配置文件和hosts文件

建立須要共享的目錄:默認用/mnt

配置nfs的配置文件:

vim /etc/exports

在這個文件中添加須要輸出的目錄,如:

/usr/local/static *(rw)


/usr/local/static:表示的是nfs服務器須要共享給其餘客戶端服務器的文件夾

*:表示能夠掛載服務器目錄的客戶端ip

(rw):表示該客戶端對共享的文件具備讀寫權限

配置hosts文件:vim /etc/hosts

192.168.93.5 tomcat-01
192.168.93.7 tomcat-02


192.168.93.5:表示服務器本機的ip地址
tomcat-01:表示服務器的機器名

三、啓動nfs和rpcbind服務、檢測服務狀態、已經設置服務開機啓動

啓動服務:

#service rpcbind start
#service nfs start  


檢查啓動狀態:

#service rpcbind status  
#service nfs status

 
四、檢測服務器的nfs狀態

# showmount -e  localhost     查看本身共享的服務  
Export list for hostname:
/usr/local/static *


注意:在執行這個命令的時候若是出現錯誤,說明DNS不能解析當前的服務器,那就是hosts文件沒有配置。

五、客戶端掛載NFS中共享的目錄

客戶端服務器也須要安裝nfs 和 rpcbind 服務。

首先是啓動nfs和rpcbind服務。

查詢服務端共享的文件目錄:

showmount -e 192.168.93.5
Export list for 192.168.93.5:
/usr/local/static *


建立掛載目錄:

#cd /mnt
#mkdir static


掛載服務端的共享目錄:

# mount -t nfs -o nolock,nfsvers=3,vers=3 192.168.93.5:/usr/local/static /mnt/static


查看掛載的狀態:

# mount | grep nfs

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
192.168.93.5:/usr/local/static on /mnt/static type nfs (rw,nolock,nfsvers=3,vers=3,addr=192.168.93.5)


六、測試共享

服務器建立文件:

#cd /usr/local/static
#touch test123
#echo "123" > test123


客戶端查看文件:

#cd /mnt/static
#ll -h
total 4.0K
-rw-r--r--. 1 root root 4 Dec 26 10:06 test123
 ————————————————
版權聲明:本文爲CSDN博主「三支菸」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處連接及本聲明。
原文連接:https://blog.csdn.net/qq_36357820/article/details/78488077vim

 

 

https://www.cnblogs.com/wangn/p/3503701.htmlwindows

簡介centos

  NFS:是Network FileSystem。最大的做用就是經過網絡,讓不一樣的機器、不一樣的做業系統、能夠分享檔案。
經過將共享目錄掛接到本地,就能夠像操做本地目錄同樣去操做共享的目錄。
在共享中分爲服務器和客戶端,須要安裝的程序也不同,客戶端經過RPC的方式去請求服務端完成相應的操做。
能夠想象成爲windows的共享目錄(權限是在server的/etc/exports中設置的)。tomcat

          (一、NFS示意圖)安全

  

          (二、RPC在NFS中的位置)服務器

服務端


  安裝nfs-server:
  sudo apt-get install nfs-kernel-server

配置

配置文件通常是在/etc/exports
添加:
/hadoop *(rw,sync,no_subtree_check)
/home/grid *(rw,sync,no_subtree_check)
固然也能夠用指定的服務器名稱(hostname)或IP代替*
配置完成須要重啓nfs-server
重啓命令:
sudo /etc/init.d/nfs-kernel-server restart
service nfs-kernel-server restart

     export選項說明:

ro 該主機對該共享目錄有隻讀權限

rw 該主機對該共享目錄有讀寫權限

root_squash 客戶機用root用戶訪問該共享文件夾時,將root用戶映射成匿名用戶

no_root_squash 客戶機用root訪問該共享文件夾時,不映射root用戶

all_squash 客戶機上的任何用戶訪問該共享目錄時都映射成匿名用戶anonuid 將客戶機上的用戶映射成指定的本地用戶ID的用戶

anongid 將客戶機上的用戶映射成屬於指定的本地用戶組ID

sync 資料同步寫入到內存與硬盤中

async 資料會先暫存於內存中,而非直接寫入硬盤insecure 容許從這臺機器過來的非受權訪問


客戶端

(1)安裝nfs-client:
sudo apt-get install nfs-common
(2)查看nfs server 上共享的目錄
showmount -e 服務器IP
(3)建立共享掛載點,並執行掛載
sudo mkdir /home/grid/nfshadoop
sudo mount -t nfs serverip:/hadoop /home/grid/nfshadoop
(4)修改/etc/fstab文件,讓系統在啓動時能夠自動掛載nfs server目錄
serverip:/hadoop /home/grid/nfshadoop nfs defaults 0 0
(5)新建目錄看看遠程服務器上是否能夠看到
touch tmp


進階閱讀

    圖片來源:http://linux.vbird.org/linux_server/0330nfs.php#ps1

鳥哥的私房菜:http://linux.vbird.org/linux_server/0330nfs.php#ps1

http://f.dataguru.cn/forum.php?mod=viewthread&tid=156968http://blog.csdn.net/ustc_dylan/article/details/8164080http://tech.seety.org/debian/NFSConf.html#id8http://www.92csz.com/study/linux/19.htmhttps://help.ubuntu.com/lts/serverguide/network-file-system.html

相關文章
相關標籤/搜索