基于滴滴云搭建 NFS Server

1. NFS 简介

NFS 即网络文件系统,用户可以通过网络将自己服务器上的目录共享出来,具有访问权限的服务器就可以将远程服务器上的目录挂载到本地,对本地目录的读写将会映射到远程服务器。在本地机器上看,远程服务器上的目录就好像自己的一个磁盘分区一样。

2. NFS Server 安装

本次安装环境为:Centos 7.5

2.1 安装 NFS

NFS 服务主要涉及到两个软件:rpcbind 和 nfs-utls。Rpcbind 主要用来提供 RPC 服务,由于 NFS 提供的功能非常多,设计时没有将其各个功能的端口固定,而是在启动时,向 rpcbind 注册自己的服务端口,客户端进行连接时,首先向 rpcbind 询问 NFS 服务所在端口,然后再与 NFS 进行通信。这里 rpcbind 的端口固定为 111,所以客户端总能与 rpcbind 取得联系。

在 Centos 上,我们使用 yum 来进行安装:

  yum   - y   install  nfs - utils  rpcbind

2.2 配置 NFS 共享目录

安装完 NFS 后,我们需要配置 NFS 对外共享哪些目录,以及对哪些客户端进行共享。比如,我想在 DC2 上将  /data/dorothy  这个目录共享出去,同时规定只有  172.22.51.28  这台机器可以访问,我可以这样设置:

上述配置中括号里的内容表示  172.22.51.28  这台机器对  /data/dorothy  这个目录的操作权限,常见参数有:

参数值 内容说明
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)
insecure 允许客户端从大于1024的tcp/ip端口连接服务器

使用  exportfs -r  使配置生效。

配置完成后我们就可以启动相关服务了:

image-20181210173159571

服务启动后查看一下相关端口信息:

  rpcinfo   - p

image-20181210173420087

除了 111 和 2049 这两个端口是固定的,其他端口都是随机的。我们在 滴滴云 上创建 DC2 时,默认只有 22 和 80 端口是开放的,我们还要在 滴滴云 上开放 status、mountd 以及 nlockmgr 对应的端口(这一步很重要!!!)。但是每次启动 NFS 时,这些端口都是随机的,所以我们需要固定这些端口。在  /etc/sysconf/nfs  中添加如下配置:

重启服务:

service  nfs  restart

再用 rpcinfo -p 查看一下端口信息:

image-20181210174821561

可以看到 mountd 和 status 服务的端口已经生效了。

修改  /ect/modprobe.d/lockd.conf  加入如下配置:

  options  lockd  nlm_tcpport = 30002

  options  lockd  nlm_udpport = 30002

然后重新加载 NFS 配置和服务:

滴滴云 上选择重新服务器,上述配置就生效了。

image-20181210175127170

image-20181210175218778

可以看到 nlockmgr 服务的端口也变成固定端口了。

下一步我们需要在 DC2 的安全组里开放 NFS 相关的端口, 这里主要有 111、2049、30002、30003、30004 。

具体操作为:

在你的 DC2 页面点击安全组:

image-20181210175554359

点击创建安全组:

image-20181210175649347

填写安全组名和应用到的 DC2:

image-20181210175812639

点击立即创建,然后在你刚刚创建的安全组里添加新的安全规则,把 111、2049、30002、30003、30004 这几个端口的 TCP、UDP 以及接入接出规则都创建一下。这里展示一下 111 端口的安全规则,其他端口相同:

image-20181210180346697

这样,NFS 服务端的配置就完成了。

3. 客户端设置

客户端需要安装 nfs-utils 这个软件:

  yum   - y   install  nfs - utils

创建挂在目录:

  mkdir   / home / morespace / dorothy / nfs

使用 showmount 命令查看服务端共享出的目录信息:

image-20181210181103951

如果这一步卡住了,报错: clnt_create rpc port mapper failure - timed out  , 那么可能是服务端 NFS 相关端口没有开放,可以尝试  telnet ip port  看看能不能 telnet 通,如果不能,还需要在安全组里开放相关端口。

下一步我们就可以挂在远程目录了。首先我们在服务器共享出来的目录下创建一个  hello.txt  文件:

image-20181210181603072

挂载远程目录:

image-20181210182111463

可以看到本地挂在的目录与远程目录的内容相同,说明挂在成功了。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31559758/viewspace-2285568/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31559758/viewspace-2285568/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值