Linux设置网络文件系统

来源:互联网 发布:耶和华见证人 知乎 编辑:程序博客网 时间:2024/04/29 20:37

(1) NFS的配置:
首先在shell执行setup,弹出菜单界面后,选中System services,回车进入系统服务选项菜单,在其中选中 [*]nfs ,然后退出.
(2) vim /etc/exports
Nfs服务器的配置,配置文件/etc/exports:
Exports文件中一些选项的含义
选项                                                 说明
Ro                        该主机对该共享目录有只读权限
Rw                       该主机对该共享目录有读写权限
Root_squash          客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
No_root_squash     客户机用root访问该共享文件夹时,不映射root用户
All_squash             客户机上的任何用户访问该共享目录时都映射成匿名用户
Anonuid                将客户机上的用户映射成指定的本地用户ID的用户
Anongid                将客户机上的用户映射成属于指定的本地用户组ID
Sync                     资料同步写入到内存与硬盘中
Async                   资料会先暂存于内存中,而非直接写入硬盘
Insecure                允许从这台机器过来的非授权访问
例/  zhang (rw) wang (rw,no_root_squash)   表示共享服务器上的根目录(/)只有zhang和wang两台主机可以访问,且有读写权限;zhang主机用root用户身份访问时,将客户机的root用户映射成服务器上的匿名用户(root_squash,该参数为缺省参数),相当于在服务器使用nobody用户访问目录;wang主机用root用户身份访问该共享目录时,不映射root用户(no_root_squash),即相当于在服务器上用root身份访问该目录
/root/share/  192.168.1.20 (rw,insecure,sync,all_squash)  表示共享服务器上的/root/share/目录只有192.168.1.20主机可以访问,且有读写权限;此主机用任何身份访问时,将客户机的用户都映射成服务器上的匿名用户(all_squash),相当于在服务器上用nobody用户访问该目录(若客户机要在该共享目录上保存文件(即写操作),则服务器上的nobody用户对该目录必须有写的权限)
/home/ljm/  *.gdfs.edu.cn (rw,insecure,sync,all_squash)   表示共享/home/ljm/目录,*.gdfs.edu.cn域中所有的主机都可以访问该目录,且有读写权限
/home/share/  .gdfs.edu.cn (ro,sync,all_squash,anonuid=student,anongid=math)     表示共享目录/home/share/,*.gdfs.edu.cn域中的所有主机都可以访问,但只有只读的权限,所有用户都映射成服务器上的uid为student、gid为math的用户
将这个默认的空文件修改为只有如下一行内容:
/ (rw) //即根目录可读写,/和(rw)之间要要留空格
然后保存退出(:wq),然后执行如下命令:
运行以下命令启动NFS服务。
/etc/rc.d/init.d/nfs restart 或 service nfs restart
动nfs后又修改了/etc/exports,不用重启该服务,使用exports命令即可:
Exports [-aruv]
-a    全部mount或umount文件/etc/exports中的内容
-r     重新mount文件/etc/exports中的共享内容
-u   umount目录
-v    在export的时候,将详细的信息输出到屏幕上
例:
[root@localhost ~]#/usr/sbin/exportfs –rv        全部重新export一次,若修改了文件exports,直接执行此命令即可
[root@localhost ~]#/usr/sbin/exportfs –au        全部卸载
启动portmap服务,service portmap start ;(为什么要这个?因为portmap定向RPC通信数据流如果,若不运行portmap,则NFS客户机无法找到从NFS服务器共享的目录。)
启动nfs服务,service nfs start;
Nfs客户端的配置:
启动目标板并连通网络后,首先查看kernel自身是否支持nfs,
cat /proc/filesystems
查看其中是否有nfs一行,若没有则表示内核不支持nfs,就需要重新编译和烧内核;有则OK,接下来就可以直接mount操作。
若是临时使用可直接执行mount命令:mount servername(or IP): 共享目录 本地挂载目录
有时要加上选项-o nolock
nolock -- 禁用文件锁。这个设置在连接到一个旧版本的NFS服务器时偶尔会用到。
若客户机启动就自动挂载服务器的共享目录,则需修改客户机上的/etc/fstab文件
/etc/fstab格式:(192.168.233.139:/share  /mnt    nfs      defaults        0       2)

                  Fs_spec                    fs_file  fs_type     fs_options   fs_dump  fs_pass

Fs_spec:定义希望加载的文件系统所在的设备或远程文件系统,对于nfs则设为IP:/共享目录
Fs_file:本地挂载点
Fs_type:挂载类型
Fs_options:挂载参数
Fs_dump:该选项被“dump”命令使用来检查一个文件系统该以多快频率进行转储,若不需转储即为0
Fs_pass:该字段被fsck命令使用来决定在启动时需要被扫描的文件系统的顺序,根文件系统“/”对应该字段值为1,其他文件系统为2,若该文件系统无需在启动时被扫描则为0
安全提醒:确保网络安全,使用nfs时结合tcp_wrappers来限制使用范围(如只想192.168.5.123主机可挂载nfs服务器上的共享目录),另外还可结合iptables来加强安全性。
[root@localhost ~]#vi /etc/hosts.allow
Portmap:192.168.5.123:allow
[root@localhost ~]#vi /etc/hosts.deny
Portmap:ALL:deny
关机时若nfs server上有client联机时,先关掉portmap与nfs两个系统服务。若无法正确将此2项服务关掉,用netstat –utlp找出PID,然后用kill杀掉进程才关机
Nfsstat查看NFS的运行状态,调整NFS运行大有帮助
Rpcinfo查看rpc执行信息,用于检测rpc运行情况
挂载格式:mount –t nfs hostname(or IP):/directory  /mount point
卸载:umount  /本地挂载目录(本地client卸载方法,但用exports –au为server卸载)
Showmount –e IP(查看NFS服务器上共享了那些目录)
Showmount –a IP(用于nfs server上,显示已经mount上本机NFS服务器的client(客户机))