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

你可能感兴趣的:(NFS的浅析和NFS搭建(包含iptables规则))