排错思路:

.环境问题
SElinux
firewalld
网络是否能通 .配置问题
所有的故障只会出现在你曾经修改过的文件中
/etc/rsyncd.conf
/etc/rsyncd.password
文件名不匹配
语法问题
权限问题
掘地蜂

引出扩展:
一台Rsync服务端提供备份,并根据客户端提交备份校验,校验结果以邮件的方式通知管理员
一台Rsync客户端自己收集需要备份内容,通过定时任务定期推送至服务端
如果多加一台Rsync客户端,这时我们应该怎么做才能最高效

实现思路:
1.安装rsync
2.将客户端的备份脚本拉过来就可以了

1.NFS基础概述

NFS:Network File System 网络文件系统
通过局域网络让不同的主机系统之间可以共享文件或目录
主要实现Linux系统之间的文件共享(早期)

小文件存储系统:(Moosefs,FastDFS)
大文件存储系统:(glusterfs,HDFS)

文件系统:ext4 xfs

为什么要使用NFS服务器进行数据共享
1.实现多台服务器之间数据共享
2.实现多台服务器之间数据的一致

2.NFS应用场景

场景1:

用户A上传一张图片至Web1服务器
B用户访问该图片时,B用户的访问请求被分发到了Web2上面,结果无法看到A用户上传的图片

场景2:

用户A上传一张图片至Web1服务器,然后web1上传至共享服务器上面
B用户访问该图片时,无论B用户的访问请求被分发到了Web1或Web2上面,都能看到A用户上传的图片

3.NFS实现原理

NFS守护进程
RPC.nfsd
守护进程,管理NFS服务
RPC.mount
管理文件系统 

本地文件操作方式
1.当用户执行mkdir命令,该命令会通过shell解释器翻译给内核,由内核解析完成后驱动硬件,完成相应的操作。

NFS实现原理(需要先了解[程序|进程|线程])

1.用户进程访问NFS客户端,使用不同的函数对数据进行处理
2.NFS客户端通过TCP/IP的方式传递给NFS服务端
3.NFS服务端接收到请求后,辉县调用portmap进程进行端口映射
4.nfsd进程用于判断NFS客户端是否拥有权限连接NFS服务器
5.Rpc.mount进程判断客户端是否有对应的权限进行验证
6.idmap进程实现用户映射和压缩
7.最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,由内核驱动硬件

rpc是一个远程过程调用,那么使用nfs必须有rpc服务
pc过程调用

4.NFS服务实践部署

).环境准备:
角色 外网IP(NAT) 内网IP(LAN) 主机名
Rsync服务端 eth0:10.0.1.51 eth1:172.16.1.51 backup
Rsync客户端 eth0:10.0.1.41 eth1:172.16.1.41 nfs
防火墙、SElinux关闭 ).安装nfs
[root@nfs ~]# yum install -y nfs-utils rpcbind ).配置
主配置文件/etc/exports,默认空
格式:
共享目录的路径 允许访问的NFS客户端(共享权限参数) 共享目录的路径:服务端本地目录路径
允许访问的客户端:ip或域名
网段:172.16.1.0/
主机:172.16.1.41/
域名:*.oldboy.com
共享权限:
参数 参数作用
rw 读写权限 ***
ro 只读权限
root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root用户
all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 ***
sync 同时将数据写入到内存与硬盘中,保证不丢失数据 ***
async 优先将数据保存到内存,然后在写入硬盘,这样效率更高,但可能丢失数据
anonuid 配置all_squash使用,指定NFS的用户UID,必须存在系统 ***
anongid 配置all_squash使用,指定NFS的用户UID,必须存在系统 ***

参考写法:
/data 172.16.1.0/24(rw,sync,all_squash),0.0.0.0/0(ro)
/backup 172.16.1.41/32(rw)
/backup *.oldboyedu.com(rw)

[root@nfs ~]# echo "/data 172.16.1.0/24(rw,sync,all_squash)" > /etc/exports

).创建相关环境
[root@nfs ~]# mkdir /data
[root@nfs ~]# chown -R nfsnobody.nfsnobody /data ).启动服务
[root@nfs ~]# systemctl restart nfs-server rpcbind
[root@nfs ~]# systemctl status nfs-server rpcbind ).验证是否生效
[root@nfs ~]# showmount -e
Export list for nfs:
/data 172.16.1.0/

5.NFS客户端挂载

)安装工具包
[root@backup ~]# yum install -y rpcbind nfs-utils )客户端使用showmount -e查看远程服务器rpc提供的可挂载nfs信息
[root@backup ~]# showmount -e 172.16.1.41
Export list for 172.16.1.41:
/data 172.16.1.0/ 如果本地hosts文件有解析记录,可以使用主机名查询
[root@backup ~]# showmount -e nfs
Export list for nfs:
/data 172.16.1.0/ )在NFS客户端创建一个挂载目录,然后使用mount命令挂载
mkdir /nfsdir
mount 172.16.1.31:/data /nfsdir 挂载前的目录权限
[root@backup ~]# ll -ld /nfsdir/
drwxr-xr-x root root 1月 : /nfsdir/
挂载后的目录权限
[root@backup ~]# mount 172.16.1.41:/data /nfsdir
[root@backup ~]# ll -ld /nfsdir/
drwxr-xr-x nfsnobody nfsnobody 1月 : /nfsdir/

注意:目录的共享权限与本地权限必须全部能读写,才能对目录里面内容进行操作

永久挂载:
chattr +a /etc/fstab
vim /etc/fstab
172.16.1.41:/data /var/www/html nfs defaults
echo "172.16.1.41:/data /var/www/html nfs defaults,_netdev 0 0" >> /etc/fstab #注意用追加输出 [root@web01 html]# cat /etc/fstab
....
#
/dev/mapper/centos-root / xfs defaults
UUID=19ad14dc-26ff-4b14-86e7-c4e2182e820a /boot xfs defaults
/dev/mapper/centos-swap swap swap defaults
172.16.1.41:/data /var/www/html nfs defaults,_netdev 出现网络故障时,强制卸载umount -lf

练习
1).环境准备:
角色 外网IP(NAT) 内网IP(LAN) 主机名
Rsync服务端 eth0:10.0.1.7 eth1:172.16.1.51 web01
Rsync服务端 eth0:10.0.1.8 eth1:172.16.1.51 web02
Rsync客户端 eth0:10.0.1.41 eth1:172.16.1.41 nfs
要求,访问web01,web02的页面是一样的,修改nfs的共享页面内容,两台web一致

服务端:

).安装nfs
[root@nfs ~]# yum install -y nfs-utils rpcbind ).修改配置文件
echo "/data 172.16.1.0/24(rw,sync,all_squash)" > /etc/exports ).创建目录,并修改所属
[root@nfs ~]# mkdir /data
[root@nfs ~]# chown -R nfsnobody.nfsnobody /data ).启动服务
systemctl restart nfs-server rpcbind ).使用showmount命令验证是否生效
[root@nfs ~]# showmount -e
Export list for nfs:
/data 172.16.1.0/

客户端:

.部署apache,并启动apache服务
yum install -y httpd
systemctl start httpd .安装工具包nfs-utils,并启动rpcbind
yum install -y nfs-utils rpcbind
systemctl restart rpcbind .使用showmount -e 查看nfs服务端共享信息
showmount -e 172.16.1.41 .挂载共享目录到网页文档根目录/var/www/html
mount 172.16.1.41:/data /var/www/html .验证
echo "hello wordasdasdas" > index.html
[root@web01 html]# curl 172.16.1.7
hello wordasdasdas
[root@web01 html]# curl 172.16.1.8
hello wordasdasdas

nfs存储(一)的更多相关文章

  1. 烂泥:NFS存储与VSphere配合使用

    本文首发于烂泥行天下. 公司服务器的虚拟化使用的是VM ESXi 5.0,为了更有效的利用服务器的硬盘空间.就把所有的镜像文件存放到另外一台linux服务器上,这样在使用vsphere安装虚拟机时可以 ...

  2. docker volume创建、备份、nfs存储

    docker存储volume #环境 centos7.4 , Docker version 17.12.0-ce docker volume创建.备份.nfs存储 #docker volume 数据存 ...

  3. NFS存储服务

    NFS存储服务笔记======================================================================NFS共享存储是什么: 英文名-Netwo ...

  4. rancher2.1.7安装nfs 存储类

    NFS存储类不建议作大规模存储,块存储建议采用CEPH(独立安装) NFS只作为外接存储与普通NGINX类的配置文件,业务配置文件建议走配置中心. 增加自定义商店 地址为:https://github ...

  5. Rancher2.0中使用外置NFS存储部署Nginx实验

    目录: 1.环境准备工作 1.1 准备好Rancher2.0集群环境 1.2 准备好外部NFS服务器 2.Rancher2.0中使用NFS存储的方法 2.1 在集群中创建持久卷(PV) 2.2 在项目 ...

  6. NFS存储服务及部署

    1 NFS简介 1.1 什么是NFS NFS=Network File System=网络文件系统.主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录.NFS客户端(一般为应用服 ...

  7. nfs 存储服务

    今日内容: NFS 1.什么是nfs? network file system 网络文件系统 nfs共享存储 2.nfs能干什么? nfs 能为 不同主机系统之间 实现 文件的共享 3.为什么要使用n ...

  8. NFS存储迁移至GlusterFS

    NFS存储迁移至GlusterFS 前提条件 为防止脑裂,建议使用最低3台节点制作3复制集的存储卷: 在进行存储迁移前,GluseterFS存储节点需先成为k8s集群中的node节点: 存储切换时请勿 ...

  9. 挂载nfs存储

    查看nfs服务器上提供了哪些nfs目录 showmount -e 172.16.3.8 使用showmount前需要安装nfs-utils包 yum install nfs-utils -y 挂载nf ...

  10. NFS存储服务部署

    第1章 NFS介绍 1.1 NFS服务内容的概述 □ RPC服务知识概念介绍说明,以及RPC服务存在价值(必须理解掌握) □ NFS服务工作原理讲解(必须理解掌握) □ NFS共享文件系统使用原理讲解 ...

随机推荐

  1. SpringCloud学习之Sleuth服务链路跟踪(十二)

    一.为什么需要Spring Cloud Sleuth 微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元.由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很 ...

  2. mysql日期

    查询当前时间 select now() 结果:2017-04-24 18:11:26 格式化当前日期 SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') 结果:2017-04- ...

  3. java课程之团队开发冲刺阶段2.7

    昨日总结: 1.完整实现课前闹钟提醒功能 遇到的困难: 1.没有遇到大的问题,细节地方没有处理好出现了一下小的情况 今天的任务: 1.实现对课程查询的完整实现 当日总结: 1.以前是使用二级联动下拉框 ...

  4. 留学生如何在Presentation中拿高分?

    掐指一算,留学生们最近应该马上遇到Presentation任务.一般来说,这类的任务会占最终成绩的20-30%,对于期末成绩有一定的影响,如果想拿高分,就需要好好的准备. 所以本文算是系列里的第一篇( ...

  5. css 居中布局方案

    position(transform css3  有些浏览器不兼容) <article id="one"> <section id="section&q ...

  6. 【2017西安邀请赛:A】XOR(线段树+线性基)

    前言:虽然已经有很多题解了,但是还是想按自己的理解写一篇. 思路:首先分析题目 一.区间操作 —— 线段树 二.异或操作 —— 线性基 这个两个不难想,关键是下一步的技巧 “或”运算 就是两个数的二进 ...

  7. CTF -攻防世界-misc新手区

    此题flag题目已经告诉格式,答案很简单. 将附件下载后,将光盘挂到虚拟机启动 使用 strings linux|grep flag会找到一个O7avZhikgKgbF/flag.txt然后root下 ...

  8. JavaScript 之 Function

    JavaScript function 语句定义和用法: function 语句用于声明一个函数. 函数声明后,我们可以在需要的时候调用. 在 JavaScript 中,函数是对象,函数也有属性和方法 ...

  9. Baes.css

    这个公共样式还不错 html,body,ul,li,ol,img,a,p,div,form,input,h1,h2,h3,h4.h5,h6{ margin: 0; padding: 0; /*盒模型* ...

  10. chenzl

    大噶好!我是计算机6班的陈志良.我是一名代码小白.大一才刚接触代码,我发现我对编程兴趣挺大.特别是每周的代码作业,特别具有挑战性,每当我AC一道,我内心都会有自豪感和兴奋感,尽管过程有挫折,但我仍然坚 ...