NFS 版本
NFS 的 3 个主要版本是:
NFSv2(今天很少使用。允许最大文件大小为 2GB)
NFSv3(在 solaris 8 和 9 中使用)
NFSv4(在 solaris 10 中引入)
所有三个版本都使用下面指定的一组 RPC 协议和守护进程。
Solaris Daemons | RPC Service Name | S10/S11 SMF service | Description |
---|---|---|---|
rpcbind | rpcbind / portmap | svc:/network/rpc/bind:default | RPC "portmapper" |
mountd | mountd | svc:/network/nfs/server:default | MOUNT protocol server |
nfsd | nfs | svc:/network/nfs/server:default | NFS server |
lockd | nlockmgr | svc:/network/nfs/nlockmgr:default | network lock manager (aka NLM) |
statd | status | svc:/network/nfs/status:default | RPC status monitor |
nfs4cbd | N/A | svc:/network/nfs/cbd:default | NFSv4 callback daemon |
nfsmapid | N/A | svc:/network/nfs/mapid:default | NFs4v user/group id mapping |
Solaris NFS守护进程 | RPC 服务名称 | S10/S11 SMF 服务 | 描述 |
---|---|---|---|
rpcbind | rpcbind / portmap | svc:/network/rpc/bind:default | RPC 端口映射器 |
mountd | mountd | svc:/network/nfs/server:default | MOUNT 协议服务器 |
nfsd | nfs | svc:/network/nfs/server:default | NFS服务器 |
lockd | nlockmgr | svc:/network/nfs/nlockmgr:default | 网络锁管理器(又名 NLM) |
statd | status | svc:/network/nfs/status:default | RPC 状态监视器 |
nfs4cbd | N/A | svc:/network/nfs/cbd:default | NFSv4 回调守护进程 |
nfsmapid | N/A | svc:/network/nfs/mapid:default | NFs4v 用户/组 ID 映射 |
注意:nfs4cbd 和 nfsmapid - 仅限于 solaris 10.
Solaris 11 使用 idmap 守护进程而不是 nfsmapid。
NFS 客户端上的另一个服务是 - svc:/network/nfs/client:default 用于在启动时从 /etc/vfstab 挂载 NFS 文件系统
NFS共享
有许多不同的方法可以在远程系统上共享文件系统或者目录。
以下是将文件系统共享为 NFS 的几个基本示例。
- 一般方式
solaris 8、9 和 10 的一般语法是:
share -F nfs -o [options] [pathname]
例如:仅将 /data 挂载点共享为对主机 system1 和 system2 的读/写。
这里 rw=options 是访问控制列表。
(此处可以指定 IP 而不是主机名)
# share -F nfs -o rw=system1:system2 /data
- Solaris 10 ZFS 方式
与上面的Solaris 10 ZFS 文件系统类似的示例是:
# zfs set sharenfs='rw=system1:system2' datapool/data
要取消共享我们共享的文件系统:
# zfs unshare datapool/data
- 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 服务将负责在重新启动时共享它。
收集信息
有很多命令可以获取 NFS 共享信息。
1.分享
在 NFS 服务器上使用 share 命令显示所有选项的当前共享:
# share - /data rw=system1 "" - /home/john rw=system1,system2 ""
- 显示挂载 -e
showmount -e 命令与 mountd 守护程序联系并列出所有带有选项的共享。
# showmount -e
- 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 文件中。
在 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 服务器在引导时不可用,则允许引导过程继续进行。