一、备份行云管家

备份行云管家期间会占用大量的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 "重启行云管家完毕,数据转移成功完成."