您的位置:首页 > 运维架构 > Linux

ubuntu下NFS服务器的配置

2012-12-01 16:41 483 查看
这是我配置的第二各服务器,感觉比那个vsftpd服务器好配置多了

.1      搭建NFS服务器

       NFS(Network FileSystem,网络文件系统)是由SUN公司发展,并于1984年推出的技术,用于在不同机器,不同操作系统之间通过网络互相分享各自的文件。NFS设计之初就是为了在不同的系统间使用,所以它的通讯协议设计与主机及操作系统无关。

NFS分服务器和客户机,当使用远端文件时只要用mount命令就可把远端NFS服务器上的文件系统挂载在本地文件系统之下,操作远程文件与操作本地文件没有不同。NFS服务器所共享文件或目录记录在/etc/exports文件中。

       嵌入式Linux开发中,会经常使用NFS,目标系统通常作为NFS客户机使用,Linux主机作为NFS服务器。在目标系统上通过NFS,将服务器的NFS共享目录挂载到本地,可以直接运行服务器上的文件。在调试系统驱动模块以及应用程序,NFS都是十分必要的,并且Linux还支持NFS根文件系统,能直接从远程NFS root启动系统,这对嵌入式Linux根文件系统裁剪和集成也是十分有必要的。

Ubuntu 下安装 nfs 服务器的步骤如下:

1:进行NFS服务器端与客户端的安装:

#sudo apt-get install nfs-kernel-server    nfs-common  portmap

安装客户端的作用是可以在本机上进行测试

2:在主机上配置文件。安装  好上面的软件之后,会在/etc 目录下面有有一个名叫exports的文件(如果没有,可以自己新建一个)

在终端里面输入

xiongyao@xiongyao-Lenovo:/$ cd /etc

xiongyao@xiongyao-Lenovo:/etc$ sudo gedit exports

[sudo] password for xiongyao:

# /etc/exports: the access control list for filesystems which may be exported

#        to NFS clients.  See exports(5).

#

# Example for NFSv2 and NFSv3:

# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)

#

# Example for NFSv4:

# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)

# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)

#

/home/xiongyao/NFS 172.18.71.*(rw,sync,no_root_squash)

第一个 /home/xiongyao/NFS  是你要共享的目录

第二个部分172.18.71.*是指在这个IP段内可以共享的目录

第三个部分: 第一个参数,rw:可以擦写的权限;  ro:只读的权限

第二个参数:sync:资料同步写入到内存与硬盘当中,async:资料会暂时写入到内存#中去

第三个参数:no_root_aquash: 登入NFS主机使用分享目录的使用者,如果是root的话,那么对于这个分享的目录来说,

它就具有root的权限,这个项目很不安全,你懂的!不建议使用

三:启动nfs服务

1:首先把上面修改过的配置文件重新导入

#sudo exportfs -rv

2:重新启动portmap服务(端口映射)

#sudo  /etc/init.d/portmap  restart

xiongyao@xiongyao-Lenovo:~$ sudo /etc/init.d/portmap restart

[sudo] password for xiongyao:

Rather than invoking init scripts through /etc/init.d, use the service(8)

utility, e.g. service portmap restart

Since the script you are attempting to invoke has been converted to an

Upstart job, you may also use the stop(8) and then start(8) utilities,

e.g. stop portmap ; start portmap. The restart(8) utility is also available.

portmap stop/waiting

portmap start/running, process 16059

xiongyao@xiongyao-Lenovo:~$

在这里我要介绍一下这个portmap

portmap只在第一次建立连接的时候起作用,帮助网络应用程序找到正确的通讯端口,但是一旦这个双方正确连接,端口和应用就绑定,portmap也就不起作用了。但对其他任何第一次需要找到端口建立通讯的应用仍然有用。  简单的说,portmap就是应用和端口的婚姻介绍人,双方成事了以后,媒婆就没用了

3:重新启动nfs服务:

#sudo   /etc/init.d/nfs-kernel-server   restart

xiongyao@xiongyao-Lenovo:~$ sudo /etc/init.d/nfs-kernel-server restart

 * Stopping NFS kernel daemon                                              [ OK ]

 * Unexporting directories for NFS kernel daemon...                        [ OK ]

 * Exporting directories for NFS kernel daemon...                                 exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "172.18.71.*:/home/xiongyao/NFS".

  Assuming default behaviour ('no_subtree_check').

  NOTE: this default has changed since nfs-utils version 1.0.x

                                                                           [ OK ]

 * Starting NFS kernel daemon                                              [ OK ]

xiongyao@xiongyao-Lenovo:~$

输入完毕之后,就配置好了nfs服务

4:使用nfs,基本就是使用mount指令,让共享的文件夹挂载到一个制定的目录下。在使用nfs服务之前,还

需要 启动portmap服务,就是你想要挂载东西的平台上,输入

xiongyao@xiongyao-Lenovo:~$ portmap&

[1] 16190

现在可以在本机上进行测试一下

在终端里面输入

#sudo mount -t  nfs 172.18.71.12:/home/xiongyao/NFS  /mnt

若没有任何的提示信息,则说明你已经挂载成功

如果想要与开发板进行传输

#sudo mount -t nfs 172.18.71.12:/home/xiongyao/NFS  /mnt  -o nolock

进入/mnt 目录会发现在pc机中,进入/mnt目录会发现在PC机上/home/xiongyao/NFS上面的东西

都会显示出来

三、维护NFS

格式:

exportfs 选项参数

-a:输出/etc/exports中设置的所有目录

-r:重新读取/etc/exports文件中的设置,并且立即生效,而不需要重新启动NFS服务。

-u:停止输出某一目录

-v:在输出目录时,将目录显示在屏幕上。

1.修改vi /etc/exports后,不用重启服务,直接使用命令输出共享目录

# exportfs -rv

2.停止输出所有共享目录

# exportfs -auv

四、启动和停止NFS服务

1.启动NFS服务

为了是NFS正常工作,需要启动portmap和nfs这两个目录,并且portmap一定要先于nfs启动。

# /etc/init.d/portmap start

# /etc/init.d/nfs start

2.停止NFS 服务

停止NFS服务器前,需要先停止NFS服务再停止portmap服务。如果系统中还有其它服务需要portmap时,则可以不用停止portmap服务。

/etc/init.d/nfs stop

/etc/init.d/portmap stop

3。自启动NFS服务

chkconfig --level 35 portmap on

chkconfig --level 35 nfs on

五、测试

1.检查输出目录所使用的选项

在/etc/exports配置文件中,即使只设置了一两个选项,在真正输出目录时,实际上还带了很多某人选项。通过查看 /var/lib/nfs/etab文件,就可以知道真正输出目录时,都是用了什么选项。

2.使用showmount测试NFS输出目录状态

格式:

showmount 参数选项 nfs服务器名称或地址

-a:显示指定的nfs服务器的所有客户端主机及其所连接的目录

-d:显示指定的nfs服务器中已经被客户端连接的所有共享目录

-e:显示指定的nfs服务器上所有输出的共享目录

(1)查看所有输出的共享目录

# showmount -e

(2)显示所有被挂载的所有输出目录

# showmount -d

 六、nfs客户端使用配置

1.查看nfs服务器信息

在客户端,要查看nfs服务器上有哪些共享目录,可以使用showmount命令。

# showmount -e 192.168.0.51

如果出现报错信息,首先查看服务器nfs和portmap服务是否启动。再看是否被防火墙屏蔽掉了。

2.挂载nfs服务器上的共享目录

 # mount -t nfs 192.168.0.51:/home/test /mnt/

-t:指定挂载设备的文件类型(nfs是网络文件系统)

192.168.0.51:nfs服务器ip地址

/home/test :nfs服务器的共享目录

/mnt/:挂载在本地的目录

3.卸载nfs

在不使用nfs目录时,可以用umount命令来卸载该目录

注意:当有客户机正在连接nfs服务器时,此时想要将nfs服务器关机,应该先关掉portmap和nfs这两个服务,否则要等很久才能正常关机。如果无法将portmap和nfs关掉,就直接kill掉进程。也可以用exportmap -auv命令将当前主机中的所有输出目录停止后再关机。

 

 4.启动时自动连接nfs服务器

要先在启动时自动连接nfs服务器上的共享目录,要编辑/etc/fstab文件。在文件中加入

192.168.0.51:/home/test /mnt nfs defaults 0 0

192.168.0.51:/home/test:nfs服务器的共享目录

/mnt:本机挂载目录

 

-------------------------------------------------

拷贝时cp命令常用参数

cp -a -v /mnt /home/

- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。

-v或–verbose  显示指令执行过程。

-V<备份方式>或–version-control=<备份方式>  用”-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这字符串不仅可用”-S”参数变更,当使用”-V”参数指定不同备份方式时,也会产生不同字尾的备份字串。

- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。

最后发个图给大家看看~


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息