集群第一周搭建服务总结

环境: backup nfs01 web01 web02(系统版本为CentOS7.6)
backup 对其他三台进行全网备份,并校验备份文件内容,且发送邮件
nfs 共享目录(静态存储共享) nfs 和backup 实施实时同步备份

1. 准备环境

  准备四台虚拟机。
  需要使用两张网卡:
    外网为10.0.0.0/24网段。(IP自定义)
    内网为172.16.1.0/16网段。(IP自定义)
  主机名分别修改为backup nfs01 web01 web02

2. 各个服务器需要服务的安装

服务 backup nfs01 web01 web02 作用
rsync 有推拉功能,实现定时备份
nfs-utils 实现服务器中目录共享
rpcbind 双方rpc服务的通信获取NFS的端口
sersync 实现实时备份

表格中"●"为需要安装"○"为不需要安装
sersync下载地址,放置在我的云盘中:链接:https://pan.baidu.com/s/1jyjPuFBkeJgvlcV-5EHJ8A 提取码:970q
  下载之后放进nfs的规范目录下/server/tools/下,进行解压
  解压之后移动到/下

3. backup对其他三台进行全网备份

服务端配置:
  1)编辑/etc/rsync.conf 文件,提前备份

uid = rsync
gid = rsync
use chroot = no
fake super = yes
max connections = 200
timeout = 600 
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
auth users = rsync_backup
secrets file = /etc/rsync.password
[data]
path = /data/

创建data模块(上文脚本)
 2)创建rsync用户 因为/etc/rsync.conf文件指定了uid,giu需要
 3)创建模块需要的目录,并给与目录与文件中相同的uid,gid
 4)创建密码文件,在/etc/rsync.password ,给与文件600权限,只有属主可以读取
 5)在密码文件中写入————用户名:密码(破折号后为文本内容)
 6)重启rsync服务

客户端配置:
 1)配置密码文件,与服务端相同的位置
 2)在密码文件中写入————服务端配置的密码(破折号后为文本内容)
  可以再环境变量/etc/bashrc 中添加一行————export 大写的服务器端配置的用户名=服务端配置的密码

配置完成后验证
 使用rsync命令推送文件,查看是否成功。
 rsync -avz 本地目录 服务器端配置的用户名@服务端IP地址::服务端配置的模块名 --password-file=/etc/rsync.password

4. 并校验备份文件内容,且发送邮件

 编写脚本执行定时任务,定是推送需要目录,并进行验证

客户端推送
 在规范目录/server/scripts/下创建脚本文件(文件名自定义),编辑脚本文件

#!/bin/bash
HOSTNAME=`hostname`   
export RSYNC_PASSWORD=123456            
mkdir -p /data/$HOSTNAME
#打包本地文件
cd / &&
tar zcf /data/$HOSTNAME/$(date +%F).tar.gz  server/scripts &>/dev/null
#给打包的文件加指纹
find /data/$HOSTNAME/ -type f -name "*$(date +%F).tar.gz" |xargs md5sum  >/data/$HOSTNAME/$(date +%F).flag
#推送目录到服务端
rsync -az /data/$HOSTNAME/  [email protected]::data/$HOSTNAME
#删除7天之前的文件
find /data/$HOSTNAME -type f  -mtime +7 -name "*.tar.gz" |xargs rm -f

 编写脚本时需要注意:定时任务中可能不调用环境变量,需要在文件中重新定义密码
 完成后在服务端验证,是否收到推送的文件

服务端验证
 在规范目录/server/scripts/下创建脚本文件(文件名自定义),编辑脚本文件

#!/bin/bash
#删除7天前的备份文件
find /data -type f -name "*.tar.gz" -mtime +7 |xargs rm -f
#验证发送的文件是否收到
find /data -type f -name "$(date +%F).flag" |xargs md5sum -c >/var/log/$(date +%F).txt
#邮箱发送
mail -s "$(date +%F)backup tuisongyanzheng" *********@qq.com 

 手动执行脚本验证是否成功

脚本完成后邮件可能会发送失败,原因:
 1)邮件服务未开启
 启动邮件服务
 2)需要邮箱的授权码
 邮箱授权码,通过自己所使用邮箱,设置下面账户中开启邮箱各种服务,会生成一个授权码。
 在脚本发送邮件的命令中加入授权码或者
 在/etc/mail.rc中尾行添加

set from=邮箱地址
set smtp=所属邮箱的地址
set smtp-auth-user=邮箱地址
set smtp-auth-password=授权码
set smtp-auth=login

把写好的脚本都加入定时任务按照需求进行执行

5. nfs 共享目录(静态存储共享)

服务端配置
 1)先开启rpcbind服务,之后开启nfs服务(顺序不可颠倒),都设置为开机自启动
 2)使用rpcinfo 验证查看是否生成的注册表
 3)编辑nfs的配置文件/etc/exports————共享目录 客户端的IP网段/子网掩码(权限) (括号与网段之间不能有空格)
 4)改变共享目录的属主属组为nfsnobody
 重启nfs服务

客户端配置
 1)客户端开启rpcbind服务
 2)进行共享目录的挂载:
 mount -t nfs 服务端IP:服务端共享目录 挂载点
 3)验证临时挂载是否生效 df -h查看是否挂载上
 4)在开机自动挂载文件中永久挂载/etc/fstab
 服务端IP:服务端共享目录 挂载点 nfs defaults 0 0
 永久挂载需要nfs开启时才会实现,否则客户端的所有服务器开机无法启动
 需要在永久挂载中defaults后面加soft或者hsrd,intr.就可以延迟启动(参数之间以","隔开)
 5)安全加优化的挂载方式如下:
 mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=131072,wsize=131072 服务端IP:服务端共享目录 挂载点
 6)深入挂载
 在服务端和客户端创建相同uid,gid的用户
 在服务端改变共享目录的属主属组,与之前创建的用户名相同
 实现其他匿名用户查看 ,如果只是更改服务端,客户端看到的文件都只有服务端属主属组的uid和gid,而不显示是什么用户

6. nfs 和backup 实时同步备份

 需要nfs01 与backup之间实现实时共享
 上文已经进行了手动推送
 1)配置/application/sersync/conf/confxml.xml
 修改需要的配置
 2)执行命令 /application/sersync/bin/sersync -d

项目完成,在出现各种报错,一般是因为各种小细节处理有问题

你可能感兴趣的:(集群第一周搭建服务总结)