一、备份行云管家
备份行云管家期间会占用大量的CPU,建议在无人使用的时间进行备份。登录行云管家管理控制台,如下图,进入“系统设置”下的“备份与还原”菜单;
1.1、手动备份行云管家
点击“创建备份”可以选择“备份内容”,其中“网盘文件及审计日志”为可选项;
点击“开始备份”后即可备份行云管家,备份时长主要由网盘文件及审计日志所占用磁盘的大小来决定,如果只是想快速备份行云管家的“核心配置文件”、“业务数据”以及“监控数据”,那么可以不勾选“网盘文件及审计日志”;
1.2、自动备份行云管家
点击“备份策略”可以设置定期备份行云管家的策略;
1.3、执行脚本备份行云管家
登录行云管家门户服务器,执行如下命令即可备份行云管家
用法1:/opt/cloudbility/bin/backup.sh /opt/guanjiabackup/
备份文件将会保存至/opt/guanjiabackup
目录。
用法2:/opt/cloudbility/bin/backup.sh /opt/guanjiabackup/ 2
备份文件将会保存至/opt/guanjiabackup
目录,并且将清理 /opt/guanjiabackup
目录,清理后仅保留最近的两份备份文件。
用法3:/opt/cloudbility/bin/backup.sh /opt/guanjiabackup/ nodiskdata
备份文件将会保存至/opt/guanjiabackup
目录,并且将清理/opt/guanjiabackup
目录,不备份网盘数据。
用法4:/opt/cloudbility/bin/backup.sh /opt/guanjiabackup/ nodiskdata 2
备份文件将会保存至/opt/guanjiabackup
目录,并且将清理/opt/guanjiabackup
目录,不备份网盘数据,清理后仅保留最近的两份备份文件。
二、还原行云管家
2.1、在管理控制台页面还原
登录行云管家管理控制台,如下图,进入“系统设置”下的“备份与还原”菜单;
在“备份文件”下我们可以选择各个时间的备份文件来进行还原;
2.2、执行脚本还原行云管家
登录行云管家门户服务器,执行如下命令即可备份行云管家
用法:/opt/cloudbility/bin/restore.sh /opt/guanjiabackup/guanjiabackupxxx.tar.gz
以/opt/guanjiabackup目录下的备份文件guanjiabackupxxx.tar.gz来恢复行云管家。
三、私有部署数据迁移
3.1、单机环境数据迁移
- 注意:迁移完成后,请检查所有功能是否使用正常,并且保留一段时间后再删除旧环境(建议保留时间长一些);
(1)新环境门户IP、域名、端口是否会变更
如果新环境使用的行云管家门户内外网IP、域名、端口有变更,请登录旧环境行云管家管理控制台网页,把新的门户IP、域名、端口添加进去(旧的门户IP、域名请暂时保留不要删除),设置方式请参考行云管家门户访问方式变更指引
如果新环境使用的行云管家门户内外网IP、域名、端口没有变更,请直接跳过此步骤。
(2)清理旧环境网盘数据
登录行云管家门户网页中的网盘菜单页面,清理“团队网盘”以及主机文件中所有主机网盘中不需要保留的文件,因为备份行云管家过程中会备份所有网盘文件,通过清理来避免备份出来的备份文件过大。
(3)停止旧环境行云管家服务:
登录旧环境行云管家门户服务器,执行/opt/cloudbility/bin/stop.sh
(4)旧环境备份:
登录旧环境行云管家门户服务器,执行/opt/cloudbility/bin/backup.sh /opt/guanjiabackup/
备份文件将会保存至/opt/guanjiabackup
目录。
(5)部署新环境
在新环境部署同版本行云管家(必须是同版本的),部署指引请参考行云管家部署指引
-
新环境系统要求:原生纯净版CentOS7(7.4-7.9)的ISO,安装时可以是最小安装,不要安装其他应用服务(不可以和其他软件应用服务装一起);
-
分区要求:1024M挂载到 /boot 分区、4096M作为交换 Swap 分区、剩余所有空间(至少500G)挂载到根“/”分区
(6)新环境管理控制台初始化
安装完成后进入行云管家门户管理控制台(一般是IP/console)进行初始化设置(也就是进入到控制台里面就行了,必须要初始化);
(7)更换license许可
登录门户管理控制台,“许可管理”菜单下,导出服务器标识,再通过行云管家商务获取正式license许可进行更换(注意,license许可是zip压缩包,请不要解压);
(8)登录行云管家门户网站,检查网盘等页面是否正常即可正常使用;
3.2、单机数据迁移HA双击模式
- 注意:迁移完成后,请检查所有功能是否使用正常,并且保留一段时间后再删除旧环境(建议保留时间长一些);
(1)新环境门户IP、域名、端口是否会变更
如果新环境使用的行云管家门户内外网IP、域名、端口有变更,请登录旧环境行云管家管理控制台网页,把新的门户IP、域名、端口添加进去(旧的门户IP、域名请暂时保留不要删除),设置方式请参考行云管家门户访问方式变更指引
如果新环境使用的行云管家门户内外网IP、域名、端口没有变更,请直接跳过此步骤。
(2)清理旧环境网盘数据
登录行云管家门户网页中的网盘菜单页面,清理“团队网盘”以及主机文件中所有主机网盘中不需要保留的文件,因为备份行云管家过程中会备份所有网盘文件,通过清理来避免备份出来的备份文件过大。
(3)停止旧环境行云管家服务:
登录旧环境行云管家门户服务器,执行/opt/cloudbility/bin/stop.sh
(4)旧环境备份:
登录旧环境行云管家门户服务器,执行/opt/cloudbility/bin/backup.sh /opt/guanjiabackup/
备份文件将会保存至/opt/guanjiabackup
目录。
(5)部署新环境
在新环境部署同版本行云管家(必须是同版本的),部署指引请参考行云管家部署指引
(6)新环境管理控制台初始化
安装完成后进入行云管家门户管理控制台(一般是IP/console)进行初始化设置(也就是进入到控制台里面就行了,必须要初始化);
(7)更换license许可
HA模式下,总共有四份license许可,其中行云管家license许可两份,HAlicense许可两份。
- 行云管家license许可更换:
登录门户管理控制台,“许可管理”菜单下,导出服务器标识,再通过行云管家商务获取正式license许可进行更换(注意,license许可是zip压缩包,请不要解压)。请参考HA切换节点指引进入HA网页,切换到另一个节点,并重复上述操作进入管理控制台网页替换license许可。
- HAlicense许可更换:
请参考HAlicense许可更换指引,把两个HAlicense许可分别放置在两台行云管家服务器中。
(8)登录行云管家门户网站,检查各功能页面是否正常即可正式使用;
四、数据盘迁移
4.1、根分区数据迁移至数据盘(未分区)
此方式适用于未分区未创建文件系统的新磁盘,可以通过fdisk -l
以及df -h
来查看该磁盘是否分区及是否有创建文件系统;
(1)进入行云管家门户服务器,在/opt
目录下执行vi movedata.sh
,然后把下述脚本复制进去并保存。
(2)然后执行命令对该脚本进行授权chmod 775 movedata.sh
(3)执行命令进行迁移/opt/movedata.sh /dev/xxx
(通过fdisk -l
以及df -h
可以查看新磁盘的路径,例如在/dev/xxx
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | #!/bin/bash if [[ $# != 1 ]] then echo "参数错误!" echo "请以以下方式执行脚本." echo "$0 /dev/vdb --表示要将数据移到设备文件名为 /dev/vdb 的数据盘." exit -1; fi STORAGE_NAME=$1 rpm -qa |grep lvm2 > /dev/null 2>&1 if [[ $? -ne 0 ]] then echo "当前服务器未安装LVM组件,请执行 yum install lvm2 安装LVM。然后再执行本脚本进行数据迁移。" exit -1; fi ls "${STORAGE_NAME}" > /dev/null 2>&1 if [[ 0 -ne $? ]] then echo "存储设备 ${STORAGE_NAME} 不存在,无法执行操作." exit -1; fi echo -n "注意:执行本操作后,数据盘 ${STORAGE_NAME} 将会被重新分区并格式化,其上原有数据将会丢失。是否继续执行操作? [Y/N]:" read CONFIRM if [[ "Y" != ${CONFIRM} ]] && [[ "y" != ${CONFIRM} ]] then echo "操作退出." exit -1; fi #处理抽出product.host.id及product.openapi.access-key,license.xml移到/opt/cloudbility/conf/ext目录 echo "正在移动本地license等文件..." mkdir -p /etc/cloudguanjia_ext mv /opt/cloudbility/conf/ext/* /etc/cloudguanjia_ext/ rm -rf /opt/cloudbility/conf/ext ln -s /etc/cloudguanjia_ext /opt/cloudbility/conf/ext echo "移动本地license等文件完成" echo "正在对 ${STORAGE_NAME} 进行重新分区并格式化..." parted --script ${STORAGE_NAME} "mklabel gpt" parted --script ${STORAGE_NAME} "mkpart primary 0% 100%" parted --script ${STORAGE_NAME} "set 1 lvm on" pvcreate ${STORAGE_NAME}1 vgcreate vg_gj ${STORAGE_NAME}1 lvcreate -l 100%FREE -n lv_cloudbility vg_gj mkfs.ext4 /dev/vg_gj/lv_cloudbility echo "对 ${STORAGE_NAME} 进行重新分区并格式化完成" mkdir -p /cloudbility_data mount /dev/vg_gj/lv_cloudbility /cloudbility_data echo "/dev/vg_gj/lv_cloudbility /cloudbility_data ext4 defaults 0 0" >> /etc/fstab mkdir -p /cloudbility_data/cloudbility mkdir -p /cloudbility_data/mysql mkdir -p /cloudbility_data/mongo mkdir -p /cloudbility_data/redis mkdir -p /cloudbility_data/influxdb echo "正在停止行云管家相关服务..." /opt/cloudbility/bin/stop.sh systemctl stop mysqld systemctl stop mongod systemctl stop redis systemctl stop influxdb echo "停止行云管家相关服务完成" echo "正在转移/opt/cloudbility/目录..." mv -f /opt/cloudbility/{.*,*} /cloudbility_data/cloudbility/ > /dev/null 2>&1 rm -rf /opt/cloudbility ln -s /cloudbility_data/cloudbility /opt/cloudbility echo "转移/opt/cloudbility/目录完成" echo "正在转移MySQL数据目录..." mv -f /var/lib/mysql/{.*,*} /cloudbility_data/mysql/ > /dev/null 2>&1 chown -R mysql:mysql /cloudbility_data/mysql rm -rf /var/lib/mysql ln -s /cloudbility_data/mysql /var/lib/mysql echo "转移MySQL数据目录完成" echo "正在转移Mongo数据目录..." mv -f /var/lib/mongo/{.*,*} /cloudbility_data/mongo/ > /dev/null 2>&1 chown -R mongod:mongod /cloudbility_data/mongo rm -rf /var/lib/mongo ln -s /cloudbility_data/mongo /var/lib/mongo echo "转移Mongo数据目录完成" echo "正在转移Redis数据目录..." mv -f /var/lib/redis/{.*,*} /cloudbility_data/redis/ > /dev/null 2>&1 chown -R redis:redis /cloudbility_data/redis rm -rf /var/lib/redis ln -s /cloudbility_data/redis /var/lib/redis echo "转移Redis数据目录完成" echo "正在转移InfluxDB数据目录..." mv -f /var/lib/influxdb/{.*,*} /cloudbility_data/influxdb/ > /dev/null 2>&1 chown -R influxdb:influxdb /cloudbility_data/influxdb rm -rf /var/lib/influxdb ln -s /cloudbility_data/influxdb /var/lib/influxdb echo "转移InfluxDB数据目录完成" echo "正在重新启动行云管家相关服务..." systemctl start mysqld systemctl start mongod systemctl start influxdb systemctl start redis /opt/cloudbility/bin/start.sh echo "重启行云管家完毕,数据转移成功完成." |
4.2、根分区数据迁移至数据盘(已分区)
此方式适用于已分区的新磁盘,可以通过fdisk -l
以及df -h
来查看该磁盘是否分区及是否有创建文件系统;
(1)进入行云管家门户服务器,在/opt
目录下执行vi movedata.sh
,然后把下述脚本复制进去并保存。
(2)然后执行命令对该脚本进行授权chmod 775 movedata.sh
(3)执行命令进行迁移/opt/movedata.sh /dev/xxx
(假设通过fdisk -l
以及df -h
查看到新磁盘已分配给/home,并且/home对应/dev/xxx)
- 注意:如果是其他目录例如/app,那么在下述脚本里把两个地方的/home改为/app就行了,并且上述执行的命令改为
/opt/movedata.sh /dev/app对应的位置
;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #!/bin/bash #处理抽出product.host.id及product.openapi.access-key,license.xml移到/opt/cloudbility/conf/ext目录 echo "正在移动本地license等文件..." mkdir -p /etc/cloudguanjia_ext mv /opt/cloudbility/conf/ext/* /etc/cloudguanjia_ext/ rm -rf /opt/cloudbility/conf/ext ln -s /etc/cloudguanjia_ext /opt/cloudbility/conf/ext echo "移动本地license等文件完成" mkdir -p /home/cloudbility_data ln -s /home/cloudbility_data /cloudbility_data mkdir -p /cloudbility_data/cloudbility mkdir -p /cloudbility_data/mysql mkdir -p /cloudbility_data/mongo mkdir -p /cloudbility_data/redis mkdir -p /cloudbility_data/influxdb echo "正在停止行云管家相关服务..." /opt/cloudbility/bin/stop.sh systemctl stop mysqld systemctl stop mongod systemctl stop redis systemctl stop influxdb echo "停止行云管家相关服务完成" echo "正在转移/opt/cloudbility/目录..." mv -f /opt/cloudbility/{.*,*} /cloudbility_data/cloudbility/ > /dev/null 2>&1 rm -rf /opt/cloudbility ln -s /cloudbility_data/cloudbility /opt/cloudbility echo "转移/opt/cloudbility/目录完成" echo "正在转移MySQL数据目录..." mv -f /var/lib/mysql/{.*,*} /cloudbility_data/mysql/ > /dev/null 2>&1 chown -R mysql:mysql /cloudbility_data/mysql rm -rf /var/lib/mysql ln -s /cloudbility_data/mysql /var/lib/mysql echo "转移MySQL数据目录完成" echo "正在转移Mongo数据目录..." mv -f /var/lib/mongo/{.*,*} /cloudbility_data/mongo/ > /dev/null 2>&1 chown -R mongod:mongod /cloudbility_data/mongo rm -rf /var/lib/mongo ln -s /cloudbility_data/mongo /var/lib/mongo echo "转移Mongo数据目录完成" echo "正在转移Redis数据目录..." mv -f /var/lib/redis/{.*,*} /cloudbility_data/redis/ > /dev/null 2>&1 chown -R redis:redis /cloudbility_data/redis rm -rf /var/lib/redis ln -s /cloudbility_data/redis /var/lib/redis echo "转移Redis数据目录完成" echo "正在转移InfluxDB数据目录..." mv -f /var/lib/influxdb/{.*,*} /cloudbility_data/influxdb/ > /dev/null 2>&1 chown -R influxdb:influxdb /cloudbility_data/influxdb rm -rf /var/lib/influxdb ln -s /cloudbility_data/influxdb /var/lib/influxdb echo "转移InfluxDB数据目录完成" echo "正在重新启动行云管家相关服务..." systemctl start mysqld systemctl start mongod systemctl start influxdb systemctl start redis /opt/cloudbility/bin/start.sh echo "重启行云管家完毕,数据转移成功完成." |