1. 程式人生 > >Linux下部署NFS服務 (* ̄︶ ̄)

Linux下部署NFS服務 (* ̄︶ ̄)

一 、 NFS 簡介和架構圖NFS是Network File System的縮寫,即網路檔案系統。一種使用於分散式檔案協定,功能是通過網路讓不同的機器、不同的作業系統能夠分享個人資料,讓應用程式通過網路可以訪問位於伺服器磁碟中的資料。

NFS在檔案傳送或資訊傳送的過過程中,依賴於RPC協議。RPC,遠端過程呼叫(Remote Procedure Call),是使客戶端能夠執行其他系統中程式的一種機制。NFS本身是沒有提供資訊傳輸的協議和功能的,但NFS卻能讓我們通過網路進行資料的分享,就是因為NFS使用了RPC提供的傳輸協議,可以說NFS就是使用PRC的一個程式。

NFS 儲存 伺服器主要用於使用者上傳的資料 ,圖片 音訊 、等資訊

NFS服務端、RPC協議、客戶端三者可以理解為房源、中介、租客之間的關係:

二、NFS 適用場景 ; 2.1 NFS 最好是部署在區域網 ,不要在公網上 ; 2.2 NFS 只能在 linux 上使用 (如果想讓 windows 和 Linux 之間實現資料共享建議使用 FTP 或者 samba); 2.3 NFS 適合在中小型企業使用  ;

② ,大型網站不會用 NFS 的, 用的都是 分散式儲存 ====================================

三、 NFS  服務端乾的三件事 ;

                  

 NFS    客戶端乾的三件事  ;

                       

==========================NFS 部署  環境準備=========================

四 、 服務端配置

   4.1 環境準備2臺  CentOS 6.9 ,IP可以自定義 ;

            [[email protected] ~]# cat /etc/redhat-release 
            CentOS release 6.9 (Final)

五 、 檢查系統中是否安裝 NFS 和 RPC ,並進行安裝NFS 和RPC;

[[email protected] ~]# rpm -qa nfs-utils rpcbind

rpcbind-0.2.0-13.el6.x86_64
nfs-utils-1.2.3-75.el6.x86_64

[[email protected] ~]# yum -y install nfs-utils rpcbind       #使用 yum 安裝nfs 和 rpc  ;

已載入外掛:fastestmirror
設定安裝程序
Determining fastest mirrors
 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.aliyun.com
base                                                                                                                         | 3.7 kB     00:00     
extras                                                                                                                       | 3.4 kB     00:00     
extras/primary_db                             

六  、在服務端 建立共享目錄/data/nfs/,並且屬主和屬組都為:nfsnobody,其中nfsnobody是安裝nfs服務時預設的使用者;

[[email protected] ~]# mkdir -p /data/nfs/
[[email protected] ~]#  chown -R nfsnobody.nfsnobody /data/nfs/
[[email protected] ~]# chmod 666 /data/nfs/
[[email protected] ~]# ll /data/
總用量 4
drw-rw-rw-. 2 nfsnobody nfsnobody 4096 6月  27 06:17 nfs

七、編輯配置 NFS 配置檔案 ;

[[email protected] ~]# cat >>/etc/exports<<EOF 
> /data/nfs 172.16.1.0/24(rw,sync)
> EOF
[[email protected] ~]# cat /etc/exports 
/data/nfs 172.16.1.0/24(rw,sync)
[[email protected] ~]# 

其中:/data/nfs 是伺服器端共享的目錄 
      172.16.1.0/24共享目錄的客戶端ip地址 
      (rw,sync) ,其中rw代表擁有讀寫的許可權,sync代表資料同步寫入NFS伺服器端的硬碟中。
      也可以用async,async是大資料時使用,是先寫到快取區,再寫到磁盤裡。

[[email protected] ~]# exportfs -r                           #讓配置檔案生效 

八、啟動RPC 和 NFS 服務 ;

[[email protected] ~]# /etc/init.d/rpcbind start          # 先啟動rpc  
[[email protected] ~]# /etc/init.d/nfs start                  #啟動NFS
[[email protected] ~]# /etc/init.d/rpcbind status        #檢視一下 rpc 的執行狀態 
rpcbind (pid  27193) 正在執行...
[[email protected] ~]# /etc/init.d/nfs status               #檢視一下 nfs 的執行狀態 
rpc.mountd (pid 27337) 正在執行...
nfsd (pid 27353 27352 27351 27350 27349 27348 27347 27346) 正在執行...
[[email protected] ~]# 

 九、檢視NFS服務是否向rpc註冊埠資訊,主埠號是:111 

   [[email protected] ~]# rpcinfo -p localhost
    program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  46776  mountd
    100005    1   tcp  58319  mountd
    100005    2   udp  45857  mountd
    100005    2   tcp  40719  mountd
    100005    3   udp  48297  mountd
    100005    3   tcp  56860  mountd

選項與引數:
-p :針對某 IP (未寫則預設為本機) 顯示出所有的 port 與 porgram 的資訊;
-t :針對某主機的某支程式檢查其 TCP 封包所在的軟體版本;

-u :針對某主機的某支程式檢查其 UDP 封包所在的軟體版本;

十 、在NFS設定妥當之後,可以先在服務端自我測試一下是否可以聯機!利用 showmount 這個指令來檢視!
[[email protected] ~]# showmount -e localhost
Export list for localhost:
/data/nfs 172.16.1.0/24

[[email protected] ~]# 

選項與引數:
   -a :顯示目前主機與客戶端的 NFS 聯機分享的狀態;
   -e :顯示某部主機的 /etc/exports 所分享的目錄資料。
引數說明:
  #rpcinfo  -p     檢查nfs服務是否有註冊埠資訊
  #showmount -e    檢查共享目錄資訊 

十一 、設定服務為開機自啟 ;

[[email protected] ~]# chkconfig nfs on
[[email protected] ~]# chkconfig --list nfs
nfs            0:關閉1:關閉2:啟用3:啟用4:啟用5:啟用6:關閉
[[email protected] ~]# chkconfig --list rpcbind
rpcbind        0:關閉1:關閉2:啟用3:啟用4:啟用5:啟用6:關閉
[[email protected] ~]# 

[[email protected] ~]# tail -2 /etc/rc.local           #加入到開機自啟中 
/etc/init.d/rpcbind start 
/etc/init.d/nfs  start
[[email protected] ~]# 

==========================客戶端配置=============================

一 、檢視系統中是否有 nfs 和rpc  

[[email protected] ~]#  rpm -qa nfs-utils rpcbind

rpcbind-0.2.0-13.el6.x86_64
nfs-utils-1.2.3-75.el6.x86_64、

二 、進行安裝服務,並啟動服務  ;

[[email protected] ~]# yum -y install nfs-utils rpcbind
已載入外掛:fastestmirror
設定安裝程序
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.aliyun.com
base                                                                                                                         | 3.7 kB     00:00     
extras                                                                                                                       | 3.4 kB     00:00     
updates                                                                                                                      | 3.4 kB     00:00     
包 1:nfs-utils-1.2.3-75.el6_9.x86_64 已安裝並且是最新版本

解決依賴關係

[[email protected] ~]# /etc/init.d/rpcbind start
[[email protected] ~]# /etc/init.d/nfs start
啟動 NFS 服務:                                            [確定]
啟動 NFS mountd:                                          [確定]
啟動 NFS 守護程序:                                        [確定]
正在啟動 RPC idmapd:                                      [確定]

三 、建立掛載目錄  ;

[[email protected]]# mkdir -p /data/nfs

四 、檢視客戶端是否可以收到服務端的共享資訊 ;

[[email protected] nfs]# showmount -e 172.16.1.9
Export list for 172.16.1.9:
/data/nfs 172.16.1.0/24
[[email protected] nfs]# 

五 、進行nfs 共享目錄的掛載 ;

[[email protected] nfs]# mount -t nfs 172.16.1.9:/data/nfs /mnt

[[email protected] nfs]# df -h
Filesystem        Size  Used Avail Use% Mounted on
/dev/sda2          20G  2.7G   16G  15% /
tmpfs             931M     0  931M   0% /dev/shm
/dev/sda1         190M   39M  141M  22% /boot
172.16.1.9:/data/nfs    20G  2.7G   16G  15% /mnt

服務端 ;

[[email protected] nfs]# echo "nfs" > test.txt

客戶端建立一個檔案 ;

[[email protected] data]# cat /data/nfs/test.txt
nfs

########################### nfs常見問題排錯思 ############################### 
 nfs共享目錄許可權相關因素
①. 配置檔案中的許可權指定
②. 共享目錄本身的許可權,有w許可權
③. 共享目錄本身的所屬使用者與所屬組的許可權指定


### ######################  NFS客戶端掛載排錯思路  ###########################
客戶端排查三部曲
①. 檢查服務端房源資訊是否還在
    rpcinfo -p 172.16.1.9
②. 檢查服務端共享目錄資訊是否存在
    showmount -e 172.16.1.9
③. 直接進行目錄掛載測試
    mount -t nfs 172.16.1.9:/data /mnt

#########################  服務端排查三部曲  ################################# 
①. 檢查服務端房源資訊是否還在
    rpcinfo -p localhost
如果沒有註冊的房源資訊了,會是什麼情況?
①. nfs服務沒有啟動
②. nfs服務於rpc服務啟動順序不正確
②. 檢查服務端共享目錄資訊是否存在
    showmount -e localhost
①. nfs配置檔案編寫格式錯誤
③. 直接進行目錄掛載測試
    mount -t nfs 172.16.1.9:/data /mnt


# 實現nfs客戶端開機自動掛載方式
①. 將掛在命令追加到/etc/rc.local開機自啟動檔案中
②. 編寫fstab檔案,並且需要配合netfs服務使用,實現開機自動掛載




### nfs常見問題排錯 
示例1:客戶端掛載報錯“No such file or directory”
[[email protected] ~]# showmount -e 172.16.1.9
Export list for 172.16.1.9:
/data    172.16.1.0/24
[[email protected] ~]# mount -t nfs 172.16.1.9:/data /mnt
mount.nfs: mounting 172.16.1.9:/data failed, reason given by server: No such file or directory
解答:原因是NFS伺服器端沒有共享目錄/data,建立即可。命令如下:
[[email protected] ~]# mkdir /data


示例2:NFS伺服器端啟動失敗,如下:
[[email protected] ~]# /etc/init.d/nfs start
Starting NFS services:[  OK  ]
Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno = Connection refused
rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).
     [FAILED]
Starting NFS mountd:[FAILED]
Starting NFS daemon: rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused)
rpc.nfsd: unable to set any sockets for nfsd
     [FAILED]
解答:這是因為RPC服務沒有在NFS前面啟動,需要先啟動RPC服務再啟動NFS,解決方法為,按順序啟動rpcbind及NFS,命令如下:
[[email protected] ~]# /etc/init.d/rpcbind restart
[[email protected] ~]# /etc/init.d/nfs restart


示例3:註冊RPC服務失敗,出現failed:RPC Error:Program not registered錯誤。
[[email protected] ~]# mount -t nfs 172.16.1.9:/data /mnt
mount.nfs: requested NFS version or transport protocol is not supported
[[email protected] ~]# showmount -e 172.16.1.9
clnt_create: RPC: Program not registered
解答:伺服器端的NFS沒有啟動,客戶端沒有收到伺服器端發來的隨機埠資訊。
解決方法如下:
[[email protected] ~]# /etc/init.d/rpcbind restart
[[email protected] ~]# /etc/init.d/nfs restart


示例4:解除安裝掛載裝置時顯示device is busy。
[[email protected] mnt]# umount /mnt
umount.nfs: /mnt: device is busy
umount.nfs: /mnt: device is busy
解答:有可能是當前目錄就是掛載的NFS目錄(/mnt),也有可能是NFS Server掛了。對於第一種情況,解決辦法為退出掛載目錄/mnt,再執行umount /mnt解除安裝。對於第二種情況,NFS Server掛了,NFS Client就會出現問題(df -h視窗會死掉),這時只能強制解除安裝,方法為:
umount -lf /mnt     其中的引數-f為強制解除安裝,引數-l為懶惰的解除安裝。


示例5:CentOS 6.6客戶端NFS掛載時遇到問題。
[[email protected] ~]# mount -t nfs 172.16.1.9:/data /mnt
mount:wrong fs type,bad option,bad option,bad superblock on 10.0.0.7:/data,
   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
meg | tail or so
排查思路:同樣的機器,NFS伺服器本地可以掛載,但是客戶端掛載時wrong fs type,因此嘗試所有客戶端安裝nfs-utils。CentOS6.5及以前的NFS沒有遇到這個問題。
解決方法:執行yum install nfs-utils -y,客戶端安裝NFS軟體,但不啟動服務。


示例六:共享目錄掛載很卡
mount -t nfs 172.16.1.9:/data /mnt
cd /mnt
time touch test.txt
原因分析:
NFS服務端重啟之後。立刻進行掛載會出現此問題,因為NFS自身重啟的時候,擁有無敵的時間,預設是90秒;在無敵時間內,是不能對共享目錄進行更改的操作;
在系統配置中/etc/sysconfig/nfs中指定了無敵時間的配置引數
NFSD_V4_GRACE=90
NFSD_V4_LEASE=90
NLM_GRACE_PERI0D=90
find /proc -name | grep -i ” NLM_GRACE_PERIOD”
find /proc -iname ” NLM_GRACE_PERIOD”
重啟NFS服務沒有按照順序進行重啟,一旦NFS重啟了,需要確認rpcbind服務有沒有接收,即rpcinfo -p localhost;先啟動rpcbind服務再啟動nfs服務


示例七:ls: cannot open directory .: Stale file handle
Stale file handle
客戶端報錯
mount -t nfs 172.16.1.9:/data  /mnt
mount.nfs: Stale file handle
服務端掛載報錯
[[email protected] data]# mount -t nfs 172.16.1.9:/data /mnt/
mount.nfs: access denied by server while mounting 172.16.1.9:/data
檢視配置檔案發現
[[email protected] data]# cat /etc/exports
#share /data  by lidao  at 20160913
/data 173.16.1.0/24(rw,sync)
原因分析:

/proc/mounts客戶端掛載檔案中已經存在了相應的掛載記錄,沒有正確解除安裝掉,就再次進行掛載,就會出現以上錯誤。

相關推薦

Linux部署NFS服務 (*)

一 、 NFS 簡介和架構圖NFS是Network File System的縮寫,即網路檔案系統。一種使用於分散式檔案協定,功能是通過網路讓不同的機器、不同的作業系統能夠分享個人資料,讓應用程式通過網路可以訪問位於伺服器磁碟中的資料。NFS在檔案傳送或資訊傳送的過過程中,依賴

Linux搭建NFS服務

nfs、linux一、NFS服務簡介  NFS 是Network File System的縮寫,即網絡文件系統。一種使用於分散式文件系統的協定,由Sun公司開發,於1984年向外公布。功能是通過網絡讓不同的機器、不同的操作系統能夠彼此分享個別的數據,讓應用程序在客戶端通過網絡訪問位於服務器磁盤中的數據,是在類

Linux部署Samba服務環境的操作記錄

command 解決辦法如下 some var sco most get -c can 關於Linux和Windows系統之間的文件傳輸,很多人選擇使用FTP,相對較安全,但是有時還是會出現一些問題,比如上傳文件時,文件名莫名出現亂碼,文件大小改變等問題。相比較來說,使

Redhat7.0部署NFS服務

mage 防火 watermark firewall udp ffffff dea 安裝 color 一、安裝NFS服務 1、查看系統是否已安裝NFS2、安裝NFS 二、服務端配置 在NFS服務端上創建共享目錄/data/lys並設置權限編輯export文件配置生效啟動rp

Linux搭建NFS服務

一,簡介 NFS是Network File System的縮寫,中文稱為網路檔案系統,由sun 公司所發展出來,主要功能是通過網路(一個區域網)讓不同的主機系統之間可以共享檔案或目錄,NFS的客戶端(一般為應用伺服器,例如web)可以通過掛載(mount)的方式將NFS伺服器共享的資料目錄掛載到NFS客戶端

Linux啟動nfs服務報錯

Shutting down NFS mountd:                                  [  OK  ] Shutting down NFS quotas:                                  [FAILED] Shutting down RPC i

Linux開啟nfs服務

  1.什麼是NFS(Network FileSystem)  NFS 就是 Network FileSystem 的縮寫,最早之前是由 Sun 所發展出來的。他最大的功能就是可以透過網路,讓不同的機器、不 同的作業系統、可以彼此分享個別的檔案 ( share file ),

linux配置NFS服務

exports mod sync status ash bin 名稱 reload 查看權限 1、服務器端配置1)、查看NFS安裝包 #rpm -qa nfs -utils rpcbind2)、安裝軟件包名稱nfs-utils-1.2.3-70.el6_8.2.x86_6

linux 部署單片 elasticsearch 服務

es本文是部署單機elasticsearch 服務。是通過yum進行安裝。elasticsearch 需要java環境。另一篇文章有配置java8環境說明。1: 首先下載 gpg簽名文件:rpm --import https://packages.elastic.co/GPG-KEY-elasticsearc

Linux部署ASP.NET服務連線oracle遇到的問題記錄

一、如何解除安裝MONO Q:mono是linux系統上跨平臺軟體,解除安裝它有兩種方式: 1、知道mono安裝路徑,安裝原來的路徑直接覆蓋安裝(最為簡單); 2、不知道mono安裝路徑,首先通過sudo find / -name mono命令查詢路徑,  也可進入mono安裝資料夾sudo make

Linux部署PXE結合DHCP、tftp、http服務完成全自動安裝centos7

DHCP配置檔案 /etc/dhcp/dhcpd.conf 其它配置選項: filename: 指明引導檔名稱 next-server:提供引導檔案的伺服器IP地址 示例: filename "pxelinux.0"; 引導系統啟動檔案 next-server

Linux系統NFS服務安全加固的方法

NFS(Network File System)是 FreeBSD 支援的一種檔案系統,它允許網路中的計算機之間通過 TCP/IP 網路共享資源。不正確的配置和使用 NFS,會帶來安全問題。 概述 NFS 的不安全性,主要體現於以下 4 個方面: 缺少訪問控制機制 沒有真正的

基於linux的dns服務部署及域名解析的各種形式

1.dns快取記憶體服務搭建 伺服器:yum install bing.x86_64 安裝dns服務 設定ip及其閘道器 vim /etc/named.conf 配置dns服務檔案

使用BeetleX在Linux部署.NET多站點服務

​      在windows下常用IIS來部署.NET的多站點服務,但在Linux下就沒這麼方便了;雖然可以使用一些代理伺服器如nginx,jexus等來反代或部署應用,但nginx對.NET應用的託管就相對沒這麼方便了,jexus的確是個不錯的服務應用;在

linux啟動tomcat服務的命令是什麽

錯誤 tomcat 控制臺輸出 out 目錄 打開 客戶端 oca linux下 Linux下tomcat服務的啟動、關閉與錯誤跟蹤,使用PuTTy遠程連接到服務器以後,通常通過以下幾種方式啟動關閉tomcat服務:切換到tomcat主目錄下的bin目錄(cd usr/lo

Rsyslog+Loganalyer+MySQL部署日誌服務

rsyslog 日誌 Rsyslog+Loganalyer+MySQL下部署日誌服務器準備工作(三臺Centos服務器Centos7):MySQL服務器(192.168.1.70):收集儲存管理日誌web/Rsyslog服務器(192.168.1.52):搭建httpd服務,提供在web端查看日誌信息

Linux 開啟ssh服務

archive ger 解決方案 blog 開啟 命令 驗證 www star 在虛擬機裏安裝完後,想往虛擬機裏拷貝軟件 當使用Xmanager ftp連接時候 出現 連接不上的問題,其解決方案如下: 1、修改sshd_config文件,命令為:vim /etc/ssh/s

Linux 搭建git 服務

domain 目錄結構 倉庫 read -i shel for public git clone 環境: 服務器 centos7.3 +git1.8.3.1 客戶端 centos7.2 +git1.8.3.1服務器配置; 1.安裝git yum inst

Linux搭建 NFS

個人 share file mod lock secure netstat stat defaults 一、NFS簡介 NFS是Network File System的縮寫,即網絡文件系統。一種使用於分散式文件協定,有SUN公司開發。功能是通過網絡讓不同的機器、不同的操作系

部署NFS服務

nfs NFS即網絡文件系統,它允許網絡中的計算機之間通過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位於遠端NFS服務器上的文件,就像訪問本地文件一樣。NFS最早由Sun公司開發,分2、3、4三個版本,2和3由Sun起草開發,4.0開始Netapp公司參與並主導開發