NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过网络共享资源。

网络文件系统NFS时Unix系统和网络附加存储文件管理器常用的网络文件系统,允许多个用户端通过网络共享文件访问。它可用于对共享二进制目录的访问,也可以用于允用户在同一工作组客户端访问其文件。

NFSv4比NFSV3多提供了更安全的身份验证的支持,甚至可以通过kerberos进行加密。


实验环境

centos6.8_x64

nfs_server  192.168.10.13 nfs+rpcbind

nfs_slave  192.168.10.15 nfs+rpcbind


实验软件

nfs-utils.x86_64

rpcbind.x86_64


软件安装

yum install -y nfs-utils rpcbind  

service rpcbind restart && service nfs restart

chkconfig --level 35 rpcbind on && chkconfig --level 35 nfs on


cp -pv /etc/exports /etc/exports.bak

chown -R nfsnobody:nfsnobody /home/backup/

cat /etc/exports

/home/backup 192.168.10.0/24(rw,sync)


/etc/exports文件内容格式:

<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]


输出目录:

输出目录是指NFS系统中需要共享给客户机使用的目录


客户端:

客户端是指网络中可以访问这个NFS输出目录的计算机

客户端常用的指定方式

指定ip地址的主机:192.168.0.200

指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0

指定域名的主机:david.bsmart.cn

指定域中的所有主机:*.bsmart.cn

 所有主机:*


选项

选项用来设置输出目录的访问权限、用户映射等。NFS主要有3类选项:


访问权限

设置输出目录只读:ro

设置输出目录读写:rw


用户映射

all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)

no_all_squash:与all_squash取反(默认设置)

root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)

no_root_squash:与rootsquash取反

anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)

anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx)

secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置)

insecure:允许客户端从大于1024的tcp/ip端口连接服务器

sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性

async:将数据先保存在内存缓冲区中,必要时才写入磁盘

wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置)

no_wdelay:若有写操作则立即执行,应与sync配合使用

subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置)

no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率


exportfs -rav   配置立刻生效

exporting 192.168.10.0/24:/home/backup


showmount -e 192.168.10.13

Export list for 192.168.10.13:

/home/backup 192.168.0.0/24


mount -t nfs 192.168.10.13:/home/backup/ /data    

cp -pv /etc/rc.d/rc.local  /etc/rc.d/rc.local.bak

echo mount -t nfs 192.168.10.13:/home/backup/ /data >> /etc/rc.d/rc.local

cat /etc/rc.d/rc.local

mount -t nfs 192.168.10.13:/home/backup/ /data

df -Th

192.168.10.13:/home/backup/  nfs     58G  1.4G   54G   3% /data   查看磁盘挂载次操作只限于临时挂载


cp -pv /etc/fstab /etc/fstab.bak   设置永久挂载

cat /etc/fstab

192.168.10.13:/home/backup  /data     proc    defaults        0 0   最后一行添加配置

init6                         查看挂载是否生效,以上操作均为nfs_server操作


yum install -y nfs-utils rpcbind

service rpcbind restart && service nfs restart

chkconfig --level 35 rpcbind on && chkconfig --level 35 nfs on


mkdir -pv /home/backup

chown -R nfsnobody:nfsnobody /home/backup/  同步目录可自定义


showmount -e 192.168.10.13

Export list for 192.168.10.13:

/home/backup 192.168.0.0/24

cp -pv /etc/rc.d/rc.local  /etc/rc.d/rc.local.bak

echo  mount -t nfs 192.168.10.13:/home/backup/ /data >> /etc/rc.d/rc.local


df -Th

192.168.10.13:/home/backup/   nfs     58G  1.4G   54G   3% /data  以上操作为nfs_slave操作


mkdir  -pv  /home/backup

cd /home/backup  && touch  {aa.conf,aa.txt,test.txt,index.html}

chown -R nfsnobody:nfsnobody /home/backup/

ll /home/backup/

aa.conf

aa.txt

index.html

test.txt               nfs_server操作


ll /data             nfs_slave操作

aa.conf

index.html

test.txt

aa.txt