NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
nfs工作流程图:
server:
安装:
[root@sherry ~]# yum install nfs-utils rpcbind -y
启动:
[root@sherry ~]# /etc/init.d/rpcbind start
[root@sherry ~]# /etc/init.d/nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ] #磁盘检查
Starting NFS mountd: [ OK ] #等待客户端挂载 挂载守护进程,负责客户端来源认证的进程
Starting NFS daemon: [ OK ]#守护进程 文件读写nfs
Starting RPC idmapd: [ OK ]#id号映射
进程说明:
12345678 [root@sherry ~]# rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper #rpc
100005 3 tcp 48973(随机) mountd
100003 2 tcp 2049 nfs #文件读写
100227 3 tcp 2049 nfs_acl #访问控制列表
100021 1 udp 41315(随机) nlockmgr #锁管理器
100011 2 tcp 875 rquotad #磁盘资源配额
配置文件:
帮助:
[root@sherry ~]# man exports
/etc/exports:
文件系统 客户端1(文件系统导出属性) 客户端2(文件系统导出属性)
文件系统
客户端:
IP: 172.16.100.8
Hostname: *.magedu.com
Network:
常用文件系统导出属性:
rw
async 默认异步
sync 同步性能差
root_squash:默认 压缩root用户,基于imapd,将root通过网络访问时转换为nfsnobody用户
no_root_squash: 不压缩root用户;
all_squash: 压缩所有用户;
anonuid, anongid: 指定匿名用户映射为的UID和GID;
[root@sherry nfsshared]# vim /etc/exports
/nfsshared/node1 192.168.1.0/24(rw)
#/nfsshared/node1 192.168.1.0/24(rw,anonuid=304) 304 nginx
#/nfsshared/node1 192.168.1.0/24(rw,all_squash) nfsnobody
重启服务:
[root@sherry nfsshared]# /etc/init.d/nfs restart
Shutting down NFS daemon: [ OK ]
Shutting down NFS mountd: [ OK ]
Shutting down NFS quotas: [ OK ]
Shutting down RPC idmapd: [ OK ]
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
Starting RPC idmapd: [ OK ]
client:
[root@marvin ~]# yum install nfs-utils rpcbind -y
[root@marvin ~]# rpcinfo -p sherry #nfs客户端执行 需要安装rpcbind
program vers proto port service (每项都多个)
100000 2 udp 111 portmapper
100011 2 tcp 875 rquotad
100005 3 tcp 33671 mountd
100003 2 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100021 4 tcp 36734 nlockmgr
[root@marvin ~]# showmount -e sherry #nfs客户端执行 需要安装nfs-utils
Export list for sherry:
/nfsshared 192.168.1.0/24
客户端挂载:
[root@marvin ~]# mkdir /mnt/nfs/node1 -pv
mkdir: created directory `/mnt/nfs’
mkdir: created directory `/mnt/nfs/node1′
[root@marvin ~]# mount -t nfs sherry:/nfsshared/node1 /mnt/nfs/node1/
[root@marvin ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-lv1 5.7G 2.6G 2.9G 47% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 194M 29M 155M 16% /boot
/dev/mapper/vg0-lv3 3.0G 69M 2.8G 3% /mydata
sherry:/nfsshared/node1 2.5G 67M 2.3G 3% /mnt/nfs/node1
模拟nginx程序写文件:
服务器:
[root@sherry nfsshared]# vim /etc/exports /nfsshared/node1
192.168.1.0/24(rw,anonuid=304)
[root@sherry nfsshared]# /etc/init.d/nfs start
[root@sherry nfsshared]# setfacl -m user:nginx:rwx node1/
测试:
#client
[root@marvin node1]# touch a
#server
[root@sherry nfsshared]# cd node1/
[root@sherry node1]# ll
total 0
-rw-r–r– 1 nginx nfsnobody 0 May 26 23:02 a
配置文件reload:
exportfs -rav
exportfs:
-a: 操作所有文件系统
-ra: 重新导出所有文件系统
-ua: 取消导入的所有文件系统
-v: 显示详细信息
over
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-06/131940.htm