当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 9.10搭建NFS
帖子发表于 : 2010-01-09 3:54 

注册: 2009-11-06 12:38
帖子: 33
送出感谢: 0 次
接收感谢: 0 次
我曾经搭建过一个NFS系统,下面是后来整理的, 完全照做可以不成功,但如果理解了应该没问题了
同时希望老鸟们不要潜水了,出来补充补充吧 :em06
NFS意为网络文件系统,是一种linux下的文件共享方式,有点像windows下的网上邻居
在ubuntu下配置nfs是一件非常简单的事,先说一下基本流程:
首先要有一台nfs服务器,在这台服务器上安装nfs-kernel-server,配置要共享的目录,启动服务就OK了!
然后是客户端的配置,客户端先安装nfs-common,再将服务器共享目录mount到本地目录即可。

服务器端:
1、安装服务器软件
代码:
sudo aptitude install  nfs-kernel-server

2、配置共享目录
代码:
sudo vi /etc/exports

一个典型的共享目录配置如下:
代码:
/home *(rw,sync,no_subtree_check)


/home是要共享的目录

*是允许访问的计算机,可以是以下内容
单个机器:一个全限定域名(能够被服务器解析)、主机名(能够被服务器解析)或IP地址。
通配符指定的主机名,使用 * 或 ?字符来指定一个字符串匹配,IP地址中不使用通配符,*代表允许所有计算机访问共享目录
IP网络:使用a.b.c.d/z,a.b.c.d是网络,z是子网掩码中的位数(如192.168.0.0/24)。另一种可以接受的格式是 a.b.c.d/netmask,a.b.c.d是网络,netmask是子网掩码(如192.168.70.8/255.255.255.0)。

()内是共享选项
rw是指客户端拥有读写权限,还有一个ro选项,代表只读
sync是指同步写入资料到内存与硬盘中,与之相反的选项是async
no_subtree_check:不检测子目录,提高性能(摘自网络,未验证)
root_squash:如果客户端使用root访问共享目录,会被当作匿名用户(也就是说,权限变的很小,比较安全)
no_root_squash:客户端使用root访问共享目录时还是拥有root权限,极不安全
all_squash:无论客户端使用什么用户访问共享目录都会被当作匿名用户
其它选项参考man exports

配置完以后重启一下服务器:
代码:
sudo /etc/init.d/nfs-kernel-server restart


客户端:
1、
代码:
sudo aptitude search  nfs-common

2、
代码:
sudo mount 192.168.1.2:/home /media
#映射共享目录,192.168.1.2是服务器地址,/home是服务器的共享目录,/media是映射到的本地目录


如果要开机自动映射,修改/etc/fstab即可
代码:
192.168.1.2:/home   /media   nfs   defaults   0   0


到这里nfs基本配置完成了,但大多数情况下是不能正常运行的,
因为还涉及到用户权限的问题:linux下文件都有u(所属用户)、g(所属组)、o(其它)三组权限,本地文件很简单,直接根据登录用户即可判断权限,
但对于共享文件,是根据客户端访问时使用的uid和gid来判断的。
例如服务器上有个文件所属的uid是1000(为简便不考虑gid),权限是700,现在共享出来了,客户端来访问它,客户端登录的uid为900,
这时客户端是无法查看和修改这个文件的,怎么办?
1、服务器修改文件所属uid为900;
2、客户端新建一个uid为1000的用户并用它来访问(通常使用NIS实现)。
这两种方法皆可,实际上保持客户端访问的uid和共享文件所属uid一致就行


测试了一下,ubuntu 9.10下不加nolock能挂,但不知道会不会有隐患
测试中发现了一个新问题,开机自动挂载可能会发现有类似下面的提示:
mountall: Event failed
mount.nfs: DNS resolution failed for 192.168.1.2: Name or service not known
mountall: mount /media [714] terminated with status 32
mountall: Filesystem could not be mounted: /media

猜测是mount的时候网络相关服务还没准备好

网上找到了两种解决方案:
1、客户修改/etc/network/interfaces,修改对应的网卡,下面是我的:
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
当eth0是通过dhcp自动获取IP的时候会报错,改成静态IP仅仅提示mountall: Event failed,其它的错误没有了
2、不使用/etc/fstab自动挂载,在/etc/rc.local中第一行加入
mount 192.168.1.2:/home /media

好了,我知道的已经都写出来了,大家准备拍砖吧 :em06


最后由 qianubuntu 编辑于 2010-01-09 18:31,总共编辑了 3 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 9.10搭建NFS
帖子发表于 : 2010-01-09 12:06 
头像

注册: 2008-07-21 9:44
帖子: 2371
地址: 深圳
送出感谢: 0 次
接收感谢: 0 次
如果要开机自动映射,即修改那个/etc/fstab文件,最好在挂载选项里加一个nolock,要不然似乎挂载不了,会阻塞,导致系统不能正常启动。
这个我曾经在虚拟机arch系统中试过,不知道是否具有一般性。
ps:LZ的阐述还是挺到位的 :em11


_________________

My blog


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 9.10搭建NFS
帖子发表于 : 2010-03-24 8:39 

注册: 2009-10-29 0:43
帖子: 58
送出感谢: 0 次
接收感谢: 0 次
正在找这东西呢!
先谢了!
晚上回去试一下 :em09


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 9.10搭建NFS
帖子发表于 : 2010-03-25 8:28 

注册: 2009-10-29 0:43
帖子: 58
送出感谢: 0 次
接收感谢: 0 次
本人的开发板是:mini2440
昨晚回去弄了一下,
觉得下面的文章写得清楚易懂一些!
以下方法经过本人验证,100%可行!感谢无私的大大们!
原文地址:http://hi.baidu.com/lastnightcode/blog/item/d342b2bd39b45f0019d81f38.html


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 9.10搭建NFS
帖子发表于 : 2010-06-20 14:45 
头像

注册: 2009-06-12 8:55
帖子: 246
送出感谢: 0 次
接收感谢: 0 次
:em11 8错


_________________
青春不是人生的一段时期,而是心灵的一种状况...


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 9.10搭建NFS
帖子发表于 : 2010-06-27 15:55 

注册: 2008-01-25 17:49
帖子: 13
地址: 天津
送出感谢: 0 次
接收感谢: 0 次
好文 :em11


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 9.10搭建NFS
帖子发表于 : 2013-12-18 23:12 

注册: 2012-12-16 15:43
帖子: 2069
系统: debian
送出感谢: 8
接收感谢: 28
弄好samba弄nfs,爽


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译