linuxnfs服务安装与配置实践

简介: linuxnfs服务安装与配置实践

一.NFS服务

专用于linux和linux之间的专门的文件共享服务(NFS)服务,network filesystem网络文件系统

NFS服务可以把远程linux机器上面的文件目录数据,通过挂载的形式,映射到用户本地机器

本地/mnt ------------- 远方的一台服务器/sharedir

二.NFS和RPC的概念

NFS通过port传输数据,NFS服务在传输数据的时候,端口是随机选择的(自己重启NFS服务,查看端口是否在变化)

但是因为NFS的端口是随机的,既然端口不确定,客户端是无法链接NFS服务的

所以我们就需要一个另外的服务,进行NFS的端口注册,并且告知客户端NFS的工作端口是哪一个,以此让客户端能连接到服务器的NFS服务

三.什么是RPC

RPC(远程过程调用)

linux使用NFS服务必须启动2个服务

  • NFS服务
  • RPC服务

NFS服务通过RPC注册自己的端口功能

RPC服务功能就是记录每个NFS服务对应的端口号,并且RPC保证了NFS客户端发出请求的时候,把该功能对应的端口信息告知NFS客户端,保证客户端能够正确连接到NFS服务端的端口,达到数据传输目的

四.工具

  • nfs-utils:NFS服务的主程序,包括了rpc.nfsd rpc.mountd这两个守护进程,相关配置文件信息
  • RPCBIND:

RPC在centos7系统平台下,实现的软件RPCBIND服务

NFS服务的配置,必须要先运行好RPCBIND服务才可以

如果RPCBIND服务重启了,原本注册的NFS服务端的信息也失效了,你还得再重启NFS服务端,重新注册信息才可以

如果仅仅修改了NFS配置文件,不需要重启NFS服务端,因为重启后,端口的信息就更新了,还得重新注册。

五.安装配置NFS环境

1.查看一下是否有nfs-utils和rpcbind软件包的安装rpm包

[root@localhost virtual_user_dir]# rpm -qa nfs-utils rpcbind
nfs-utils-1.3.0-0.68.el7.x86_64
rpcbind-0.2.0-49.el7.x86_64

2.安装nfs-utils 、rpcbind

yum install nfs-utils

yum install rpcbind

3.环境配置

NFS是c/s模式,准备一个nfs服务端,准备一个nfs客户端,两台linux机器

再nfsserver端创建一个 用于共享的文件夹,且设置相应的读写权限

mkdir /sharenfs
chmod -Rf 777 /sharenfs/

六、nfs的配置文件

vim /etc/exports

1.nfs配置文件需要遵守如下规则:

nfs共享目录 nfs客户端地址(参数1,参数2……) NFS客户端地址2(参数1,参数2……)

例如:

#把nfs服务端的根目录共享出去,且允许两个主机名为client1,client2的机器,可以进行rw读写权限 / client1(rw) client2(rw)

#允许任意的客户端,都能够挂载到此nfs /public *(rw)

#只允许指定的ip地址的服务器,能够挂载此NFS服务端的/home/nfsfile文件夹且是只读的 /home/nfsfile 101.1.16.61(ro)

2.nfs语法参数解释:

nfs共享目录是绝对路径

nfs客户端地址,也就是nfs服务器授权可以访问共享目录的地址,可以写主机名,可以写通配符,ip地址

权限参数对nfs授权的客户端,进行权限控制的参数

3.nfs客户端地址形式

单一客户端 10.1.1.1 ---用的很少

允许整个网段访问 10.1.1.0/24 ---局域网,用的较多

授权整个域名客户端 nfs.baidu.cn ---用的很少

授权子域名客户端 *.baidu.cn ---用的少

4.nfs客户端权限参数

ro ---只读

rw ---读写

root_squash ---当nfs客户端以root账号访问nfs服务端共享目录数据的时候,把该root映射为nfs服务端的一个匿名用户,该用户的uid,gid会变成nfsnobody的信息

no_root_squash ---几乎和上面一样,但是不安全,因为会映射成root账户

all_squash ---所有nfs客户端的用户都映射为匿名用户,很安全,生产环境常用

sync ---数据同步写入到内存和磁盘,有点是保证内存数据安全,但效率太低

async ---数据先写入内存,再写入到磁盘,但是内存是易失性存储,所以掉电可能会出问题

七、nfs服务端的文件目录共享实践

1.前提

nfs服务是基于rpc的111通信端口,必须要先确保已经启动了rpc服务

如果rpcbind服务停止了,111端口也不会挂掉,因为centos7还提供了rpcbind.socket服务运行着

其实也就是保证rpcbind服务正常运行

[root@localhost virtual_user_dir]# systemctl restart rpcbind
[root@localhost virtual_user_dir]# systemctl status rpcbind

[root@localhost virtual_user_dir]# netstat -tunlp|grep 111

2.nfs服务端部署

前面已经确保了rpcbind服务正确启动

现在需要创建nfs服务端共享的目录

mkdir -p /sharenfs
chmod -Rf 777 /sharenfs/

我们再创建两个文件

touch /sharenfs/file1
touch /sharenfs/file2

防止出现权限问题,把目录所有人调整为nfsnobody

chown -R nfsnobody.nfsnobody /sharenfs/

3.修改nfs服务端的配置文件,进行客户端授权

vim /etc/exports
/sharenfs *(insecure,rw,sync:)

4.挂载

[root@localhost sharenfs]# mount -t nfs 127.0.0.1:/sharenfs /mnt
[root@localhost sharenfs]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 3.6G     0  3.6G   0% /dev
tmpfs                    3.6G   20M  3.6G   1% /dev/shm
tmpfs                    3.6G   13M  3.6G   1% /run
tmpfs                    3.6G     0  3.6G   0% /sys/fs/cgroup
/dev/mapper/centos-root   47G  8.0G   40G  17% /
/dev/sda1               1014M  185M  830M  19% /boot
tmpfs                    727M   36K  727M   1% /run/user/1000
/dev/sr0                 4.4G  4.4G     0 100% /run/media/o/CentOS 7 x86_64
127.0.0.1:/sharenfs       47G  8.0G   40G  17% /mnt
[root@localhost sharenfs]# cd /mnt/
[root@localhost mnt]# ls
file1  file2
[root@localhost mnt]#

相关文章
|
Java 应用服务中间件 Apache
企业实战(2) 项目环境搭建之Tomcat部署
企业实战(2) 项目环境搭建之Tomcat部署
|
3月前
|
监控 Java 应用服务中间件
部署tomcat部署实战案例
本文是关于Tomcat部署实战案例的教程,包括通过yum和二进制方式部署Tomcat的详细步骤,以及如何监控Tomcat服务。
215 84
部署tomcat部署实战案例
|
1月前
|
关系型数据库 MySQL Linux
docekr环境搭建配置!!!
本文介绍了Docker的安装部署及基本操作,包括使用国内源安装Docker CE、配置Linux内核流量转发、启动第一个容器、初体验Docker玩法、镜像命令、镜像详解、镜像分层结构、镜像实践操作、容器管理实践等内容。通过具体示例,如下载并运行MySQL、Redis、Nginx和WordPress镜像,帮助读者快速掌握Docker的基本使用方法。
52 5
|
2月前
|
编译器 C语言 C++
配置C++的学习环境
【10月更文挑战第18天】如果想要学习C++语言,那就需要配置必要的环境和相关的软件,才可以帮助自己更好的掌握语法知识。 一、本地环境设置 如果您想要设置 C++ 语言环境,您需要确保电脑上有以下两款可用的软件,文本编辑器和 C++ 编译器。 二、文本编辑器 通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。 C++ 程序的源文件通常使用扩展名 .cpp、.cp 或 .c。 在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个文件中,编译并执行它。 Visual Studio Code:虽然它是一个通用的文本编辑器,但它有很多插
|
7月前
|
JavaScript 应用服务中间件 开发工具
WebStrom使用实践配置总结
WebStrom使用实践配置总结
69 0
|
Ubuntu Linux iOS开发
搭建Python开发环境详细步骤
搭建Python开发环境详细步骤
382 0
|
弹性计算 安全 关系型数据库
从linux安装到完整项目部署到项目运行(全流程)
linux是一般用来部署项目。 安装linux操作系统,一般可以采用云服务器,和vmware软件虚拟机。前者需要购买,后者可以使用破解版。这里使用的是云服务器。[阿里云](https://account.aliyun.com/)(价格相对便宜,仅供学习使用,其它使用途径,买贵的)
1144 0
|
Oracle Java 关系型数据库
怎样配置Java开发环境?步骤详解
怎样配置Java开发环境?步骤详解
怎样配置Java开发环境?步骤详解
|
弹性计算 关系型数据库 MySQL
冬季实战营上云必备环境准备之快速搭建LAMP环境学习
对冬季实战营的教程:介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP做了知识学习总结。
冬季实战营上云必备环境准备之快速搭建LAMP环境学习
|
开发框架 IDE Java
java开发环境的配置
java开发环境的配置
202 0