1. 程式人生 > >在linux下通過nfs搭建檔案伺服器,並實現掛載

在linux下通過nfs搭建檔案伺服器,並實現掛載

今天做不成的事,明天也不會做好。

同學們,我們今天來學習在linux下搭建nfs檔案伺服器,並在linux和windows下進行掛載。最開始,專案的部署是和檔案放在一起的,後來,隨著訪問的人數增多,就需要把檔案單獨拿出來放到一個伺服器,這樣能提升效能和加快速度,同時,也可以針對專門的檔案伺服器做磁碟優化。在搭建前,我們先了解一下nfs。

1.什麼是nfs

NFS(Network File System)即網路檔案系統,是FreeBSD支援的檔案系統中的一種,它允許網路中的計算機之間通過TCP/IP網路共享資源。在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位於遠端NFS伺服器上的檔案,就像訪問本地檔案一樣。

2.搭建nfs

首先,我們得有一臺linux的伺服器。例如虛擬機器或者雲伺服器。

2.1前期準備:

1.安裝nfs-utils和rpcbind
yum install nfs-utils rpcbind

2.設定開機啟動服務
chkconfig nfs on
chkconfig rpcbind on

3.啟動相關服務
service rpcbind start
service nfs start

2.2服務端配置:

1.建立共享目錄
mkdir /data/nfs/server
2.編輯/etc/exports檔案新增如下內容
vim /etc/exports
/data/nfs/server *(rw,no_root_squash,no_all_squash,sync)
① /data/nfs/server —要共享的目錄
② * 處代表限制訪問的ip段
可以填192.168.0.* —允許訪問的網段,也可以是ip地址、主機名(能夠被伺服器解析)
可以填192.168.0.123/24
*(所有人都能訪問)

③ 括號內的常見引數有:
引數值 內容說明
rw  ro 該目錄分享的許可權是可擦寫 (read-write) 或只讀 (read-only),但最終能不能讀寫,還是與檔案系統的 rwx 及身份有關。
sync  async sync 代表資料會同步寫入到記憶體與硬碟中,async 則代表資料會先暫存於記憶體當中,而非直接寫入硬碟!
no_root_squash  root_squash 客戶端使用 NFS 檔案系統的賬號若為 root 時,系統該如何判斷這個賬號的身份?預設的情況下,客戶端 root 的身份會由 root_squash 的設定壓縮成 nfsnobody, 如此對伺服器的系統會較有保障。但如果你想要開放客戶端使用 root 身份來操作伺服器的檔案系統,那麼這裡就得要開 no_root_squash 才行!
all_squash 不論登入 NFS 的使用者身份為何, 他的身份都會被壓縮成為匿名使用者,通常也就是 nobody(nfsnobody) 啦!
no_subtree_check 關閉子樹檢查
anonuid  anongid anon 意指 anonymous (匿名者) 前面關於 *_squash 提到的匿名使用者的 UID 設定值,通常為 nobody(nfsnobody),但是你可以自行設定這個 UID 的值!當然,這個 UID 必需要存在於你的 /etc/passwd 當中! anonuid 指的是 UID 而 anongid 則是群組的 GID 囉。
其他選項可以通過man exports查閱man文件

3.重新整理配置立即生效
exportfs -r

4.重啟nfs
service nfs restart

  1. 檢視 RPC 服務的註冊狀況
    [[email protected] lys]# rpcinfo -p localhost
    program vers proto port service
    4 tcp 111 portmapper
    3 tcp 111 portmapper
    2 tcp 111 portmapper
    4 udp 111 portmapper
    3 udp 111 portmapper
    2 udp 111 portmapper
    1 udp 49979 mountd
    1 tcp 58393 mountd
    2 udp 45516 mountd
    2 tcp 37792 mountd
    3 udp 32997 mountd
    3 tcp 39937 mountd
    2 tcp 2049 nfs
    3 tcp 2049 nfs
    4 tcp 2049 nfs
    2 tcp 2049 nfs_acl
    3 tcp 2049 nfs_acl
    2 udp 2049 nfs
    3 udp 2049 nfs
    4 udp 2049 nfs
    2 udp 2049 nfs_acl
    3 udp 2049 nfs_acl
    1 udp 51112 nlockmgr
    3 udp 51112 nlockmgr
    4 udp 51112 nlockmgr
    1 tcp 43271 nlockmgr
    3 tcp 43271 nlockmgr
    4 tcp 43271 nlockmgr
    選項與引數:
    -p :針對某 IP (未寫則預設為本機) 顯示出所有的 port 與 porgram 的資訊;
    -t :針對某主機的某支程式檢查其 TCP 封包所在的軟體版本;
    -u :針對某主機的某支程式檢查其 UDP 封包所在的軟體版本;

6.本機查詢nfs伺服器
[[email protected] lys]# showmount -e localhost
Export list for localhost:
/data/nfs/server *

選項與引數:
-a :顯示目前主機與客戶端的 NFS 聯機分享的狀態;
-e :顯示某部主機的 /etc/exports 所分享的目錄資料。

2.3客戶端配置:

1.建立掛載點
mkdir /data/nfs/client
2.檢視伺服器丟擲的共享目錄資訊
[[email protected] ~]# showmount -e 192.168.0.123
Export list for 192.168.0.123:
/data/nfs/server *

3.掛載目錄
為了提高NFS的穩定性,使用TCP協議掛載,NFS預設用UDP協議
mount -t nfs -o vers=3 192.168.0.123:/data/nfs/server /data/nfs/client -o proto=tcp -o nolock
4.檢視掛載的目錄
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
18G 1.1G 16G 7% /
tmpfs 112M 0 112M 0% /dev/shm
/dev/sda1 477M 54M 398M 12% /boot
192.168.0.123:/data/lys
18G 1.1G 16G 7% /lys

3.測試:

服務端
[[email protected] lys]# echo “test” > test.txt
客戶端
[[email protected] ~]# cat /lys/test.txt
test
[[email protected] ~]# echo “204” >> /lys/test.txt
服務端
[[email protected] lys]# cat /data/lys/test.txt
test
204

4.取消掛載:

[[email protected] ~]# umount /data/nfs/client
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
18G 1.1G 16G 7% /
tmpfs 112M 0 112M 0% /dev/shm
/dev/sda1 477M 54M 398M 12% /boot

如果顯示:device is busy,可以使用-lf引數強行刪除
[[email protected] ~]# umount –lf /data/nfs/client

5.重啟和關閉:

重啟:[[email protected] ~]# service 服務名 restart
停止:[[email protected] ~]# service 服務名 stop
開啟:[[email protected] ~]# service 服務名 start

6.固定nfs服務埠

為了方便配置防火牆,需要固定nfs服務埠
NFS啟動時會隨機啟動多個埠並向RPC註冊,這樣如果使用iptables對NFS埠進行限制就會有點麻煩,可以更改配置檔案固定NFS服務相關埠。

[[email protected] lys]# 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 49979 mountd
100005 1 tcp 58393 mountd
100005 2 udp 45516 mountd
100005 2 tcp 37792 mountd
100005 3 udp 32997 mountd
100005 3 tcp 39937 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 51112 nlockmgr
100021 3 udp 51112 nlockmgr
100021 4 udp 51112 nlockmgr
100021 1 tcp 43271 nlockmgr
100021 3 tcp 43271 nlockmgr
100021 4 tcp 43271 nlockmgr

分配埠,編輯配置檔案:
[[email protected] lys]# vim /etc/sysconfig/nfs
新增:
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004
重啟

[[email protected] lys]# service nfs restart
關閉 NFS 守護程序: [確定]
關閉 NFS mountd: [確定]
關閉 NFS 服務: [確定]
Shutting down RPC idmapd: [確定]
啟動 NFS 服務: [確定]
啟動 NFS mountd: [確定]
啟動 NFS 守護程序: [確定]
正在啟動 RPC idmapd: [確定]

檢視結果

[[email protected] lys]# 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 30003 mountd
100005 1 tcp 30003 mountd
100005 2 udp 30003 mountd
100005 2 tcp 30003 mountd
100005 3 udp 30003 mountd
100005 3 tcp 30003 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 30002 nlockmgr
100021 3 udp 30002 nlockmgr
100021 4 udp 30002 nlockmgr
100021 1 tcp 30002 nlockmgr
100021 3 tcp 30002 nlockmgr
100021 4 tcp 30002 nlockmgr

可以看到,隨機埠以固定
iptables策略問題完美解決!!!

7.設定系統開機就掛載磁碟

在/etc/fstab中加入開機掛載命令
[[email protected] lys]# vim /etc/fstab
10.10.159.68:/s4_attachment /data/nfs/client nfs defaults 0 0

8.Windows作為客戶端掛載nfs

1.開啟nfs客戶端:開啟控制面板》程式》啟用或關閉windos功能》選中nfs客戶端,點選確定
.2.掛載:mount 192.168.0.123:/data/nfs/client X:
會建立一個網路盤X盤,裡面掛載檔案
3.取消掛載:右鍵X盤,點選取消連線

相關推薦

linux通過nfs搭建檔案伺服器實現掛載

今天做不成的事,明天也不會做好。 同學們,我們今天來學習在linux下搭建nfs檔案伺服器,並在linux和windows下進行掛載。最開始,專案的部署是和檔案放在一起的,後來,隨著訪問的人數增多,就需要把檔案單獨拿出來放到一個伺服器,這樣能

linux使用Apache搭建檔案伺服器

[TOC] # 一.關於檔案伺服器 ​ 在一個專案中,如果想把公共軟體或者資料共享給專案組成員,可以搭建一個簡易的檔案伺服器來實現,只要是在區域網內的成員都可以通過瀏覽器或者wget命令來下載和訪問資料。可以達到資訊共享,軟體版本一致的效果。本文講述在linux環境下使用Apache服務搭建檔案伺服器

搭建MySQL伺服器 實現主從複製

環境 主庫ip:192.168.253.128 從庫ip:192.168.253.140 系統:CentOS7 MySQL版本:5.6.39 第一步:安裝MySQL 這裡使用二進位制包方式安裝,二進位制包可以在官網下載 https://dev.mysql.com/download

centos7.2上搭建ntp伺服器實現時間同步

1. 前言 對於容器編排系統,前段時間主要研究kubernetes,現在實驗室要用dcos,所以在實驗室叢集上搭建了該系統。搭建dcos叢集需要各機器時間同步,而實驗室叢集並沒有聯網,這裡講述下怎麼搭建ntp伺服器並進行時間同步。 使用的系統為centos

Linux用root許可權新增使用者給使用者或使用者組指定目錄的讀寫許可權(比如:tomcat檔案的讀寫許可權可以用於新使用者部署專案)

目的: 在linux環境中為了安全起見,不能讓所有專案都用root部署(防止root許可權過大,對重要檔案的誤操作),所以新加使用者或使用者組,對新使用者或使用者組授予部分檔案操作的許可權。 1.建立使用者newuser,並設定密碼(預設連帶建立newuser組) # useradd n

CentOS搭建SVN伺服器通過Apache HTTP方式訪問(轉載至上品物語)

摘要:本文主要講述了在centos 6.5環境下搭建svn伺服器,可通過svn:\\IP方式訪問。同時由於部分公司內網埠限制,並不能訪問外網的svn伺服器,所以特地結合了apache伺服器,使得可以通過http方式http://IP方式訪問svn伺服器。 環境準備:

Linux安裝NFS共享檔案資源

  在叢集環境下有可能我們需要將實時共享檔案,不僅可以節約本地資源而且可以實現所有伺服器之間操作檔案資料的共享,從而減少檔案管理的麻煩以及實現共享檔案。譬如,叢集伺服器之間上傳圖片、語音等檔案資源。NFS(Network File System)即網路檔案系統,是FreeB

在centos linux用django搭建web服務提供api對句子進行情感分析

在centos linux下搭建web服務 這兩天因為實驗室和小米的專案需要我搭建一個web服務返回產品評論的情感極性概率,我一個伺服器小白只好從零摸索搭建伺服器,遇到了很多無從下手的問題,計算機真的令人崩潰2333,寫個部落格記錄一下。 使用到的工具:

centOS 7搭建Redis伺服器使用Java訪問操作Redis

1.  什麼是redis              Redis是用C語言開發的一個開源的高效能鍵值對(key-value)資料庫。它通過提供多種鍵值資料型別來適應不同場景下的儲存需求,目前為止Redis支援的鍵值資料型別如下:         字串型別         雜湊

LinuxNFS網路檔案系統

NFS(Network File System)即網路檔案系統,是FreeBSD支援的檔案系統中的一種,它允許網路中的計算機之間通過TCP/IP網路共享資源。在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位於遠端NFS伺服器上的檔案,就像訪問本地檔案一樣。yum 下載安裝 insta

Linux通過iscsi搭建共享儲存

很多情況下,為了簡單,我們經常簡單的通過nfs來搭建共享儲存服務。 有時候,一些軟體需要,對共享儲存有特殊要求,比如需要通過多個硬碟實現較大的儲存空間,或者軟體有特殊需要。這時,我們可以考慮通過iscsi工具來實現軟的貢獻儲存。 iscsi搭建的貢獻儲存,需要分別搭建服

linux nginx+ftp搭建圖片伺服器在本機訪問出現403錯誤的解決辦法

nginx+ftp搭建圖片伺服器修改nginx 配置檔案中root路徑403錯誤 進入配置檔案目錄 cd /usr/local/nginx/conf/ nginx+ftp搭建圖片伺服器修改nginx

Linux 使用sendmail搭建郵件伺服器

1、準備email環境一般採用yum安裝足夠用了,安裝命令:#安裝sendmail和配置工具sendmail-cf            yum install mailx -y yum -y install sendmail yum install -y send

windows及centOS7LinuxNginx作為靜態檔案伺服器安裝及配置

windows系統1.下載並安裝nginx,http://nginx.org/en/download.html2.解壓,並修改conf目錄下nginx.conf配置檔案http{#設定mime型別,型別由mime.type檔案定義include    mime.types;d

Ubuntu使用gitosis搭建Git伺服器並且安裝GitWeb

# 什麼是Gitosis? > ​ Gitosis是一套用來管理authorized_keys檔案和實現簡單連線限制的指令碼。 > > ​ 而且Gitosis管理使用者許可權並不是通過網頁或者某個程式,而是通過一個特殊的Git倉庫來管理。你只需要在這個非常“特殊”的倉庫配置好使用者和許可權,然

怎樣在Win7系統中搭建Web伺服器在區域網中訪問

第一步:開啟控制面板 第二步:進入<程式> 第三步:開啟或關閉windows功能 第四步:點選展開Internet資訊服務,全部都選中 第五步:關閉防火牆,並開啟全球資訊網服務(http)

Mac ssh連線遠端伺服器實現檔案的上傳和下載

使用scp命令實現上傳下載 1、從伺服器上下載檔案 scp [email protected]:/path/filename /Users/mac/Desktop(本地目錄) 例如:scp [email protected]:/root/test.txt /Users/mac/Desk

搭建主、從DNS伺服器實現智慧解析

1. 主、從DNS伺服器 主DNS伺服器:維護所負責解析的域的資料庫的伺服器;讀寫操作均可進行;主伺服器的資料會不斷髮生改變; 從DNS伺服器:從主DNS伺服器那裡或其它的從DNS伺服器那裡“複製”一份解析庫;但只能進行讀操作不能修改;從伺服器的資料庫要隨時同步主伺服器的資料; 2. 主、從

MAC實用SSH連線遠端伺服器實現檔案上傳下載

MAC作為程式設計師的神器,在程式設計上的使用遠超window的電腦,而MAC本身提供了SSH功能,配合VIM編輯器對程式設計十分有幫助。 使用ssh連線遠端主機   sudo -i 切換root許可權 ssh [email protected] 其中,

Android 通過httpclient請求web伺服器解決使用者登入session保持

package com.rainet.tiis.network; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.http.HttpRes