㈠ 配置NFS伺服器的過程。
在講NFS SERVER的運作之前先來看一些與NFS SERVER有關的東西:
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是負責負責信息的傳輸。
NFS需要啟動的DAEMONS
pc.nfsd:主要復雜登陸許可權檢測等。
rpc.mountd:負責NFS的檔案系統,當CLIENT端通過rpc.nfsd登陸SERVER後,對clinet存取server的文件進行一系列的管理
NFS SERVER在REDHAT linux平台下一共需要兩個套件:nfs-utils和PORTMAP
nfs-utils:提供rpc.nfsd 及 rpc.mountd這兩個NFS DAEMONS的套件
portmap:NFS其實可以被看作是一個RPC SERVER PROGRAM,而要啟動一個RPC SERVER PROGRAM,都要做好PORT的對應工作,而且這樣的任務就是由PORTMAP來完成的。通俗的說PortMap就是用來做PORT的mapping的。
一:伺服器端的設定(以LINUX為例)
伺服器端的設定都是在/etc/exports這個文件中進行設定的,設定格式如下:
欲分享出去的目錄 主機名稱1或者IP1(參數1,參數2) 主機名稱2或者IP2(參數3,參數4)
上面這個格式表示,同一個目錄分享給兩個不同的主機,但提供給這兩台主機的許可權和參數是不同的,所以分別設定兩個主機得到的許可權。
可以設定的參數主要有以下這些:
rw:可讀寫的許可權;
ro:只讀的許可權;
no_root_squash:登入到NFS主機的用戶如果是ROOT用戶,他就擁有ROOT的許可權,此參數很不安全,建議不要使用。
root_squash:在登入 NFS 主機使用分享之目錄的使用者如果是 root 時,那麼這個使用者的許可權將被壓縮成為匿名使用者,通常他的 UID 與 GID 都會變成 nobody 那個身份;
all_squash:不管登陸NFS主機的用戶是什麼都會被重新設定為nobody。
anonuid:將登入NFS主機的用戶都設定成指定的user id,此ID必須存在於/etc/passwd中。
anongid:同 anonuid ,但是變成 group ID 就是了!
sync:資料同步寫入存儲器中。
async:資料會先暫時存放在內存中,不會直接寫入硬碟。
insecure 允許從這台機器過來的非授權訪問。
例如可以編輯/etc/exports為:
/tmp*(rw,no_root_squash)
/home/public192.168.0.*(rw) *(ro)
/home/test192.168.0.100(rw)
/home/linux *.the9.com(rw,all_squash,anonuid=40,anongid=40)
設定好後可以使用以下命令啟動NFS:
/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默認啟動的)
/etc/rc.d/init.d/nfs start
exportfs命令:
如果我們在啟動了NFS之後又修改了/etc/exports,是不是還要重新啟動nfs呢?這個時候我們就可以用exportfs命令來使改動立刻生效,該命令格式如下:
exportfs [-aruv]
-a :全部mount或者unmount /etc/exports中的內容
-r :重新mount /etc/exports中分享出來的目錄
-u :umount 目錄
-v :在 export 的時候,將詳細的信息輸出到屏幕上。
具體例子:
[root @test root]# exportfs -rv
2、mount nfs目錄的方法:
mount -t nfs hostname(orIP):/directory /mount/point
具體例子:
Linux: mount -t nfs 192.168.0.1:/tmp /mnt/nfs
Solaris:mount -F nfs 192.168.0.1:/tmp /mnt/nfs
BSD: mount 192.168.0.1:/tmp /mnt/nfs
3、mount nfs的其它可選參數:
HARD mount和SOFT MOUNT:
HARD: NFS CLIENT會不斷的嘗試與SERVER的連接(在後台,不會給出任何提示信息,在LINUX下有的版本仍然會給出一些提示),直到MOUNT上。
SOFT:會在前台嘗試與SERVER的連接,是默認的連接方式。當收到錯誤信息後終止mount嘗試,並給出相關信息。
例如:mount -F nfs -o hard 192.168.0.10:/nfs /nfs
對於到底是使用hard還是soft的問題,這主要取決於你訪問什麼信息有關。例如你是想通過NFS來運行X PROGRAM的話,你絕對不會希望由於一些意外的情況(如網路速度一下子變的很慢,插拔了一下網卡插頭等)而使系統輸出大量的錯誤信息,如果此時你用的是HARD方式的話,系統就會等待,直到能夠重新與NFS SERVER建立連接傳輸信息。另外如果是非關鍵數據的話也可以使用SOFT方式,如FTP數據等,這樣在遠程機器暫時連接不上或關閉時就不會掛起你的會話過程。
rsize和wsize:
文件傳輸尺寸設定:V3沒有限定傳輸尺寸,V2最多隻能設定為8k,可以使用-rsize and -wsize 來進行設定。這兩個參數的設定對於NFS的執行效能有較大的影響
bg:在執行mount時如果無法順利mount上時,系統會將mount的操作轉移到後台並繼續嘗試mount,直到mount成功為止。(通常在設定/etc/fstab文件時都應該使用bg,以避免可能的mount不上而影響啟動速度)
fg:和bg正好相反,是默認的參數
nfsvers=n:設定要使用的NFS版本,默認是使用2,這個選項的設定還要取決於server端是否支持NFS VER 3
mountport:設定mount的埠
port:根據server端export出的埠設定,例如如果server使用5555埠輸出NFS,那客戶端就需要使用這個參數進行同樣的設定
timeo=n:設置超時時間,當數據傳輸遇到問題時,會根據這個參數嘗試進行重新傳輸。默認值是7/10妙(0.7秒)。如果網路連接不是很穩定的話就要加大這個數值,並且推薦使用HARD MOUNT方式,同時最好也加上INTR參數,這樣你就可以終止任何掛起的文件訪問。
intr 允許通知中斷一個NFS調用。當伺服器沒有應答需要放棄的時候有用處。
udp:使用udp作為nfs的傳輸協議(NFS V2隻支持UDP)
tcp:使用tcp作為nfs的傳輸協議
namlen=n:設定遠程伺服器所允許的最長文件名。這個值的默認是255
acregmin=n:設定最小的在文件更新之前cache時間,默認是3
acregmax=n:設定最大的在文件更新之前cache時間,默認是60
acdirmin=n:設定最小的在目錄更新之前cache時間,默認是30
acdirmax=n:設定最大的在目錄更新之前cache時間,默認是60
actimeo=n:將acregmin、acregmax、acdirmin、acdirmax設定為同一個數值,默認是沒有啟用。
retry=n:設定當網路傳輸出現故障的時候,嘗試重新連接多少時間後不再嘗試。默認的數值是10000 minutes
noac:關閉cache機制。
同時使用多個參數的方法:mount -t nfs -o timeo=3,udp,hard 192.168.0.30:/tmp /nfs
請注意,NFS客戶機和伺服器的選項並不一定完全相同,而且有的時候會有沖突。比如說伺服器以只讀的方式導出,客戶端卻以可寫的方式mount,雖然可以成功mount上,但嘗試寫入的時候就會發生錯誤。一般伺服器和客戶端配置沖突的時候,會以伺服器的配置為准。
4、/etc/fstab的設定方法
/etc/fstab的格式如下:
fs_specfs_filefs_typefs_optionsfs_mpfs_pass
fs_spec:該欄位定義希望載入的文件系統所在的設備或遠程文件系統,對於nfs這個參數一般設置為這樣:192.168.0.1:/NFS
fs_file:本地的掛載點
fs_type:對於NFS來說這個欄位只要設置成nfs就可以了
fs_options:掛載的參數,可以使用的參數可以參考上面的mount參數。
fs_mp-該選項被"mp"命令使用來檢查一個文件系統應該以多快頻率進行轉儲,若不需要轉儲就設置該欄位為0
fs_pass-該欄位被fsck命令用來決定在啟動時需要被掃描的文件系統的順序,根文件系統"/"對應該欄位的值應該為1,其他文件系統應該為2。若該文件系統無需在啟動時掃描則設置該欄位為0 。
5、與NFS有關的一些命令介紹
nfsstat:
查看NFS的運行狀態,對於調整NFS的運行有很大幫助
rpcinfo:
查看rpc執行信息,可以用於檢測rpc運行情況的工具。
四、NFS調優
調優的步驟:
1、測量當前網路、伺服器和每個客戶端的執行效率。
2、分析收集來的數據並畫出圖表。查找出特殊情況,例如很高的磁碟和CPU佔用、已經高的磁碟使用時間
3、調整伺服器
4、重復第一到第三步直到達到你渴望的性能
與NFS性能有關的問題有很多,通常可以要考慮的有以下這些選擇:
WSIZE,RSIZE參數來優化NFS的執行效能
WSIZE、RSIZE對於NFS的效能有很大的影響。
wsize和rsize設定了SERVER和CLIENT之間往來數據塊的大小,這兩個參數的合理設定與很多方面有關,不僅是軟體方面也有硬體方面的因素會影響這兩個參數的設定(例如LINUX KERNEL、網卡,交換機等等)。
下面這個命令可以測試NFS的執行效能,讀和寫的效能可以分別測試,分別找到合適的參數。對於要測試分散的大量的數據的讀寫可以通過編寫腳本來進行測試。在每次測試的時候最好能重復的執行一次MOUNT和unmount。
time dd if=/dev/zero of=/mnt/home/testfile bs=16k count=16384
用於測試的WSIZE,RSIZE最好是1024的倍數,對於NFS V2來說8192是RSIZE和WSIZE的最大數值,如果使用的是NFS V3則可以嘗試的最大數值是32768。
如果設置的值比較大的時候,應該最好在CLIENT上進入mount上的目錄中,進行一些常規操作(LS,VI等等),看看有沒有錯誤信息出現。有可能出現的典型問題有LS的時候文件不能完整的列出或者是出現錯誤信息,不同的操作系統有不同的最佳數值,所以對於不同的操作系統都要進行測試。
設定最佳的NFSD的COPY數目。
linux中的NFSD的COPY數目是在/etc/rc.d/init.d/nfs這個啟動文件中設置的,默認是8個NFSD,對於這個參數的設置一般是要根據可能的CLIENT數目來進行設定的,和WSIZE、RSIZE一樣也是要通過測試來找到最近的數值。
UDP and TCP
可以手動進行設置,也可以自動進行選擇。
mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR
UDP有著傳輸速度快,非連接傳輸的便捷特性,但是UDP在傳輸上沒有TCP來的穩定,當網路不穩定或者黑客入侵的時候很容易使NFS的 Performance 大幅降低甚至使網路癱瘓。所以對於不同情況的網路要有針對的選擇傳輸協議。nfs over tcp比較穩定, nfs over udp速度較快。在機器較少網路狀況較好的情況下使用UDP協議能帶來較好的性能,當機器較多,網路情況復雜時推薦使用TCP協議(V2隻支持UDP協議)。在區域網中使用UDP協議較好,因為區域網有比較穩定的網路保證,使用UDP可以帶來更好的性能,在廣域網中推薦使用TCP協議,TCP協議能讓NFS在復雜的網路環境中保持最好的傳輸穩定性。可以參考這篇文章: http: //www.hp.com.tw/ssn/unix/0212/unix021204.asp
版本的選擇
V3作為默認的選擇(RED HAT 8默認使用V2,SOLARIS 8以上默認使用V3),可以通過vers= mount option來進行選擇。
LINUX通過mount option的nfsvers=n進行選擇。
五、NFS故障解決
1、NFSD沒有啟動起來
首先要確認 NFS 輸出列表存在,否則 nfsd 不會啟動。可用 exportfs 命令來檢查,如果 exportfs 命令沒有結果返回或返回不正確,則需要檢查 /etc/exports 文件。
2、mountd 進程沒有啟動
mountd 進程是一個遠程過程調用 (RPC) ,其作用是對客戶端要求安裝(mount)文件系統的申請作出響應。mountd進程通過查找 /etc/xtab文件來獲知哪些文件系統可以被遠程客戶端使用。另外,通過mountd進程,用戶可以知道目前有哪些文件系統已被遠程文件系統裝配,並得知遠程客戶端的列表。查看mountd是否正常啟動起來可以使用命令rpcinfo進行查看,在正常情況下在輸出的列表中應該象這樣的行:
100005 1 udp 1039 mountd
100005 1 tcp 1113 mountd
100005 2 udp 1039 mountd
100005 2 tcp 1113 mountd
100005 3 udp 1039 mountd
100005 3 tcp 1113 mountd
如果沒有起來的話可以檢查是否安裝了PORTMAP組件。
rpm -qa|grep portmap
3、fs type nfs no supported by kernel
kernel不支持nfs文件系統,重新編譯一下KERNEL就可以解決。
4、can't contact portmapper: RPC: Remote system error - Connection refused
出現這個錯誤信息是由於SEVER端的PORTMAP沒有啟動。
5、mount clntudp_create: RPC: Program not registered
NFS沒有啟動起來,可以用showmout -e host命令來檢查NFS SERVER是否正常啟動起來。
6、mount: localhost:/home/test failed, reason given by server: Permission denied
這個提示是當client要mount nfs server時可能出現的提示,意思是說本機沒有許可權去mount nfs server上的目錄。解決方法當然是去修改NFS SERVER咯。
7、被防火牆阻擋
這個原因很多人都忽視了,在有嚴格要求的網路環境中,我們一般會關閉linux上的所有埠,當需要使用哪個埠的時候才會去打開。而NFS默認是使用111埠,所以我們先要檢測是否打開了這個埠,另外也要檢查TCP_Wrappers的設定。
六、NFS安全
NFS的不安全性主要體現於以下4個方面:
1、新手對NFS的訪問控制機制難於做到得心應手,控制目標的精確性難以實現
2、NFS沒有真正的用戶驗證機制,而只有對RPC/Mount請求的過程驗證機制
3、較早的NFS可以使未授權用戶獲得有效的文件句柄
4、在RPC遠程調用中,一個SUID的程序就具有超級用戶許可權
加強NFS安全的方法:
1、合理的設定/etc/exports中共享出去的目錄,最好能使用anonuid,anongid以使MOUNT到NFS SERVER的CLIENT僅僅有最小的許可權,最好不要使用root_squash。
2、使用IPTABLE防火牆限制能夠連接到NFS SERVER的機器范圍
iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p TCP -s 140.0.0.0/8 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 140.0.0.0/8 --dport 111 -j ACCEPT
3、為了防止可能的Dos攻擊,需要合理設定NFSD 的COPY數目。
4、修改/etc/hosts.allow和/etc/hosts.deny達到限制CLIENT的目的
/etc/hosts.allow
portmap: 192.168.0.0/255.255.255.0 : allow
portmap: 140.116.44.125 : allow
/etc/hosts.deny
portmap: ALL : deny
5、改變默認的NFS 埠
NFS默認使用的是111埠,但同時你也可以使用port參數來改變這個埠,這樣就可以在一定程度上增強安全性。
6、使用Kerberos V5作為登陸驗證系統
㈡ 如何使用NFS和NAS解決虛擬伺服器存儲問題
然而,這樣的靈活性有一個條件:物理機能夠看到所有虛擬磁碟鏡像。這通常會導致存儲網路成為一個使用網路文件系統(NFS)和虛擬網路附屬存儲(NAS)集群的開放網路。
在傳統基於塊的存儲中,如iSCSI和光纖通道存儲區域網路(FC SAN),這意味著我們必須能夠分配和操作邏輯單元號(LUN),以便在遷移虛擬機時可以迅速重新分配LUN給其它物理機。這個操作不僅是在最初部署時很難執行,隨著環境越來越大和復雜,它也會很難執行。要為每個虛擬機分配一個LUN,然後還要能夠迅速地將它重新分配給其它物理主機,這對IT人士來說已然是一個越來越嚴重的問題。
在越來越多的環境里,IT管理員都開始使用更大的LUN來承載多個虛擬機。盡管這可以減輕分配多個LUN給多個虛擬機的重擔,但無法解決分區和LUN增長的問題。
NFS解決方案
現在,VMware支持通過NFS啟動部署虛擬機。通過可啟動的NFS載入(mount)部署虛擬機是解決這個問題的一個理想方法,而且也被越來越廣泛地接受。
NFS是一個客戶端或伺服器系統,允許用戶跨網路訪問文件,並能夠像操作本地文件目錄一樣操作這些遠程文件。它是通過輸出(exporting)和載入(mounting)兩個過程完成的。輸出過程是指NFS伺服器向遠程客戶端提供文件訪問的過程;載入過程是指文件系統對操作系統和用戶變為可用的過程。NFS主要用於Unix-to-Unix文件共享,即使你的所有虛擬機都是基於Windows的,你也可以選用NFS。盡管Windows無法引導NFS,但VMware將NFS建立在它的磁碟虛擬層,所以Windows無需引導NFS。
NFS工作站很容易創建和操作。每個物理伺服器都能看到所有的虛擬磁碟鏡像,而且VMotion等功能也更加容易操作。與iSCSI或FC SAN中的每個VMDK創建一個LUN不同,你可以在一個NFS卷中共置多個VMDK(VMware Virtual Disk)文件。因為VMDK只是文件,而不是真正的磁碟。為什麼使用NFSNFS讓存儲和VMware管理員的工作變得容易得多,而且在很多VMware環境下都不會有任何性能損失。除了一些例外的存儲廠商提供虛擬化解決方案以外,LUN管理對存儲和VMware管理員來說都很具有挑戰性。而有了NFS執行,與單個文件系統的交互讓VMware鏡像供應更加容易。
訪問控制通過內置NFS安全性被啟用後,可以向一組VMware管理員提供NFS文件系統。有了NFS,就不需要微操作每一個LUN了。例如,VMware鏡像在文件夾中可以根據應用類型進行分組,而且可以同時提供給一系列應用使用。
此外,訪問路徑是基於傳統的乙太網,這不僅節省了成本,也更加易於進行故障檢修。因為,大多數企業對於IP管理的了解要遠遠多於對FC管理的了解。
NFS有一個優點就是訪問簡易。所有ESX伺服器都可以連接到載入點(mount point),這使得VMotion的使用更加容易。在FC部署中,每個ESX伺服器都必須能夠看到所有其它ESX伺服器的LUN,這很不利於配置和管理。NFS是一項共享技術,所有共享訪問都是內置的。
NFS的另一優勢在於數據保護方面。盡管通過NFS提供的VMware鏡像無法使用VMware VCB,但Unix或Linux主機可以載入這些鏡像來進行備份。利用支持NDMP的備份軟體可以備份這些鏡像。通過Linux主機的方法可以訪問VMware鏡像,而且可以通過這種方法可以載入快照和備份卷。此外,你還可以綜合利用NFS主機的復制工具保障業務持續性和災難恢復,而不用購買VMware專門的復制工具。
說得直白一點,NFS不是唯一的協議,它也有不太適合的時候。例如,Microsoft Cluster Service必須有成組存取(block access),而且有些情況下就需要光纖通道。iSCSI有一些很獨特的功能,其中一個是它能夠直接分配一個LUN給一個子操作系統,而不用通過VMware磁碟虛擬層。這些獨特的功能可以快速地將特定的LUN轉移出VMware環境。
這個執行需要的不僅僅是一個標準的文件伺服器或NAS,因為除了保存用戶數據以外,它還是架構的一個關鍵部分。
利用虛擬NAS集群解決I/O問題
通過NAS集群虛擬化可以緩解某些物理存儲相關問題,如I/O限制。
隨著負荷的不斷增加,傳統的NAS無法有效地擴展升級。部署多個物理伺服器會迅速加重I/O帶寬的負擔,這樣的負荷比在多數文件伺服器環境中的負荷要大得多。要減輕I/O帶寬負擔,就必須部署更多的NAS,而這又會導致NAS蔓延。
這使得我們必須在滿足額外的NAS系統需求以解決文件服務需求的同時,還要讓這些NAS系統必須能處理虛擬伺服器環境不斷變化的I/O需求。有了單獨的NAS head,VMotion就很難適用了,唯一的其它選擇是購買更大的單一的NAS head。在VMware環境下,這樣的升級不是因為容量限制而進行的,而是為了提供更高的性能而升級。
下面,我們說說虛擬NAS集群。一個虛擬NAS集群代表著整個ESX環境的一個NAS對象,即使這個對象是多個NAS head。一個虛擬NAS集群是一系列NAS節點,這些節點是作為一個整體被管理的。性能或容量的升級就成為相互獨立的事了,I/O性能升級只是連接更多的節點到集群,而容量升級則是連接更多的磁碟,互不影響。
此外,虛擬NAS集群還可以為環境提供冗餘。如果集群的其中一個節點出錯,該節點的文件系統會自動轉向集群中的其它節點。這個功能可以保障數據訪問不受中斷,對於虛擬伺服器環境非常重要。因為,虛擬伺服器環境下的一個錯誤可能會導致幾十個虛擬機受到嚴重影響,多層冗餘對於這樣的環境就顯得尤為重要。
Global Files System
將虛擬伺服器從一台物理機遷移到另一台物理機是一項勢在必行的工作,它可以給數據中心帶來很大的靈活性。而數據中心的靈活性也正是客戶所尋求的。相關虛擬磁碟的遷移,尤其是從一個陣列到另一陣列或一個NAS head到另一NAS head的遷移,並不是不可能的任務,但是會非常耗費時間,並且會中斷服務。
而在虛擬NAS集群環境下,這就是一件非常簡單的工作,而且不會造成服務中斷。這進一步提高了虛擬環境的靈活性。例如,如果某台物理機中的好幾個虛擬機存在I/O帶寬需求高峰期,那麼你可以將其它虛擬機磁碟鏡像移開它們所在的節點來應對I/O高峰期。這個功能還可以用於虛擬NAS集群中的標准文件系統,因為它們可以根據需求進行重新分配。
虛擬NAS和FC
在VMware近期的白皮書中,基於FC的塊I/O仍是一個尚未成熟的I/O性能領導者。盡管有些NAS供應商會對這些結果存在爭議,但這並不影響我們對這二者的利用。
首先,不到萬不得已不要使用FC。現在市場上有兩種不同的產品。第一種是NAS供應商(如Network Appliance)為他們的NAS head提供的FC和iSCSI服務。NAS head必須在NAS文件系統中創建一個封裝的FC LUN。第二種是EMC和OnStor等公司提供的網關(Gateway)解決方案,這些解決方案允許本地FC訪問存儲系統。在EMC的解決方案中,這當然是一個通向Clarriion陣列的網關。OnStor允許你通過它們的NAS網關(NAS gateway)為你現有的存儲添加一個有Global Files System的虛擬NAS集群。
㈢ NFS伺服器的安裝與配置
由於實驗室的項目需要實現在CephFS之上建立NFS之上,所以記錄一下NFS伺服器的安裝與配置流程。
NFS 伺服器可以讓客戶端將網路遠程的 NFS 伺服器分享的目錄,直接掛載到本地端的機器當中。本地端的機器通過直接讀寫掛載的目錄,就可以同步到NFS伺服器之上。
系統平台:Ubuntu 14.04
NFS Server IP:192.168.1.2
iptables關閉: Firewall is disable.(NFS埠使用在默認情況下是不固定,所以若配置NFS伺服器需要搭配防火牆使用的話,請配置固定埠)
SELINUX=disabled
NFS的安裝只需要安裝rpcbind與nfs-server就可以對外提供服務了。
NFS伺服器的主要配置文件就是:/etc/exports。不過這個配置文件不一定會存在,可能需要使用 vim 主動新建這個文件。
/etc/exports文件由以下選項構成:
每一行最前面是要分享出來的目錄,目錄可以依照不同的許可權分享給不同的主機。若許可權參數不止一個時,則以逗號 (,) 分開。且主機名與小括弧是連在一起的喔!其中參數是可選的,當不指定參數時,nfs將使用默認選項。默認的共享選項是 sync,ro,root_squash,no_delay 當主機名或IP地址為空時,則代表共享給任意客戶機提供服務。
下面是一些NFS共享的常用參數:
這里我們使用了NFS v3的配置,如下圖所示:
配置完/etc/exports之後,接下來就可以啟動NFS伺服器了。
為了使NFS伺服器能正常工作,需要啟動rpcbind和nfs-kernel-server兩個服務,並且rpcbind一定要先於nfs-kernel-server啟動。
若要開機自啟動nfs服務,可以通過sysv-rc-conf配置自啟動服務。
客戶端的掛載很簡單,先建立一個掛載目錄
之後客戶端對應的文件目錄便掛載上對應的文件系統了。
客戶端可以通過命令配置開機自啟動掛載NFS的文件系統。
將對應的命令 mount -t nfs 192.168.12:/tmp /mnt/nfs
添加至/etc/rc.d/local,不要嘗試在直接在/etc/fstab/里掛載
小結 :梳理了一下在ubuntu之下NFS伺服器的安裝與配置。當然RedHat系列的發行版也是大同小異。若有疏漏,望指點斧正。
㈣ NFS服務搭建及數據無縫遷移
五一節辦公室要停電,機房雖有UPS,但也支撐不了8小時。
因生產環境有業務系統掛了辦公室機房的NAS存儲,故需要進行遷移,步臘冊驟記錄如下:
先閑談下技術-----------------------
NFS和samba的區別
samba是混合型網路中的共享服務,windows伺服器可建samba服務,linux伺服器也可建samba服務
nfs只面向unix、linux間的共享,linux伺服器可建nfs服務(winodws系統也可以掛載nfs,就是有點不穩定)
NFS伺服器上的操作--------------------------
nfs伺服器操作系統版本:
[root@c7110 ~]# more /etc/system-release
CentOS Linux release 7.9.2009 (Core)
nfs伺服器安裝nfs服務
[root@c7110 ~]# yum -y install nfs-utils rpcbind
創建nfs目錄,並授權
[root@c7110 ~]# mkdir /opt/nfs-test
[root@c7110 ~]# chmod 777 /opt/nfs-test
編輯nfs服務配置文件
[root@c7110 ~]# vi /etc/exports
內容如下:
/opt/nfs-test *(rw,root_squash,all_squash,sync)
重新載入nfs配置:
[root@c7110 ~]# exportfs -r
nfs服務設置開機啟動
[root@c7110 ~]# systemctl enable rpcbind
[root@c7110 ~]# systemctl enable nfs
[root@c7110 ~]# systemctl enable nfs-lock
[root@c7110 ~]# systemctl enable nfs-idmap
啟動nfs服務
[root@c7110 ~]# systemctl start rpcbind
[root@c7110 ~]# systemctl start nfs
[root@c7110 ~]# systemctl start nfs-lock
[root@c7110 ~]# systemctl start nfs-idmap
查看nfs服務啟動後,所監聽的埠信息:判局螞
[root@c7110 ~]# rpcinfo -p
linux伺服器伺服器上操作-------------------------------
業務伺服器安裝nfs軟體客戶掘埋端
[root@c7111 ~]# yum -y install nfs-utils
建立一個掛載目錄
[root@c7111 ~]# mkdir /opt/test-m
掛載nfs伺服器共享出來的目錄
[root@c7111 ~]# mount -t nfs 10.x.x.10:/opt/nfs-test /opt/test-m/
查看下已掛載的nfs
[root@c7111 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.5G 0 1.5G 0% /dev
tmpfs 1.5G 0 1.5G 0% /dev/shm
tmpfs 1.5G 8.8M 1.5G 1% /run
tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
/dev/mapper/centos-root 97G 2.3G 95G 3% /
/dev/sda1 1014M 171M 844M 17% /boot
tmpfs 297M 0 297M 0% /run/user/0
10.x.x.6:/opt/nfs-test 97G 4.1G 93G 5% /opt/test-m
經測試,數據可讀可寫,證明nas服務沒有問題,於是進行數據同步,數據同步用rsync命令。
rsync -avp [email protected]::nas_6 /mnt/guidang/ --password-file=/root/rsync_pass --bwlimit=100000
數據同步完,通知研發進行掛載切換。研發同事在測試時,發現文件屬性中的uid及gid與原來的不一致,有些擔心,於是又小完善了一下NFS服務。
編輯nfs服務配置文件
[root@c7110 ~]# vi /etc/exports
內容如下:
/opt/nfs-test *(no_all_squash,anonuid=600,anongid=600)
重新載入nfs配置:
[root@c7110 ~]# exportfs -r