NFS服务器的构建与使用

系统环境:
上位机系统平台:opensuse13.2 x86_64(KDE)
下位机:mini2440开发板
系统IP:192.168.1.108
防火墙状态:已关闭
说明:本次安装基于终端命令方式,并且使用的时root权限,其中#开头的表示该行是终端输入的命令,非# 开头的代码表示修改内容,如遇到问题,可以留言。

opensuse上安装NFS服务器:

安装NFS服务器

#zypper in nfs-kernel-server

配置NFS服务器

#vim /etc/exports
/opt/samsung/mini2440/kernel/rootfs  *(rw,sync,insecure,no_root_squash)
以下说明:
/opt/samsung/mini2440/kernel/rootfs:是与nfs服务客户端共享的目录
*:代表允许所有的网段访问,(也可以使用具体的IP,如192.168.1.100/24)
rw:挂接此目录的客户端对该共享目录具有读写权限
sync:资料同步写入内存和硬盘
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
no_root_squash:客户机用root访问该共享文件夹时,不映射root用户。(root_squash:客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户)

NFS服务器参数说明:
格式:<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]
参数列表:

参数 功能
rw 该分享目录可以读写
ro 该分享目录只能读取
secure 不允许Client使用大于1024的Client端port,也就是从Server传递资料到Client端的目地port要小于1024,此时Client端一定要使用root帐号才能mount远端NFS Server,通常会建议使用insecure
insecure 允许Client端自行决定自己机器使用的port,笔者通常都会设这个,如此非使用root帐号的clinet端才能mount NFS Server
async 允许异步写入资料,所以效能会比同步写入好。写入时会先放到内存,等硬盘有空档再写入!风险为若Server当机或不正常关机,会损失资料,但通常Server都很稳定,所以建议打开获得更好的效能
sync 同步写入,效能比较不好
nohide 当export出两个目录,而其中一个目录是另外一个目录的子目录,例如我们使用虚拟目录的例子,此时我们mount根目录时,会自动把所有子目录mount起来。建议使用这个选项比较方便,尤其在NFSv4有虚拟目录的情形
hide 当mount根目录时,export出的子目录需要自己明确的再挂载
subtree_check 当分享的目录是某个档案系统的子目录,选用这个可以确定父目录的权限可以让NFS Server分享使用
no_subtree_check 刚好和上面的相反,因为不做权限测试,效能比较好
fsid=0 定义NFSv4中的根目录,只能有一个
root_squash 在权限的地方有详细解释,代表当client用root会变成匿名权限
no_root_squash 关掉root_squash功能
all_squash 在Client所有的使用者都是变成匿名身份
anonuid 指定在Client中操作该目录的权限帐号,如使用anouid=0,那在Client端不管是谁都有着root的权限操作该目录
anongid 同上,不过这是指定使用者群组

重启NFS服务器

#SuSEfirewall2 stop//关闭防火墙
#service nfsserver restart
#service rpcbind restart
#service rpcbind status
rpcbind.service - RPC Bind
Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled)
   Active: active (running) since Thu 2016-05-19 22:52:43 CST; 26s ago
     Docs: man:rpcbind(8)
 Main PID: 11516 (rpcbind)
   CGroup: /system.slice/rpcbind.service
           `-11516 /sbin/rpcbind -w -f
#service nfsserver status
Loaded: loaded (/etc/init.d/nfsserver)
   Active: active (running) since Thu 2016-05-19 22:49:55 CST; 3min 24s ago
  Process: 11036 ExecStop=/etc/init.d/nfsserver stop (code=exited, status=0/SUCCESS)
  Process: 11056 ExecStart=/etc/init.d/nfsserver start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfsserver.service
           |-11076 /usr/sbin/rpc.idmapd -p /var/lib/nfs/rpc_pipefs
           |-11080 /usr/sbin/rpc.mountd
           |-11083 /usr/sbin/rpc.statd --no-notify
           |-28357 /usr/sbin/rpc.idmapd -p /var/lib/nfs/rpc_pipefs
           `-28361 /usr/sbin/rpc.mountd
如果上述命令中rpcbind没有安装,则可通过如下命令安装:
#zypper in rpcbind

opensuse上安装NFS客户端(用于本地测试):

#zypper in nfs-client
#service nfs restart//重启nfs客户端,发现很多博客将nfsserver和nfs搞混
#mount -t nfs 192.168.1.100:/opt/samsung/mini2440/kernel/rootfs /tmp//本地测试
#ls /tmp
.ash_history  bin  dev  etc  home  lib  linuxrc  mnt  opt  proc  root  sbin  sys  tmp  usr  var  www
#

此时表示NFS服务器构建成功,接着我们在mini2440上配置NFS客户端。

mini2440端构建NFS客户端:

#mount -t nfs:192.168.1.100:/opt/samsung/mini2440/kernel/rootfs /tmp

mini2440通过使用NFS作根文件系统:

配置linux内核:
make menuconfig
进入如下菜单:File systems —>Network File Systems —> ,然后配置成如下:
NFS服务器的构建与使用_第1张图片
设置NFS启动参数:
bootargs=root=/dev/nfs console=ttySAC0 nfsroot=192.168.1.100:/opt/samsung/mini2440/kernel/rootfs ip=192.168.1.130:192.168.1.100:192.168.1.1:255.255.255.0:mini2440:eth0:off

你可能感兴趣的:(NFS服务器的构建与使用)