共计 2405 个字符,预计需要花费 7 分钟才能阅读完成。
Linux 系统 NFS 的安装和配置
相关阅读:
Ubuntu 12.04 安装 NFS server http://www.linuxidc.com/Linux/2012-09/70728.htm
NFS 服务器安装配置实现 Ubuntu 12.04 与 ARM 文件共享 http://www.linuxidc.com/Linux/2012-10/73159.htm
Ubuntu 搭建 nfs 服务器 http://www.linuxidc.com/Linux/2012-10/71930.htm
文件服务器 NFS 配置详解 http://www.linuxidc.com/Linux/2013-06/86542.htm
Ubuntu 下搭建 NFS 网络文件系统服务器 http://www.linuxidc.com/Linux/2013-07/87367.htm
Heartbeat_ldirector+LB+NFS 实现 HA 及 LB、文件共享 http://www.linuxidc.com/Linux/2013-06/85292.htm
CentOS 5.5 配置 NFS 服务器教程 http://www.linuxidc.com/Linux/2013-03/81737.htm
Ubuntu 12.10 下 NFS 的安装使用 http://www.linuxidc.com/Linux/2013-03/80478.htm
1 安装
需要安装 portmap 和 nfs-utils 这两个包,下载 rpm 包后用 rpm 安装或者直接用 yum 安装都可以。
rpm -ivh portmap-4.0-65.2.2.1.i386.rpm
rpm -ivh nfs-utils-1.0.9-50.el5.i386.rpm
2 配置
配置文件是 /etc/exports,如果不存在需要自己创建。
/etc/exports 文件内容格式:
< 输出目录 > [客户端 1 域名 /IP(选项(访问权限, 用户映射, 其他))] [客户端 2 域名 /IP 选项(访问权限, 用户映射, 其他)]
NFS 主要的选项有 3 类:
A 访问权限选项
设置输出目录只读:ro
设置输出目录读写:rw
B 用户映射选项
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash:与 all_squash 相反(默认设置);
root_squash:将 root 用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash:与 rootsquash 相反;
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
C 其它选项
secure:限制客户端只能从小于 1024 的 tcp/ip 端口连接 nfs 服务器(默认设置);
insecure:允许客户端从大于 1024 的 tcp/ip 端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
no_wdelay:若有写操作则立即执行,应与 sync 配合使用;
subtree:若输出目录是一个子目录,则 nfs 服务器将检查其父目录的权限 (默认设置);
no_subtree:即使输出目录是一个子目录,nfs 服务器也不检查其父目录的权限,这样可以提高效率;
例如,我们在 namenode1 机器上配置做如下配置
/home/dfs/nfs_share_edits/ namenode2(rw)
这个配置是把 namenode1 上的 /home/dfs/nfs_share_edits 目录设置成共享,可以给 namenode2 来访问,访问权限是可读写。
3 启动
sudo service portmap start
sudo service nfs start
查询状态
service portmap status
service nfs status
停止服务
service nfs stop
service portmap stop
4 客户端挂载
命令格式
mount NFS 服务器 IP/ 域名: 共享目录 本地挂载目录
例如,在 namenode2 机器上运行 mount 命令挂载 namenode1 的 NFS 共享目录
mkdir /home/dfs/nfs_share_edits
sudo mount namenode1:/home/dfs/nfs_share_edits /home/dfs/nfs_share_edits
这是把 namenode2 把 namenode1 的 NFS 共享目录挂载到本地,这样就可以访问远程的共享目录了,挂载前需要先创建本地的挂载目录。
挂载之后,可以用 mount 命令查看挂载状态
sudo mount | grep -i nfs
卸载命令
sudo umount namenode1:/home/dfs/nfs_share_edits
5 相关的守护进程
nfsd
它是基本的 NFS 守护进程,主要功能是管理客户端是否能够登录服务器;
mountd
它是 RPC 安装守护进程,主要功能是管理 NFS 的文件系统。当客户端顺利通过 nfsd 登录 NFS 服务器后,在使用 NFS 服务所提供的文件前,还必须通过文件使用权限的验证。它会读取 NFS 的配置文件 /etc/exports 来对比客户端权限。
portmap
主要功能是进行端口映射工作。当客户端尝试连接并使用 RPC 服务器提供的服务(如 NFS 服务)时,portmap 会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。
6 相关的命令
# 查看配置
exportfs
# 默认查看共享的服务
showmount -e
# 查看已经与客户端连接上的目录信息
showmount -a