1. 程式人生 > >NFS部署及優化(一)

NFS部署及優化(一)

linux nfs 文件權限

NFS部署及優化(一)


一、NFS的基本概念

NFS == network file system 網絡文件系統

必然通過網絡通信來實現文件的訪問和寫入,所以做這個實驗的話最好有兩臺虛擬機

配置:

A:一個192.169.50.201為server端

B:一個192.169.50.200為client端

會有一個server端、一個client端

#cs這樣的通信形式

允許一個系統在網絡上與他人共享目錄和文件,通過使用NFS,用戶和程序可以像訪問本地的文件一樣,去訪問遠程的文件,也就是說通過NFS服務,就可以讓這臺機器訪問遠程的文件,就好比是訪問自己的文件一樣!

二、常見問題

比如:我們現在有三臺機器,A、B、C 他們需要訪問同一個目錄,而這個目錄中都是圖片,傳統的做法是分別將這些圖片放到A上、B上、C上,如果A上的圖片發生了改變,那麽需要將這些改變的圖片分別同步到B上、C上。顯然這樣做是非常的繁瑣,也比較浪費磁盤空間,更浪費帶寬資源。

三、解決辦法:

在A上搭建一個NFS服務,把A上的目錄同時共享給B和C,B和C將A共享的目錄放在自己的本地上,這個動作叫做掛載(跟磁盤掛載一個性質),也就是把A共享的目錄掛載到B和C上。

這時候在用戶看來,A、B、C同時存在一樣的目錄,裏面的文件也是一樣的,我去改動任何一個機器上的該目錄下的文件,其他兩個服務器都會跟著改動,這個就是NFS的優勢。

四、部署NFS

在A機器上


(1)安裝nfs和rpcbind包

[[email protected] ~]# yum install -y nfs-utils rpcbind

# rpcbind的功能是用來通信的,想要實現server端和client端的通信就必須要有rpcbind

(2)[[email protected] ~]# df -h #目的是查看選擇下要共享的目錄

Filesystem Size Used Avail Use% Mounted on

/dev/sda3 18G 5.0G 12G 30% /

tmpfs 947M 0 947M 0% /dev/shm

/dev/sda1 190M 29M 152M 16% /boot

/dev/mapper/vg_nfs-lv_nfs

985M 1.3M 932M 1% /nfs

實驗中,我們要做的共享目錄是/nfs。

(3)[[email protected] ~]# vim /etc/exports #編輯寫入要共享的目錄

技術分享

/nfs 192.169.50.200(rw,sync) #也可以寫一個網段如:192.169.50.0/24 括號裏可以寫ro只讀,rw是可讀可寫,sync是同步

註意: 在A機器上(server端),編輯的這個文件目的是把自己的目錄共享給哪個ip或者網段。

(5)啟動rpcbind和nfs服務

[[email protected] ~]# /etc/init.d/rpcbind start #啟動rpcbind服務

[[email protected] ~]# /etc/init.d/nfs start #啟動nfs

註意: 重啟時註意先後順序!


在B機子上


(1)安裝nfs包

[[email protected] ~]# yum -y install nfs-utils

(2)顯示共享目錄

[[email protected] ~]# showmount -e 192.169.50.201 #這個ip是我們的server服務端

Export list for 192.169.50.201:

/nfs 192.169.50.200 #這個是我們服務端共享的目錄和共享給哪臺機器ip

(3)掛載

[[email protected] ~]# mkdir /shiyan

[[email protected] ~]# mount -t nfs 192.169.50.201:/nfs /shiyan

[[email protected] ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda3 16G 4.9G 9.9G 33% /

tmpfs 504M 0 504M 0% /dev/shm

/dev/sda1 190M 25M 156M 14% /boot

192.169.50.201:/nfs 985M 1.3M 932M 1% /shiyan


權限問題


在B機器上:

[[email protected] ~]# cd /shiyan

[[email protected] shiyan]# touch 1.txt

touch: cannot touch `1.txt‘: Permission denied

#原因是A機器上共享的/nfs目錄默認掛載過來是有一個用戶的, 必然是/nfs共享目錄的權限問題,至少是其他用戶不可寫!

在A機器上:

[[email protected] ~]# ll -d /nfs

drwxr-xr-x 3 root root 4096 Apr 27 07:59 /nfs

#可見共享的這個/nfs目錄的權限是755,除了屬主外,屬組和其他用戶的權限是不可寫的。

解決辦法:

在A機器上:

[[email protected] ~]# cd /nfs

[[email protected] nfs]# chmod 777 .

[[email protected] nfs]# ll -d .

drwxrwxrwx 3 root root 4096 Apr 27 07:59 .

# 將/nfs目錄的權限改為777,任何用戶可讀可寫可執行!

在B機器上:

[[email protected] shiyan]# touch 1.txt

[[email protected] shiyan]# ll

total 16

-rw-r--r-- 1 nfsnobody nfsnobody 0 Apr 27 08:22 1.txt

drwx------ 2 root root 16384 Apr 27 07:59 lost+found

# 這個時候看到新建的1.txt的文件屬主和屬組都是nfsnobody!


這小節遺留問題:這個1.txt的屬主和屬組是否可以指定呢?下節我們接著討論。。

本文出自 “聖騎士控魔之手” 博客,請務必保留此出處http://wutengfei.blog.51cto.com/10942117/1928154

NFS部署及優化(一)