在CentOS7上實現NFS共用

来源:http://www.cnblogs.com/renpingsheng/archive/2017/06/03/6936704.html
-Advertisement-
Play Games

一.介紹 二.服務端配置 1.關閉系統防火牆和selinux 查看系統防火牆的狀態,可以看到防火牆是開著的 [root@bogon ~] systemctl status firewalld ● firewalld.service firewalld dynamic firewall daemon ...


一.介紹

    NFS 是Network File System的縮寫,即網路文件系統。一種使用於分散式文件系統的協定,功能是讓客戶端通過網路訪問不同主機上磁碟里的數據,主要用在類Unix系統上實現文件共用的一種方法。
    NFS在文件傳送或信息傳送過程中依賴於RPC協議。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是負責負責信息的傳輸。

二.服務端配置

1.關閉系統防火牆和selinux

#查看系統防火牆的狀態,可以看到防火牆是開著的
[root@bogon ~]#systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-06-03 09:38:00 CST; 8s ago
     Docs: man:firewalld(1)
 Main PID: 24067 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─24067 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Jun 03 09:37:58 bogon systemd[1]: Starting firewalld - dynamic firewall daemon...
Jun 03 09:38:00 bogon systemd[1]: Started firewalld - dynamic firewall daemon.
#關閉防火牆
[root@bogon ~]#systemctl stop firewalld
#再次查看防火牆,可以看到已經關閉了
[root@bogon ~]#systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

Jun 01 11:33:35 localhost systemd[1]: Starting firewalld - dynamic firewall daemon...
Jun 01 11:33:44 localhost systemd[1]: Started firewalld - dynamic firewall daemon.
Jun 03 09:11:32 bogon systemd[1]: Stopping firewalld - dynamic firewall daemon...
Jun 03 09:11:34 bogon systemd[1]: Stopped firewalld - dynamic firewall daemon.
Jun 03 09:37:58 bogon systemd[1]: Starting firewalld - dynamic firewall daemon...
Jun 03 09:38:00 bogon systemd[1]: Started firewalld - dynamic firewall daemon.
Jun 03 09:38:34 bogon systemd[1]: Stopping firewalld - dynamic firewall daemon...
Jun 03 09:38:36 bogon systemd[1]: Stopped firewalld - dynamic firewall daemon.
#查看selinux的運行模式,現在為強制模式
[root@bogon share]#getenforce
Enforcing
#把selinux設為許可模式
[root@bogon share]#setenforce 0
#再次查看selinux的運行模式,已經變為許可模式
[root@bogon share]#getenforce
Permissive
#要想禁用selinux,則需要編輯selinux的配置文件,把SELINUX設置成disabled,然後重啟生效
[root@bogon share]#vi /etc/sysconfig/selinux
[root@bogon share]#cat /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

2.安裝所需的軟體包

[root@bogon ~]#yum install -y rpc-bind nfs-utils

3.服務端配置


NFS服務的主要配置文件為 /etc/exports.
/etc/exports文件內容格式:
    <輸出目錄> 客戶端(選項:訪問許可權,用戶映射,其他]
        輸出目錄是指NFS系統中所定義的共用給客戶端使用的文件系統
        客戶端是定義網路中可以訪問這個NFS共用目錄的IP地址或網段或功能變數名稱等
            客戶端常用的指定方式
                指定ip地址的主機:192.168.100.1
                指定一個子網:192.168.100.0/24 也可以寫成:192.168.100.0/255.255.255.0
                指定功能變數名稱的主機:david.bsmart.cn
                指定域中的所有主機:*.bsmart.cn
                所有主機:*
        選項用來設置輸出目錄的訪問許可權、用戶映射等。
            NFS主要有3類選項:
                設置輸出目錄只讀:ro
                設置輸出目錄讀寫:rw
            用戶映射選項
                all_squash:將遠程訪問的所有普通用戶及所屬組都映射為匿名用戶或用戶組(nfsnobody);
                no_all_squash:與all_squash取反(預設設置);
                root_squash:將root用戶及所屬組都映射為匿名用戶或用戶組(預設設置);
                no_root_squash:與rootsquash取反;
                anonuid=xxx:將遠程訪問的所有用戶都映射為匿名用戶,並指定該用戶為本地用戶(UID=xxx);
                anongid=xxx:將遠程訪問的所有用戶組都映射為匿名用戶組賬戶,並指定該匿名用戶組賬戶為本地用戶組賬戶(GID=xxx);
            其它選項
                secure:限制客戶端只能從小於1024的tcp/ip埠連接nfs伺服器(預設設置);
                insecure:允許客戶端從大於1024的tcp/ip埠連接伺服器;
                sync:將數據同步寫入記憶體緩衝區與磁碟中,效率低,但可以保證數據的一致性;
                async:將數據先保存在記憶體緩衝區中,必要時才寫入磁碟;
                wdelay:檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率(預設設置);
                no_wdelay:若有寫操作則立即執行,應與sync配合使用;
                subtree:若輸出目錄是一個子目錄,則nfs伺服器將檢查其父目錄的許可權(預設設置);
                no_subtree:即使輸出目錄是一個子目錄,nfs伺服器也不檢查其父目錄的許可權,這樣可以提高效率;

修改/etc/exports文件,定義NFS共用

#修改NFS配置文件,定義共用
[root@bogon ~]#vi /etc/exports
#定義向所有客戶端共用/share目錄,共用方式為可讀可寫
[root@bogon ~]#cat /etc/exports
/share *(rw,sync)
#創建/share這個共用目錄
[root@bogon ~]#mkdir /share
#把共用目錄的許可權設定為所有用戶都可讀可寫許可權
[root@bogon ~]#chmod 766 /share
#把NFS加入到開機自啟動選項中
[root@bogon ~]#systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
#開啟NFS服務
[root@bogon ~]#systemctl start nfs
#把RPCbind加入開機處啟動選項中
[root@bogon ~]#systemctl enable rpcbind 
#啟動RPCbind
[root@bogon ~]#systemctl start rpcbind
#查看NFS服務的狀態 ,可以看到NFS服務已經在運行中
[root@bogon ~]#systemctl status nfs
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
   Active: active (exited) since Sat 2017-06-03 09:22:02 CST; 37min ago
 Main PID: 23967 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

Jun 03 09:22:02 bogon systemd[1]: Starting NFS server and services...
Jun 03 09:22:02 bogon systemd[1]: Started NFS server and services.
#查看本機共用的文件系統
[root@bogon ~]#exportfs
/share          <world>

三.客戶端配置:

1.客戶端關閉防火牆和selinux,方法同上.

2.客戶端安裝NFS軟體包,並把NFS服務設為開機自啟動,方法同上.

3.掛載共用的NFS文件系統

#把192.168.16.29這個主機上的共用目錄掛載到本機的/media上
[root@bogon ~]#mount 192.168.16.29:/share /media
#查看是否已經掛載成功
[root@bogon ~]#mount | grep media
192.168.16.29:/share on /media type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.16.177,local_lock=none,addr=192.168.16.29)
#把共用目錄寫入系統掛載文件系統
[root@bogon ~]#vi /etc/fstab
[root@bogon ~]#cat /etc/fstab | grep media
192.168.16.29:/share        /media      nfs4    defaults    0 0

四.測試:

1.在服務端共用目錄中新建一個10M大小的文件

[root@bogon media]#cd /share
[root@bogon share]#ls
#在NFS共用目錄上新建一個10M大小的文件,提示成功
[root@bogon share]#dd if=/dev/zero of=/share/f1 bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.0351504 s, 298 MB/s
[root@bogon share]#ll -h
total 10M
-rw-r--r--. 1 root root 10M Jun  3 10:14 f1

2.在客戶端新建另一個文件f2,同時嘗試刪除另一個文件f1

[root@bogon ~]#cd /media
[root@bogon media]#ls
f1
#在共用目錄上新建一個文件f2,未報錯
[root@bogon media]#touch f2
#刪除存在的文件f1,未報錯
[root@bogon media]#rm -f f1

3.在服務端查看共用目錄中的文件

[root@bogon share]#ls
f2

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 定期備份越來越多,需要刪除部分過期的文件,可以使用forfiles進行操作。文本將結束forfiles的簡單使用方法。 ...
  • 在機房折磨很久弄好的自己 Mark 一下。(測試環境rhel5.5) vnc 之獨立服務配置 步驟1: (1)查看系統是否安裝vnc服務(也可以在 系統-管理員-服務 里查看並勾選開機自啟) (如果有返回值,類似於vnc-server的值,說明已經安裝了vnc-server此步驟就可跳過。) (2) ...
  • 1、創建到目標板相關文件的鏈接 ln -s asm-arm asm ln -s arch-s3c24x0 asm-arm/arch ln -s proc-armv asm-arm/proc 2、創建include/config.mk文件,內容如下: ARM = arm CPU = arm920t B ...
  • 失敗原因: 1.telnet包未安裝,檢查telnet包是否安裝: 表示已安裝 2.telnet包已安裝,telnet-server未安裝,檢查telnet-server包是否安裝: 表示已安裝 3.telnet配置文件問題: 將disable對應的值修改為no或者註釋該行並重啟xinetd守護進程 ...
  • 一、BIOS更改 首先來bios更改:我們知道,uefi+gpt引導雖然出來的時間比較長,但是win7還不能完全的支持,所以在使用uefi+gpt安裝win7的時候就會出現各種錯誤!所以我們在安裝Windows 7的時候,不能把BIOS設置為“純UEFI”,並且必須禁用“Secure Boot”。下 ...
  • 一、Samba服務 Samba服務主要用於Linux伺服器給Windows用戶分享文件用 配置伺服器都需要以下5步操作 1.準備環境 1)關閉防火牆 systemctl stop firewalld 2)臨時關閉selinux sentenforce 0 或者在配置文件中永久關閉selinux vi ...
  • 分享一個由於KDE未被正確安裝導致ubuntu 無法用ssh正常訪問的問題解決過程 ...
  • 大家在學習正則表達式之前,首先要明確一點,並把它牢牢記在心裡,那就是: 在linux中,通配符是由shell解釋的,而正則表達式則是由命令解釋的,不要把二者搞混了。切記!!! 通常有三種文本處理工具/命令:grep、sed、awk,它們三者均可以解釋正則。下麵我就為大家介紹grep命令的使用方法。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...