{"componentChunkName":"component---src-templates-microservices-js","path":"/en/microservices/SiteMigration/","result":{"data":{"markdownRemark":{"html":"<h2 id=\"gis-cloud-suite-migration\"><a href=\"#gis-cloud-suite-migration\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>GIS Cloud Suite Migration</h2>\n<p>The content is going to introduce how to migrate the data of Service Instance, Service Node, File Manager, and Storage Resources from a GIS Cloud Suite to another GIS Cloud Suite.</p>\n<h3 id=\"new-environment-preparation\"><a href=\"#new-environment-preparation\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>New Environment Preparation</h3>\n<ul>\n<li>The licensed version of each product in the new environment should be higher than the licensed version in old environment. The license in new environment has all the modules of the license in old environment.</li>\n<li>GIS Cloud Suite in the new environment should be totally new created and clean. If the NFS in new environment already has data, please delete the data first.</li>\n</ul>\n<h3 id=\"migrate-service-instance-service-node-and-file-manager\"><a href=\"#migrate-service-instance-service-node-and-file-manager\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Migrate Service Instance, Service Node, and File Manager</h3>\n<h4 id=\"migrate-consul-data\"><a href=\"#migrate-consul-data\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Migrate Consul Data</h4>\n<ol>\n<li>\n<p>Gets the NFS mounting directories of ‘consul-server-{index}’ from old environment(The consul-servcer cluster has three nodes by default, please migrates the data from three directories).</p>\n<p>Execute the following command in Kubernetes Master machine of the old environment to get the paths of NFS mounting directory of ‘consul-server-{index}‘:</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl get pvc -n {ns} | grep consul-server-{index} | awk &#39;{print $3}&#39; | xargs kubectl describe pv | grep Path</code></pre></div>\n<blockquote>\n<p>Notes:</p>\n<ol>\n<li>Replace <code class=\"gatsby-code-text\">{ns}</code> in the command by the name of your namespace.</li>\n<li>Execute the command three times to get three paths of the directories, replace <code class=\"gatsby-code-text\">{index}</code> in the command by 0, 1, 2 each time.</li>\n</ol>\n</blockquote>\n</li>\n<li>Copy the data from the three directories in step 1, and paste to the three corresponding directories of the new environment(refer to the command in step 1 to get the paths of NFS mounting directory of ‘consul-server-{index}’ in the new environment).</li>\n</ol>\n<h4 id=\"migrate-file-manager-data\"><a href=\"#migrate-file-manager-data\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Migrate File Manager Data</h4>\n<ol>\n<li>\n<p>Gets the NFS mounting directory of ‘gisapplication-data’ from old environment.</p>\n<p>Execute the following command in Kubernetes Master machine of the old environment to get the path of NFS mounting directory of ‘gisapplication-data’:</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl get pvc -n {ns} | grep gisapplication-data | awk &#39;{print $3}&#39; | xargs kubectl describe pv | grep Path</code></pre></div>\n<blockquote>\n<p>Notes:  </p>\n<p>Replace <code class=\"gatsby-code-text\">{ns}</code> in the command by the name of your namespace.</p>\n</blockquote>\n</li>\n<li>Copy the data from the directory in step 1, and paste to the corresponding directory of the new environment(refer to the command in step 1 to get the path of NFS mounting directory of ‘gisapplication-data’ in the new environment).</li>\n</ol>\n<h4 id=\"migrate-industry-data\"><a href=\"#migrate-industry-data\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Migrate Industry Data</h4>\n<ol>\n<li>\n<p>Gets the NFS mounting directory of ‘ispeco-mysql-data’ from old environment.</p>\n<p>Execute the following command in Kubernetes Master machine of the old environment to get the path of NFS mounting directory of ‘ispeco-mysql-data’:</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl get pvc -n {ns} | grep ispeco-mysql-data | awk &#39;{print $3}&#39; | xargs kubectl describe pv | grep Path</code></pre></div>\n<blockquote>\n<p>Notes:  </p>\n<p>Replace <code class=\"gatsby-code-text\">{ns}</code> in the command by the name of your namespace.</p>\n</blockquote>\n</li>\n<li>Copy the data from the directory in step 1, and paste to the corresponding directory of the new environment(refer to the command in step 1 to get the path of NFS mounting directory of ‘ispeco-mysql-data’ in the new environment).</li>\n</ol>\n<h4 id=\"restart-the-services\"><a href=\"#restart-the-services\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Restart The Services</h4>\n<p>Restart consul-server, ispeco-dashboard-api, and ispeco-mysql services.</p>\n<blockquote>\n<p>Notes:  </p>\n<p>If the permission errors occur when restarting the consul-server service, please execute the command <code class=\"gatsby-code-text\">chmod 777 -R proxy/ raft/ serf/</code> in the NFS mounting directories of <code class=\"gatsby-code-text\">consul-server-{index}</code> in new environemt separately, then restart consul-server service.</p>\n</blockquote>\n<p>When you finish the steps above, the data of Service Instance, Service Node, and File Manager has migrated successfully.</p>\n<h3 id=\"migrate-storage-resources\"><a href=\"#migrate-storage-resources\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Migrate Storage Resources</h3>\n<p>You need to migrate the data of Service Instance, Service Node, and File Manager before migrating the data of Storage Resources.</p>\n<blockquote>\n<p>Notes:  </p>\n<p>The number of nodes in new environment should be same as the old environment. That is, when a service has multiple nodes, the {index}s should be same in two environments.</p>\n</blockquote>\n<p>Only HBase and HDFS Directory in the Storage Resources can be migrated.</p>\n<h4 id=\"migrate-hbase\"><a href=\"#migrate-hbase\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Migrate HBase</h4>\n<p>Migrate the data of hbase-namenode</p>\n<ol>\n<li>\n<p>Gets the NFS mounting directory of ‘hbase-namenode’ from old environment.</p>\n<p>Execute the following command in Kubernetes Master machine of the old environment to get the path of NFS mounting directory of ‘hbase-namenode’:</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl get pvc -n {ns} | grep hbase-namenode | awk &#39;{print $3}&#39; | xargs kubectl describe pv | grep Path</code></pre></div>\n<blockquote>\n<p>Notes:  </p>\n<p>Replace <code class=\"gatsby-code-text\">{ns}</code> in the command by the name of your namespace.</p>\n</blockquote>\n</li>\n<li>Copy the data from the directory in step 1, and paste to the corresponding directory of the new environment(refer to the command in step 1 to get the path of NFS mounting directory of ‘hbase-namenode’ in the new environment).</li>\n</ol>\n<p>Migrate the data of hbase-datanode</p>\n<ol>\n<li>\n<p>Gets the NFS mounting directories of ‘datanode-volume-hbase-datanode-{index}’ from old environment.</p>\n<p>Execute the following command in Kubernetes Master machine of the old environment to get the paths of NFS mounting directories of ‘datanode-volume-hbase-datanode-{index}‘:</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl get pvc -n {ns} | grep datanode-volume-hbase-datanode-{index} | awk &#39;{print $3}&#39; | xargs kubectl describe pv | grep Path</code></pre></div>\n<blockquote>\n<p>Notes:</p>\n<ol>\n<li>Replace <code class=\"gatsby-code-text\">{ns}</code> in the command by the name of your namespace.</li>\n<li>If the service has multiple nodes, execute the command multiple times to get paths of the directories, replace <code class=\"gatsby-code-text\">{index}</code> in the command by 0, 1, 2, …, N-1 each time.</li>\n</ol>\n</blockquote>\n</li>\n<li>Copy the data from the directories in step 1, and paste to the corresponding directories of the new environment(refer to the command in step 1 to get the paths of NFS mounting directories of ‘datanode-volume-hbase-datanode-{index}’ in the new environment).</li>\n</ol>\n<p>Migrate the data of hbase-regionserver</p>\n<ol>\n<li>\n<p>Gets the NFS mounting directories of ‘hbase-regionserver-data-volume-hbase-regionserver-{index}’ from old environment.</p>\n<p>Execute the following command in Kubernetes Master machine of the old environment to get the paths of NFS mounting directories of ‘hbase-regionserver-data-volume-hbase-regionserver-{index}‘:</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl get pvc -n {ns} | grep hbase-regionserver-data-volume-hbase-regionserver-{index} | awk &#39;{print $3}&#39; | xargs kubectl describe pv | grep Path</code></pre></div>\n<blockquote>\n<p>Notes:</p>\n<ol>\n<li>Replace <code class=\"gatsby-code-text\">{ns}</code> in the command by the name of your namespace.</li>\n<li>If the service has multiple nodes, execute the command multiple times to get paths of the directories, replace <code class=\"gatsby-code-text\">{index}</code> in the command by 0, 1, 2, …, N-1 each time.</li>\n</ol>\n</blockquote>\n</li>\n<li>Copy the data from the ‘hbase-regionserver-data-volume-hbase-regionserver-0’ directory in step 1, and paste to the corresponding directory of the new environment(refer to the command in step 1 to get the path of NFS mounting directory of ‘hbase-regionserver-data-volume-hbase-regionserver-0’ in the new environment).</li>\n</ol>\n<p>Migrate the data of hbase-master</p>\n<ol>\n<li>\n<p>Gets the NFS mounting directory of ‘hbase-master-config’ from old environment.</p>\n<p>Execute the following command in Kubernetes Master machine of the old environment to get the path of NFS mounting directory of ‘hbase-master-config’:</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl get pvc -n {ns} | grep hbase-master-config | awk &#39;{print $3}&#39; | xargs kubectl describe pv | grep Path</code></pre></div>\n<blockquote>\n<p>Notes:  </p>\n<p>Replace <code class=\"gatsby-code-text\">{ns}</code> in the command by the name of your namespace.</p>\n</blockquote>\n</li>\n<li>Copy the data from the directory in step 1, and paste to the corresponding directory of the new environment(refer to the command in step 1 to get the path of NFS mounting directory of ‘hbase-master-config’ in the new environment).</li>\n</ol>\n<p>Restart The Services</p>\n<p>Restart hbase-namenode, hbase-datanode, hbase-regionserver, hbase-master, and iserver-datacatalog services.</p>\n<p>When you finish the steps above, the data of HBase has migrated successfully.</p>\n<h4 id=\"migrate-hdfs-directory\"><a href=\"#migrate-hdfs-directory\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Migrate HDFS Directory</h4>\n<p>Migrate the data of hdfs-namenode</p>\n<ol>\n<li>\n<p>Gets the NFS mounting directory of ‘hdfs-namenode’ from old environment.</p>\n<p>Execute the following command in Kubernetes Master machine of the old environment to get the path of NFS mounting directory of ‘hdfs-namenode’:</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl get pvc -n {ns} | grep hdfs-namenode | awk &#39;{print $3}&#39; | xargs kubectl describe pv | grep Path</code></pre></div>\n<blockquote>\n<p>Notes:  </p>\n<p>Replace <code class=\"gatsby-code-text\">{ns}</code> in the command by the name of your namespace.</p>\n</blockquote>\n</li>\n<li>Copy the data from the directory in step 1, and paste to the corresponding directory of the new environment(refer to the command in step 1 to get the path of NFS mounting directory of ‘hdfs-namenode’ in the new environment).</li>\n</ol>\n<p>Migrate the data of hdfs-datanode</p>\n<ol>\n<li>\n<p>Gets the NFS mounting directory of ‘hdfs-datanode’ from old environment.</p>\n<p>Execute the following command in Kubernetes Master machine of the old environment to get the path of NFS mounting directory of ‘hdfs-datanode’:</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl get pvc -n {ns} | grep hdfs-datanode | awk &#39;{print $3}&#39; | xargs kubectl describe pv | grep Path</code></pre></div>\n<blockquote>\n<p>Notes:  </p>\n<p>Replace <code class=\"gatsby-code-text\">{ns}</code> in the command by the name of your namespace.</p>\n</blockquote>\n</li>\n<li>Copy the data from the directory in step 1, and paste to the corresponding directory of the new environment(refer to the command in step 1 to get the path of NFS mounting directory of ‘hdfs-datanode’ in the new environment).</li>\n</ol>\n<p>Restart The Services</p>\n<p>Restart hdfs-namenode, hdfs-datanode, and iserver-datacatalog services.</p>\n<p>When you finish the steps above, the data of HDFS Directory has migrated successfully.</p>","frontmatter":{"title":"GIS Cloud Suite","next":null,"prev":null},"fields":{"path":"content/microservices/SiteMigration.en.md","slug":"/en/microservices/SiteMigration/","langKey":"en"}}},"pageContext":{"slug":"/en/microservices/SiteMigration/"}}}