導航:首頁 > 編程系統 > linuxnfs服務鎖機制進程

linuxnfs服務鎖機制進程

發布時間:2023-08-10 00:06:32

linux配置nfs步驟

NFS的配置過程很簡單。在伺服器端中編輯 /etc/exports 文件,添加如下內容: /home/nfs-share 192.168.1.122 (rw,sync)
第一項是要共享的目錄,後者為共享的配置參數一般為: (rw,sync,no_root_squash,no_all_squash,no_subtree_check)
然後開啟NFS和portmap服務:
/etc/init.d/nfs start //用service nfs start也可以 /etc/init.d/portmap start //用service portmap stasrt也可以
在centos6.5中portmap已經改為rpcbind 在客戶端,用mount –t nfs 192.168.123:/home/nfs-share /home/remote_file掛載伺服器端的共享目錄到本地的/home/remote-file掛載點,然後我們就可以在客戶端上應用到遠程主機上的/home/nfs-share目錄了。想要系統在開機時自動掛載,修改/etc/fstab文件,把NFS伺服器的共享目錄添加進去就可以了,這個不用多說。

如何知道遠程主機上的共享目錄情況呢?使用showmount命令,這個命令需要root許可權。它有三個選項(記住這三個選項代表的含義: showmount –a IP 顯示指定NFS伺服器的客戶端以及伺服器端在客戶端的掛載點 showmount –d IP 顯示指定NFS伺服器在客戶端的掛載點 showmount –e IP 顯示指定NFS伺服器上的共享目錄列表(或者叫輸出列表) 我們輸入命令showmount –a 192.168.1.123:

圖片客戶端中出現的mount clntudp_create: RPC: Program not registered錯誤是怎麼回事?噢,我剛才重啟了一下伺服器端,重啟後NFS服務沒有開啟。 我們開啟伺服器端的NFS服務,再從客戶端上查看一下NFS伺服器的情況:

Showmount –a顯示出NFS伺服器192.168.1.123的共享目錄被客戶端192.168.122掛載到/home中;

在showmount -e IP,出現clnt_create: RPC: Port mapper failure - Timed out報錯
解決方案:
被訪問的NFS伺服器上的防火牆沒有添加規則,向iptables裡面添加以下查看的所有埠即可(目前解決的方法,當然你也可以關閉防火牆,不過這樣是比較不安全的,如果你的nfs作用不大,建議你另選別的應用來替代吧!畢竟開那麼多的埠,比較不安全呀!)

通過#rpcinfo -p 10.10.209.148
[root@rh01 /]# rpcinfo -p 10.10.209.148program vers proto port service100000 4 tcp 111 portmapper100000 3 tcp 111 portmapper100000 2 tcp 111 portmapper100000 4 udp 111 portmapper100000 3 udp 111 portmapper100000 2 udp 111 portmapper100024 1 udp 52943 status100024 1 tcp 37706 status100011 1 udp 875 rquotad100011 2 udp 875 rquotad100011 1 tcp 875 rquotad100011 2 tcp 875 rquotad100003 2 tcp 2049 nfs100003 3 tcp 2049 nfs100003 4 tcp 2049 nfs100227 2 tcp 2049 nfs_acl100227 3 tcp 2049 nfs_acl100003 2 udp 2049 nfs100003 3 udp 2049 nfs100003 4 udp 2049 nfs100227 2 udp 2049 nfs_acl100227 3 udp 2049 nfs_acl100021 1 udp 37438 nlockmgr100021 3 udp 37438 nlockmgr100021 4 udp 37438 nlockmgr100021 1 tcp 46331 nlockmgr100021 3 tcp 46331 nlockmgr100021 4 tcp 46331 nlockmgr100005 1 udp 57177 mountd100005 1 tcp 43147 mountd100005 2 udp 49154 mountd100005 2 tcp 54810 mountd100005 3 udp 55707 mountd100005 3 tcp 58309 mountd
[root@rh01 /]#

剛才在重啟NFS服務的時候,細心的話可以注意到,我們在輸入命令/etc/init.d/nfs start開啟nfs服務時,系統還自作主張地開啟了NFS quotas等其它3個服務。

怎麼回事?我們只輸入了一條啟動NFS服務的命令,它怎麼額外的啟動了3個服務?後面的啟動portmap服務又是怎麼回事? 我們首先要了解一點:NFS文件系統要提供服務單靠本身的NFS服務是不夠的,還需要調用其它服務,這個其它服務就是RPC(remote procere call,遠程過程調用)服務和portmap服務。由於NFS服務本身不提供文件傳輸功能,我們要遠程使用NFS文件系統就需要RPC服務的支持;而portmap服務用來為RPC服務進行動態埠分配和映射,所以portmap服務也是NFS服務所必須的。

我們查看一下服務的啟動情況:

所遇錯誤:
/etc/init.d/nfs-kernel-server: 沒有那個文件或目錄
解決方案:
沒有配置、安裝NFS
Linux 下配置NFS服務
1、安裝

2、配置

3、客戶端

所遇問題:centos6.5
portmap: 未被識別的服務
解決方案:
由於在6系列裡面,portmap已經改名了 ,6系列需要使用 service rpcbind start啟動[root@unix-big-bang ~]# service portmap start
portmap: 未被識別的服務
[root@unix-big-bang ~]# service rpcbind status
rpcbind (pid 1312) is running...
[root@unix-big-bang ~]#

好文共賞:
linux nfs文件共享

◆一、概念
NFS是網路文件系統(Network File System)的簡稱,是分布式計算機系統的一個組成部分,可實現在異構網路上共享和裝配遠程文件系統。
NFS由SUN公司開發,目前已成為文件服務的一種標准(RFC1904,RFC1813)。其最大的功能就是可以通過網路,讓不同 操作系統 的計算機可以共享數據,所以也可以看作是一個文件伺服器。NFS是除了SAMBA之外Windows與Linux及Unix與Linux之間通信的方法。

理想條件下的NFS 網路拓撲結構

1、設置Linux系統之間的文件共享(Linux與Windows中間文件共享採用SAMBA服務);
2、NFS只是一種文件系統,本身沒有傳輸功能,是基於RPC協議實現的,才能達到兩個Linux系統之間的文件目錄共享;
3、NFS為C/S 架構 ;
◆二、伺服器配置
1、配置文件
主要配置文件為:/etc/exports
格式為: 共享目錄 可mount主機IP(參數1,參數2,……)
如:/var/nfs 172.20. . (rw,sync,no_rootl_squash)
說明:必須注意nfs/目錄的訪問許可權,必須設置成777許可權;父目錄/var許可權無要求,普通的755即可;
2、啟動相關服務
然後依次啟動相關服務:portmap,nfslock,nfs
service portmap start
service nfslock start
service nfs start
關閉順序相反。
3、檢查共享目錄
隨後可以採用showmount –e查看一下,看看共享的目錄情況:
[root@ns var]# showmount -e
Export list for ns.osserver:
/var/nfs 172.20. .
OK,到此為止,NFS伺服器搭建完畢;
◆三、客戶端配置
1、確保portmap運行
客戶端必須確保RPC協議相應的portmap正常運行,否則mount將失敗;
2、掛載/var/nfs目錄(本地掛載點為/mnt/nfs)
mount -t nfs 172.20.65.16:/var/nfs /mnt/nfs
成功mount以後,即可同本地目錄一樣隨意操作;
◆四、其它相關命令
1、當修改了/etc/exports文件後,可以不用重新啟動nfs服務,直接採用exports –rv 即可重新導出共享目錄;
該命令格式如下:
exportfs [-aruv]
-a :全部mount或者unmount /etc/exports中的內容
-r :重新mount /etc/exports中分享出來的目錄
-u :umount 目錄
-v :在 export 的時候,將詳細的信息輸出到屏幕上。
具體例子:
[root@ns var]# showmount -e
Export list for ns.osserver:
/var/nfs 172.20. .
[root@ns var]# exportfs –au #全部卸載
[root@ns var]# showmount -e
Export list for ns.osserver:
[root@ns var]# exportfs –rv #全部重新 export 一次
exporting 172.20. . :/var/nfs
[root@ns var]#
2、showmout命令對於NFS的操作和查錯有很大的幫助,所以我們先來看一下showmount的用法
showmout
-a :這個參數是一般在NFS SERVER上使用,是用來顯示已經mount上本機nfs目錄的cline機器。
-e :顯示指定的NFS SERVER上export出來的目錄。
例如:
[root@localhost ~]# showmount -e 172.20.16.139
Export list for 172.20.16.139 :/root/share 172.20.16.137
[root@ns var]# showmount -a
All mount points on localhost.localdomain: :/root/share,172.20. . :/root/share,172.20.16. :/root/share,172.20.16.139:/nfsshare,172.20.16.139:/root/share172.20.16.137: 172.20.16.137:,172.20. . 172.20.16.137:,172.20.16. 172.20.16.137:/root/share172.20.16.139: 172.20.16.139:,172.20. . 172.20.16.139:,172.20.16. 172.20.16.139:,172.20.16.139172.20.16.139:DEFAULT
◆五、常見問題解答
1、提示:mount to NFS server 餄.20.67.203' failed: server is down.
解決方案:可能是NFS伺服器的防火牆有問題;
2、提示:mount: RPC: Timed out
解決方案:由於RPC協議沒運行;啟動portmap服務;
也有可能是防火牆問題;Server/Client均有可能。

⑵ 如何配置linux內核具有nfs的功能

1、使用的技術

NFS

2、測試環境

NFS伺服器:192.168.255.18

NFS客戶端:192.168.255.11

操作系統:REDHAT4

3、NFS伺服器配置

(1)配置 /etc/hosts.deny

禁止任何客戶端能和你的NFS伺服器進行NFS連接:

### NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL

(2)配置/etc/hosts.allow

允許那些你想要的客戶端和你的NFS伺服器建立連接。下列步驟將允許任何IP地址
以192.168.2開頭的主機(連接到NFS伺服器上),也可以指定特定的IP地址。

### NFS DAEMONS
portmap: 192.168.255.
lockd: 192.168.255.
rquotad: 192.168.255.
mountd: 192.168.255.
statd: 192.168.255.

(3)重啟portmap

運行 $ /etc/init.d/portmap restart 重啟portmap daemon。

(4)配置/etc/exports

NFS掛載目錄及許可權由/etc/exports文件定義。比如要將我的/tmp目錄讓
192.168.255.*的IP共享, 則在該文件末尾添加下列語句:

/tmp 192.168.255.*(rw,sync,no_root_squash)

192.168.255.* 網段內的NFS客戶端能夠共享NFS伺服器/tmp目錄內容,且有讀,寫
許可權,並且該用戶進入/home/zp/share目錄後的身份為root,最好加上sync,否則
$ sudo exportfs -r 時會給出警告, sync是NFS的默認選項。

(5)重啟NFS服務

運行 $ /etc/init.d/nfs-kernel-server restart 重啟nfs服務)

(6)NFS伺服器查看共享是否成功

$ Showmount –e 192.168.255.18

/tmp 192.168.255.*

(6)NFS客戶端啟動NFS服務

service nfs start

(7)NFS客戶端查看伺服器共享目錄

Showmount –e 192.168.255.18

(8)掛載NFS伺服器共享目錄

mount –t nfs -o tcp192.168.255.18:/tmp /tmp

4、錯誤排查

當/etc/exports設置的許可權,不符合client端的來源時,則會出現以下錯誤信息:

mount: hostname:/dir failed, reason given by server: Permission denied

⑶ Linux系統服務進程

服務名稱 功能 默認 建議 備注說明
NetworkManager 用於自動連接網路,常用在Laptop上 開啟 關閉 對伺服器無用
abrt-ccpp 開啟 自定 對伺服器無用
abrt-oops 開啟 自定 對伺服器無用
abrtd 開啟 自定 對伺服器無用
acpid 電源的開關等檢測管理,常用在Laptop上 開啟 自定 對伺服器無用
atd 在指定時間執行命令 開啟 關閉 如果用crond,則可關閉它
auditd 審核守護進程 開啟 開啟 如果用selinux,需要開啟它

autofs 文件系統自動載入和卸載 開啟 自定 只在需要時開啟它,可以關閉
avahi-daemon 本地網路服務查找 開啟 關閉 對伺服器無用
bluetooth 藍牙無線通訊 開啟 關閉 對伺服器無用
certmonger 關閉 關閉
cpuspeed 調節cpu速度用來省電,常用在Laptop上 開啟 關閉 對伺服器無用
crond 計劃任務管理 開啟 開啟 常用,開啟
cups 通用unix列印服務
開啟 關閉 對伺服器無用
dnsmasq dns cache 關閉 關閉 DNS緩存服務,無用
firstboot 系統安裝後初始設定 關閉 關閉
haldaemon 硬體信息收集服務 開啟 開啟
ip6tables ipv6防火牆 開啟 關閉 用到ipv6網路的就用,一般關閉
iptables
ipv4防火牆 開啟 開啟 ipv4防火牆服務
irqbalance cpu負載均衡 開啟 自定 多核cup需要
kmp 硬體變動檢測 關閉 關閉 伺服器無用
lvm2-monitor lvm監視 開啟 自定 如果使用LVM邏輯卷管理就開啟
matahari-broker 關閉 關閉 此服務不清楚,我關閉
matahari-host 關閉 關閉 此服務不清楚,我關閉
matahari-network 關團姿禪閉 關閉 此服務不清楚,我關閉
matahari-service 關閉 關閉 此服務不清楚,我關閉
matahari-sysconfig 關閉 關閉 此服務不清楚,我關閉
mdmonitor 軟raid監視 開啟 自定
messagebus 負責在各個系統進程之間傳遞消息 開啟 開啟 如停用,haldaemon啟動會失敗
netconsole 關閉 關閉
netfs 系統啟動時自動掛載網路文件系統 開啟 關閉 如果使用塌塵nfs服務,就開啟
network 系統啟動時激活所有網路介面 開啟 開啟 網路基礎服務,必需!
nfs 網路文件系統 關閉 關閉 nfs文件服務,用到就開啟
nfslock nfs相關 開啟 關閉 nfs相關服務,用到就開啟
ntpd 自動對時工具 關閉 自定 網路對時服務,用到就開啟
ntpdate 自動對時工具 關閉 關閉
oddjobd 與D-BUS相關 關閉 關閉
portreserve RPC 服務相關 開啟 自定 可以關閉
postfix 替代sendmail的郵件伺服器 開啟 自定 如果無郵件服務,可關閉
psacct 負荷檢測 關閉 關閉 可以關閉
qpidd 消息通信 開啟 開啟
quota_nld 關閉 關閉 可以關閉
rdisc 自動檢測路由器 關閉 關閉
restorecond selinux相關 關閉 關閉 如果開啟了selinux,就需開啟
rpcbind 開啟 開啟 關鍵的基礎服務,nfs服務和桌面環境都依賴此服務!相當於CentOS 5.x裡面的portmap服務。
rpcgssd NFS相關 開冊消啟 關閉 NFS相關服務,可選
rpcidmapd RPC name to UID/GID mapper 開啟 關閉 NFS相關服務,可選
rpcsvcgssd NFS相關 關閉 關閉 NFS相關服務,可選
rsyslog 提供系統的登錄檔案記錄 開啟 開啟 系統日誌關鍵服務,必需!
saslauthd sasl認證服務相關 關閉 關閉
smartd 硬碟自動檢測守護進程 關閉 關閉
spice-vdagentd 開啟 開啟
sshd ssh服務端,可提供安全的shell登錄
開啟 開啟 SSH遠程登錄服務,必需!
sssd 關閉 關閉
sysstat 開啟 開啟 一組系統監控工具的服務,常用
udev-post 設備管理系統 開啟 開啟
wdaemon 關閉 關閉
wpa_supplicant 無線認證相關 關閉 關閉
ypbind network information service客戶端 關閉 關

⑷ linux 里怎麼取消nfs共享

使用掛載的卷時,umount命令將無法分離共享,要找出正在訪問NFS共享的進程,請使用fuser命令:

fuser -m MOUNT_POINT

找到進程後,可以使用kill命令停止它們並卸載NFS共享。

如果你仍然無法卸載共享,請使用-l(--lazy)選項,該選項允許你在繁忙的文件系統不再忙時立即卸載它:

umount -l MOUNT_POINT

如果遠程NFS系統無法訪問,請使用-f(--force)選項強制卸載:

umount -f MOUNT_POINT 命令使用介紹看下圖查找

⑸ linux如何知道nfs配置成功,求詳細的圖解!!!!!!!!!!

3、linux客戶端掛接(mount)其他linux系統或UNIX系統的NFS共享
# mkdir –p /mnt/nfs
註:建立一個目錄用來作專掛接點(mount point)
#mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs

/etc/exports 設定檔的語法屬與參數

⑹ Linux進程間通信(互斥鎖、條件變數、讀寫鎖、文件鎖、信號燈)

為了能夠有效的控制多個進程之間的溝通過程,保證溝通過程的有序和和諧,OS必須提供一定的同步機制保證進程之間不會自說自話而是有效的協同工作。比如在 共享內存的通信方式中,兩個或者多個進程都要對共享的內存進行數據寫入,那麼怎麼才能保證一個進程在寫入的過程中不被其它的進程打斷,保證數據的完整性 呢?又怎麼保證讀取進程在讀取數據的過程中數據不會變動,保證讀取出的數據是完整有效的呢?

常用的同步方式有: 互斥鎖、條件變數、讀寫鎖、記錄鎖(文件鎖)和信號燈.

互斥鎖:

顧名思義,鎖是用來鎖住某種東西的,鎖住之後只有有鑰匙的人才能對鎖住的東西擁有控制權(把鎖砸了,把東西偷走的小偷不在我們的討論范圍了)。所謂互斥, 從字面上理解就是互相排斥。因此互斥鎖從字面上理解就是一點進程擁有了這個鎖,它將排斥其它所有的進程訪問被鎖住的東西,其它的進程如果需要鎖就只能等待,等待擁有鎖的進程把鎖打開後才能繼續運行。 在實現中,鎖並不是與某個具體的變數進行關聯,它本身是一個獨立的對象。進(線)程在有需要的時候獲得此對象,用完不需要時就釋放掉。

互斥鎖的主要特點是互斥鎖的釋放必須由上鎖的進(線)程釋放,如果擁有鎖的進(線)程不釋放,那麼其它的進(線)程永遠也沒有機會獲得所需要的互斥鎖。

互斥鎖主要用於線程之間的同步。

條件變數:

上文中提到,對於互斥鎖而言,如果擁有鎖的進(線)程不釋放鎖,其它進(線)程永遠沒機會獲得鎖,也就永遠沒有機會繼續執行後續的邏輯。在實際環境下,一 個線程A需要改變一個共享變數X的值,為了保證在修改的過程中X不會被其它的線程修改,線程A必須首先獲得對X的鎖。現在假如A已經獲得鎖了,由於業務邏 輯的需要,只有當X的值小於0時,線程A才能執行後續的邏輯,於是線程A必須把互斥鎖釋放掉,然後繼續「忙等」。如下面的偽代碼所示:

1.// get x lock

2.while(x

⑺ 要配置nfs伺服器在伺服器端主要配置什麼文件

一、NFS服務簡介

NFS 是Network File System的縮寫,即網路文件系統。一種使用於分散式文件系統的協定,由Sun公司開發,於1984年向外公布。功能是通過網路讓不同的機器、不同的操作系統能夠彼此分享個別的數據,讓應用程序在客戶端通過網路訪問位於伺服器磁碟中的數據,是在類Unix系統間實現磁碟文件共享的一種方法。

NFS 的基本原則是「容許不同的客戶端及服務端通過一組RPC分享相同的文件系統」,它是獨立於操作系統,容許不同硬體及操作系統的系統共同進行文件的分享。

NFS在文件傳送或信息傳送過程中依賴於RPC協議。RPC,遠程過程調用 (Remote Procere 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是負責負責信息的傳輸。

二、系統環境

系統平台:CentOS release 5.6 (Final)

NFS Server IP:192.168.1.108

防火牆已關閉/iptables: Firewall is not running.

SELINUX=disabled

三、安裝NFS服務

NFS的安裝是非常簡單的,只需要兩個軟體包即可,而且在通常情況下,是作為系統的默認包安裝的。

nfs-utils-* :包括基本的NFS命令與監控程序
portmap-* :支持安全NFS RPC服務的連接
1、查看系統是否已安裝NFS

系統默認已安裝了nfs-utils portmap 兩個軟體包。

2、如果當前系統中沒有安裝NFS所需的軟體包,需要手工進行安裝。nfs-utils 和portmap 兩個包的安裝文件在系統光碟中都會有。

復制代碼
# mount /dev/cdrom /mnt/cdrom/
# cd /mnt/cdrom/CentOS/
# rpm -ivh portmap-4.0-65.2.2.1.i386.rpm
# rpm -ivh nfs-utils-1.0.9-50.el5.i386.rpm
# rpm -q nfs-utils portmap
復制代碼

四、NFS系統守護進程

nfsd:它是基本的NFS守護進程,主要功能是管理客戶端是否能夠登錄伺服器;
mountd:它是RPC安裝守護進程,主要功能是管理NFS的文件系統。當客戶端順利通過nfsd登錄NFS伺服器後,在使用NFS服務所提供的文件前,還必須通過文件使用許可權的驗證。它會讀取NFS的配置文件/etc/exports來對比客戶端許可權。
portmap:主要功能是進行埠映射工作。當客戶端嘗試連接並使用RPC伺服器提供的服務(如NFS服務)時,portmap會將所管理的與服務對應的埠提供給客戶端,從而使客戶可以通過該埠向伺服器請求服務。
五、NFS伺服器的配置

NFS伺服器的配置相對比較簡單,只需要在相應的配置文件中進行設置,然後啟動NFS伺服器即可。

NFS的常用目錄

/etc/exports NFS服務的主要配置文件
/usr/sbin/exportfs NFS服務的管理命令
/usr/sbin/showmount 客戶端的查看命令
/var/lib/nfs/etab 記錄NFS分享出來的目錄的完整許可權設定值
/var/lib/nfs/xtab 記錄曾經登錄過的客戶端信息
NFS服務的配置文件為 /etc/exports,這個文件是NFS的主要配置文件,不過系統並沒有默認值,所以這個文件不一定會存在,可能要使用vim手動建立,然後在文件裡面寫入配置內容。

/etc/exports文件內容格式:

<輸出目錄> [客戶端1 選項(訪問許可權,用戶映射,其他)] [客戶端2 選項(訪問許可權,用戶映射,其他)]
a. 輸出目錄:

輸出目錄是指NFS系統中需要共享給客戶機使用的目錄;

b. 客戶端:

客戶端是指網路中可以訪問這個NFS輸出目錄的計算機

客戶端常用的指定方式

指定ip地址的主機:192.168.0.200
指定子網中的所有主機:192.168.0.0/24 192.168.0.0/255.255.255.0
指定域名的主機:david.bsmart.cn
指定域中的所有主機:*.bsmart.cn
所有主機:*
c. 選項:

選項用來設置輸出目錄的訪問許可權、用戶映射等。

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伺服器也不檢查其父目錄的許可權,這樣可以提高效率;
六、NFS伺服器的啟動與停止

在對exports文件進行了正確的配置後,就可以啟動NFS伺服器了。

1、啟動NFS伺服器

為了使NFS伺服器能正常工作,需要啟動portmap和nfs兩個服務,並且portmap一定要先於nfs啟動。

# service portmap start
# service nfs start

2、查詢NFS伺服器狀態

# service portmap status
# service nfs status

3、停止NFS伺服器

要停止NFS運行時,需要先停止nfs服務再停止portmap服務,對於系統中有其他服務(如NIS)需要使用時,不需要停止portmap服務

# service nfs stop
# service portmap stop
4、設置NFS伺服器的自動啟動狀態

對於實際的應用系統,每次啟動LINUX系統後都手工啟動nfs伺服器是不現實的,需要設置系統在指定的運行級別自動啟動portmap和nfs服務。

# chkconfig --list portmap
# chkconfig --list nfs

設置portmap和nfs服務在系統運行級別3和5自動啟動。

# chkconfig --level 35 portmap on
# chkconfig --level 35 nfs on

七、實例

1、將NFS Server 的/home/david/ 共享給192.168.1.0/24網段,許可權讀寫。

伺服器端文件詳細如下:

# vi /etc/exports

/home/david 192.168.1.0/24(rw)
2、重啟portmap 和nfs 服務

# service portmap restart
# service nfs restart
# exportfs

3、伺服器端使用showmount命令查詢NFS的共享狀態

# showmount -e//默認查看自己共享的服務,前提是要DNS能解析自己,不然容易報錯

# showmount -a//顯示已經與客戶端連接上的目錄信息

4、客戶端使用showmount命令查詢NFS的共享狀態

# showmount -e NFS伺服器IP

5、客戶端掛載NFS伺服器中的共享目錄

命令格式

# mount NFS伺服器IP:共享目錄 本地掛載點目錄
# mount 192.168.1.108:/home/david/ /tmp/david/

# mount |grep nfs

掛載成功。

查看文件是否和伺服器端一致。

6、NFS的共享許可權和訪問控制

現在我們在/tmp/david/ 裡面建立一個文件,看看許可權是什麼

# touch 20130103

這里出現Permission denied,是因為NFS 伺服器端共享的目錄本身的寫許可權沒有開放給其他用戶,在伺服器端打開該許可權。

# chmod 777 -R /home/david/

再次在客戶端/tmp/david/ 裡面建立一個文件

我用root 用戶建立的文件,變成了nfsnobody 用戶。

NFS有很多默認的參數,打開/var/lib/nfs/etab 查看分享出來的/home/david/ 完整許可權設定值。

# cat /var/lib/nfs/etab

默認就有sync,wdelay,hide 等等,no_root_squash 是讓root保持許可權,root_squash 是把root映射成nobody,no_all_squash 不讓所有用戶保持在掛載目錄中的許可權。所以,root建立的文件所有者是nfsnobody。

下面我們使用普通用戶掛載、寫入文件測試。

# su - david

$ cd /tmp/david/

$ touch 2013david

普通用戶寫入文件時就是自己的名字,這也就保證了伺服器的安全性。
關於許可權的分析

1. 客戶端連接時候,對普通用戶的檢查

a. 如果明確設定了普通用戶被壓縮的身份,那麼此時客戶端用戶的身份轉換為指定用戶;

b. 如果NFS server上面有同名用戶,那麼此時客戶端登錄賬戶的身份轉換為NFS server上面的同名用戶;

c. 如果沒有明確指定,也沒有同名用戶,那麼此時 用戶身份被壓縮成nfsnobody;

2. 客戶端連接的時候,對root的檢查

a. 如果設置no_root_squash,那麼此時root用戶的身份被壓縮為NFS server上面的root;

b. 如果設置了all_squash、anonuid、anongid,此時root 身份被壓縮為指定用戶;

c. 如果沒有明確指定,此時root用戶被壓縮為nfsnobody;

d. 如果同時指定no_root_squash與all_squash 用戶將被壓縮為 nfsnobody,如果設置了anonuid、anongid將被壓縮到所指定的用戶與組;

7、卸載已掛載的NFS共享目錄

# umount /tmp/david/

八、啟動自動掛載nfs文件系統

格式:

<server>:</remote/export> </local/directory> nfs < options> 0 0
# vi /etc/fstab

保存退出,重啟系統。

查看/home/david 有沒有自動掛載。

自動掛載成功。

九、相關命令

1、exportfs

如果我們在啟動了NFS之後又修改了/etc/exports,是不是還要重新啟動nfs呢?這個時候我們就可以用exportfs 命令來使改動立刻生效,該命令格式如下:

# exportfs [-aruv]

-a 全部掛載或卸載 /etc/exports中的內容
-r 重新讀取/etc/exports 中的信息 ,並同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸載單一目錄(和-a一起使用為卸載所有/etc/exports文件中的目錄)
-v 在export的時候,將詳細的信息輸出到屏幕上。

具體例子:
# exportfs -au 卸載所有共享目錄
# exportfs -rv 重新共享所有目錄並輸出詳細信息

2、nfsstat

查看NFS的運行狀態,對於調整NFS的運行有很大幫助。

3、rpcinfo
查看rpc執行信息,可以用於檢測rpc運行情況的工具,利用rpcinfo -p 可以查看出RPC開啟的埠所提供的程序有哪些。

4、showmount

-a 顯示已經於客戶端連接上的目錄信息
-e IP或者hostname 顯示此IP地址分享出來的目錄

5、netstat

可以查看出nfs服務開啟的埠,其中nfs 開啟的是2049,portmap 開啟的是111,其餘則是rpc開啟的。

最後注意兩點,雖然通過許可權設置可以讓普通用戶訪問,但是掛載的時候默認情況下只有root可以去掛載,普通用戶可以執行sudo。

NFS server 關機的時候一點要確保NFS服務關閉,沒有客戶端處於連接狀態!通過showmount -a 可以查看,如果有的話用kill killall pkill 來結束,(-9 強制結束)

⑻ 如何從NFS啟動Linux及原理

首先我們要明確我們所指的程序,是放在有目錄級結構的文件系統里,為了尋找到所需要操作系統來運行的程序,我們必須告訴它,文件在哪個文件系統。一 般來說,PC機的文件就存儲在硬碟上;對於Live CD而言,文件系統就藏在光碟上面。也就是說,只要操作系統能找到並正確地認識了文件系統,就可以執行裡面的程序了!
設置目標機器上的NFS啟動
看完了第一節,明白啟動的過程了嗎? 簡單地說,就是內核載入 ,內核找到一個文件系統 ,內 核執行文件系統里的一個程序 。無論是從NFS啟動,還是從硬碟啟動,都是上述過程。只是NFS啟動,其文件系統是放在網路上的。只要我 們告訴內核,具體放在什麼地方,在網路的另一端我們設置好共享,自然可以從NFS啟動。
讓內核識別NFS並可從NFS啟動
編譯內核
在內核源代碼目錄樹下,配置內核:
$make menuconfig
依次進入 File Systems -> Network File System中選擇 NFS client support 以及 Root file system on NFS。如果找不到Root file system on NFS 選項,要打開第一級菜單下的Networking support -> Networking options -> TCP/IP networking -> IP: kernel level autoconfiguration。如果NFS要使用DHCP,還得選上 IP: DHCP support。
保存配置並重新編譯即可。
配置內核參數
進入ARM開發板的設置 linux_cmd_line的地方(mini2440則為開機按 s,輸入linux_cmd_line,並帶著引號輸入參數),或者進入PC的GRUB,設置類似參數
root=/dev/nfs rw nfsroot=192.168.1.1:/linux ip=192.168.1.5:::255.255.255.0:linux::off
該配置為靜態IP設置。各參數意義如下:
root=/dev/nfs :指定根文件系統為 /dev/nfs,即NFS 。這與/dev這個目錄並沒有什麼關系,在此僅為一個名字。
rw :根文件系統掛載為可讀寫。還可以有 ro 即只讀的選項。
nfsroot=192.168.1.1:/linux :指明掛載哪一個NFS上的哪一個目錄。這里指的是掛載IP 為192.168.1.1的電腦上導出的/linux目錄。
ip=192.168.1.5:::255.255.255.0:linux::off :設置本機的IP。此舉是為了 連接剛才設置的IP。這里是一個靜態的配置,配置的格式為 ip=本機的IP地址::網關地址:網路掩碼:本機的主機名:網路介面名:off 。一般情況下網關、網路介面名都不需要設置。如果是DHCP獲取IP,那很簡單,直接 ip=dhcp 即可。
設置NFS伺服器
Ubuntu下看鏈接:http://blog.mcuol.com/User/xiaoxiaopig/article/37324_1.htm
NFS伺服器可以是任意操作系統,只要能提供NFS服務即可(WINDOWS可以使用 WSU —— Windows Services for Unix來實現,具體請參考接下來本站要發表的文章)。在這里以Fedora為例,希望別的發行版的用戶觸類旁通。
對於Fedora來說,有圖形界面的工具進行設置,在管理-》伺服器設置-》NFS中添加一個共享即可。
更通用的作法,就是修改 /etc/exports文件,之後再啟動NFS伺服器。
/etc/exports文件格式如下
導出的文件夾 導出的網段(對該導出的網段的選項)
所謂導出的網段就是只向哪個網段導出,保證安全性。一個例子為:
/linux 192.168.1.0/24(rw,sync,no_root_squash)
就是將 /linux 導出到網段為192.168.1.0,子網掩碼為255.255.255.0 (即24)的網路。其中可用的選項為(翻譯自man文檔):
secure和insecure : secure選項下,所有連接的埠均小於1024。默認打開。
rw和ro : Read/Write和Read Only
async和sync async將使用非同步數據存取,數據並非馬上寫入伺服器的。sync則相反。使用async需要注意伺服器不能隨意不正常地關閉,否則可能導致數據丟失。
no_wdelay :不使用延遲寫入。NFS伺服器會將寫入寫入請求緩沖起來,可以提高性能。如果async已經打開那麼該選項無效。
no_subtree_check :不進行子樹檢查(使用該選項易引起安全問題)
root_squash和no_root_squash、all_squash :root_squash選項使得客戶端以root許可權訪問 文件系統時,轉換為伺服器端的匿名用戶。這選項打開一定要設置好伺服器的許可權。
之後再重新啟動NFS服務。Fedora下使用 /etc/init.d/nfs restart
使用 exports查看導出的文件。

⑼ Linux NFS服務

這個是考核的autonfs
1、首先安裝並啟動autofs ,service autonfs start
2、nfs伺服器 端配置nfs共享:
[root@linux-node3 ~]# cat /etc/exports
/var/test *(rw)
[root@linux-node3 ~]#

3、客戶端配置auto.master文件
-bash-3.2$ cat /etc/auto.master
/misc /etc/auto.misc

/net -hosts
/home/nfsuser /etc/auto.nfsuser

+auto.master
-bash-3.2$

4、客戶端配置/etc/auto.nfsuser
[root@linux-node2 ~]# cat /etc/auto.nfsuser
test -ro,soft,intr 172.16.1.11:/var/test

5、重啟autofs服務
service autofs restart

6、切換到nfsuser,直接cd test,即可實現掛載//var/test
[root@linux-node2 ~]# su - nfsuser
-bash-3.2$ cd test
-bash-3.2$ ls
aa
-bash-3.2$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 7.7G 3.9G 3.4G 54% /
/dev/sda1 99M 12M 82M 13% /boot
/dev/mapper/myvg01-lv01
14G 13G 89M 100% /oracle
tmpfs 2.1G 0 2.1G 0% /dev/shm
172.16.1.11:/var/test
7.7G 3.9G 3.4G 54% /home/nfsuser/test

7、至於說要登錄自動掛載,則把cd test命令放到.bash_profile即可

閱讀全文

與linuxnfs服務鎖機制進程相關的資料

熱點內容
w微信開發者工具 瀏覽:325
資料庫還原附加 瀏覽:713
打包成exe執行文件 瀏覽:652
信豐營銷app有哪些 瀏覽:463
蘋果文件下載項如何下載 瀏覽:179
ps摳婚紗教程 瀏覽:203
如何在移動硬碟上隱藏文件夾 瀏覽:451
瑞虎8老車機怎麼刷app 瀏覽:992
學ui設計要學java嗎 瀏覽:275
淘寶票房數據源怎麼調整 瀏覽:470
iphone5s升級ios卡黑屏 瀏覽:622
u盤沒用的文件刪不了怎麼辦 瀏覽:561
文件夾解鎖工具 瀏覽:528
creo如何減小stp文件大小 瀏覽:857
法那科英制螺紋數控怎麼編程 瀏覽:430
戀舞最新升級獎勵表 瀏覽:149
四川語音交友戀愛app有哪些 瀏覽:528
iphone6美國賣多少 瀏覽:887
圓弧刀東槽如何編程 瀏覽:870
js怎麼單擊改變標簽里的文字 瀏覽:760

友情鏈接