GIS云套件

GIS云套件迁移

该篇介绍如何将旧GIS云套件中服务实例、服务节点、文件管理以及存储资源池的数据迁移到新GIS云套件站点。

新环境准备

  • 新环境各产品许可版本不低于旧环境,且拥有旧环境许可所有的功能模块。
  • 新环境的GIS云套件为全新且干净的环境。如果新环境的NFS目录已有数据,请先清空。

迁移服务实例、服务节点和文件管理数据

迁移Consul数据

  1. 获取旧环境consul-server-{index}的NFS挂载目录(consul-server集群默认有三个节点,涉及三个目录下数据的迁移)。

    在旧环境Kubernetes Master节点中执行如下命令,获取consul-server-{index}的NFS挂载目录路径:

    kubectl get pvc -n {ns} | grep consul-server-{index} | awk '{print $3}' | xargs kubectl describe pv | grep Path

    注意:

    1. 命令中的{ns}用实际命名空间名称替换。
    2. 由于涉及三个目录的迁移,以上命令需执行三次,执行时{index}分别替换为0、1、2。
  2. 将步骤1中的三个NFS挂载目录下的数据分别拷贝至新环境consul-server-{index}的NFS挂载目录中(可参照步骤1中的命令查看新环境的NFS挂载目录)。

迁移文件管理数据

  1. 获取旧环境gisapplication-data的NFS挂载目录。

    在旧环境Kubernetes Master节点中执行如下命令,获取gisapplication-data的NFS挂载目录路径:

    kubectl get pvc -n {ns} | grep gisapplication-data | awk '{print $3}' | xargs kubectl describe pv | grep Path

    注意:
    命令中的{ns}用实际命名空间名称替换。

  2. 将步骤1中的NFS挂载目录下的数据拷贝至新环境gisapplication-data的NFS挂载目录中(可参照步骤1中的命令查看新环境的NFS挂载目录)。

迁移业务数据

  1. 获取旧环境ispeco-mysql-data的NFS挂载目录。

    在旧环境Kubernetes Master节点中执行如下命令,获取ispeco-mysql-data的NFS挂载目录路径:

    kubectl get pvc -n {ns} | grep ispeco-mysql-data | awk '{print $3}' | xargs kubectl describe pv | grep Path

    注意:
    命令中的{ns}用实际命名空间名称替换。

  2. 将步骤1中的NFS挂载目录下的数据拷贝至新环境ispeco-mysql-data的NFS挂载目录中(可参照步骤1中的命令查看新环境的NFS挂载目录)。

重启相关服务

重启consul-server、ispeco-dashboard-api和ispeco-mysql服务。

备注:
如果重启consul-server时遇到权限相关错误,请在新环境中consul-server-{index}的NFS挂载目录下分别执行命令chmod 777 -R proxy/ raft/ serf/,再重启consul-server即可。

完成以上步骤,服务实例、服务节点、文件管理数据迁移成功,可在新站点中正常使用。

迁移存储资源池

迁移存储资源池需先完成服务实例与服务节点的迁移,且相应服务的节点数(副本数)在新旧站点中保持一致(即多个节点时,{index}的数量与数字保持一致)。

目前只支持迁移存储资源池中的HBase与HDFS目录。

迁移HBase

迁移hbase-namenode数据

  1. 获取旧环境hbase-namenode的NFS挂载目录。

    在旧环境Kubernetes Master节点中执行如下命令,获取hbase-namenode的NFS挂载目录路径:

    kubectl get pvc -n {ns} | grep hbase-namenode | awk '{print $3}' | xargs kubectl describe pv | grep Path

    备注:
    上述命令中的{ns}用实际命名空间名称替换。

  2. 将步骤1中的NFS挂载目录下的数据拷贝至新环境hbase-namenode的NFS挂载目录中(可参照步骤1中的命令查看新环境的NFS挂载目录)。

迁移hbase-datanode数据

  1. 获取旧环境datanode-volume-hbase-datanode-{index}的NFS挂载目录。

    在旧环境Kubernetes Master节点中执行如下命令,获取datanode-volume-hbase-datanode-{index}的NFS挂载目录路径:

    kubectl get pvc -n {ns} | grep datanode-volume-hbase-datanode-{index} | awk '{print $3}' | xargs kubectl describe pv | grep Path

    注意:

    1. 命令中的{ns}用实际命名空间名称替换。
    2. 在涉及多个目录迁移的情况下,以上命令需执行多次,执行时{index}分别替换为0、1、2、…、N-1。
  2. 将步骤1中的NFS挂载目录下的数据拷贝至新环境datanode-volume-hbase-datanode-{index}的NFS挂载目录中(可参照步骤1中的命令查看新环境的NFS挂载目录)。

迁移hbase-regionserver数据

  1. 获取旧环境hbase-regionserver-data-volume-hbase-regionserver-{index}的NFS挂载目录。

    在旧环境Kubernetes Master节点中执行如下命令,获取hbase-regionserver-data-volume-hbase-regionserver-{index}的NFS挂载目录路径:

    kubectl get pvc -n {ns} | grep hbase-regionserver-data-volume-hbase-regionserver-{index} | awk '{print $3}' | xargs kubectl describe pv | grep Path

    注意:

    1. 命令中的{ns}用实际命名空间名称替换。
    2. 在涉及多个目录迁移的情况下,以上命令需执行多次,执行时{index}分别替换为0、1、2、…、N-1。
  2. 将步骤1中的hbase-regionserver-data-volume-hbase-regionserver-0 NFS挂载目录下的数据拷贝至新环境hbase-regionserver-data-volume-hbase-regionserver-0的NFS挂载目录中(可参照步骤1中的命令查看新环境的NFS挂载目录)。

迁移hbase-master数据

  1. 获取旧环境hbase-master-config的NFS挂载目录。

    在旧环境Kubernetes Master节点中执行如下命令,获取hbase-master-config的NFS挂载目录路径:

    kubectl get pvc -n {ns} | grep hbase-master-config | awk '{print $3}' | xargs kubectl describe pv | grep Path

    备注:
    上述命令中的{ns}用实际命名空间名称替换。

  2. 将步骤1中的NFS挂载目录下的数据拷贝至新环境hbase-master-config的NFS挂载目录中(可参照步骤1中的命令查看新环境的NFS挂载目录)。

重启相关服务

重启hbase-namenode、hbase-datanode、hbase-regionserver、hbase-master和iserver-datacatalog服务。

完以上步骤,HBase迁移成功,可在新站点中正常使用。

迁移HDFS目录

迁移hdfs-namenode数据

  1. 获取旧环境hdfs-namenode的NFS挂载目录。

    在旧环境Kubernetes Master节点中执行如下命令,获取hdfs-namenode的NFS挂载目录路径:

    kubectl get pvc -n {ns} | grep hdfs-namenode | awk '{print $3}' | xargs kubectl describe pv | grep Path

    备注:
    上述命令中的{ns}用实际命名空间名称替换。

  2. 将步骤1中的NFS挂载目录下的数据拷贝至新环境hdfs-namenode的NFS挂载目录中(可参照步骤1中的命令查看新环境的NFS挂载目录)。

迁移hdfs-datanode数据

  1. 获取旧环境hdfs-datanode的NFS挂载目录。

    在旧环境Kubernetes Master节点中执行如下命令,获取hdfs-datanode的NFS挂载目录路径:

    kubectl get pvc -n {ns} | grep hdfs-datanode | awk '{print $3}' | xargs kubectl describe pv | grep Path

    备注:
    上述命令中的{ns}用实际命名空间名称替换。

  2. 将步骤1中的NFS挂载目录下的数据拷贝至新环境hdfs-datanode的NFS挂载目录中(可参照步骤1中的命令查看新环境的NFS挂载目录)。

重启相关服务

重启hdfs-namenode、hdfs-datanode和iserver-datacatalog服务。

完成以上步骤,HDFS目录迁移成功,可在新站点中正常使用。