NFS介绍与基本安装

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

1NFS介绍

NFS是Network File System的缩写(分布式文件系统协议),==它最大的功能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此分享个别的档案 (share files)== 
NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本 
NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写。

《客户端NFS和服务端NFS通讯过程》
1)首先服务器端启动RPC服务,并开启111端口
2)启动NFS服务,并向RPC注册端口信息
3)客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口
4)服务端的RPC(portmap)服务反馈NFS端口信息给客户端。
5)客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。
mark
(注:rpcbind是centos6及以后称之为rpcbind,portmap是centos5及以前的版本)

场景1:有3台机器A,B,C,需求是这3台机器的数据是一样的,当A的机器负载高时客户想要访问A服务器上的数据时,这时有2台机器B,C的负载不是很高,将A与B,C的数据共享,可是怎么样能时实的更新B,与C的机器上呢。
此时用NFS服务即可实现,时实的更新的数据。(NFS不监听端口,portmap监听111端口)

2nfs服务端安装配置

服务端的配置:

[root@chy01 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.212.11  netmask 255.255.255.0  broadcast 192.168.212.255
        inet6 fe80::243b:ddac:7a2b:a5b  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:13:b3:3b  txqueuelen 1000  (Ethernet)
        RX packets 5269  bytes 2572740 (2.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1167  bytes 157323 (153.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
(服务端的ip地址)
[root@chy01 ~]# yum install -y nfs-utils rpcbind
[root@chy01 ~]# vim /etc/exports
(nfs的配置文件)
/home/nfstestdir 192.168.212.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
(/home/nfstestdir 需要共享的目录,这个目录后续需要创建,192.168.212.0/24(给192.168.212.0这个网络段共享目录。(rw,sync,all_squash,anonuid=1000,anongid=1000)如此是
[root@chy01 ~]# mkdir /home/nfstestdir
[root@chy01 ~]# chmod 777 /home/nfstestdir
(创建目录并且给777的权限)
[root@chy01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1275/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2240/master         
tcp6       0      0 :::3306                 :::*                    LISTEN      1744/mysqld         
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::22                   :::*                    LISTEN      1275/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2240/master       
(可以查看到rpc服务已经启动)
[root@chy01 ~]# ps aux |grep nfs
root       3502  0.0  0.0 112664   976 pts/0    S+   07:06   0:00 grep --color=auto nfs
(虽然rpc已经启动,但是nfs服务并没有启动)
[root@chy01 ~]# systemctl start nfs
(手动启动nfs)
[root@chy01 ~]# ps aux |grep nfs
root       3550  0.0  0.0      0     0 ?        S<   07:07   0:00 [nfsd4_callbacks]
root       3556  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3557  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3558  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3559  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3560  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3561  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3562  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3563  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3568  0.0  0.0 112664   976 pts/0    S+   07:07   0:00 grep --color=auto nfs
(查看nfs服务)
[root@chy01 ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
(nfs开机启动)

客户端简单配置:

[root@chy ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.212.10  netmask 255.255.255.0  broadcast 192.168.212.255
        inet6 fe80::338e:589c:fa07:65e5  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:70:77:62  txqueuelen 1000  (Ethernet)
        RX packets 8880  bytes 8055224 (7.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1205  bytes 139708 (136.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
(客户端的IP地址)
[root@chy ~]# yum install -y nfs-utils rpcbind
(同样需要安装nfs-utils包)

3nfs配置选项

nfs配置选项

[root@chy01 ~]# cat /etc/exports
/home/nfstestdir 192.168.212.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
rw 读写
 ro 只读
 sync 同步模式,内存数据实时写入磁盘
 async 非同步模式
 no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大
 root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户
 all_squash 客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户
 anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid

挂载客户端

在此就不需要在安装nfs,因为之前就有安装nfs安装包(需要关闭防火墙)
[root@chy ~]# showmount -e 192.168.212.11
Export list for 192.168.212.11:
/home/nfstestdir 192.168.212.0/24
(可以看到共享的目录/home/nfstestdir)
[root@chy ~]# mount -t nfs 192.168.212.11:/home/nfstestdir /mnt/ (挂载时需要加-t
[root@chy ~]# df -h 
文件系统                         容量  已用  可用 已用% 挂载点
/dev/mapper/cl-root              8.8G  5.4G  2.9G   66% /
devtmpfs                         737M     0  737M    0% /dev
tmpfs                            748M     0  748M    0% /dev/shm
tmpfs                            748M  8.6M  739M    2% /run
tmpfs                            748M     0  748M    0% /sys/fs/cgroup
/dev/sda1                        190M  107M   70M   61% /boot
/dev/mapper/cl-var               8.4G  281M  7.7G    4% /var
/dev/mapper/cl-home              497M   26M  472M    6% /home
tmpfs                            150M     0  150M    0% /run/user/0
192.168.212.11:/home/nfstestdir  497M   26M  472M    6% /mnt
[root@chy mnt]# touch chy.111
[root@chy mnt]# ls -l 
总用量 0
-rw-r--r-- 1 mysql mysql 0 824 08:06 chy.111
(在客户端创建一个chy.111)
[root@chy mnt]# id mysql
uid=1000(mysql) gid=1000(mysql) 组=1000(mysql)

在服务端测试

[root@chy01 ~]# ls -l /home/nfstestdir/
总用量 0
-rw-r--r-- 1 mysql mysql 0 824 08:06 chy.111
[root@chy01 ~]# id mysql
uid=1000(mysql) gid=1000(mysql) 组=1000(mysql)

也许有个疑问?为什么授权用户和组是mysql呢?

# cat /etc/exports192.168.212.02410001000100010001000,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
存储 Kubernetes 容器
第十章 集群安装NFS以及NFS卸载客户端和服务端
第十章 集群安装NFS以及NFS卸载客户端和服务端
52 1
|
4天前
|
Linux 网络安全
Centos6.5安装并配置NFS服务
该内容描述了在Linux系统中设置NFS服务的步骤。首先挂载yum源,然后安装NFS服务,并编辑配置文件。接着,重启rpcbind和NFS服务,可能需要重复此过程以解决初始可能出现的问题。此外,关闭防火墙策略,并再次重启服务。最终,根目录被共享,特定IP网段被允许访问。
28 0
|
4天前
|
Ubuntu Linux
在嵌入式系统中加载nfs(包含nfs server 端的安装)
在嵌入式系统中加载nfs(包含nfs server 端的安装)
26 0
|
4天前
|
Ubuntu
百度搜索:蓝易云【Ubuntu 22.04上安装NFS服务教程。】
通过以上步骤,你可以在Ubuntu 22.04上安装和配置NFS服务,实现文件共享。确保在进行任何系统配置更改之前备份重要的数据,并在操作过程中小心谨慎,以免造成不必要的问题。
40 0
|
9月前
|
Ubuntu
百度搜索:蓝易云【Ubuntu最新版本(Ubuntu22.04LTS)安装nfs服务器】
NFS(Network File System)是一种允许不同计算机之间共享文件的网络文件系统。
149 0
|
9月前
|
域名解析 运维 负载均衡
【运维知识进阶篇】Tomcat集群实战之部署zrlog博客(Tomcat服务安装+静态资源挂载NFS+Nginx负载均衡+HTTPS证书+Redis会话保持)
【运维知识进阶篇】Tomcat集群实战之部署zrlog博客(Tomcat服务安装+静态资源挂载NFS+Nginx负载均衡+HTTPS证书+Redis会话保持)
267 1
|
10月前
|
Ubuntu Linux 应用服务中间件
如何在 Ubuntu 18.04 上安装和配置 NFS 服务器
如何在 Ubuntu 18.04 上安装和配置 NFS 服务器
154 0
Centos 7 以下NFS安装与配置
服务器192.168.0.194(非真实服务器IP,仅作为举例,以下IP同是)及服务器192.168.0.211,现资源文件位于192.168.0.194上,现在需要在192.168.0.211上面访问到192.168.0.194上的对应文件,故需要进行服务器间共享文件操作
Centos 7 下NFS安装与配置
服务器192.168.0.194(非真实服务器IP,仅作为举例,以下IP同是)及服务器192.168.0.211,现资源文件位于192.168.0.194上,现在需要在192.168.0.211上面访问到192.168.0.194上的对应文件,故需要进行服务器间共享文件操作。
|
网络协议 Linux 网络安全
Centos6.4 NFS的安装与配置
NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
1307 0