Linux自學筆記——檔案共享之NFS
NFS:Network File System,網路檔案系統,用於實現unix或類unix系統之間通過網路共享資源,而傳統的檔案系統在核心中實現;
NFS原理:
NFS支援的功能很多,不同的功能會使用不同的程式,每啟動一個功能就需要開啟一些埠傳輸資料,因此,NFS功能所對應的埠不是固定的,而是隨機取用一些未被使用的埠。這樣一來,客戶端與NFS伺服器之間的溝通就成了一大問題。NFS藉助rpc解決這一問題。
RPC(Remote Procedure Call protocol),遠端過程呼叫,函式呼叫(遠端主機上的函式)。一部分功能由本地程式完成,另一部分功能由遠端主機上的函式完成;
RPC最主要的功能就是指定每個NFS功能所對應的埠號,並且告知客戶端,讓客戶端可以連線到正確的埠上去。負責RPC服務的一支關鍵daemon叫做portmap(centos6.x之後稱為rpcbind),當伺服器在啟動NFS時會隨機取用數個埠,並主動向RPC註冊,portmap就會動態分配埠號給哪些提供NFS服務的相關daemon,因此當client端在對NFS Server提出服務請求時,必須先聯絡portmap程式(監聽在111埠),portmap將NFS服務相關daemon的埠號告知,然後client才知道要跟哪些埠號溝通。
NFS依賴於rpc,所以要啟動NFS必須要先啟動rpc,否則NFS無法完成埠註冊;
版本:NFS由sun公司研發
NFSv1
NFSv2,udp
NFSv3,
NFSv4.0
NFSv4.1,
NFSv4.2
pNFS: parallel
NIS:Network Information System
身份認證:集中於某伺服器完成身份認證
NFS:基於IP的認證
RPC:
NFS:2049/tcp,2049/udp
RPC服務:portmapper
rpcinfo:report RPC information
NFS伺服器:nfsd,mountd,idmapd
檢視NFS伺服器端共享的檔案系統:
showmount –e NFSSERVER_IP
掛載NFS檔案系統:
mount –t nfs SERVER:/path/to/sharedfs /path/to/mount_point
配置檔案/etc/exports格式:
檔案系統 客戶端(選項)客戶端(選項)
客戶端:IP、FQDN或DOMAIN、NETWORK
exportfs:維護exports檔案匯出的檔案系統表的專用工具:
exportfs -ar :重新匯出所有的檔案系統;
exportfs -au :關閉匯出的所有檔案系統
exportfs -u FS :關閉指定的匯出的檔案系統
Note:此工具一般用於更改exports檔案時建立新的共享時,無須重啟服務,利用工具重新匯出檔案系統;
開機自動掛載nfs:
編輯配置檔案/etc/fstab;
SERVER:/PATH/TO/EXPORTED_FS /mount_point nfs deaults,_netdev 0 0
補充材料:
/etc/exports檔案中的項的格式相當簡單。要共享一個檔案系統,只需要編輯/etc/exports並使用下面的格式給出這個檔案系統(和選項)即可:
Directory(or file system) client1(option1,option2)client2(option1,option2)
常用選項:
有幾個常用的選項可以對NFS實現進行定製。這些選項包括:
Secure:這個選項是預設選項,它使用了1024以下的TCP/IP埠實現NFS的連線。指定insecure可以禁用這個選項。
rw:這個選項允許NFS客戶機進行讀寫訪問。預設選項是隻讀的。
async:這個選項可以改進效能,但是如果沒有完全關閉NFS守護程式就重新啟動了NFS伺服器,這也可能會造成資料丟失。
no_wdelay:這個選項關閉寫延時。如果設定了async,那麼NFS就會忽略這個選項。
nohide:如果講一個目錄掛載到另外一個目錄之上,那麼原來的目錄通常就被隱藏起來或看起來像空的一樣。要禁用這種行為,需啟用hide選項。
no_subtree_check:這個選項關閉子樹檢查,子樹檢查會執行一些不想忽略的安全性檢查。預設選項是啟用子樹檢查。
no_auth_nlm:這個選項也可以作為insecure_locks指定,它告訴NFS守護程式不要對加鎖請求進行認證。如果關心安全性問題,就要避免使用這個選項。預設選項是auth_nlm或secure_locks。
mp(mountpoint=path):通過顯式地宣告這個選項,NFS要求掛載所匯出的目錄。fsid=num;這個選項通常都在NFS故障恢復的情況中使用。如果希望實現NFS的故障恢復,請參考NFS文件。
使用者對映
通過NFS中的使用者對映,可以將偽或實際使用者和組的標識賦給一個正在對NFS捲進行操作的使用者。這個NFS使用者具有對映所允許的使用者和組的許可許可權。對NFS卷使用一個通用的使用者/組可以提供一定的安全性和靈活性,而不會帶來很多管理符合。在使用NFS掛載的檔案系統上的檔案時,使用者的訪問通常都會受到限制,這就是說使用者都是以匿名使用者的身份對檔案進行訪問的,這些使用者預設情況下多這些檔案只有只讀許可權。這種行為對於root使用者來說尤其重要。然而,實際上的確存在這種情況:希望使用者以root使用者或所定義的其它的使用者的身份訪問遠端檔案系統上的檔案。NFS允許指定訪問遠端檔案的使用者—通過使用者標識號(UID)和組標識號(GID),可以禁用正常的squash行為。
使用者對映的選項包括:
root_squash:這個選項不允許root使用者訪問掛載上來的NFS卷。
no_root_squash:這個選項允許root使用者訪問掛載上來的NFS卷。
all_squash:這個選項對於公共訪問的NFS捲來說非常有用,它會限制所有的UID和GID,只使用匿名使用者。預設設定是no_all_squash
anonuid和anongid:這兩個選項將匿名UID和GID修改成特定使用者和組賬號。
客戶端掛載時可以使用的特殊選項:
Client
Mounting remote directories
Before mounting remote directories 2 daemons should be be started first:
rpcbind
rpc.statd
rsize 的值是從伺服器讀取的位元組數。wsize 是寫入到伺服器的位元組數。預設都是1024, 如果使用比較高的值,如8192,可以提高傳輸速度。
The timeo value is the amount of time, in tenths of a second, to wait before resending a transmission after an RPC timeout. After the first timeout, the timeout value is doubled for each retry for a maximum of 60 seconds or until a major timeout occurs. If connecting to a slow server or over a busy network, better performance can be achieved by increasing this timeout value.
The intr option allows signals to interrupt the file operation if a major timeout occurs for a hard-mounted share.
示例:共享一個檔案系統;nfs共享服務端地址:192.168.19.134,客戶端地址:192.168.19.130
- 建立共享目錄;
- 編輯配置檔案/etc/exports,定義匯出/nfs/sharedata檔案至192.168.19.0/24這個網路,但僅192.168.19.130有rw許可權,其餘均為ro許可權;
Note:這裡我們測試使用,允許root使用者訪問掛載上來的NFS卷 - 啟動nfs服務,並檢視埠是否開啟;
- 用ip地址為192.168.19.130的另一臺主機作為客戶端,掛載nfs服務的/nfs/sharedata、
- 進入掛載目錄,執行寫操作,發現寫操作失敗;
- 在服務端授權一個使用者對/nfs/sharedata目錄的rwx許可權,再在客戶端建一個相同uid的使用者
1) 授權一個使用者;
2) 在客戶端新建一個同之上claude使用者uid相同的使用者;
3) 切換claude_liu使用者後發現有了寫許可權;
示例2:兩臺web伺服器,共享關係型資料庫,共享NFS伺服器,利用DNS記錄輪詢提供負載均衡;
環境:web伺服器1:192.168.19.134
Web伺服器2:192.168.19.130
DNS伺服器、mysql伺服器:192.168.19.135
NFS伺服器:192.168.19.136
- 搭建DNS伺服器(以下操作在192.168.135伺服器上實現)
1) 安裝bind程式包;
#yum install bind –y
2) 編輯dns配置檔案/etc/named.conf,作如下修改;
3) 編輯/etc/named.rfc1912.zones檔案,新增如下兩個區域
4) 編輯/var/named目錄下的正向解析庫檔案;
5) 編輯/var/named目錄下的反向解析庫檔案;
6) 修改許可權;
修改屬主屬組;
7) 檢查配置檔案語法;
8) 測試;
測試正向解析:
測試反向解析:
- 搭建NFS伺服器(以下操作在192.168.19.136伺服器上實現);
1) 建立共享目錄;
2) 編輯/etc/exports檔案,新增如下內容;
3) 啟動服務;
4) 檢視當前共享的目錄
- 搭建mysql伺服器(以上操作在192.168.19.135伺服器上實現);
1) 建立相關目錄,掛載nfs共享目錄;
2) 建立mysql組和使用者;
3) 二進位制編譯安裝mariadb-5.5.46;
解壓mariadb-5.5.46-linux-x86_64.tar.gz到/usr/local目錄下,並建立連結檔案,進入相關目錄;
4) 屬主屬組修改;
5) 指明使用者和資料庫位置生成後設資料庫;
檢視初始化後生成的資料;
6) 複製執行指令碼,並將其加入服務列表中;
7) 複製配置檔案並編輯配置檔案新增以下三行;
8) 配置環境變數;
其中mysql.sh中的內容為:
export PATH=/usr/local/mysql/bin:$PATH
9) 啟動服務並測試;
成功進入mysql;
10) 建立資料庫,並建立使用者並授權;
建立資料庫;
建立使用者並授權;
重新整理許可權;
至此。Mysql伺服器配置完成; - 搭建WEB伺服器1(以下操作在192.168.19.134伺服器上實現)
1) 安裝相關程式包;
2) 建立相關目錄,並掛載nfs共享目錄;
3) 編輯httpd配置檔案/etc/httpd/conf/httpd.conf;
首先,註釋以下項;
其次,新增虛擬主機;
4) 安裝wordpress;
解壓縮wordpress程式包;
複製wp-config-sample.php檔案為wp-config.php,並編輯此配置檔案;
5) 在/etc/sysconfig/network-scripts/ifcfg-eth0中新增DNS地址;
6) 用此web伺服器就可以通過域名或者ip地址訪問安裝wordpress了。
7) 在此伺服器上發一條動態;
- 搭建web伺服器2(以下操作在192.168.19.130上進行)
搭建的具體過程跟上面一樣,建虛擬主機時ip地址改成192.168.19.130即可;
當我們使用此臺伺服器訪問www.claude666.com 或ip地址時。同時可以看到在192.168.19.134伺服器上發步的動態。
以上就是本次示例的全部過程,兩臺web伺服器,利用dns伺服器解析通過mysql儲存結構化資料,nfs儲存非結構化資料,通過nfs共享,訪問應用,以達到負載均衡的效果。
相關文章
- 檔案共享之nfsNFS
- Linux檔案共享(FTP+NFS)LinuxFTPNFS
- Linux配置NFS實現檔案共享LinuxNFS
- NFS網路檔案共享NFS
- Linux系統配置NFS檔案共享服務LinuxNFS
- Linux CentOS 檔案共享NFS的安裝配置LinuxCentOSNFS
- CentOS 6 NFS 共享檔案與掛載CentOSNFS
- 《NFS檔案共享服務的搭建》RHELNFS
- 在linux下搭建NFS伺服器實現檔案共享LinuxNFS伺服器
- NFS 網路檔案系統測試筆記NFS筆記
- DRBD + Heratbeat + NFS 高可用檔案共享儲存NFS
- linux nfs 共享目錄LinuxNFS
- Linux 提權-NFS 共享LinuxNFS
- NfS網路共享檔案系統環境搭建NFS
- Linux C++ 自學筆記 (轉)LinuxC++筆記
- Linux C++ 自學筆記(轉)LinuxC++筆記
- Windows檔案共享LinuxWindowsLinux
- RAC歸檔配置方案:使用NFS共享儲存儲存歸檔檔案NFS
- 【NFS】Linux配置NFS共享常用SQL指令碼目錄NFSLinuxSQL指令碼
- Java學習筆記之檔案Java筆記
- AIX下配置NFS共享給LINUXAINFSLinux
- 在Linux中,如何配置NFS共享?LinuxNFS
- Java自學筆記⑪Java筆記
- NFS磁碟共享NFS
- LINUX共享WINDOWS磁碟的NFS好工具LinuxWindowsNFS
- Windows 與 Linux (CentOS7) 之間的檔案共享WindowsLinuxCentOS
- 自學linux——21. NFS伺服器的搭建LinuxNFS伺服器
- linux下的檔案共享(轉)Linux
- NFS網路檔案共享服務的配置和排錯總結NFS
- 【Linux學習筆記24-2】網路檔案系統 nfs + 自動掛解除安裝autofsLinux筆記NFS
- linux下掛載(mount)光碟映象檔案、行動硬碟、U盤、Windows和NFS網路共享Linux硬碟WindowsNFS
- Linux7.0 NFS網路檔案系統LinuxNFS
- JAVA自學筆記(4)Java筆記
- Kotlin 自學筆記Kotlin筆記
- Linux下通過NFS共享資料夾LinuxNFS
- NFS共享儲存NFS
- 筆記:Linux命令(目錄和檔案管理)筆記Linux
- Linux 檔案許可權 學習筆記Linux筆記