linux下NFS文件共享服务器搭建
1.NFS:network file system,网络文件系统
NFS正常工作流程:客户端请求读或写nfs服务器端文件,必须通过调用RPC机制才能访问
而RPC称为Remote Procedure Call(远程过程调用),实现RPC机制的程序是Portmap服务
Portmap工作在111/tcp和111/udp端口,主要实现不同主机之间的访问,对于nfs客户端来说
是透明的,感觉就是要本机上使用NFS共享文件,如同windows上的网上邻居功能
注意:nfs共享只能在unix或linux之间,不能与windows平台实现共享
2.NFS服务器端:安装nfs-utils软件
nfs分为三个进程: nfsd(nfs服务), mountd(挂载), quotad(配额)
nfsd: 2049/tcp, 2049/udp
mountd: 随机端口
quotad: 随机端口
如果需要固定端口,请修改/etc/sysconfig/nfs
3.NFS配置文件及格式
NFS配置文件:/etc/exports
格式:共享的目录1 客户端列表1 客户端列表2
注意:多个客户端列表之间使用空白字符分隔
每个客户端列表后面必须跟一个小括号,定义访问权限等
例如:对/mydata和/share目录NFS共享
/mydata 172.16.0.0/16(ro,async) 192.16.0.0/24(rw,sync)
/share 172.16.0.0/16(rw,async)
文件系统导出属性:
4.showmount命令解释
showmount -e NFS服务器: 查看NFS服务器“导出”的各文件系统
showmount -a NFS服务器: 查看NFS服务器所有被挂载的文件系统及其挂载的客户端对应关系列表
showmount -d NFS服务器: 显示NFS服务器所有导出的文件系统中被客户端挂载了文件系统列表
5.exportfs命令:功能无需重启nfs服务,重新加载/etc/exports文件内容
-a:跟-r或-u选项同时使用,表示重新挂载所有文件系统或取消导出所有文件系统;
用法为: exportfs -arv
exportfs -auv
6.客户端使用mount命令挂载
mount -t nfs NFS服务器:/共享目录 /本地挂载点
例如:mount -t nfs 1.1.1.19:/mydata_ro /mnt/nfs_ro/
mount -t nfs 1.1.1.19:/mydata_rw /mnt/nfs_rw/
7.实例:服务器端IP为1.1.1.19,NFS共享mydata_ro和mydata_rw两目录,要求如下:
新建/mydata_ro目录,让1.1.1.0/24内所有客户端拥有可读和异步访问权限
新建/mydata_rw目录,让1.1.1.0/24内所有客户端拥有可写和同步访问权限
客户端IP为1.1.1.18,将服务器nfs共享目录/mydata_ro挂载至本地/mnt/nfs_ro目录下
将服务器nfs共享目录/mydata_rw挂载至本地/mnt/nfs_rw目录下
showmount,exportfs显示测试效果
nfs服务器端 1.1.1.19:
mkdir /mydata_ro
mkdir /mydata_rw
yum install -y nfs-utils
vim /etc/exports #新增如下一行内容
/mydata_ro 1.1.1.0/24(ro,async)
service nfs start
nfs客户端 1.1.1.18:
mkdir /mnt/nfs_ro
mkdir /mnt/nfs_rw
mount -t nfs 1.1.1.19:/mydata_ro /mnt/nfs_ro
showmount -e 1.1.1.19
showmount -a 1.1.1.19
showmount -d 1.1.1.19
nfs服务器端 1.1.1.19:
vim /etc/exports #再新增如下内容
/mydata_ro 1.1.1.0/24(ro,async)
/mydata_rw 1.1.1.0/24(rw,sync)
exportfs -arv
nfs客户端 1.1.1.18:
mount -t nfs 1.1.1.19:/mydata_rw /mnt/nfs_rw
showmount -e 1.1.1.19
showmount -a 1.1.1.19
showmount -d 1.1.1.19
转载于:https://blog.51cto.com/willow/1786592