1. 程式人生 > >Linux NFS存儲服務部署

Linux NFS存儲服務部署

host 缺點 cat async 目錄管理 oct services oracl 工作流

什麽是NFS

中文意思是網絡文件系統,主要功能是通過網絡(一般是局域網)讓不同主機之間可以共享文件或目錄

NFS屬於本地文件存儲服務

缺點1:

1 2 3 4 5 6 7 windows上無法使用 如果想實現windows與Linux系統結合,采用文件數據共享 a. FTP服務 b.samba服務

缺點2:

1 2 3 4 5 在高並發場景,以及存儲量比較高的場景,對數據安全性要求比較高的場景 需要采用分布式存儲:Moosefs(mfs)、FastDFS 無法在服務器中看到真實的文件信息

NFS共享網絡文件系統應用的場景

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

NFS文件系統存在意義

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

軟件實現:本地文件系統NFS,分布式文件系統mfs

硬件實現:IBM(服務器 小型機 大型機 存儲 DS V7000 V5000)oracle EMC = 去IOE

NFS網絡文件系統工作方式

技術分享圖片

在nfs服務器端設置好一個共享目錄/video後,其他有權限訪問nfs服務器端的客戶端都可以將這個共享目錄/video掛載到客戶端本地的某個掛載點(其實就是一個目錄,這個掛載點目錄可以自己隨意指定),圖中兩個nfs客戶端本地掛載點分別為/v/video和/video,不同客戶端的掛載點可以不相同。

客戶端正確掛載完畢後,就可以通過nfs客戶端的掛載點所在的/v/video或/video目錄查看到nfs服務器端/video共享出來的目錄下的所有數據。在客戶端上查看時,nfs服務端的/video目錄就相當於客戶端本地的磁盤分區或目錄,幾乎感覺不到使用上的區別,根據nfs服務器端授予的nfs共享權限以及共享目錄的本地系統權限,只要在指定的nfs客戶端上操作掛載/video或/v/video的目錄,就可以將數據輕松的存取到nfs服務器端上的/video目錄中了。

NFS服務工作流程

技術分享圖片

想要實現nfs服務,首先啟動的是rpc服務,其次是nfs服務,在nfs服務啟動的時候,會向rpc服務發送nfs服務的註冊端口信息,而客戶端請求nfs服務的時候,就會向rcp服務發送請求,然後rpc服務把端口回復給客戶端(返回的是rpc本身的端口),而客戶端就可以憑借端口請求進行數據傳輸。

NFS服務部署

NFS服務端安裝

首先確認軟件是否已經安裝,沒有安裝就安裝NFS服務相關軟件

[root@nfs ~]# rpm -qa |grep nfs

[root@nfs ~]# rpm -qa |grep rpc

如果沒有安裝,就安裝rpcbind nfs-utils服務程序,並進行驗證安裝是否成功

yum install -y nfs-utils rpcbind
rpm -qa nfs-utils rpcbind

編寫NFS配置文件

[root@nfs ~]# cat /etc/exports 
/data 172.16.1.0/24(rw,sync)

配置文件內容介紹

第一部分:/data             指定共享目錄信息(表示本地NFS服務需要共享的目錄信息)
第二部分:172.16.1.0/24     指定一個網段信息,表示允許指定的網段主機掛載到我本地的共享目錄上
第三部分:(rw,sync)         表示定義共享參數信息(表示客戶端訪問目錄的權限設置)
rw          表示讀寫,對共享目錄設置的權限;
sync        同步參數,數據先寫入到NFS服務器內存中,會立刻同步到磁盤裏面==直接存儲到硬盤
配置文件參數介紹
rw       讀寫
ro       只讀
sync     同步參數,數據先寫入到NFS服務器內存中,會立刻同步到磁盤裏面--優點:安全、缺點:性能差
async    異步,先到內存,不管數據到不到硬盤
no_root_squash    表示root用戶不做映射
root_squash       表示root用戶做映射
all_squash        表示全部用戶做映射

創建共享目錄,並且進行權限設置

[root@nfs ~]# mkdir /data -p
[root@nfs ~]# chown -R nfsnobody.nfsnobody /data/
[root@nfs ~]# ll -d /data/
drwxr-xr-x 2 nfsnobody nfsnobody 4096 Oct 12 12:06 /data/
說明:NFS共享目錄管理用戶為nfsnobody,此用戶不用創建;安裝NFS軟件的時候會自動創建

啟動服務

首先啟動rpc服務
[root@nfs ~]# /etc/init.d/rpcbind start Starting rpcbind: [ OK ]
rpcbind啟動信息查看
[root@nfs ~]# 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服務就這些信息
其次啟動nfs服務
[root@nfs ~]# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
nfs啟動後查看信息
[root@nfs ~]# 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
    100011    1   udp    875  rquotad
    100011    2   udp    875  rquotad
    100011    1   tcp    875  rquotad
    100011    2   tcp    875  rquotad
    100005    1   udp  41601  mountd
    100005    1   tcp  26925  mountd
    100005    2   udp  27046  mountd
    100005    2   tcp  32480  mountd
    100005    3   udp  61072  mountd
    100005    3   tcp  39844  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  22703  nlockmgr
    100021    3   udp  22703  nlockmgr
    100021    4   udp  22703  nlockmgr
    100021    1   tcp  26776  nlockmgr
    100021    3   tcp  26776  nlockmgr
    100021    4   tcp  26776  nlockmgr
查看nfs服務的掛載信息
[root@nfs ~]# showmount -e localhost
Export list for 10.0.0.31:
/data 172.16.1.0/24
註意:localhost可以換成ip地址
至此:服務端部署配置完成

NFS客戶端部署

首先還是要查看軟件是否已經下載安裝

其實客戶端是不需要安裝nfs的,但是不安裝nfs軟件客戶端就不能用showmount命令,並且無法識別nfs文件系統類型

確認完畢後直接啟動服務,也可以不啟動,不影響。

檢查nfs服務端是否有可以進行共享掛載的目錄

[root@ba ~]# rpm -qf `which showmount`
nfs-utils-1.2.3-75.el6.x86_64
[root@ba mnt]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
說明:showmount命令使用,需要安裝nfs-utils軟件


進行nfs客戶端掛載,並設置目錄權限

mount -t nfs 172.16.1.31:/data /mnt
chown -R nfsnobody.nfsnobody /mnt
檢查測試
[root@ba mnt]# df -h
Filesystem         Size  Used Avail Use% Mounted on
/dev/sda3          8.8G  1.5G  6.9G  18% /
tmpfs              238M     0  238M   0% /dev/shm
/dev/sda1          190M   35M  146M  19% /boot
172.16.1.31:/data  8.8G  1.5G  6.9G  18% /mnt

然後進行處理文件測試

本地nfs客戶端進行 增刪改數據 等價於在nfs服務端共享目錄中進行的操作

客戶端上處理文件

[root@ba mnt]# touch szsn.txt
[root@ba mnt]# ll total 0 -rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 13 11:25 szsn.txt
[root@ba mnt]# echo "矢誌少年" >szsn.txt
[root@ba mnt]# cat szsn.txt
矢誌少年 [root@ba mnt]# \rm -f szsn.txt

服務端上檢查

[root@nfs data]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 13 11:25 szsn.txt
[root@nfs data]# cat szsn.txt
矢誌少年 [root@nfs data]# ll total 0

這樣就搭建完成了,博主有哪裏寫的不好的,歡迎大家指出,我一定會進行改進。

Linux NFS存儲服務部署