文章随机晒最新文章关照最多的

jiayi Rss

Linux NFS 配置

| Posted in Linux |

13

这回为啥不是openSUSE NFS配置…?额,因为openSUSE的nfs-server有点bug,昨天差点白折腾了一天…哎,open版毕竟不是企业版。。。

虽然在openSUSE上没有搞定,但jiayi在RedHat Server 4上取得成功,这里偷偷赞一下RedHat…

Server端
RedHat Server 4上非常轻松,只需两步…这里假定Server 端ip为192.168.0.51
1.编辑/etc/exports文件
比如想把/home/nfs目录与其他用户共享,可以加入
/home/nfs/ *(rw,sync)
其中*表示任何用户,rw表示获得读写权限,sync表示NFS服务器等待本地磁盘读写完毕,这事最安全的,也是默认的。

在这说一下exports文件的格式和选项吧…
分享目录 允许读取的客户端主机名或 IP地址  (选项1, 选项:2,…) …

允许读取的客户端主机名或 IP地址:
可以用域名,如 *.jiayii.com,這表示此域名內的所有主机都可以挂载nfs 共享分区 ; 当然,还可以用IP 地址,如 192.168.1.0/24 或 192.168.1.0/255.255.255.0 這類的表示法 ; 而 " * ",就表示允许所有机器前来挂载。对另外一个分享目录来说,你可以针对不同的client 来源而制定不同的选项。

选项:

ro 默认值。表示 client 端对此目录的权限为只读。
rw 允许clinet端对目录有读写权限,不过前提是使用者原本就对此目录有读写权限才可以。
root_squash 默认值。client端的root用户被映射为服务器上的匿名用户 nobody,这意味着client端的root用户对挂载的共享文件并没有全部的root权限
no_root_squash 不把client端 root 用户映射为服务器上的匿名用户 nobody,这意味着client 端的root用户对挂载的共享目录有真正的root权限
 all_squash  不论任何client 端挂载共享目录时,都将被映射为server 端的nobody用户
 no_all_squash  默认值。 不会把所有client 端用户映射为server 端的nobody
 anonuid  当client 端的用户被 squash 成nobody 时,此 nobody 的 UID 要被设定为多少。默认值为 65534,当然可以对其作出修改,比如 anonuid = 500 (mysql的UID)。
 anongid  与上面的anonuid一样,只是把UID换成GID
 sync  默认值。同步 I/O,也就是在数据改变时,会同步写入硬盘中。
 async  异步I/O,先将改变的数据在存至cache,然后取出放回硬盘。这样可以提升性能,但容易造成数据丢失。

2.启动nfs服务器
service nfs start
开机自动运行,同样chkconfig –add nfs(RedHat Server 4确实比较老,都是长选项…)
顺便再说一句,如果exports文件的内容有所改变,之后要运行
exportfs -r 命令,或者service nfs restart
exportfs命令的具体用法请man之

client端
我的环境为openSUSE 11.0,这个应该大同小异
1.开启服务
service nfs start
开机自动运行
chkconfig -a nfs
2.手动挂载nfs目录,比如将上面nfs分区挂至client 本机的/mnt/nfs
一般挂载:mount 192.168.0.51:/home/nfs /mnt/nfs
优化挂载:mount 192.168.0.51:/home/nfs /mnt/nfs -o rsize=8192 wsize=8192
这里选项的数值最好在4096到16384之间,且为1024的整数倍
3.开机自动挂载
编辑/etc/fstab,加入如下语句
192.168.0.51:/home/nfs      /mnt/nfs    nfs defaults,rw,bg  0 0
这里唯一比较关键的是bg选项。如果NFS Server出现问题,或者你的ip变更后不能与NFS Server规定的来源ip相匹配,那么这会导致client 端引导服务不可用,花费很长时间直至超时…所以加上bg选项,让挂载进程在后台执行,这样就不会让所有进程都等待于它…

为了更安全高效,NIS服务应该与NFS搭配,但jiayi已经没那个心情了,啥时候心血来潮,配好了再放上来咯~

好啦,到此NFS Server 和NFS Client都搞定了,在你的Client 端,如果拥有适当的权限,就会像操作自己的分区系统一样,去操作nfs分区。
我测试了下,从自己的文件系统copy文件到nfs分区,速度为13M/s,哈哈,尽情享受网络共享存储吧~

Comments (13)

呵呵
open的东西都不行?
建议改天用openBSD和opensolaris验证一下
文章收藏之:D

呵呵
open的东西都不行?师兄误会了
这里我只针对openSUSE的NFS Server
那些openXX我都没深用过,师兄有兴趣倒是可以试试~

Write a comment

You must be logged in to post a comment.