Centos7-NFS server - 笔记

一、NFS服务器基础

  因为 NFS 支持的功能相当的多,而不同的功能都会使用不同的程序来启动, 每启动一个功能就会启用一些端口来传输数据,因此, NFS 的功能所对应的端口才没有固定住, 而是随机取用一些未被使用的小于 1024 的埠口来作为传输之用。那客户端怎么知道你服务器端使用那个埠口啊?此时就得要 远程过程调用 (Remote Procedure Call, RPC) 的协定来辅助。

  1) RPC (Remote Procedure Call) 远程过程调用

  RPC 最主要的功能就是在指定每个 NFS 功能所对应的 port number ,并且回报给客户端,让客户端可以连结到正确的埠口上去。

  RPC 又是如何知道每个 NFS 的埠口呢?这是因为当服务器在启动 NFS 时会随机取用数个埠口,并主动的向 RPC 注册,因此 RPC 可以知道每个埠口对应的 NFS 功能,然后 RPC 又是固定使用 port 111 来监听客户端的需求并回报客户端正确的埠口, 所以当然可以让 NFS 的启动更为轻松愉快了!

  注意:在启动 NFS 之前,RPC 就要先启动了,否则 NFS 会无法向 RPC 注册。 另外,RPC 若重新启动时,原本注册的数据会不见,因此 RPC 重新启动后,它管理的所有服务都需要重新启动来重新向 RPC 注册。

  客户端有 NFS 档案存取需求时,它与服务器端通信的过程:

  1. 客户端会向服务器端的 RPC (port 111) 发出 NFS 档案存取功能的询问要求;

  2. 服务器端找到对应的已注册的 NFS daemon 埠口后,会回报给客户端;

  3. 客户端了解正确的埠口后,就可以直接与 NFS daemon 来联机。

  2) NFS 启动的 RPC daemons

  NFS 服务器在启动的时候就得要向 RPC 注册,所以 NFS 服务器也被称为 RPC server 之一,NFS 服务器主要的任务是进行文件系统的分享,文件系统的分享则与权限有关。 所以 NFS 服务器启动时至少需要两个 daemons ,一个管理客户端是否能够登入的问题, 一个管理客户端能够取得的权限。如果你还想要管理 quota 的话,那么 NFS 还得要再加载其他的 RPC 程序就是了。我们以较单纯的 NFS 服务器来说:

    • rpc.nfsd
      最主要的 NFS 服务器服务提供商。这个 daemon 主要的功能就是在管理客户端是否能够使用服务器文件系统挂载信息等, 其中还包含这个登入者的 ID 的判别喔!
    • rpc.mountd
      这个 daemon 主要的功能,则是在管理 NFS 的文件系统哩!当客户端顺利的通过 rpc.nfsd 而登入服务器之后,在他可以使用 NFS 服务器提供的档案之前,还会经过档案权限 (就是那个 -rwxrwxrwx 与 owner, group 那几个权限啦) 的认证程序!他会去读 NFS 的配置文件 /etc/exports 来比对客户端的权限,当通过这一关之后客户端就可以取得使用 NFS 档案的权限啦!(注:这个也是我们用来管理 NFS 分享之目录的权限与安全设定的地方哩!)
    • rpc.lockd (非必要)
      这个玩意儿可以用在管理档案的锁定 (lock) 用途。为何档案需要『锁定』呢? 因为既然分享的 NFS 档案可以让客户端使用,那么当多个客户端同时尝试写入某个档案时, 就可能对于该档案造成一些问题啦!这个 rpc.lockd 则可以用来克服这个问题。 但 rpc.lockd 必须要同时在客户端与服务器端都开启才行喔!此外, rpc.lockd 也常与 rpc.statd 同时启用。
    • rpc.statd (非必要)
      可以用来检查档案的一致性,与 rpc.lockd 有关!若发生因为客户端同时使用同一档案造成档案可能有所损毁时, rpc.statd 可以用来检测并尝试回复该档案。与 rpc.lockd 同样的,这个功能必须要在服务器端与客户端都启动才会生效。

  上述这几个 RPC 所需要的程序,其实都已经写入到两个基本的服务启动脚本中了,那就是 nfs 以及 nfslock ! 亦即是在 /etc/init.d/nfs, /etc/init.d/nfslock,与服务器较有关的写入在 nfs 服务中,而与客户端的 rpc.lockd 之类的,就设定于 nfslock 服务中。

二、NFS Server端的设定

  1) 所需要的软件

    • RPC 主程序:rpcbind
    • NFS 主程序:nfs-utils

  2) NFS软件架构

    • 主要配置文件:/etc/exports
      这个档案就是 NFS 的主要配置文件了!不过,系统并没有默认值,所以这个档案『 不一定会存在』,可能必须要使用 vim 主动的建立起这个档案!
    • NFS 文件系统维护指令:/usr/sbin/exportfs
      这个是维护 NFS 分享资源的指令,我们可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸除或重新分享等等,这个指令是 NFS 系统里面相当重要的一个!
    • 分享资源的登录档:/var/lib/nfs/*tab
      在 NFS 服务器的登录文件都放置到 /var/lib/nfs/ 目录里面,在该目录下有两个比较重要的登录档, 一个是 etab ,主要记录了 NFS 所分享出来的目录的完整权限设定值;另一个 xtab 则记录曾经链接到此 NFS 服务器的相关客户端数据。
    • 客户端查询服务器分享资源的指令:/usr/sbin/showmount
      这是另一个重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。这个 showmount 可以用来察看 NFS 分享出来的目录资源喔!

  3) /etc/exports 配置文件的语法与参数

    

  权限方面 (就是小括号内的参数) 常见的参数则有:

参数值 内容说明
rw
ro
该目录分享的权限是可擦写 (read-write) 或只读 (read-only),但最终能不能读写,还是与文件系统的 rwx 及身份有关。
sync
async
sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘!
no_root_squash
root_squash
客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行!
all_squash 不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦!
anonuid
anongid
anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anonuid 指的是 UID 而 anongid 则是群组的 GID 啰。

  

  4) 启动 NFS   

    [[email protected]w ~]# service rpcbind start 如果已经在执行,则不用再次启动    [[email protected] ~]# service nfs start    [[email protected] ~]# service nfslock start

    可以使用 rpcinfo 来观察每个 RPC 服务的注册状况:       5) NFS 的联机观察    在 NFS 服务器设定妥当之后,我们可以在 server 端先自我测试一下是否可以联机,可以利用 showmount 这个指令来查阅:          如果有其他客户端挂载了你的 NFS 文件系统时,那么该客户端与文件系统信息就会被记录到 /var/lib/nfs/xtab 里头去的。

  另外,如果你想要重新处理 /etc/exports 档案,当重新设定完 /etc/exports 后不需要重新启动 nfs,这个时候我们可以透过 exportfs 这个指令来帮忙。  

6) NFS 的安全性  一般来说, NFS 的服务仅会对内部网域开放,不会对因特网开放的。  如果有特殊需求, 那么也可能会跨不同网域。NFS 的防火墙特别难搞,因为除了固定的 port 111, 2049 之外, 还有很多不固定的埠口由rpc其他服务开启。不过centos6有提供一个固定特定 NFS 服务的埠口配置文件,那就是 /etc/sysconfig/nfs 啦! 你在这个档案里面就能够指定特定的埠口,这样每次启动 nfs 时,相关服务启动的埠口就会固定,如此一来, 我们就能够设定正确的防火墙!这个配置文件内容很多,绝大部分的数据都不要去更改,只要改跟 PORT 这个关键词有关的数据即可。

NFS 服务器关机前的注意事项:  建议你的 NFS Server 想要关机之前,能先『关掉 rpcbind 与 nfs 』这两个东西。

三、NFS 客户端的设定  1) 手动挂载 NFS 服务器分享的资源

    你要如何挂载 NFS 服务器所提供的文件系统呢?基本上,可以这样做:

    1. 确认本地端已经启动了 rpcbind 服务!
    2. 扫瞄 NFS 服务器分享的目录有哪些,并了解我们是否可以使用 (showmount);
    3. 在本地端建立预计要挂载的挂载点目录 (mkdir);
    4. 利用 mount 将远程主机直接挂载到相关目录。

    

    

  卸除挂载的 NFS 目录

    

时间: 2024-08-02 19:16:42

Centos7-NFS server - 笔记的相关文章

Windows Server 笔记(六):Active Directory域服务:额外域控制器

额外域控制器: 额外域控制器是指除了第一台安装的域控制器(主域控制器)意外的所有域控制器: 那么额外域控制器有什么好处呢? 1.可以提供容错.即一台DC出问题后,另一台仍可以可以继续工作,提供服务: 2.提高用户登录效率.多台域控可以分担用户审核,加快用户登录速度: 3.备份.域控制器之间会相互复制,就等于多了一份备份: 1.首先设置好IP配置:这里首选DNS指向自己,备用DNS指向主域:将服务器加入域: 2.选择"添加角色和功能": 3.选择"下一步": 4.选择

树莓派上启动nfs server

1. nfs 是什么 (略)http://vbird.dic.ksu.edu.tw/linux_server/linux_redhat9/0330nfs.php 2. 安装 nfs-kernel-server 和 rpcbind(替代portmap), 并启动rpcbind和nfs-kernel-server服务. apt-get install nfs-common nfs-kernel-server sudo apt-get install portmap [email protected]

Setting Up An NFS Server And Client On OpenSUSE 12.2

1 Preliminary Note I'm using two OpenSUSE systems here: NFS Server: server.example.com, IP address: 192.168.0.100 NFS Client: client.example.com, IP address: 192.168.0.101 2 Installing NFS server: On the NFS server we run: zypper install nfs-kernel-s

Windows Server 笔记(五):DHCP(1)

手动配置TCP/IP客户端除了是一个费时的苦差事,设置错误还会导致网络通信故障.DHCP就避免了这些错误,并提供了很多其他优势,包括计算机从一个子网移到另一个子网新地址的自动分配,不用时自动回收. DHCP配置的过程: 1.DHCP客户端以广播的方式向网络中的DHCP服务器发送出DHCP Discover数据包: 2.DHCP服务器在收到DHCP Discover数据包后,回应一个DHCP Offer数据包,并给予IP地址.TTL租期等相关参数: 3.DHCP客户端会选取第一个收到的IP地址(多

【翻译自mos文章】当NFS server 宕机后,Oracle 数据库 冻结并且alert 文件里没有任何错误

当NFS server 宕机后,Oracle 数据库 冻结并且alert 文件里没有任何错误 翻译自mos文章:When NFS Server Is Down, Oracle Server Freezes With No Errors In Alert Log File (文档 ID 1316251.1) 适用于: Oracle Server - Enterprise Edition - Version: 10.2.0.4 and later   [Release: 10.2 and later

NFS server 搭建

一.NFS server 主要用户linux与unix间的文件共享服务器 1.NFS又名网络文件协议:专门用来让linux或unix间进行文件共享 2.NFS是基于RPC协议之一,由多个进程共同构成 3.客户端与服务器端同时得使用Rpc协议 4.RPC=>开启端口不固定,大于1024 二.安装NFS Serve 1.首先需要安装RPC包 一般名为rpcbind软件包 2.安装NFS包 NFS包名==>nfs-utils ==>需要先启动exportfs[rpcbind],再启动NFS 三

NFS Server端的防火墙控制(十一)

NFS Server端的防火墙控制 真正企业生产环境的存储服务器都属于内网环境,都无需防火墙,因此,此处可以不配置,如果要配置的话就有两种方法: 方法一: 1.      仅允许IP段访问 iptables -AINPUT -s 192.168.221.1/24 -j ACCEPT 2.      允许IP段加端口访问 iptables -AINPUT -i ech1 -p tcp -s 192.168.221.1/24 --dport 111 -j ACCEPT iptables -AINPU

tiny210 出现 nfs:server is not responding,still trying 原因与解决方案

#This line cannot be removed. by FriendlyARM(www.arm9.net) CheckOneButton=No Action = Install OS =Linux LCD-Mode = No LCD-Type = S70 LowFormat = No VerifyNandWrite = No CheckCRC32=No StatusType = Beeper | LED ################### Linux ###############

windows nfs server for linux

摘要 在开发嵌入式系统的过程中,为了方便调试与文件共享,需要使用到nfs,即网络文件系统,这位板子的调试测试带来了很大的方便.之前在linux系统下开发,与ARM11核心板 linux系统对接共享也比较方便,近期因为个别原因,将开发转移到了windows平台,因此需要windows下的nfs server.即整体解决方案就是windows nfs server for linux. NFS,是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统