NFS 版本

NFS 的 3 个主要版本是:
NFSv2(今天很少使用。允许最大文件大小为 2GB)
NFSv3(在 solaris 8 和 9 中使用)
NFSv4(在 solaris 10 中引入)

所有三个版本都使用下面指定的一组 RPC 协议和守护进程。

Solaris DaemonsRPC Service NameS10/S11 SMF serviceDescription
rpcbindrpcbind / portmapsvc:/network/rpc/bind:defaultRPC "portmapper"
mountdmountdsvc:/network/nfs/server:defaultMOUNT protocol server
nfsdnfssvc:/network/nfs/server:defaultNFS server
lockdnlockmgrsvc:/network/nfs/nlockmgr:defaultnetwork lock manager (aka NLM)
statdstatussvc:/network/nfs/status:defaultRPC status monitor
nfs4cbdN/Asvc:/network/nfs/cbd:defaultNFSv4 callback daemon
nfsmapidN/Asvc:/network/nfs/mapid:defaultNFs4v user/group id mapping
Solaris NFS守护进程RPC 服务名称S10/S11 SMF 服务描述
rpcbindrpcbind / portmapsvc:/network/rpc/bind:defaultRPC 端口映射器
mountdmountdsvc:/network/nfs/server:defaultMOUNT 协议服务器
nfsdnfssvc:/network/nfs/server:defaultNFS服务器
lockdnlockmgrsvc:/network/nfs/nlockmgr:default网络锁管理器(又名 NLM)
statdstatussvc:/network/nfs/status:defaultRPC 状态监视器
nfs4cbdN/Asvc:/network/nfs/cbd:defaultNFSv4 回调守护进程
nfsmapidN/Asvc:/network/nfs/mapid:defaultNFs4v 用户/组 ID 映射

注意:nfs4cbd 和 nfsmapid - 仅限于 solaris 10.
Solaris 11 使用 idmap 守护进程而不是 nfsmapid。

NFS 客户端上的另一个服务是 - svc:/network/nfs/client:default 用于在启动时从 /etc/vfstab 挂载 NFS 文件系统

NFS共享

有许多不同的方法可以在远程系统上共享文件系统或者目录。
以下是将文件系统共享为 NFS 的几个基本示例。

  1. 一般方式
    solaris 8、9 和 10 的一般语法是:
share -F nfs -o [options] [pathname]

例如:仅将 /data 挂载点共享为对主机 system1 和 system2 的读/写。
这里 rw=options 是访问控制列表。
(此处可以指定 IP 而不是主机名)

# share -F nfs -o rw=system1:system2 /data
  1. Solaris 10 ZFS 方式
    与上面的Solaris 10 ZFS 文件系统类似的示例是:
# zfs set sharenfs='rw=system1:system2' datapool/data

要取消共享我们共享的文件系统:

# zfs unshare datapool/data
  1. Solaris 11 ZFS 方式

在solaris 11 的情况下,语法与solaris 10 完全不同。
这里我们需要在共享时命名共享。

# zfs set sharenfs=on datapool/data
# zfs set share=name=datashare,path=/data,prot=nfs,rw=system1,system1 datapool/data
  • 旧的solaris 8,9,10 方式在solaris 11 中仍受支持,但我们需要添加并进入/etc/dfs/sharetab 以使NFS 共享在重新启动后保持不变。
    记住它不是solaris 11 中的dfstab。
  • 对于作为NFS 共享的ZFS,我们不需要向任何文件添加任何条目,因为SMF 服务将负责在重新启动时共享它。
Solaris NFS 服务

收集信息

有很多命令可以获取 NFS 共享信息。

1.分享
在 NFS 服务器上使用 share 命令显示所有选项的当前共享:

# share
   -      /data    rw=system1   ""
   -      /home/john     rw=system1,system2   ""
  1. 显示挂载 -e
    showmount -e 命令与 mountd 守护程序联系并列出所有带有选项的共享。
# showmount -e
  1. dfshares
    dfshare 命令显示与 showmount -e 相同的信息,但格式不同。
#dfshares

NFS 服务器/客户端启动/停止

在开始共享 NFS 共享并将它们安装到远程服务器之前,我们必须启动 NFS 服务器和 NFS 客户端。

对于 Solaris 8,9 :

# /etc/init.d/nfs.server start
# /etc/init.d/nfs.server stop

对于 Solaris 10:

# svcadm enable svc:/network/nfs/server:default
# svcadm disable svc:/network/nfs/server:default

什么是 NFS

网络文件系统 (NFS - Network File System) 是一种协议,它允许一个系统上的文件系统在网络上的远程系统上可用。
NFS 在服务器-客户端模型上工作,服务器共享资源,客户端安装它。

使用 dfstab 共享

使用 share 命令共享的 NFS 共享不会在重新启动后持续存在。
解决方案是使用 /etc/dfs/dfstab 文件。
dfstab 文件中 NFS 条目的一般格式是:

share -F nfs -o rw=system1 -d "Home Dir" /export/home

将条目添加到 dfstab 后,我们需要使用 shareall 命令来共享 dfstab 中提到的实体

# shareall

现在,类似于 shareall,要一次性取消共享所有 NFS 共享,请使用:

# unshareall

现在,与 /etc/vfstab 类似,当前共享的所有 NFS 共享都列在 /etd/dfs/sharetab 文件中。

https://onitroad.com 更多教程

在 NFS 客户端挂载 NFS 共享

手动安装
要在 NFS 客户端手动挂载 NFS 共享,语法为:

mount -F nfs -o [options] [NFS_server]:[mountpoint]

要使 NFS 挂载点在重新启动时自动挂载,请使用 /etc/vfstab 并添加以下条目:

#device                device          mount         FS      fsck      mount     mount
#to mount              to fsck         point         type    pass      at boot   options
192.168.10.23:/data      -             /mnt          nfs       -        yes       ro,bg,vers=3

请注意最后一列中的 bg 选项。
它代表后台,如果 NFS 服务器在引导时不可用,则允许引导过程继续进行。

日期:2020-09-17 00:15:24 来源:oir作者:oir