• openstack私有云布署实践【9.3 主从controller单向同步glanceimage目录】


    采用Rysnc单向同步,而不用双方实时同步,原因是在历史的运行过程中,我们发现,有些镜像包太大,当在主用的glance将镜像保存时,并不是一时半会就把镜像保存好,当主用在保存时,备用节点又在实时同步那个正常拷贝保存状态中的不完整主用文件,因此我们会看到在备节点上,它删了又拷的方式,非常损耗机器的硬盘。
     
    所以我们采用Rysnc单向同步, 做这一步时,我已布署好了之前的集群。下面的示例是以办公网测试环境为例,科兴的雷同,只是IP和主机名不同而已
     
    使用root用户运行源服务器controller2的进程,controller1间接使用root用户同步controller2的/home/local/glance/images  ,将文件拉取过来,并保持文件的属性
     
     
    2台controller安装软件,基本这个软件是CentOS发行版提前内置安装好的
    yum install -y rsync*
     
     
    在服务端源controller2上,
    在源服务器controller2定义配置文件规则
     
    vi /etc/rsyncd.conf
    uid = root
    gid = root
    use chroot = no
    read only = yes
    hosts allow=10.40.42.0/255.255.255.0
    hosts deny=*
    max connections = 50
     
     
    log file = /var/log/rsync.log
    pid file = /var/run/rsyncd.pid
     
    [glance]
    path = /home/local/glance/images
    list=yes
    ignore errors
    auth users = root
    comment = This is openstack-controller2-glance-image-file-rysnc source data
    secrets file = /etc/rsyncd.secrets
     
     
     
    保存退出,
    创建一个用于客户端登录认证的密码文件,服务启动,开机自启
    touch /etc/rsyncd.secrets
    chmod 600 /etc/rsyncd.secrets
    vi /etc/rsyncd.secrets
    root:myrsynpass
    保存退出
     
    服务启动,开机自启
    service rsyncd start
    chkconfig rsyncd on
     
    检查一下没有错误LOG产生。默认正常如下
     
     
    在客户端controller1上,
     
     
    上面已提到客户端装有rsync的程序,那我们可以不用启动客户端的服务,直接可以使用它的命令
    先创建一个rsync的密码文件
    touch /etc/rsyncd.secrets
    chmod 600 /etc/rsyncd.secrets
    vi /etc/rsyncd.secrets
    myrsynpass
    保存退出
     
    先使用命令跑一遍,看看效果。
     
    /usr/bin/rsync -rtopglH --progress --delete --bwlimit 90000   root@controller2::glance /home/local/glance/images/ --password-file=/etc/rsyncd.secrets
     
    命令说明
    -rtopglH
    -r, --recursive 对子目录以递归模式处理
    -t, --times 保持文件时间信息
    -o, --owner 保持文件属主信息
    -p, --perms 保持文件权限
    -g, --group 保持文件属组信息
    -l, --links 保留软链结
    -H, --hard-links 保留硬链结
     
    --progress  显示同步过程
    --bwlimit 90000 KBPS  代表80MBtye/S ,拆算带宽就是800Mbps 。由于我们的管理口是1000M的网口,可选预留200M带宽给其它应用通信
    root@controller2::glance   源的rsynce中的glance子项目--跟上面的配置文件对应
    /home/local/glance/images/   目标存放目录
     
    --password-file 密码文件,不加的话,就是要自己手输密码myrsynpass
     
     
     
    确认命令执行效果无问题的话,
    接下来就是在在controller1备份客户机上 写shell脚本,定时执行增量备份
    mkdir /usr/script
    touch  /usr/script/rsyncd.sh
    chmod +x /usr/script/rsyncd.sh
     
    vi /usr/script/rsyncd.sh
     
    rsyncProcess=`ps aux|grep "/usr/bin/rsync" |grep -v grep`
     
    if [ ${#rsyncProcess} -ne 0 ]
     
    then
            echo $(date +%Y-%m-%d_%H:%M:%S) >> /var/log/rsync.log
            echo "`date` Process is already running! DO NOTHING!!"  >> /var/log/rsync.log
     
    else
            /usr/bin/rsync -rtopglH --progress --delete --bwlimit 90000   root@controller2::glance /home/local/glance/images/ --password-file=/etc/rsyncd.secrets 1>>/var/log/rsync.log 2>&1
            echo $(date +%Y-%m-%d_%H:%M:%S) >> /var/log/rsync.log
            echo "Process is not running! RUN rsync glance-file Successfully" >> /var/log/rsync.log
    fi
     
     
    保存退出
    先走了遍脚本有没有问题
    /bin/sh /usr/script/rsyncd.sh
     
    观察一下/var/log/rsync.log是否正常输出,
     
    正常写入定时任务,每天凌晨1点同步一次
    crontab -e
    * 1 * * * /bin/sh /usr/script/rsyncd.sh  >/dev/null 2>&1
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,负责保留追究法律责任的权利。
  • 相关阅读:
    日志
    JAVA字符串类
    JAVA包
    JAVA面向对象
    JAVA数组
    JAVA循环结构
    JAVA程序调试
    JAVA条件判断
    JAVA算术运算符
    JAVA数据类型
  • 原文地址:https://www.cnblogs.com/veniceslove/p/6285976.html
Copyright © 2020-2023  润新知