综合架构-nfs备份服务(网络文件系统)

一、NFS简单概述

NFS 是Network File System 的缩写及网络文件系统。NFS 主要功能是通过局域网络让不同的主机系统之间可以共
享文件或目录。
NFS 系统和Windows 网络共享、网络驱动器类似, 只不过windows 用于局域网, NFS 用于企业集群架构中, 如果是
大型网站, 会用到更复杂的分布式文件系统FastDFS,glusterfs,HDFS

1.1 为什么要使用数据存储共享服务?

实现多台服务器之间数据共享
实现多台服务器之间数据一致

1.2 NFS的应用场景

image
软件
      NFS服务
      分布式存储:GlusterFS、Fastdfs(扩展)

1.3 NFS服务的执行过程或工作流程图

image

1.4 NFS的工作原理图

image

注:RPC服务的端口为111,rsync服务的端口873

image

二、NFS服务操作

2.1 环境准备

1>准备测试机

NFS客户端:web01(外网:10.0.0.7;内网:172.16.1.7)
NFS服务端:nfs01(外网:10.0.0.31;内网:172.16.1.31)

2>涉及软件:

RPC服务:rpcbind(CentOS6 7);portmap(CentOS5)
NFS服务:nfs-utils

3>软件安装

NFS服务端:nfs-utils(NFS服务)、rpcbind(RPC服务)
NFS客户端:nfs-utils(NFS服务)

4>启动服务

NFS服务端:
启动rpcbind:systemctl restart rpcbind.service
查看rpc服务的注册信息:rpcinfo -p
启动nfs:systemctl restart nfs-server.service
用户映射基础:
rpc.ibmap(不管哪个用户进入nfs,都属于nfsnobody,在安装nfs时默认创建了这个用户)

2.2 NFS服务配置

nfs服务端
1>编写NFS配置文件/etc/exports

格式:NFS共享目录 NFS共享客户端地址(参数1,参数2,……)
如:/data 172.16.1.0/24(rw)
注:系统中一定要有这个共享目录,没有创建

2>启动nfs服务

systemctl reload nfs
reload:平滑重启/优雅重启---不中断当前正在处理的请求,只影响新的请求。 注意:尽量不要使用restart,使用之后会卡住90秒

3>检查服务端可以挂载的信息:showmount -e 172.16.1.31
4>本地实测:mount -t nfs 172.16.1.31:/upload/ /mnt
mount参数补充(-t:指定挂载的文件系统类型)

nfs客户端
1>首先在客户端创建挂载目录,如:创建/video
2>将服务端的共享目录临时挂载到/video下

mount -t nfs 172.16.1.31:/upload/ /video

df参数补充(-T:显示文件系统类型,如:df -hT)

[root@web01 ~]# df -hT
Filesystem         Type      Size  Used Avail Use% Mounted on
/dev/sda3          xfs        18G  1.8G   17G  10% /
devtmpfs           devtmpfs  980M     0  980M   0% /dev
tmpfs              tmpfs     991M     0  991M   0% /dev/shm
tmpfs              tmpfs     991M  9.6M  981M   1% /run
tmpfs              tmpfs     991M     0  991M   0% /sys/fs/cgroup
/dev/sda1          xfs       197M  105M   93M  54% /boot
172.16.1.31:/app/w nfs4       18G  1.8G   17G  10% /data/w
tmpfs              tmpfs     199M     0  199M   0% /run/user/0
[root@web01 ~]#

三、NFS权限控制

配置文件中权限/etc/exports
Linux服务端共享目录权限755 nfsnobody

三、NFS排错流程

确保道路通畅
    如:ping  172.16.1.31
rpc服务状态
    如:rpc  -p  172.16.1.31
nfs服务共享信息
    如:showmount -e  172.16.1.31

四、NFS配置文件详情

权限 详细解释
rw* 读写权限
ro 只读权限
root_squash 当NFS 客户端以root 管理员访问时,映射为NFS 服务器的匿名用户(不常用)
no_root_squash 当NFS 客户端以root 管理员访问时,映射为NFS 服务器的root 管理员(不常用)
all_squash 无论NFS 客户端使用什么账户访问,均映射为NFS 服务器的匿名用户(常用)
no_all_squash 无论NFS 客户端使用什么账户访问,都不进行压缩
sync* 同时将数据写入到内存与硬盘中,保证不丢失数据
async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
anonuid* 配置all_squash 使用,指定NFS 的用户UID,必须存在系统
anongid* 配置all_squash 使用,指定NFS 的用户UID,必须存在系统
image

作业练习

实例一:

共享/data目录给10.0.0.0/24整个网段的主机读写(该例将实现把nfs server上的/data目录共享给10.0.0.0/24整个网段的主机,且可读写)

服务端:
[root@nfs01 ~]# cat /etc/exports
/data   10.0.0.0/24(rw)
[root@nfs01 ~]# 
[root@nfs01 ~]# chown nfsnobody.nfsnobody /data
[root@nfs01 ~]# ls -ld /data
drwxr-xr-x 2 nfsnobody nfsnobody 6 May 22 19:30 /data
[root@nfs01 ~]# tree /data
/data
└── oldboy.txt

0 directories, 1 file
[root@nfs01 ~]# 
客户端:
[root@web01 ~]# mkdir /data
[root@web01 ~]# mount -t nfs 10.0.0.31:/data /data
[root@web01 ~]# touch /data/oldboy.txt
[root@web01 ~]# 

实例二:

nfs服务器172.16.1.31
共享下面两个目录
/app/w 要求的权限可读写,同步数据,所有用户都压缩为匿名用户
/app/r 要求的权限为只读,同步数据,所有用户都压缩为匿名用户

[root@nfs01 ~]# vim /etc/exports
/data   10.0.0.0/24(rw)
/app/w   172.16.1.0/24(rw,sync,all_squash)
/app/r   172.16.1.0/24(ro,sync,all_squash)

[root@nfs01 ~]# mkdir -p /app/w /app/r
[root@nfs01 ~]# chown -R nfsnobody.nfsnobody /app/r /app/w
[root@nfs01 ~]# ls -ld /app/r /app/w
drwxr-xr-x 2 nfsnobody nfsnobody 21 May 22 20:33 /app/r
drwxr-xr-x 2 nfsnobody nfsnobody  6 May 22 19:53 /app/w

2 directories, 0 files
[root@nfs01 ~]# 

客户端上面的要求:

backup服务器 把 nfs服务器的/data/r 挂载到 /data/r

[root@backup ~]#  mount -t nfs  172.16.1.31:/app/r /data/r
[root@backup ~]# file /data/r
/data/r: directory
[root@backup ~]# touch /data/r/aaa.txt
touch: cannot touch ‘/data/r/aaa.txt’: Read-only file system
[root@backup ~]# 

web01 服务器 把 nfs服务器的/data/w 挂载到 /data/w

[root@web01 ~]# mount -t nfs 172.16.1.31:/app/w /data/w
[root@web01 ~]# touch /data/w/abc.txt
[root@web01 ~]# ls -ld /data/w/abc.txt
-rw-r--r-- 1 nfsnobody nfsnobody 0 May 22 20:43 /data/w/abc.txt

如何让nfs永久挂载???

1>写入到/etc/rc.local开机自启动文件中
2>追加到/etc/fstab开机自动挂载文件中

[root@backup ~]# tail -1 /etc/fstab
172.16.1.31:/app/r           /data/r           nfs     defaults        0 0
[root@backup ~]# df -h
Filesystem          Size  Used Avail Use% Mounted on
/dev/sda3            18G  1.8G   17G  10% /
devtmpfs            980M     0  980M   0% /dev
tmpfs               991M     0  991M   0% /dev/shm
tmpfs               991M  9.6M  981M   1% /run
tmpfs               991M     0  991M   0% /sys/fs/cgroup
/dev/sda1           197M  105M   93M  54% /boot
172.16.1.31:/app/r   18G  1.8G   17G  10% /data/r
tmpfs               199M     0  199M   0% /run/user/0
[root@backup ~]# 

你可能感兴趣的:(综合架构-nfs备份服务(网络文件系统))