Linux 环境下搭建NFS服务

Linux 环境下搭建NFS服务,第1张

NFS(Network File System),网络文件存储系统,它最早是由 Sun 公司开发的,也是 FreeBSD 支持的文件系统中的一个,它允许网络中的计算机之间通过TCP/IP 网络共享资源。通过 NFS 协议,我们本地 NFS 的客户端应用可以透明的读写位于服务端 NFS 服务器上的文件,就像访问本地文件一样方便。简单的理解,NFS 就是可以透过网络,让不同的主机,不同的 *** 作系统可以共享存储的服务。

NFS 在文件传送或信息传送过程中依赖 RPC(Remote Procedure Call)协议,即远程过程调用,NFS的各项功能都必须向 RPC 来注册,如此一来 RPC 才能了解 NFS 这服务的各项功能 Port,PID,NFS 在服务器所监听的 IP 等,而客户端才能透过 RPC 的询问找到正确对应的端口,所以 NFS 必须要有 RPC 存在是才能成功的提供服务,简单的理解二者关系:NFS 是一个文件存储系统,而 RPC 是负责信息的传输。

通过上面的简介,我们知道 NFS 服务需要依赖 RPC 服务,所以这里 NFS 服务端需要安装 rpcbind 和 nfs-utils ,客户端只需要安装 nfs-utils 即可,由于我们选用 CentOS 系统,所以可以使用 yum 快速的安装。

然后安装 NFS 服务

另:Ubuntu 16.04 安装命令

我们在服务端创建一个共享目录 /data/share ,作为客户端挂载在远端入口,然后设置权限

然后,修改 NFS 配置文件 /etx/exports

说明一下,这里配置后边有很多参数,每个参数有不同的含义,具体可以参考下边。此处,我配置了将 /data/share 文件目录设置为允许IP为 192.168.0.0/24 区间的客户端挂载。然后,如果客户端IP不在该区间也想要挂载的话,可以设置IP区间更大或者设置为 * 即允许所有客户端挂载,例如: /home *(ro, sync,insecure,no_root_squash) 设置 /home 目录允许所有客户端只读挂载。

接下来,我们先启动 RPC 服务

我们发现,启动了 NFS 服务后,RPC 注册的端口列表明显增多。现在服务端都启动起来了,在服务端看下是否正确加载了设置的 /etc/exports 配置

最后,在另一台Linux虚拟机上测试一下,是否能够正确挂载。首先,我们可以在客户端查看下NFS服务端设置可共享的目录信息

然后,在客户端创建挂载目录/share

最后,挂载远端目录到本地 /share 目录

可以看到,可以正确将远端 NFS 目录挂载到本地。注意:挂载点 /share 目录必须已经存在,而且目录中没有文件或子目录

最后,我们在 NFS 服务端 /data/share 目录下创建一个文件,看下客户端能否正确读取并修改

都可以了,这里因为上面设置了 NFS 远端目录权限为 rw 拥有读写权限,如果设置为 ro ,那么客户端只能读取,不能写入。根据实际应用场景合理配置。

NFS 默认使用 UDP协议进行挂载,为了提供 NFS 的稳定性,可以使用 TCP 协议挂载,那么客户端挂载命令如下:

最后,卸载命令

nfs服务器建立

本文介绍Linux环境下nfs服务的搭建过程。

nfs服务的作用是让其他机器可以通过网络把将本地的nfs目录挂载,然后通过访问挂载目录访问本地机器。在嵌入式开发中经常会将运行的开发板上的整个文件系统,做为本地的一个主目录,然后开发板启动的时候通过nfs服务,将本地的这个目录挂载上去,作为根文件系统。

这里分别介绍在Ubuntu和CenterOS上面nfs服务的配置过程。

编辑/etc/exports,在其中增加要共享的目录

其中 /home/quietheart/nfs,10.1.14.0/24代表共享给哪个子网,rw是可读写权限

然后

建立好了nfs之后,如果板子里面的内核支持网络和nfs,需要板子和你的机器各有一个网线和网口,两者在同一个网段,配置好了就能互访。也可以把机器和板子用一根网线链接(板子有独立的网口),这样不需要网关,就能使板子挂载机器的nfs系统了,但是机器也不能够上网了。

添加类似如下一行:

在配置NFS之前先查看“rpm -q nfs-utils portmap“两个软件包是否安装,默认都是安装的。

这里,'<your nfs directory>'是你本地的nfs目录,可以随意设置。具体含义参见"info exports".

这一步有时候可以不用做。

具体在:"系统"->"管理"->"安全级别和防火墙"

至此nfs服务搭建完毕.

这里说一下测试nfs是否好用的方法:

在其它机器上运行:

如果成功则完毕。

无。

通过以上可知,在Linux上面配置nfs服务的过程大致一样。

五一节办公室要停电,机房虽有UPS,但也支撑不了8小时。

因生产环境有业务系统挂了办公室机房的NAS存储,故需要进行迁移,步骤记录如下:

先闲谈下技术-----------------------

NFS和samba的区别

samba是混合型网络中的共享服务,windows服务器可建samba服务,linux服务器也可建samba服务

nfs只面向unix、linux间的共享,linux服务器可建nfs服务(winodws系统也可以挂载nfs,就是有点不稳定)

NFS服务器上的 *** 作--------------------------

nfs服务器 *** 作系统版本:

[root@c7110 ~]# more /etc/system-release

CentOS Linux release 7.9.2009 (Core)

nfs服务器安装nfs服务

[root@c7110 ~]# yum -y install nfs-utils rpcbind

创建nfs目录,并授权

[root@c7110 ~]# mkdir /opt/nfs-test

[root@c7110 ~]# chmod 777 /opt/nfs-test

编辑nfs服务配置文件

[root@c7110 ~]# vi /etc/exports

内容如下:

/opt/nfs-test *(rw,root_squash,all_squash,sync)

重新加载nfs配置:

[root@c7110 ~]# exportfs -r

nfs服务设置开机启动

[root@c7110 ~]# systemctl enable rpcbind

[root@c7110 ~]# systemctl enable nfs

[root@c7110 ~]# systemctl enable nfs-lock

[root@c7110 ~]# systemctl enable nfs-idmap

启动nfs服务

[root@c7110 ~]# systemctl start rpcbind

[root@c7110 ~]# systemctl start nfs

[root@c7110 ~]# systemctl start nfs-lock

[root@c7110 ~]# systemctl start nfs-idmap

查看nfs服务启动后,所监听的端口信息:

[root@c7110 ~]# rpcinfo -p

linux服务器服务器上 *** 作-------------------------------

业务服务器安装nfs软件客户端

[root@c7111 ~]# yum -y install nfs-utils

建立一个挂载目录

[root@c7111 ~]# mkdir /opt/test-m

挂载nfs服务器共享出来的目录

[root@c7111 ~]# mount -t nfs 10.x.x.10:/opt/nfs-test /opt/test-m/

查看下已挂载的nfs

[root@c7111 ~]# df -h

Filesystem Size Used Avail Use% Mounted on

devtmpfs 1.5G 0 1.5G 0% /dev

tmpfs 1.5G 0 1.5G 0% /dev/shm

tmpfs 1.5G 8.8M 1.5G 1% /run

tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup

/dev/mapper/centos-root 97G 2.3G 95G 3% /

/dev/sda1 1014M 171M 844M 17% /boot

tmpfs 297M 0 297M 0% /run/user/0

10.x.x.6:/opt/nfs-test 97G 4.1G 93G 5% /opt/test-m

经测试,数据可读可写,证明nas服务没有问题,于是进行数据同步,数据同步用rsync命令。

rsync -avp gdsz@10.87.5.6::nas_6 /mnt/guidang/ --password-file=/root/rsync_pass --bwlimit=100000

数据同步完,通知研发进行挂载切换。研发同事在测试时,发现文件属性中的uid及gid与原来的不一致,有些担心,于是又小完善了一下NFS服务。

编辑nfs服务配置文件

[root@c7110 ~]# vi /etc/exports

内容如下:

/opt/nfs-test *(no_all_squash,anonuid=600,anongid=600)

重新加载nfs配置:

[root@c7110 ~]# exportfs -r


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/5909819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-08
下一篇 2023-03-08

发表评论

登录后才能评论

评论列表(0条)

保存