NFS存儲服務部署

来源:http://www.cnblogs.com/znix/archive/2017/10/19/7694456.html
-Advertisement-
Play Games

第1章 NFS介紹 1.1 NFS服務內容的概述 □ RPC服務知識概念介紹說明,以及RPC服務存在價值(必須理解掌握) □ NFS服務工作原理講解(必須理解掌握) □ NFS共用文件系統使用原理講解(必須理解掌握) □ NFS服務配罝文件exports編寫格式說明(必須理解掌握) 1.2 NFS是 ...


第1章 NFS介紹

1.1 NFS服務內容的概述

RPC服務知識概念介紹說明,以及RPC服務存在價值必須理解掌握

NFS服務工作原理講解(必須理解掌握)

NFS共用文件系統使用原理講解(必須理解掌握

NFS服務配罝文件exports編寫格式說明(必須理解掌握

1.2 NFS是什麼

NFSNetwork File System)即網路文件系統

   它的主要功能是通過網路(一般是區域網)讓不同的主機系統之間可以共用文件或目錄。

   分散式文件系統Moosefs(mfs)\glusterFS

1.2.1 NFSqudian

nfs屬於本地文件存儲服務

   缺點一:

    winndows上無法使用

   缺點二:

在高併發場景,以及存儲量比較高的場景,對數據安全性要求比較高場景

        需要採用分散式儲存(mfs  FastDFS

        分散式文件系統:無法在伺服器中看到真實的文件信息

1.2.2 實現Windowslinux系統文件數據共用方法

        a.ftp(ftp服務部署)

        b.samba服務   

1.3 NFS共用網路文件系統企業應用

主要用於存儲web伺服器上用戶上傳的數據信息,圖片 附件 頭像 視頻 音頻

1.4 NFS文件系統存在意義

實現數據共用,數據統一一致

1.4.1 實現的不同方法

軟體實現:

本地文件系統NFS  分散式文件系統 mfs

硬體實現:

IBM (伺服器 小型機 大型機 存儲 DS V7000 V5000) oracle EMC = IOE

1.5 NFS 網路文件系統工作方式

* nfs服務端創建共用目錄

* 通過mount 網路掛載,將NFS客戶端本地目錄掛載到NFS服務端共用目錄上

* NFS客戶端掛載目錄上創建、刪除、查看數據操作,等價於在服務端進行的創建、刪除、查看數據操作

 

如圖10-5所示,在 NFS伺服器端設置好一個共用目錄 /video後,其他有許可權訪問 NFS伺服器端的客戶端都可以將這個共用目錄 /video掛載到客戶端本地的某個掛載點(其實就是一個目錄,這個掛載點目錄可以自己隨意指定),圖10-5中的兩個 NFS客戶端本地的掛載點分別為/ v/video/video ,不同客戶端的掛載點可以不相同。

客戶端正確掛載完畢後,就可以通過 NFS客戶端的掛載點所在的/v/video /video目錄查看

NFS伺服器端 /video共用出來的目錄下的所有數據。在客戶端上查看時 NFS伺服器端的 /video目錄就相當於客戶端本地的磁碟分區或目錄,幾乎感覺不到使用上的區別,根據 NFS伺服器端授予 NFS共用許可權以及共用目錄的本地系統許可權,只要在指定的 NFS客戶端操作掛載/ v/video/video的目錄,就可以將數據輕鬆地存取到NFS伺服器端上的/video目錄中了。

1.6 NFS網路文件系統重點要瞭解兩個重要服務

 RPC服務

       NFS服務

1.6.1 NFS工作流程圖

 

 

1.6.2 RPC服務工作原理

1.6.3 NFS詳細的訪問流程

當訪問程式通過NFS客戶端向NFS伺服器存取文件時,其請求數據流程大致如下:

01.首先用戶訪間網站程式,由程式在NFS客戶端上發出存取NFS文件的請求,這時NFS客戶端(即執行程式的伺服器)的RPC服務(rpcbind服務)就會通過網路向NFS伺服器端的RPC服務(rpcbind服務)的111埠發出NFS文件存取功能的詢間請求.

02.NFS伺服器端的RPC服務(rpcbind服務)找到對應的已註冊的NFS埠後,通知NFS客戶端的RPC服務(rpcbind服務)。

03.此時NFS客戶端獲取到正確的埠,並與NFS daemon聯機存取數據

04.NFS客戶端把數據存取成功後,返回給前端訪間程式,告知用戶存取結果,作為網站用戶,就完成了一次存取操作。

   因為NFS的各項功能都需要向RPC服務(rpcbind服務)註冊,所以只有RPC服務才能獲取到NFS服務的各項功能對應的埠號(port number)PIDNFS在主機所監聽的IP等信息,而NFS客戶端也只能通過向RPC服務詢問才能找到正確的端□。也就是說,NFS需要有RPC服務的協助才能成功對外提供服務。從上面的描述,我們不難推斷,無論是NFS客戶端還是NFS伺服器端,當要使用NFS時,都需要首先啟動RPC服務,NFS服務必須在RPC服務啟動之後啟動,客戶端無需啟動NFS服務,但需要啟動RPC服務。

第2章 實踐操作NFS 服務

2.1 進行伺服器架構規劃

NFS伺服器部署角色IP

伺服器系統

角色

IP

CentOS release 6.9 (Final)

NFS伺服器端(NFS-Sever)

10.0.0.31

CentOS release 6.9 (Final)

NFS客戶端1(NFS-Client1)

10.0.0.8

CentOS release 6.9 (Final)

NFS客戶端2(NFS-Client2)

10.0.0.41

2.2 NFS服務端部署過程

2.2.1 第一個裡程碑-確認軟體是否已經安裝,安裝NFS服務相關軟體

  rpm -qa|grep nfs

  rpm -qa|grep rpc

安裝rpcbind nfs-utils服務程式,併進行驗證安裝是否成功

  yum install -y nfs-utils rpcbind

  rpm -qa nfs-utils rpcbind

 

2.2.2 第二個裡程碑-編寫nfs配置文件

  nfs配置文件預設存在/etc/exports

  vim /etc/exports

  #share /data by oldboy for share at 20170220

  /data   172.16.1.0/24(rw,sync) 

/etc/exports文件說明:

第一部分:/data            --指定共用目錄信息

第二部分:172.16.1.0/24  --指定了一個網段信息,表示允許指定的網段主機掛載到我本地的共用目錄上

第三部分:(rw,sync)       --表示定義共用參數信息,

             rw     表示讀寫,對共用目錄設置的許可權

             sync   同步數據會先寫入到NFS伺服器記憶體中,會立刻同步到磁碟裡面==直接存儲硬碟中

2.2.3 第三個裡程碑:創建共用目錄,進行許可權設定

  mkdir /data -p

  chown -R nfsnobody.nfsnobody /data

說明:

NFS共用目錄管理用戶為nfsnobody,此用戶不用創建,安裝nfs軟體時會自動創建

2.2.4 第四個裡程碑:啟動服務(註意順序

   首先,啟動rpc服務

/etc/init.d/rpcbind start

   其次,啟動nfs服務

/etc/init.d/nfs start

  rpcbind服務啟動信息查看

  [root@nfs01 ~]# ps -ef|grep rpcbind

  rpc        4050      1  0 10:55 ?        00:00:00 rpcbind

  root       4054   3878  0 10:55 pts/1    00:00:00 grep --color=auto rpcbind

  [root@nfs01 ~]# netstat -lntup|grep 111

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

  tcp        0      0 :::111                      :::*                        LISTEN      4050/rpcbind       

  udp        0      0 0.0.0.0:111                 0.0.0.0:*                               4050/rpcbind       

  udp        0      0 :::111                      :::*                                    4050/rpcbind       

  [root@nfs01 ~]# 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

  nfs啟動後查看信息

[root@nfs01 ~]# 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

    100024    1   udp  28467  status

    100024    1   tcp  56269  status

    100011    1   udp    875  rquotad

    100011    2   udp    875  rquotad

    100011    1   tcp    875  rquotad

    100011    2   tcp    875  rquotad

    100005    1   udp  32886  mountd

    100005    1   tcp   6154  mountd

    100005    2   udp  38339  mountd

    100005    2   tcp  60288  mountd

    100005    3   udp  49824  mountd

    100005    3   tcp  24427  mountd

    100003    2   tcp   2049  nfs

    100003    3   tcp   2049  nfs

    100003    4   tcp   2049  nfs

    100227    2   tcp   2049  nfs_acl

    100227    3   tcp   2049  nfs_acl

    100003    2   udp   2049  nfs

    100003    3   udp   2049  nfs

    100003    4   udp   2049  nfs

    100227    2   udp   2049  nfs_acl

    100227    3   udp   2049  nfs_acl

    100021    1   udp  61803  nlockmgr

    100021    3   udp  61803  nlockmgr

    100021    4   udp  61803  nlockmgr

    100021    1   tcp   6064  nlockmgr

    100021    3   tcp   6064  nlockmgr

    100021    4   tcp   6064  nlockmgr

2.2.5 到此服務端部署配置完成

[root@nfs01 ~]# showmount -e 172.16.1.31

Export list for 172.16.1.31:

/data 172.16.1.0/24

2.3 NFS 客戶端部署

2.3.1 第一個裡程碑:確認軟體有沒有安裝,進行nfs rpc 服務軟體安裝部署

yum install rpcbind nfs-utils -y

2.3.2 第二個裡程碑:啟動服務

提示:

rpcbindnfs軟體都可以不啟動

2.3.3 第三個裡程碑: 檢查NFS服務端是否有可以進行掛載的目錄

[root@nfs01 ~]# rpm -qf `which showmount`

nfs-utils-1.2.3-75.el6.x86_64

說明:showmount使用,需要安裝nfs-utils軟體

2.3.4 第四個裡程碑:進程nfs客戶端掛載

mount -t nfs 172.16.1.31:/data /mnt

  

[root@backup ~]# showmount -e 172.16.1.31

Export list for 172.16.1.31:

/data 172.16.1.0/24

[root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt

說明: 如果nfs軟體不安裝

        a 無法使用showmount 命令

        b 客戶端無法識別nfs 文件系統類型

2.3.5 第五個裡程碑: 進行檢查測試

[root@backup ~]# df -h

Filesystem         Size  Used Avail Use% Mounted on

/dev/sda3           19G  1.5G   17G   9% /

tmpfs              238M     0  238M   0% /dev/shm

/dev/sda1          190M   40M  141M  22% /boot

172.16.1.31:/data   19G  1.5G   17G   9% /mnt

【測試】本地nfs客戶端 進行增刪改數據 等價於 nfs服務端共用目錄操作

[root@backup mnt]# echo "test123">test.txt

[root@backup mnt]# ll test.txt

-rw-r--r-- 1 nfsnobody nfsnobody 8 Oct 13 11:28 test.txt

[root@nfs01 data]# cat test.txt

test123

第3章 知識深入

3.1 NFS服務相關進程信息

3.1.1 簡略說明

rpcbind        rpc啟動進程 主進程

rpc state      檢查數據存儲的一致性

rpc.rquotad    磁碟配額

rpc.mountd     許可權管理驗證

nfsd            NFS主進程

rpc.idmapd     用戶壓縮映射

3.1.1 進程/服務 詳細說明

服務或進程名

用途說明

portmapper

rpcbind服務的進程(centos5.x 上為 portmap軟體)

rquotad

磁碟配額進程

nfsnfs_acl

   nfs服務進程

nfsd (rpc.nfsd )

rpc.nfsd的主要功能是管理NFS客戶端是否能夠登入NFS伺服器端主機,其中還包括含登入者的ID判別等。

mountd

rpc.mountd的主要功能則是管理NFS文件系統。當NFS客戶端順利通過rpc.nfsd登入NFS伺服器端主機時,在使用NFS伺服器提供數據之前,它會去讀NFS的配置文件/etc/exports來比對NFS客戶端的許可權,通過這一關之後,還要經過NFS伺服器端本地文件系統使用許可權(就是ownergroupother許可權)等認證程式。如果都通過了,NFS客戶端就可以取得使用NFS伺服器端文件的許可權。

註意:這個/etc/exports文件也是我們用來管理NFS共用目錄的使用許可權與安全設置的地方,特別強調,NFS本身設置的是網路共用許可權,整個共用目錄的許可權還和目錄自身的系統許可權有關。

rpc.lockd (非必要)

用來鎖定文件,用於多客戶端同時寫入

rpc.statd (非必要)

檢查文件的一致性,與rpc.lockd有關。cd兩個服務雲要客戶端,伺服器端同時開啟才可以;rpc.statd監聽來自其他主機重啟的通知,並且管理當本地系統重啟時主機列表。

rpc.idmapd

表示用戶映射或用戶壓縮(重要

3.2 /etc/exports配置文件說明

3.2.1 /etc/exports文件說明

NFS共用目錄:

NFS伺服器端要共用的實際目錄,要用絕對路徑,如 /data )。註意共用目錄的本地許可權,如果需要讀寫共用,一定要讓本地目錄可以被 NFS客戶端的用戶 nfsnobody)讀寫。

NFS客戶端地址:

NFS伺服器端授權的可訪問共用目錄的NFS客戶端地址,可以為單獨的IP地址或主機名、功能變數名稱等,也可以為整個網段地址。還可以用來匹配所有客戶端伺服器,這裡所謂的客戶端一般來說是前端的業務的業務伺服器,例如:web服務。

□許可權參數集

對授權的NFS客戶端的訪問許可權設置。

nfs許可權(共用目錄\借給你手機)nfs配置的/ etc/exports /data 172.16.1.0/24(rw)

本地文件系統許可權(\手機密碼不告訴你)掛載目錄的許可權rwxr- xr-x root root/data

3.2.2 指定 NFS客戶端地址的配置詳細說明 

客戶端地址           

具體地址        

授權單一客戶端訪問NFS

10.0.0.30

一般情況,生產環境中此配置不多

授權整個網段可訪問NFS

10.0.0.0/24

其中的24等同於255.255.255.0 ,指定網段為生產環境中最常見的配置。配置簡單,維護方便

授權整個網段可訪問NFS

10.0.0.*

指定網段的另外寫法(不推薦使用)

授權某個功能變數名稱客戶端訪問

nfs.oldboyedu.com

此方法生產環境中一般情況不常用

授權整個功能變數名稱客戶端訪問

*.oldboyedu.com

此方法生產環境中一般情況不常用

3.2.3 常見案例

常用格式說明

要共用的目錄客戶端IP地址或IP(1,2,)

配罝例一

/data10.0.0.0/24(ro,sync)

說明:允許客戶端讀寫,並且數據同步寫入到伺服器揣的磁碟里

註意:24"("之間不能有空格

配置例二

/data10.0.0.0/24(rw,sync/all_squash,anonuid=2000,anongid=2000)

說明:允許客戶揣讀寫,並且數據同步寫到伺服器揣的磁碟里,並且指走客戶端

的用戶UIDGID,早期生產環境的一種配罝,適合多客戶端共用一個NFS服務

單目錄,如果所有伺服器的nfsnobody賬戶UID都是65534,則本例沒什麼必

要了.早期centos5.5的系統預設情況下nfsnobodyUID不一定是65534,

此時如果這些伺服器共用一個NFS目錄,就會出現訪問許可權問題.

配置例三

/home/oldboy10.0.0.0/24(ro)

說明:只讀共用

用途:例如在生產環境中,開發人員有查看生產眼務器日誌的需求,但又不希罜

給開發生產伺服器的許可權,那麼就可以給開發提供從某個測試伺服器NFS客戶端

上查看某個生產伺服器的日誌目錄(NFS共用)的許可權,當

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

-Advertisement-
Play Games
更多相關文章
  • (一)I2S匯流排概述: 音響數據的採集、處理和傳輸是多媒體技術的重要組成部分。眾多的數字音頻系統已經進入消費市場,例如數字音頻錄音帶、數字聲音處理器。對於設備和生產廠家來說,標準化的信息傳輸結構可以提高系統的適應性。I2S(Inter—IC Sound)匯流排是飛利浦公司為數字音頻設備之間的音頻數據傳 ...
  • 在給別人使用GUEST用戶登陸使用共用目錄,併在電腦上已將guest用戶啟用,但是報“登錄失敗:未授予用戶在此電腦上的請求登錄類型” 解決方法: 打開“控制面板”中的“管理工具” 在“管理工具”中選擇“本地安全策略” 選擇"本地安全策略"——“本地策略”——"用戶權利分配",在“用戶權利指派”右邊 ...
  • 一.背景 1.1 mips32搭載32bit vxworks操作系統 1.2 x86搭載64bit windows10操作系統 二.大小端模式判定前的準備 2.1 先要知道各種架構上各種整型數占據的bit數,也就是通過範圍來確定bit數 上一篇已經講過,特奉上地址如下: http://www.cnb ...
  • 首先你需要Ubuntu 系統在你的電腦上:(這個應該都有了吧,這個就不做介紹了) 環境:Java Python maven 這個你可以在Windows上下載好 jdk_8u144-linux-x86.tar.gz包(我安裝時最新版,現在可以下 載最新版) Apache-maven-3.5.0 (聲 ...
  • 前言 Apache 2.4 以後的版本不再自帶 APR 庫(Apache Portable Runtime,Apache 可移植運行庫),所以在安裝 Apache 之前需要手動下載安裝 APR 庫。 完整的 APR 實際上包含了三個依賴包:apr、apr-util 以及 apr-iconv。 正文 ...
  • 個人原創禁止轉載 軟體環境: Centos6.9 x64 openvpn-2.4.3-1.el6.x86_64.rpm easy-rsa-2.2.2-1.el6.noarch.rpm #推薦使用2.2的版本 pkcs11-helper-1.11-3.el6.x86_64.rpm 網路環境: open ...
  • 參考文檔: 本文涉及zookeeper集群的安裝配置。 一.環境 1. 操作系統 CentOS-7-x86_64-Everything-1511 2. 版本 JDK 8u131:http://www.oracle.com/technetwork/java/javase/downloads/index ...
  • 1》集群: 隨著互聯網的發展,大量的客戶端請求蜂擁而至,同時伺服器的負載也越來越大,然而單台伺服器的負載又是有限的,這樣就會導致伺服器響應客戶端請求的時間越長, 甚至產生拒絕服務的情況;另外目前的網站多數是7*24小時提供不間斷網路服務,如果僅採用單點伺服器對外提供網路服務,那麼在出現單點故障時,將 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...