NFS
服务器配置
NFS
服务简介
NFS
是
Network File System
的缩写,即网络文件系统。
NFS
是由
Sun
开发并发展起来的一项用于在不同机器,不同操作系统之间通过网络互相分享各自的文件。
NFS server
也可以看作是一个
FILE SERVER,
用于在
UNIX
类系统之间共享文件,可以轻松的挂载
(mount)
到一个目录上,操作起来就像本地文件一样的方便。
服务器端配置
NFS
配置文件设置
NFS
服务的配置文件是
etc/exports
exports
文件内容格式:
<
输出目录
> [
客户端
1
选项(访问权限,用户映射,其他)
] [
客户端
2
选项(访问权限,用户映射,其他)
]
/ciccdev/fmnp 192.168.193.181(rw,async)
/ciccdev/fmnp 192.168.193.182(rw,async)
1.
输出目录:
输出目录是指
NFS
系统中需要共享给客户机使用的目录;
2.
客户端:
客户端是指网络中可以访问这个
NFS
输出目录的计算机
客户端常用的指定方式
- 指定ip地址的主机 192.168.0.200
- 指定子网中的所有主机 192.168.0.0/24
- 指定域名的主机 a.liusuping.com
- 指定域中的所有主机 *.liusuping.com
- 所有主机 *
3.
选项:
选项用来设置输出目录的访问权限、用户映射等。
NFS
主要有
3
类选项:
访问权限选项
用户映射选项
- all_squash 将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
- no_all_squash 与all_squash取反(默认设置);
- root_squash 将root用户及所属组都映射为匿名用户或用户组(默认设置);
- no_root_squash 与rootsquash取反;
- anonuid=xxx 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
- anongid=xxx 将远程访问的所有用户组都映射为匿名用 户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
其它选项
- secure 限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
- insecure 允许客户端从大于1024的tcp/ip端口连接服务器;
- sync 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
- async 将数据先保存在内存缓冲区中,必要时才写入磁盘;加上这个参数拷贝文件时候会很快
- wdelay 检查是否有相关的写操作,如果有则将这些写操作 一起执行,这样可以提高效率(默认设置);
- no_wdelay 若有写操作则立即执行,应与sync配合使用;
- subtree 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
- no_subtree 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
NFS
服务器配置实例
/nfs/public 192.168.0.0/24(rw,async) *(ro)
/nfs/frank 192.168.0.232(rw,sync)
/nfs/root *.liusuping.com(ro,no_root_squash)
/nfs/users *.liusuping.com(rw,insecure,all_squash,sync,no_wdelay)
/mnt/cdrom 192.168.0.*(ro)
[root@linux-a ~]# chkconfig --level 35 nfs on //
设置
NFS
自动启动方式;
客户端配置
查看服务器共享:
showmount �Ce nfsserver
挂载
mount -t nfs 192.168.0.231:/nfs/frank /mnt/nfs1
卸载
umount /mnt/nfs1
通过修改
/etc/fstab
文件可以实现开机自动挂载
nfs
目录
192.168.0.231:/nfs/frank /mnt/nfs1 nfs defaults 0 0
常见错误
:
在客户端使用
mount -t nfs p470-1:/disk1 /disk1
时出现
"mount: mount to NFS server 'p470-1' failed: RPC Error: Program not registered."
错误提示。
出错原因:
p470-1
由于网络原因
nfs
服务被中断,重新开启
p470-1
的
nfs
服务然后在客户端重新
mount disk1
即可
service nfs restart
或
/etc/rc.d/init.d/nfs restart
COPY
数据到
NFS
上特别慢
async
将数据先保存在内存缓冲区中,必要时才写入磁盘;
已经允许某个
IP
或域名挂载
NFS
了,但客户端挂载时依然显示拒绝:
NFS
默认是将
IP
反解成主机名的,挂载不了一般是因为无法正确解析主机名,这时需将
IP
与主机名的对照放到服务器端的
/etc/hosts
文件中,就可以了
有时候开机时在
start NFS
这一步会停很长的时间,这个问题的原因是因为每次客户端
mount
过
NFS
而又没有正
常
umount
后,在
/var/lib/nfs/rmtab
里会留下记录,每次
NFS
启动的时候都会去
check
以前的
IP
,如果不通,要等到
timeout
才行。我
cat rmtab
看了一下,
hoho
,从上海,
konka
,
TCL
,
Changhong
用过的
IP
都在里面记着,难怪慢的象蜗牛一样!删了后试了一下,马上就起
来了!