NFS

一、網絡文件共享服務:

1NFSNetwork File System

Linux下實現文件共享有多種方式,NFS就是其中之一。網絡文件系統(NFS)協議是由Sun MicroSystem20世紀80年代爲了提供對共享文件的遠程訪問而設計和實現的。該協議採用Client/Server模型, 通過使用Sun開發的遠程過程調用協議(RPC Protocol)來實現運行在一臺計算機上的程序來調用在另一臺遠程機器上運行的子程序.

NFS包含3個版本:NFSv2NFSv3NFSv4

RHEL6是以NFSv4作爲默認版本,NFSv4使用TCP 協議(端口號是2049)和NFS服務器建立連接,而老版本的NFS可以在TCP協議或者是UDP協議上運行。NFS服務的端口默認是不固定的,但可以強制NFS使用固定端口。

RHEL6NFS的軟件包:nfs-utils

NFS的相關文檔中,有兩個值得重點關注

/etc/exportsNFS服務的主配置文件,該文件的最主要目的是發佈共享目錄併爲共享目錄限制權限。和其他服務的主配置文件一樣,絕大部分的配置都是通過編輯該文件完成

/var/lib/nfs/xtab:這個文件主要用來記錄客戶端與NFS服務器的連接記錄,如果想查看哪些客戶端曾經連接過NFS服務器,查看該文件即可

NFS服務的主配置文件exports發佈共享目錄的格式如下:

共享目錄  [客戶端1參數1][客戶端2 參數]

共享目錄是指在NFS服務器上需要給客戶端共享出來的目錄,在設置共享目錄的時候要使用絕對路徑

客戶端是指所有可以訪問NFS服務器共享目錄的計算機。常見客戶端指定方式如下表:

客戶端指定方式

示例

使用IP地址指定單一主機

10.20.30.40

使用IP地址指定範圍主機

172.16.0.0/16

使用IP地址指定範圍主機

192.168.1.*

使用域名指定單一主機

Test.ice.apple

使用域名指定範圍主機

*.ice.apple

使用通配符指定所有主機

*

參數:在諸多可以附帶的參數中,使用最多的要數權限設置的參數了,常見參數如下表:

參數

說明

ro

設置共享權限爲只讀

rw

設置共享權限爲讀寫

root_squash

當使用NFS服務器共享目錄的使用者是root時,將被映射爲匿名賬號。即:NFS 主機使用共享目錄的使用者如果是 root 時,那麼這個使用者的權限將被壓縮成爲匿名使用者,通常他的 UID 與 GID 都會變成  nobody 那個系統賬號的身份

no_root_squash

當使用NFS服務器共享目錄的使用者是root時,將不被映射爲匿名賬號。即:NFS 主機使用共享目錄的使用者,如果是 root 的話,那麼對於這個共享的目錄來說,他就具有 root 的權限!這個項目極不安全,不建議使用!

all_squash

將所有使用NFS服務器共享目錄的使用者都映射爲匿名賬號

anonuid

設置匿名賬號的UID

anongid

設置匿名賬號的GID

sync

保持數據同步,也就是將數據同步寫入內存和硬盤。這可能導致效率降低

async

先將數據保存在內存中,而不是直接保存在硬盤

注意:在發佈共享目錄的格式中除了共享目錄是必跟參數外,其他參數都 是可選 的。而且共享目錄和客戶端1與客戶端2之間都 需要使用空格符號,但客戶端和參數之間不能有空格。

如:在/etc/exports文件添加如配置:

/media    *(ro) 192.168.0.10(rw,no_root_squash)

/NFS/test   192.168.0.0/24(ro)

NFS服務的啓動與停止:NFS服務腳本是NFS

chkconfig --list

rpcbindnfs都設爲自動啓動

chkconfig rpcbind on

chkconfig nfs on

啓動rpcbind

service rpcbind start

之後才能成功啓動nfs

service nfs start

一定要先啓動rpcbind,然後再啓動nfs,不然NFS quotasNFS daemon都將啓動失敗。

servicenfs start|stop|restart|reload

exportfs命令:用於維護當前主機中NFS服務器的輸出目錄列表

exportfs –rv使NFS服務器重新讀取exports文件的設置,而不需重啓NFS服務器

exportfs –auv 用於停止當前主機中NFS服務器的所有目錄輸出

exportfs –av 用於輸出NFS服務器的所有共享目錄

exportfs  –v 顯示輸出列表同時,顯示導出的設定參數

showmount -e NFSServer上執行此命令顯示NFS Server上所有的共享卷

格式:showmount–e NFS服務器的IP

showmount -d NFS服務器IP  查看NFS服務器上哪些共享目錄被客戶端掛載了。

showmount  - a NFS服務器地址:顯示指定NFS服務器的所有客戶端主機和其所連接的目錄

客戶端的使用:

客戶端可以先使用showmount –e查看NFS服務器發佈的共享目錄

掛載NFS文件系統

Mount  -t nfs NFS服務器IP地址(或主機名):共享目錄  本地掛載點

如:mount –t nfs 192.168.0.1:/media  /mnt

啓動掛載NFS

想要系統每次啓動時自動掛載NFS服務器上的共享目錄,則可以編輯/etc/fstab文件

NFS服務器的IP:共享目錄    掛載點    nfs  defaults   0 0

配置NFS固定端口:

默認情況下,NFS配置完畢後,每次重新啓動該服務後其相應的端口都會隨機變化,如果啓用了防火牆,如何開放變化的端口就成問題了,其實解決辦法也很簡單,只需對NFS進行配置使用固定端口即可

NFS服務啓動時,會檢查/etc/sysconfig/nfs文件,因此改該文件,修改相應字段便可以強制NFS服務使用固定端口了:

wKiom1OeM_nB5E2eAABX9DNQJDc295.jpg\

RQUOTAD_POTR: showmount –e 命令反向查詢有哪些共享文件所使用的端口

LOCKD_TCPPORT:所監聽的端口號

MOUNTD_PORT:所監聽的端口號

LOCKD_UDPPORT:rpc所監聽的端口號

STATD_POR:rpc所監聽的端口號

NFS服務器上啓用了iptables防火牆需創建如下規則:

wKiom1OeM6mSPQ4yAADeW1uGc9s658.jpg

二、自動掛載網絡存儲(automount

自動安裝守護進程在文件系統被訪問到時就安裝文件系統,而不再需要文件系統時,就卸載它們(不活動狀態的時間間隔默認爲5分鐘),這一過程就減少了活動安裝點的數目。

與自動安裝相關的配置文件中,有兩個主要的配置文件

主控文件:/etc/auto.master  此文件列出了應該有autofs文件系統安裝到它們上面的目錄,並且給每個目錄關聯了一個映射文件。一個簡單的主控文件(auto.master)類似於下面的樣子

Directory     Map

Directory是指掛載點的父目錄,可自已隨便設置。這個目錄必須是一個有效目錄

Map是指定的映射文件,該文件中包含掛載點目錄;autofs會自動監視映射文件的配置來自動掛載。 映射文件名可以隨便寫,只要在/etc目錄下能夠找到就OK了,像寫成media.dvd也是可以的。如下圖所示:


wKiom1OeM6qCbqy2AAGhRimOajc574.jpg

映射文件:自動把幾個文件系統安裝到一個公共的目錄下,目錄路徑是在主控文件中,而不是在映射文件本身裏指定的。

格式:

掛載目錄 -fstype=文件系統類型,其後可以跟掛載選項,用“,”隔開   要掛載的設備名(本地設備必須加“:”)

wKioL1OeM3yjVUdwAAChMc3Q2Os811.jpg

修改完主控文件和映射文件後要重啓autofs服務:service autofs stop   serviceautofs start

自動掛載的默認有效時間是5分鐘,但可以通過修改/etc/sysconfig/autofs文件來設置。

Automount的應用

1、  自動掛載光驅:將光驅掛載在/misc/cd目錄

確定/misc目錄已存在

修改/etc/auto.master文件:指定掛載點的父目錄(/misc)和映射文件。如圖所示:

wKiom1OeM6qQ6Z62AACZF9N_sPw061.jpg

修改/etc/auto.misc文件:指定掛載點、文件系統類型及參數、掛載的設備。如下圖所示

wKiom1OeM6qRJY2sAAB2eXiJ-kg639.jpg

1、  自動掛載NFS共享目錄:將NFS服務器上有兩個共享目錄:/var/nfs/oshu/var/nfs/ralii分別掛載在/special/oshu/special/ralii目錄並且只讀

修改/etc/exports文件,共享上述兩個目錄

wKioL1OeM3zSDP8HAABglpTdSNE852.jpg

確定掛載點父目錄/special已存在

修改/etc/auto.master文件:指定掛載點的父目錄(/special)和映射文件。如圖所示:

wKioL1OeOPbQf8nsAAAXGU4S7Bg539.jpg

創建/etc/auto.nfs映射文件:指定掛載點、文件系統類型及參數、掛載的設備。如下圖所示

cp  /etc/auto.misc  /etc/auto.nfs

vi /etc/auto.nfs

wKiom1OeM6zinfOHAAC-Si6EnxQ915.jpg

三、NTP(網絡時間協議)

計算機的系統時間是由計算機內的石英晶體振盪電路以固定的振盪頻率產生的,由於晶振在製作過程中會有少許誤差,導致所產生的系統時間與全球時間(UTC)存在偏差,時間一長,偏差就會越來越大,嚴重時會給網絡應用帶來災難性的後果,因此就需要對網絡中的計算機的系統時間進行校正(也稱時間同步)。

Network Time ProtocolNTP)是用來使計算機時間同步化的一種協議,它可以使計算機系統與NTP服務器或時鐘源(如石英鐘,GPS等等)進行同步化的一種協議,它可以提供高精準度的時間校正(LAN上與標準間差小於1毫秒,WAN上幾十毫秒)

通常情況下,時間同步是按以下步驟進行的:

1):NTP客戶端向NTP服務器發出一個時間請求包(UDP包),其中包含了該包離開客戶端時的時間戳。

2):當服務器接收到該包時。填入包到達時的時間戳、包離開時的時間戳等信息,然後立即把包返回給客戶端

3):客戶端在接收到響應包時再填入包返回時的時間戳,然後利用這些時間參數計算出兩個關參數,即包往返的延遲、客戶端與服務器之間的時鐘偏移

4):客戶端使用時鐘偏移來調整本地時鐘,以使其時間與服務器時間一致

1、網絡時間服務器的安裝與配置

1檢查是否安裝NTP服務器軟件包:#rpm -q  ntp    默認是安裝的,若未安裝則通過RPM命令或YUM進行安裝

2編輯配置文件/etc/ntp.conf

NTP服務的主要配置文件是/etc/ntp.conf。其中已經有了一些默認設置。如下圖所示:

wKioL1OeM37A1TZjAAEYV-Qnh9Q056.jpg

restrict default kodnomodify notrap nopeer noquery  限制其他計算機查詢修改本機上的NTP服務,其中default表示所有IP

restrict -6default kod nomodify notrap nopeer noquery  應用於IPV6地址的主機
restrict 127.0.0.1
   開放本機內部接口,用於反饋;以便於在本地對NTP服務進行監控及配置

restrict 192.168.1.0mask 255.255.255.0 nomodify notrap  開放這個網段,不能修改;即允許192.168.1.0/24網段的NTP客戶端都可以用本機的NTP服務器進行網絡校時,但不允許它們修改本機的NTP服務配置
server 0.rhel.pool.ntp.org
server 1.rhel.pool.ntp.org
server 2.rhel.pool.ntp.org
這些是網絡中真正服務器,這裏的server參數用來指定上層的NTP服務器,默認指定internet上的時間服務器池中的時間服務器作爲上層NTP服務器

配置使用網絡時間,主要是通過修改配置文件/etc/ntp.conf來實現的

ntp服務器默認監聽UTP 123端口

開放防火牆123端口   # iptables -I INPUT -p udp --dport 123 -jACCEPT 

例如:在某個局域網中,架設一臺本地的NTP服務器(IP:192.168.0.1),並讓它與外部時間服務器同步,那麼它的時間就成爲了整個內部網絡的標準時間。本地的NTP服務器不對internet提供公開的NTP服務,僅對內部子網192.168.0.0/24提供NTP服務,並且內部網絡的網絡校時不需要認證機制。要實現上述功能,需要對/etc/ntp.conf文件做下面的修改。

 首先確定自己的時區:

date命令可以查看當前系統時間,中國的時區爲CST。使用tzselect命令進行配置(時區選擇,交換式配置方式

或者選擇Shanghai然後建立一個軟連接,如下所示:

ln -sf/usr/share/zoneinfo/posix/Asia/Shanghai /etc/localtime #localtime爲系統時區

修改權限設置的語句格式爲:

1restrict  IP地址或域名 mask子網掩碼][選項]

該語名用來設置其他計算機對本機NTP服務的訪問權限,其中,IP地址或域名參數可以是default,表示所有計算機

常用選項:

ignore:表示禁止所有的NTP請求包進入

nomodify:表示禁止其他計算機更改本機NTP服務的設置,但可以通過本NTP服務器進行網絡校時

notrust:表示禁止所有未通過認證的NTP包進入

noquery:表示禁止其他計算機查詢本機NTP服務的狀態

notrap: 不提供trap遠程登錄

nopeer: 提供時間服務,但不做爲對等體

kod: 向不安全的訪問者發送Kiss-Of-Death報文

如果沒有設置任何選項,就表示該計算機(或網段)沒有任何限制。

若想對內部子網192.168.0.0/24提供NTP服務,則可以在ntp.conf文件中添加如下配置:

restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

2配置選項 server

作用:指定上層NTP服務器,以及一些連接選項

server[host] [key n] [version n] [prefex] [mode n] [minpoll n] [maxpoll n] [iburst]

:

server0.rhel.poll.ntp.org

server1.rhel.poll.ntp.org

啓動ntp服務:servicentpd start

開機啓動服務:chkconfig ntpd on

3、配置時間同步客戶機:

方法1:從“系統”à“管理”à菜單中,啓動“日期和時間”管理工具

方法2:手工執行 ntpdate <ntp server> 來同步或者利用crontab來執行

crontab -e

0 21 * * * /usr/sbin/ntpdate 192.168.0.1 ;/sbin/hwclock -w

每天晚上9點進行同步

其中hwclock  –whwclocksystohc命令修正系統硬件時間,這樣系統重啓後,才能顯示出正確的時間

附:

ntp客戶端運行ntpdate serverIP,出現no serversuitable for synchronization found的錯誤。

ntp客戶端用ntpdate -d serverIP查看,發現有“Serverdropped: strata too high”的錯誤,並且顯示“stratum16”。而正常情況下stratum這個值得範圍是“0~15”。

這是因爲NTP server還沒有和其自身或者它的server同步上。

以下的定義是讓NTP Server和其自身保持同步,如果在/ntp.conf中定義的server都不可用時,將使用local時間作爲ntp服務提供給ntp客戶端。

server 127.127.1.0

fudge 127.127.1.0  stratum 10

ntp server上重新啓動ntp服務後,ntp server自身或者與其server的同步的需要一個時間段,這個過程可能是5分鐘,在這個時間之內在客戶端運行ntpdate命令時會產生no serversuitable for synchronization found的錯誤。

那麼如何知道何時ntp server完成了和自身同步的過程呢?

ntp server上使用命令:

# watch ntpq -p

出現畫面:

wKiom1OeM6zQZiyOAACR6sky9W8283.jpg

注意LOCAL的這個就是與自身同步的ntp server

注意reach這個值,在啓動ntp server服務後,這個值就從0開始不斷增加,當增加到17的時候,從0175次的變更,每一次是poll的值的秒數,是64*5=320秒的時間。

ntp client上使用命令:查看時間同步狀態              

wKioL1OeM36SJpi8AACFcgt_Q7g282.jpg

ntp命令

#/usr/sbin/ntpdate -u 192.168.0.1校對時間
#/usr/sbin/ntpdate -q
192.168.0.1查詢不更新
#hwclock --systohc
將機器硬件時鐘同步爲系統時鐘

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章