标准云网融合解决方案,本次恢复以CloudOS E1138H02为例,故障状况为CloudOS操作系统可用,但由于Docker元数据损坏导致所有容器无法启动,无法正常进入容器备份数据,且现场没有可用的通过安装部署平台进行的CloudOS备份,只能通过在操作系统中备份文件来手动恢复。
· 备份数据
备份以下4个目录下的所有文件
PGSQL(/var/lib/pgsql/data)
Glance(/var/lib/glance)
Param-etcd (/param-etcd.etcd)
所有的yaml文件(/opt/bin/confFile)主要需要计算节点的yaml文件,用于新建RC
使用“tar -zcvpf XXX.tar.gz 文件夹”归档压缩备份,以免出现文件所属和权限变更。
· 重新安装CloudOS服务器
使用相当版本镜像重装CloudOS操作系统,并在安装部署界面完成安装部署(不配置计算节点)
· 恢复Glance
直接将备份的镜像拷贝到重新安装的节点的/var/lib/glance路径下
· 恢复Param-etcd参数容器
a. 将节点的param-etcd服务停掉
systemctl stop param-etcd.service
b. 将备份的参数容器文件拷贝至根目录
c. 主节点修改参数容器启动脚本etcd-param.sh内容(注意添加时上一行的末尾有换行符\)
vim /opt/bin/shell/etcd-param.sh中添加--force-new-cluster
[Service]
Type=notify
EnvirOnmentFile=-/etc/sysconfig/kube-etcd-cluster-param
ExecStart=/opt/bin/etcd \
--name=\${ETCD_NAME} \
--initial-advertise-peer-urls=\${ETCD_INITIAL_ADVERTISE_PEER_URLS} \
--listen-peer-urls=\${ETCD_LISTEN_PEER_URLS} \
--listen-client-urls=\${ETCD_LISTEN_CLIENT_URLS} \
--advertise-client-urls=\${ETCD_ADVERTISE_CLIENT_URLS} \
--initial-cluster-token=\${ETCD_INITIAL_CLUSTER_TOKEN} \
--initial-cluster=\${ETCD_INITIAL_CLUSTER} \
--initial-cluster-state=\${ETCD_INITIAL_CLUSTER_STATE} \
--force-new-cluster
Restart=always
RestartSec=10
d. 执行参数容器启动脚本etcd-param.sh:
sh /opt/bin/shell/etcd-param.sh
· 恢复Postgresql
a. 关停所有pod
for rc in `/opt/bin/kubectl --server 127.0.0.1:8888 get rc |grep -v CONTROLLER | awk -F ' ' '{print $1}'| tr -d '\r'`;do /opt/bin/kubectl --server 127.0.0.1:8888 scale --replicas=0 rc $rc;done
b. 替换/var/lib/pgsql/data下所有文件,注意替换前后的文件权限和所属,如不一致将导致Postgresql容器启动失败
c. 按照顺序启动Postgresql、rabbitmq、其他所有服务
/opt/bin/kubectl --server=127.0.0.1:8888 scale rc postgresqlrc --replicas=1
· 恢复计算节点
a. 将备份的/opt/bin/confFile目录下对应的计算节点的yaml文件拷贝到重装后的CloudOS对应路径下
b. 分别执行命令恢复所有计算节点
/opt/bin/kubectl --server=127.0.0.1:8888 create -f XXXX.yaml
· VCFC插件升级
按照开局指导进行VCFC插件升级操作,并进行容器固化
重装系统后,在替换文件时候注意替换前的文件路径和权限一致,否则会导致恢复后Docker无法启动的问题。例如数据库路径/data下的文件,所属用户为“26”
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作