linux基礎應用(NFS文件共享)

2020-12-23 美麗you心生

NFS簡介NFS(Network File System)網絡文件系統,由NFS伺服器端和NFS客戶端構成,通過網絡(一般是區域網)使不同主機系統,可以彼此共享文件。NFS客戶端mount掛載NFS伺服器端共享的文件目錄到NFS客戶端本地系統的某一個掛載點下,NFS客戶端本地訪問掛載點的共享目錄時,像是訪問本地的磁碟分區或目錄一樣,實際上訪問的是掛載的NFS伺服器目錄。

RPC遠程過程調用

NFS伺服器端和客戶端之間的數據傳輸通過相對應網絡埠,由於NFS支持的功能比較多,不同的功能會使用不同的程序啟動,每啟動一個功能就會啟用一些埠來傳輸數據,因此NFS的功能對應的埠不固定,那麼造成NFS伺服器和NFS客戶端數據傳輸的通信障礙(NFS客戶端必須知道NFS伺服器端的數據傳輸埠才能通信進行數據交互)則需要RPC(Remote procedure Call)遠程過程調用來統一管理NFS埠,並且統一對外的埠是111,RPC會記錄NFS埠的信息,這樣就可以通過RPC實現NFS伺服器和NFS客戶端的埠通信。(RPC指定每個NFS功能所對應的埠,並且通知客戶端,使客戶端可連接到相應的埠上)

NFS工作流程

先啟動NFS伺服器端的RPC服務並開啟111埠,然後啟動NFS伺服器端,NFS會隨機使用一些埠,然後NFS就向PRC註冊這些埠,RPC記錄這些埠等待客戶端RPC的請求,啟動客戶端RPC,向伺服器端PRC請求伺服器端NFS埠,伺服器端的RPC將之前記錄的NFS埠信息告知客戶端,客戶端通過獲取到的NFS埠來建立和伺服器端的NFS連接進行數據傳輸。

:在啟動伺服器端NFS前啟動RPC服務,否則伺服器端NFS無法向RPC註冊;如果PRC服務重啟,之前註冊好的NFS埠數據會全部丟失。

搭建NFS共享存儲服務1、查看系統環境準備相應的安裝包

部署NFS服務需要NFS和RPC軟體包

linux-szge:~ # uname -a

Linux linux-szge 3.0.76-0.11-default #1 SMP Fri Jun 14 08:21:43 UTC 2013 (ccab990) x86_64 x86_64 x86_64 GNU/Linux

linux-szge:~ # cat /etc/issue

Welcome to SUSE Linux Enterprise Server 11 SP3 (x86_64) - Kernel \r (\l).

註:內核和作業系統不同,使用的安裝包的版本也有差異,故需要根據作業系統和內核准備相應的軟體包

2、檢查是否安裝NFS和RPC

linux-szge:~ # rpm -qa | egrep "nfs|rpcbind"

3、安裝NFS和RPC

linux-szge:~ # zypper install rpcbind*

linux-szge:~ # zypper install nfs*

linux-szge:~ # rpm -qa | egrep "nfs|rpcbind"

nfsidmap-0.25-0.11.29

nfs-doc-1.2.3-18.29.1

rpcbind-0.1.6+git20080930-6.18.1

nfs-client-1.2.3-18.31.1

nfs-kernel-server-1.2.3-18.29.1

或者到下載相應的源碼包或rpm包安裝

註:伺服器端和客戶端本地都需要安裝NFS和RPC

4、啟動RPC

linux-szge:~ # service rpcbind start 啟動RPC

linux-szge:~ # netstat -anpp | grep rpcbind 查看監聽的埠是111

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2641/rpcbind

linux-szge:~ # rpcinfo -p localhost 未啟動NFS前查看NFS服務向RPC註冊的埠信息

program vers proto port service

100000 4 tcp 111 portmapper

100000 3 tcp 111 portmapper

...

詳情請看rpcinfo --help詳解

linux-szge:~ # chkconfig rpcinfo on rpcinfo設置為開機自啟動

linux-szge:~ #chkconfig --list rpcinfo

rpcinfo 0:off 1:off 2:off 3:on 4:off 5:on 6:off

詳情請看chkconfig --help詳解

5、配置及啟動NFS

配置NFS伺服器端

linux-szge: ~ # mkdir /data/lml;chmod 666 /data/lml/ 創建共享目錄/data/lml並設置權限

linux-szge:~ # vim /etc/exports 編輯NFS主要配置文件exports(默認是空的)

/data/lml 172.30.3.73(rw,sync,no_root_squash,no_all_squash) 172.30.3.73可讀寫共享目錄/data/lml

註:在172.30.3.73和(之間不能有空格,否則nfs寫入時會報錯read-only file system

NFS配置exports文件格式

註:客戶端地址可以寫IP,網段,主機名

NFS常用配置參數

啟動NFS伺服器端

linux-szge:~ # service nfsserver start 啟動伺服器端NFS

註:如果已啟動伺服器端NFS,後修改了/etc/exports配置,需要重新加載NFS或者重啟RPC和NFS

linux-szge:~ # service nfsserver reload 重新加載伺服器NFS

linux-szge:~ # exportfs -rv 重新加載伺服器NFS(r表示重啟,v表示顯示export的選項)

linux-szge:~ # service rpcbind restart 先重啟RPC

linux-szge:~ # service nfsserver restart 後重啟NFS

linux-szge:~ # rpcinfo -p localhost 啟動NFS後查看RPC註冊的埠信息

program vers proto port service

100000 4 tcp 111 portmapper

...

100003 4 tcp 2049 nfs

100227 2 tcp 2049 nfs_acl

...

linux-szge:~ # chkconfig nfs on NFS設置為開機自啟動

linux-szge:~ #chkconfig --list nfs

nfs 0:off 1:off 2:off 3:on 4:off 5:on 6:off

伺服器端測試是否可聯機

linux-szge:~ # showmount -e 測試是否可聯機

Export list for linux-szge:

/data/lml 172.30.3.73

詳情請看showmount --help詳解

配置NFS客戶端

linux: ~ # mkdir /getshare 創建共享目錄

linux:~ # service rpcbind restart先重啟RPC

linux:~ # showmount -e 172.30.1.199 掃描伺服器端NFS目錄(172.30.1.199是伺服器端NFS的IP)

mount掛載NFS伺服器端的共享目錄/data/lml到客戶端本地的/getshare下

linux:~ # mount -t nfs 172.30.1.199:/data/lml /getshare

掛載格式

mount -t nfs 主機名或IP:/共享目錄 /掛載點

linux:~ # df 查看掛載情況

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 40G 28G 11G 73% /

...

172.30.1.199:/data/lml 26G 8K 26G 1% /getshare

註:訪問本地的/getshare相當於訪問172.30.1.199的共享目錄/data/lml

6、測試NFS能否正常使用

172.30.3.73客戶端

掛載點創建文件test

linux:~ #cd /getshare ;echo "llalala" > test;ls -l

-rw-r--r-- 1 root root 8 May 7 15:28 test

172.30.1.199伺服器端

共享目錄查看是否有掛載點創建的test文件,有表示NFS可正常使用

linux-szge:~ # cd /data/lml;ls -l

-rw-r--r-- 1 root root 8 May 7 15:28 test

相關焦點

  • CentOS的nfs與mount實現共享掛載
    一、服務端1、安裝nfs服務yum install nfs-utils rpcbind2、配置nfs(關閉防火牆則無需配置)vi /etc/sysconfig/nfs新加共享目錄wjtmkdir /usr/wjt增加共享文件t1touch /usr/wjt/t15、配置服務端nfsvi /etc/exports (默認不存在此文件新建即可
  • Linux掛載命令mount用法及參數詳解
    光碟或光碟鏡像:iso9660 DOS fat16文件系統:msdos Windows 9x fat32文件系統:vfat Windows NT ntfs文件系統:ntfs Mount Windows文件網絡共享:smbfs UNIX(LINUX) 文件網絡共享:nfs2、-o options 主要用來描述設備或檔案的掛接方式
  • ARM板上掛載NFS文件系統
    建立和配置 NFS 服務(1)設置共享目錄 建立nfs目錄:/home/nfs/2410目錄,在Linux中修改配置文件 /etc/exports,如[root@nfs#]vi /etc/exports /home/nfs/2410 *(rw,sync,no_root_squash) 表示的是:(共享的目錄)空格(主機名或者IP)
  • 超全的NFSserver教程手冊
    NFSserver可以看作是一個FILESERVER,它可以讓你的PC通過網絡將遠端得NFSSERVER共享出來的檔案MOUNT到自己的系統中,在CLIENT看來使用NFS的遠端文件就象是在使用本地文件一樣。
  • 嵌入式Linux NFS 根文件系統的構建及研究
    在此基礎上,進一步構建出基於NFS的嵌入式Linux根文件系統,並給出了啟動腳本和配置文件。這種根文件系統可以方便地在線更改、調試程序,降低了嵌入式系統的開發門檻。關鍵詞:NFS;Busybox;根文件系統;S3C2440;Linux 隨著信息技術的發展,嵌入式系統技術已經廣泛應用於國防、通信、工業控制、消費電子等諸多領域。
  • VMware創建的Linux虛擬機如何設置共享文件夾
    創建共享文件夾則很好的解決了同步windows系統和linux系統文件的問題,不用再進行拖拽,直接創建一個文件夾放置文件,兩個系統都可以進行操作,但是為了防止文件誤操作,提醒大家還是儘量複製到其他文件夾進行操作。
  • 在 Linux 下 9 個有用的 touch 命令示例 | Linux 中國
    ,我們必須為某些測試創建大量空文件,這可以使用 touch 命令輕鬆實現:[root@linuxtechi ~]# touch sysadm-{1..20}.txt在上面的例子中,我們創建了 20 個名為 sysadm-1.txt 到 sysadm-20.txt 的空文件,你可以根據需要更改名稱和數字。
  • 教你快速搭建NFS服務
    NFS伺服器可以讓PC將網絡中的NFS伺服器共享的目錄掛載到本地端的文件系統中,而在本地端的系統中來看,那個遠程主機的目錄就好像是自己的一個磁碟分區一樣,在使用上相當便利;NFS一般用來存儲共享視頻,圖片等靜態數據;NFS 協議默認是不加密的,它不像 Samba,它不提供用戶身份鑑別。
  • Linux——Shell腳本的應用1(基礎)
    Shell腳本的應用(基礎)簡介:隨著linux系統在企業中的應用越來越多,伺服器的自動化管理也變得越來越重要。在linux伺服器的自動化維護工作中,除了計劃任務的設置以外,shell腳本的應用也是非常重要的一部分。
  • WinSCP軟體雙系統(Win-Linux)文件傳輸教程
    WinSCP軟體是windows下的一款使用ssh協議的開源圖形化SFTP客戶端,也就是一個文件傳輸的軟體,它有什麼優點嗎,咱們嵌入式開發中經常會將windows中的文件複製到linux系統當中,比較常用的方式就是添加共享文件夾,每次通過添加的共享文件夾來相互傳輸文件,這裡介紹的是一款能夠跨系統使用的文件傳輸軟體。
  • 動態生成pxelinux菜單文件及kickstart安裝腳本
    [文件] menu.cgi.txt ~ 13KB     下載(14)     跳至
  • 基於busybox的嵌入式Linux根文件系統的的製作方法
    本文引用地址:http://www.eepw.com.cn/article/148616.htm  1 根文件  Linux要在一個分區上存放系統啟動所必需的文件,如內核映像文件、內核啟動後運行的第一個程序、給用戶提供操作界面的Shell程序、應用程式所依賴的庫等,這些必需、基本的文件合稱為根文件系統,它們存放在一個分區中。
  • Linux提權的幾種常用方式
    (1)根據作業系統版本號自動查找相應提權腳本wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh
  • 採用busybox的嵌入式Linux根文件系統的的製作方法
    本文引用地址:http://www.eepw.com.cn/article/151519.htm  1 根文件  Linux要在一個分區上存放系統啟動所必需的文件,如內核映像文件、內核啟動後運行的第一個程序、給用戶提供操作界面的Shell程序、應用程式所依賴的庫等,這些必需、基本的文件合稱為根文件系統,它們存放在一個分區中。
  • 【Linux基礎】07 文件管理
    目錄一 前言二 目錄結構三 路徑四 文件管理4.1 文件管理之:基礎4.3 文件管理之:查看文件內容4.5 文件管理之:文件查找4.6 文件管理之:上傳與下載4.7 文件管理之:字符處理命令4.7.4 tr命令4.7.5 wc命令4.8 文件管理之:打包壓縮4.9 軟硬連結(2)inode的大小(3)inode號碼(4)目錄項(5)硬連結和軟連結
  • linux基礎命令(文件操作/文件權限)
    文件操作常用命令Linux是一個一切皆文件的作業系統,不管是普通的文件、目錄、套接字等,在Linux中都是以文件的方式對待,雖然他們的類型不同,但linux對其提供的是同一套操作界面。切換工作目錄cd 目標工作路徑註:目標工作路徑可為絕對路徑也可為相對路徑切換工作目錄eg.
  • 關於NFS埠的配置
    服務啟動時默認會為 mountd動態選取一個隨機埠(32768--65535)來進行通訊,我們可以通過編輯/etc/services 文件為 mountd指定一個固定埠:# vi /etc/services 在末尾添加
  • 基於S3C2440的嵌入式Linux根文件系統構建
    採用單一執行文件的方式可以最大限度地共享程序代碼,甚至連文件頭、內存中的程序控制塊等其他作業系統資源都可共享,這對於資源比較緊張的系統來說,最合適不過了。  4.1 創建etc目錄下的文件  在/home/work/rootby/etc目錄下存放各種配置文件。這些文件都是可選的,它們依賴於系統中所擁有的應用程式,依賴於這些程序是否需要配置文件。
  • Linux系統從入門到放棄?
    Linux最大的特點就是其開源性,這一點是十分難得的,這也是它能夠存在到現在的原因之一,使其在金融、安全等部門有很重要的應用。學習Linux,首先我們應該從基礎開始學起。對Linux作業系統的功能、版本、特點,以及Linux系統安裝和圖形環境有較全面的了解。