共计 3837 个字符,预计需要花费 10 分钟才能阅读完成。
NFS 就是 Network FileSystem 的缩写,是基于 RPC(Remote Procedure Call Protocol 远程过程调用协议)实现。最早之前是由 Sun 公司开发出来的。主要功能就是可以通过网络,让不同的主机、不同的操作系统、可以彼此分享指定的文件。所以,也可以简单的将它看做是一个文件服务器!NFS 服务器可以让你的 PC 将 NFS 服务器分享的目录,挂载到本地的机器中,在本地端的机器看起来,那个远程主机的目录就好像是自己的一个磁盘分区一样,使用上相当的便利!
NFS 服务器端
安装 NFS 服务器非常之简单:
yum install nfs-utils protmap
这样就安装好了,其中 nfs-utils 是提供 NFS 服务器程序和相应的管理工具。protmap 是一个管理 RPC 连接的程序。
NFS 服务器一些配置文件和命令:
主配置文件:/etc/exports
NFS 文件系统维护命令:/usr/sbin/exportfs
分享资源的登录档:/var/lib/nfs/*tab
客户端查询服务器分享资源的命令:/usr/sbin/showmount
主配置文件:/etc/exports
配置文件的格式为:[共享目录] [主机名或 IP(参数, 参数)]
共享目录:服务器上需要共享的目录路径;
主机名或 IP:如果主机名或 IP 地址为空,则表示共享给所有客户机;
参数:NFS 共享的常用参数如下:
ro:只读
rw:读写
sync:同步写入资料到内存与硬盘中
async:资料会先暂存于内存中,而非直接写入硬盘
secure:NFS 通过 1024 以下的安全 TCP/IP 端口发送
insecure:NFS 通过 1024 以上的端口发送
wdelay:如果多个用户要写入 NFS 目录,则归组写入(默认)
no_wdelay:如果多个用户要写入 NFS 目录,则立即写入,当使用 async 时,无需此设置。
hide:在 NFS 共享目录中不共享其子目录
no_hide:共享 NFS 目录的子目录
subtree_check:如果共享 /usr/bin 之类的子目录时,强制 NFS 检查父目录的权限(默认)
no_subtree_check:同上,但不检查父目录权限
all_squash:共享文件的 UID 和 GID 映射匿名用户 anonymous,适合公用目录。
no_all_squash:保留共享文件的 UID 和 GID(默认)
root_squash:root 用户的所有请求映射成如 anonymous 用户一样的权限(默认)
no_root_squash:root 用户具有根目录的完全管理访问权限
anonuid=xxx:指定 NFS 服务器 /etc/passwd 文件中匿名用户的 UID
anongid=xxx:指定 NFS 服务器 /etc/passwd 文件中匿名用户的 GID
当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:
[共享目录] [主机名 1 或 IP1(参数 1, 参数 2)] [主机名 2 或 IP2(参数 3, 参数 4)] 示例
cat /etc/exports
/share 192.168.1.6(rw,no_root_squash) *(ro)
共享目录 /share 允许 192.168.1.6 客户机读写并且 root 用户有管理权限。其他机器只有可读权限。
启动 NFS 相关服务:
service portmap start
service nfs start
chkconfig –level 35 nfs on
chkconfig –level 35 portmap on
如果修改了 /etc/exports 文件后不需要重新激活 nfs,只要使用 exportfs 命令重新扫描一次 /etc/exports 文件,且重新将设定加载即可。
exportfs –arv
exportfs 命令用法:
exportfs [-aruv]
参数说明如下:
-a:全部挂载(或卸载)/etc/exports 文件内的设定。
-r:重新挂载 /etc/exports 中的设置,此外同步更新 /etc/exports 及 /var/lib/nfs/xtab 中的内容。
-u:卸载某一目录。
-v:在 export 时将共享的目录显示在屏幕上。
确认 NFS 成功运行:
rpcinfo -p | grep nfs
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
NFS 客户端
安装软件包
yum install nfs-utils protmap
启动必要服务
service portmap start
显示 NFS 服务器的共享目录
showmount -e 192.168.1.5
Export list for 192.168.1.5:
/share 192.168.1.0/24
/nishome 192.168.1.0/24
创建本地目录并挂载远程共享目录
mkdir /share
mkdir /nishome
mount -t nfs 192.168.1.5:/sharee /share
mount -t nfs 192.168.1.5:/nishome /nishome
客户端查看挂载情况
mount
/dev/sda3 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda2 on /data type ext3 (rw)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.1.5:/nishome on /nishome type nfs (rw,addr=192.168.1.5)
192.168.1.5:/share on /share type nfs (rw,addr=192.168.1.5)
或者
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 9.7G 1.6G 7.7G 18% /
/dev/sda2 38G 177M 36G 1% /data
/dev/sda1 190M 19M 163M 11% /boot
tmpfs 59M 0 59M 0% /dev/shm
192.168.1.5:/nishome 9.7G 1.8G 7.4G 20% /nishome
192.168.1.5:/share 9.7G 1.8G 7.4G 20% /share
客户端卸载 NFS 文件命令
umount /share
umount /nishome
客户机开机自动挂载
客户端可以设置系统启动时自动挂载 NFS 文件,需要将 NFS 的共享目录挂载信息写入 /etc/fstab/ 文件,以实现对 NFS 共享目录的自动挂载。
编辑 /etc/fstab 文件:
vi /etc/fstab
在最后加入如:
192.168.1.5:/home/share /share nfs defaults 0 0
————————————– 分割线 ————————————–
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
————————————– 分割线 ————————————–
更多 CentOS 相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14