NFS的淺析和NFS搭建(包含iptables規則)

NFS(Network File System/網絡文件系統)

NFS允許網絡中的計算機之間通過TCP/IP網絡共享資源。

在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位于遠端NFS服務器上的文件,就像訪問本地文件一樣。

優點:

1、簡單容易掌握

2、方便快速部署簡單維護容易

3、可靠—從軟件層面上看,數據可靠性高,經久耐用

組成:

NFS體系由NFS服務器和若干臺客戶機組成。

工作原理:

NFS服務器通過網絡共享目錄,客戶機將網絡目錄掛載在本地,通過TCP/IP網絡遠程訪問存放在NFS服務器上的數據。

NFS就是網絡共享目錄,就是共享文件.服務端共享,客戶端掛載使用。

通訊過程:

1.服務端啟動RPC服務,開啟111端口。

(遠程過程調用協議,是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。)

2.啟動NFS服務,向RPC注冊端口信息。

3.客戶端啟動RPC(portmap服務),向服務端的RPC(portmap)服務請求服務點的NFS端口

(portmap端口映射是一個服務器,將RPC程序號轉換為DARPA的協議端口號,在使用RPC調用時它必須運行。)

4.服務端的RPC(portmap)服務反饋NFS端口信息給客戶端。

5.客戶端通過獲取的NFS端口來建立和服務端的NFS連接并進行數據的傳輸。

NFS權限設置:

rw 表示可讀寫

ro Read-only表示只能讀權限

Sync 請求或者寫入數據時,數據同步寫入到NFS server的硬盤中后才會返回

no_root_squas 訪問nfs server共享目錄的用戶如果是root的話,它對該目錄具有root權限。這個配置原本為無盤用戶準備的。用戶應避免使用!

root_squash 對于訪問NFS server共享目錄的用戶,如果是root的話會被壓縮成為nobody用戶身份。

all_squash

不管訪問nfs

server共享目錄的用戶身份如何包括root,它的權限都將被壓縮成為匿名用戶,同時他們的udi和gid都會變成nobody或nfsnobody賬戶的uid,gid。在多個nfs客戶端同時讀寫nfs

server數據時,這個參數很有用***可以確保大家寫入的數據的權限是一樣的。

但不同系統有可能匿名用戶的uid,gid不同。因為此處我們需要服務端和客戶端之間的用戶是一樣的。比如說:服務端指定匿名用戶的UID為2000,那么客戶端也一定要存在2000這個賬號才可以

anonuid 就是匿名的uid和gid。說明客戶端以什么權限來訪問服務端,在默認情況下是nfsnobody。Uid65534.

anongid 同anongid,就是把uid換成gid而已。

配置實踐:

NFS服務端:192.168.81.54

NFS客戶端1:192.168.81.11

NFS客戶端2:192.168.81.12

yum -y install portmap nfs-utils nfs-utils-lib

service portmap start

service nfs start

vi /etc/exports

mnt/data/mysql 192.168.81.0/24(rw,sync,no_root_squash)

vi /etc/sysconfig/nfs

RQUOTAD_PORT=875

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32769

MOUNTD_PORT=892

service nfs restart

rpcinfo -p localhost(應該出現上述修改過的端口)

vi /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT

-A FORWARD -j RH-Firewall-1-INPUT

-A RH-Firewall-1-INPUT -i lo -j ACCEPT

-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT

-A RH-Firewall-1-INPUT -p 50 -j ACCEPT

-A RH-Firewall-1-INPUT -p 51 -j ACCEPT

-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT

-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT

COMMIT

iptables -I INPUT -s 192.168.81.0/24 -p tcp --dport 875 -j ACCEPT

iptables -I INPUT -s 192.168.81.0/24 -p udp --dport 875 -j ACCEPT

iptables -I INPUT -s 192.168.81.0/24 -p tcp --dport 892 -j ACCEPT

iptables -I INPUT -s 192.168.81.0/24 -p udp --dport 892 -j ACCEPT

iptables -I INPUT -s 192.168.81.0/24 -p tcp --dport 32769 -j ACCEPT

iptables -I INPUT -s 192.168.81.0/24 -p udp --dport 32769 -j ACCEPT

iptables -I INPUT -s 192.168.81.0/24 -p tcp --dport 32803 -j ACCEPT

iptables -I INPUT -s 192.168.81.0/24 -p udp --dport 32803 -j ACCEPT

iptables -L

iptables-save > /etc/sysconfig/iptables

showmount? -e 192.168.81.54

Export list for 192.168.81.54:

/mnt/data/mysql 192.168.81.0/24

mount -t nfs 192.168.81.54:/mnt/data/mysql /var/lib/mysql

df

Filesystem? ? ? ? ? ? ? ? ? ? 1K-blocks? ? Used Available Use% Mounted on

/dev/mapper/VolGroup-lv_root?? 18134344 4493724? 12719432? 27% /

tmpfs? ? ? ? ? ? ? ? ? ? ? ? ? ? 502204? ? ?? 0? ? 502204?? 0% /dev/shm

/dev/sda1? ? ? ? ? ? ? ? ? ? ? ? 495844?? 34836? ? 435408?? 8% /boot

/dev/sr0? ? ? ? ? ? ? ? ? ? ? ? 4363088 4363088? ? ? ?? 0 100% /media

192.168.81.54:/mnt/data/mysql? 18134400 4466176? 12747136? 26% /var/lib/mysql

客戶端:

yum -y install portmap

showmount? -e 192.168.81.54

mount -t nfs 192.168.81.54:/mnt/data/mysql /var/lib/mysql

df

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容