首页 > 代码库 > LINUX服务器配置NFS服务,挂载外部存储实现目录共享
LINUX服务器配置NFS服务,挂载外部存储实现目录共享
安装nfs rpcbind
一、服务端配置
安装 NFS 服务器所需的软件包:nfs 和 rpcbind
# yum install nfs-utils
# yum install rpcbind(默认系统已安装)
设置启动
# chkconfig nfs on
# chkconfig rpcbind on
启动NFS服务
1)先启动rpcbind service rpcbind start
2)再启动nfs service nfs start
配置服务器端共享目录
1)编辑配置文件
假设服务端 目录为/home/data
# vi /etc/exports
格式:
要共享的目录(使用绝对路径) 客户端主机IP......(可多个IP,之间空格隔开)
/home/data 10.1.0.2(rw,sync,all_squash,anonuid=0,anongid=1000) 10.1.0.3(rw,sync,all_squash,anonuid=0,anongid=1000)
括号里的参数:
rw:read-write,可读写;
ro:read-only,只读;
sync:文件同时写入硬盘和内存;
async:文件暂存于内存,而不是直接写入硬盘;
no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。
其它选项
secure 限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
insecure 允许客户端从大于1024的tcp/ip端口连接服务器;
sync 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async 将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay 检查是否有相关的写操作,如果有则将这些写操作 一起执行,这样可以提高效率(默认设置);
no_wdelay 若有写操作则立即执行,应与sync配合使用;
subtree 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
2)加载配置文件
exportfs 参数
参数:
-a 全部挂载/etc/exports 文件内的设定
-r: 重新挂载/etc/exports中的设置,此外同步更新/etc/exports 及 var/lib/nfs/xtab中的内容。
-u:卸载某一目录
-v:在export时将共享的目录显示在屏幕上。
3)配置服务器端防火墙
开启服务端防火墙端口2049
# vi /etc/sysconfig/iptables
添加一行 -A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT 保存退出
# /etc/init.d/iptables restart 重启生效
二、客户端配置
同服务端一样安装nfs和rpcbind服务 并启动 开启2049端口
使用monut 命令进行挂载
假设客户端要挂载的目录为/home/client 服务端IP为10.1.0.1
mount -t nfs 10.0.1.1:/home/server /home/client
umount -a 取消所有挂载