部署linux文件服务器,NFS服务器部署文档

文档目的

部署NFS服务,实现不同操作系统之间文件共享功能。

基础知识

NFS(Network Files System) 即网络文件系统,它最大的功能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此分享个别的档案(share files)。NFS文件系统协议允许网络中的主机通过TCP/IP协议进行资源共享,NFS客户端可以像使用本地资源一样读写远端NFS服务端的资料,需要注意NFS服务依赖于RPC服务与外部通信,所以必需保证RPC服务能够正常注册服务的端口信息才能正常使用NFS服务。

常用命令

rpcinfo -p localhost   查看rpc使用端口

service nfs start      开启nfs服务

showmount -e [IP]    查看指定IP的共享文件

系统环境

服务器操作系统:Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.CentOS.org) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) )

服务器IP地址:172.16.34.61

客户机操作系统:Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) )

客户机IP地址:172.16.34.62

涉及软件

rpcbind

nfs-utils

配置文件

主要配置文件:/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分享出来的目录资源喔!

操作步骤

1.安装所需程序

由于nfs依赖于RPC服务,所以在安装nfs前必须先安装RPC服务,安装命令如下:

yum install rpcbind

9d9d636300b9449130b80eddd132332e.png

然后再安装nfs服务

yum install nfs-utils

052815e29a84e08c20ef31d49bee2ad9.png

2.创建共享目录

假设我们要共享的目录是/nfsfiles

mkdir /nfsfiles

并设置权限

chmod 777 /nfsfiles

c5435f139610d862ad486c789a2e1043.png

在该文件夹中放入一个文本,作为之后验证使用

echo“this is my first nfs server”> /nfsfiles/README

现在进入关键一步,需要把 /nfsfiles 文件共享,就需要修改/etc/exports中的配置内容

vim /etc/exports

5d77deb40efbc8d836fe196d1b9c23ca.png

注:exports中的格式是[共享文件路径] + [可以允许访问的IP地址或IP网段]+[访问权限] ,中间是用空格隔开。

NFS配置共享的参数有:

参数

作用

ro

只读默认

rw

读写模式

root_squash

当NFS客户端使用root用户访问时,映射为NFS服务端的匿名用户。

no_root_squash

当NFS客户端使用root用户访问时,映射为NFS服务端的root用户。

all_squash

不论NFS客户端使用任何帐户,均映射为NFS服务端的匿名用户。

sync

同时将数据写入到内存与硬盘中,保证不丢失数据。

async

优先将数据保存到内存,然后再写入硬盘,效率更高,但可能造成数据丢失。

共享之后的文件夹名字背景会有变化,如下图:

060294517cb72368149cc0c56fd9cf5b.png

3.关闭防火墙

以下端口必须开放:

111端口的TCP和UDP

2049端口的TCP

另外,rpc.mount进程所打开的端口,由于每次重启NFS服务这个进程端口都不一样,所以要根据每次开放的端口来设置,TCP和UDP都需要打开。可以通过`rpcinfo -p localhost`命令查看rpc.mount端口号

注:网上还有一种方法是修改/etc/sysconfig/nfs文件中的RQUOTAD_PORT, LOCKD_TCPPORT,LOCKD_UDPPORT, MOUNTD_PORT 四个值来固定端口号,但是在我实际实验用没有效果,原因未知。。

cd470a726072fc9d4e03d0f4a382ee00.png

注:添加完这些端口后,在客户端还是无法使用showmount -e [ip] 查看到NFS服务器上共享的文件,但是可以用mount -t nfs [ip]:/nfsfiles挂载共享文件,原因未知。。。如果实在不行,可以关闭防火墙,service firewalld stop ,虽然不推荐。。

firewall-cmd --zone=public --add-port=111/tcp --permanent

firewall-cmd --zone=public --add-port=111/udp --permanent

firewall-cmd --zone=public --add-port=2049/tcp --permanent

注:以下端口根据本机情况设定

firewall-cmd --zone=public --add-port=20048/tcp --permanent

firewall-cmd --zone=public --add-port=20048/udp --permanent

firewall-cmd --zone=public --add-port=54161/udp --permanent

firewall-cmd --zone=public --add-port=58138/tcp --permanent

firewall-cmd --reload

4.启动服务

启动RPC和nfs服务

注:如果不启动RPC服务,会出现下面问题一中的报错

systemctl start rpcbind

systemctl start nfs-server

3542dd7dcb1a6787ba96d74941203b4f.png

5.客户端挂载共享文件夹

linux端

客户端也需要安装相应软件,具体安装方法参见步骤1将共享文件挂载到已经创建好了的文件夹/backupnfs中

mount  -t  nfs  172.16.34.61:/nfsfiles/  /backupnfs/

2452f04720ed67bd23d6cd4dc2373502.png

打开文件夹,验证挂载是否成功

d18b21e713c280fa8a7778cfcf873319.png

以上结果表示访问成功

Windows端

注:鸟哥私房菜上说NFS只能在Linux操作系统之间共享文件,但是实际当中确实能在windows和Linux上共享,我在Windows2012的系统中实验成功,但是windows10报错。。

在windows系统中需要先安装nfs服务器,安装方式是打开“控制面板”,选择“程序和功能”,点击“启动或关闭Windows功能”,勾选“NFS客户端”和“Telnet客户端”

ef9e189e57229fc84725ec9414ece094.png

如果是windows2012系统,则打开服务器管理工具,添加角色,添加“NFS客户端”和“Telnet客户端”两个角色即可

56a7a4501e9c239782a49ec60d32d72e.png

安装好后,打开cmd,输入命令

mount\\172.16.34.61\nfsfilesz:

9efa587a1c86db415f30eeebbcaca11c.png

2495ffd2b67b873a33eb7f5d0f2c90ee.png

注:貌似windows10的NFS支持不好,无法挂载,显示“不受支持的windows”,以上系统是windows2012操作系统,

常见问题

问题一:nfs无法启动,rpc.nfsd报错

解决方法: 因为nfs依赖于rpc服务,所以必须先启动rpc

systemctl start rpcbind

再启动nfs

0b1331709591d260c1c78e86d0c51c18.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值