添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在系统迁移过程中,迁移工具对特定的基础软件和系统参数存在依赖,本节介绍软件包和系统参数的准备工作。

  • 远程连接待迁移的操作系统。

    根据 弹性云服务器 控制台操作指导,远程登录到待迁移虚拟机内部,远程登录的具体操作,请参见 连接方式概述 ,并确保虚拟机内部与Internet相通。

  • 检查待迁移系统网络是否能够正常访问 HCE OS 的repo源,确保迁移工具可以获取到依赖的软件(来自 HCE OS 的repo源)。 执行命令 curl https://repo.huaweicloud.com/hce/2.0/os/x86_64/ 命令检测是否能够访问 HCE OS 的repo源。若有类似如下输出信息,则能正常访问 HCE OS 的repo源。
    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    Dload  Upload   Total   Spent    Left  Speed
    100  3417    0  3417    0     0    373      0 --:--:--  0:00:09 --:--:--   696
    <!doctype html>
    <meta charset="utf-8">
    <title></title>
    <link rel="stylesheet"  href="/repository/static/css/style.css" type="text/css"/>
    <style>
    font-family: 'Verdana', sans-serif;
    margin: 0;
    padding: 0;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    ......
  • 配置repo源(指原操作系统的repo源),确保迁移工具可以获取到依赖的软件。

    各操作系统的repo源地址不同,请配置正确的repo源地址。

  • 安装依赖的软件包。
  • 安装python基础软件包。
    [root@localhost ~]# yum install -y python //任意目录执行安装命令
  • (可选)创建软连接。

    CentOS 8系列 EulerOS 2.10/2.9 版本需执行以下步骤,其他操作系统版本请忽略。

  • 安装python3基础软件包。
    [root@localhost ~]# yum install -y python3 //任意目录执行安装命令
  • 检查是否存在python软链接。
  • 若不存在,继续执行 创建python软链接。
  • 若已存在,但没有链接至python3,须执行如下命令删除原有python软链接,再执行 创建python软链接。
    [root@localhost]# unlink /usr/bin/python
  • 若已存在,并已链接至python3,请继续执行 安装迁移工具并检查迁移条件
  • 创建python软链接。
    [root@localhost]# python
    -bash: /usr/bin/python: No such file or directory   //python软链接不存在的提示信息
    [root@localhost]# cd /usr/bin/      //切换目录至/usr/bin下
    [root@localhost bin]# ln -s python3 python   //创建软件python软链接
    [root@localhost bin]# python
    Python 3.6.8 (default, Apr 16 2020, 01:36:27)
    [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    //通过ctrl+D退出上述界面
  • 华为云开源镜像站 下载最新版本的迁移工具安装包centos2hce2-*.rpm。 *表示迁移工具版本,本节以centos2hce2-1.0.0-0.0.82.hce2.x86_64.rpm安装包示例。由于迁移工具不断更新,版本号也随之不断更新,操作过程中请适配为实际的安装包名称。
    [root@localhost test]# wget https://repo.huaweicloud.com/hce/2.0/updates/x86_64/Packages/centos2hce2-1.0.0-0.0.82.hce2.x86_64.rpm   //下载centos2hce2-*.rpm
    [root@localhost test]# ls  //检查是否下载成功
    centos2hce2-1.0.0-0.0.82.hce2.x86_64.rpm  
  • 安装迁移工具。
    [root@localhost test]# rpm -ivh centos2hce2-1.0.0-0.0.82.hce2.x86_64.rpm --nodeps
    warning: centos2hce2-1.0.0-0.0.82.hce2.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID a8def926: NOKEY
    Verifying...                          ################################# [100%]
    Preparing...                          ################################# [100%]
    Updating / installing...
    1:centos2hce2-1.0.0-0.0.6.hce2     ################################# [100%]
  • 配置待迁移系统的系统软件数据的备份路径。

    在系统切换前,迁移工具将自动备份系统软件的所有数据至备份路径。

    执行 vim /etc/centos2hce2.conf 命令,在 centos2hce2.conf 配置文件中配置backup_dir字段,配置备份路径。backup_dir默认为/mnt/sdb/.osbak。

    # backup dir
    backup_dir = "/mnt/sdb/.osbak"    #配置原系统软件数据的备份路径
  • 为避免迁移过程中系统数据的丢失,建议配置备份目录。
  • 在系统迁移时,迁移工具会自动检查备份目录的空间。建议配置单独的数据盘(如/dev/sdb/,并将该分区挂载到/mnt/sdb/),避免因为空间不足导致的检查失败。
  • 请勿将tmpfs类型的文件系统(如/dev、/run等)作为备份目录,系统重启后tmpfs类型文件系统内的文件会丢失。
  • 设置系统迁移参数。
  • 设置web迁移方式。

    web迁移方式通过下载RPM包集合对系统迁移,因此要求在下载RPM包的过程中不能断网。

    在centos2hce2.conf配置文件中,参考参数说明进行设置:

    [repo_relation]
    .....
    # default yum source, val: web or iso
    default_yum_source = 'web'
    .....
    # if web as source, web link config as follow
    web_link_dir = "https://repo.huaweicloud.com/hce/2.0/os/x86_64/;https://repo.huaweicloud.com/hce/2.0/updates/x86_64/"
    表1 参数说明
  • 配置isclose_modules参数,仅CentOS 8系列需要配置。

    CentOS 8系列支持将RPM包集成为module的方式批量安装RPM包。 HCE OS 不支持此种安装方式。因此系统迁移前,须关闭module功能。

  • “yes”表示系统迁移前会自动关闭系统上的modules,默认为“yes”。
  • “no”表示系统迁移前不会自动关闭系统上的modules,且若检测到有modules开启时,迁移操作中断。
  • [system]
    # whether close modules, if value is no, system may be not migrate
    isclose_modules = "yes"
  • 执行 centos2hce2.py --check all 命令,检查当前系统配置是否满足迁移条件。
  • 提示“Enviroment check passed!”时,表示满足迁移条件,可直接执行迁移操作。
  • 提示“call migration failed”时,表示不满足迁移条件,请根据步骤 6 自动处理相关异常信息。Error Number及其对应错误信息请参见 表2

    10002

    URL存在问题,/etc/centos2hce2.conf配置文件中web_link_dir、web_link_tar参数填写有误导致无法下载对应repo文件、rpm文件,或者无法连通。

    10003

    基础命令缺失,例如rpm、yum、yumdownloader命令。

    10004

    空间检查失败,磁盘空间不足或者内存大小不足。

    10005

    原系统无本地yum源或者yum源不通,需要重新配置。

    10006

    目标系统yum源配置有误,检查/etc/centos2hce2.conf配置文件中web_link_dir参数填写是否有误。

    10007

    安装sut失败,检查/etc/centos2hce2.conf配置文件中web_link_dir参数填写是否有误。

    10008

    sut检查失败。

    10009

    依赖检查失败,需要先执行centos2hce2.py --install all安装依赖。

    10010

    chroot升级方式,清理原有chroot文件夹失败,文件夹路径见/etc/centos2hce2.conf配置文件中的chroot_path。

    10011

    chroot路径配置错误,/etc/centos2hce2.conf配置文件中chroot_path配置有误。

    10012

    chroot升级方式,并且配置了预构建环境tar包下载地址,解压tar包失败,检查/etc/centos2hce2.conf配置文件中的web_link_tar参数是否有误。

    10013

    /etc/ld.so.conf检查失败,需要清理/etc/ld.so.conf文件中除“include ld.so.conf.d/*.conf”之外的字段。

    10014

    文件系统存在损坏或异常,需要修复。

    10015

    /etc/fstab文件挂载目录不符合标准,需要将/etc/fstab文件中非LVM卷格式的文件系统分区以UUID进行挂载。

    10016

    开启文件属性检查后,系统内存在Immutable/Append_Only属性的文件,对于检查出的文件,需要加入到/etc/centos2hce2.conf配置文件中的exclude_dir字段。

    10017

    /etc/sysconfig/ntpd文件存在-u ntp:ntp配置,需要删除/etc/sysconfig/ntpd文件中-u ntp:ntp字段。

    10018

    /etc/ssh/sshd_config配置文件末尾无换行,需要在/etc/ssh/sshd_config文件末尾加入换行符号。

    10019

    系统中含有重复的rpm包,请先卸载不再使用的低版本rpm包后再次检查。(如果不想卸载重复包例如多内核场景kernel、kernel-devel等,直接进行升级,可以通过配置/etc/centos2hce2.conf文件中的extra_check_switch = false选项,跳过额外检查。)

  • 安装迁移工具依赖的软件。

    执行 centos2hce2.py --install all 命令,迁移工具会先进行备份,接着系统自动安装迁移工具依赖的软件包,并进行迁移前相关预处理操作。

    以下提示表明,已安装依赖的软件包及相关预处理操作,需再次执行步骤 5 进行环境检查。

    2022-08-19 03:12:58,373-INFO-centos2hce2.py-[line:832]: Dependency packages already exist!
    2022-08-19 03:12:58,373-INFO-centos2hce2.py-[line:891]: migrate install depend options finished
  • 7. (可选) 重复备份。

    执行 centos2hce2.py --backup force 命令,迁移工具会根据步骤 3 中配置的备份路径,对当前系统中的文件进行备份。

    步骤 6 中安装的工具依赖软件包,在执行此命令之后也会被备份。

    迁移系统至 HCE OS

  • 执行迁移命令 centos2hce2.py --upgrade all 进行系统迁移。

    出现migrare sucess提示信息,表明系统迁移成功。迁移后支持回退至原系统,详见操作步骤 1

    操作系统迁移为Huawei Cloud EulerOS后,控制台仍然显示迁移前的操作系统名称。您可手动更新控制台操作系统名称,具体操作详见 迁移系统后,如何更改控制台操作系统名称?

  • 清理旧版本组件的文件。

    待迁移系统迁移到 HCE OS 后,新版本组件替换旧版本组件,但此时旧版本组件的文件仍然保存在系统中。执行命令 centos2hce2.py --precommit upgrade 可清理旧版本组件的文件。

    返回信息中提示“upgrade precommit success”表示环境清理成功。

    清理动作可执行多次。

  • (可选)修改Cloud-init相关配置。
  • 若迁移之前的操作系统中存在Cloud-init,服务状态正常,且Cloud-init为rpm包形式,请跳过此步骤。
  • 若迁移之前的操作系统存在Cloud-init服务,服务状态正常,且Cloud-init为某个文件(如CentOS 7系列),非rpm包形式,迁移后请对/etc/cloud/cloud.cfg文件进行如下配置。
  • 设置开放root密码远程登录并开启root用户的ssh权限。

    设置“disable_root”为“0”不禁用root用户;“ssh_pwauth”为“1”启用密码远程登录;“lock_passwd”为“False”不锁住用户密码。

    users:
     - name: root
       lock_passwd: False
    disable_root: 0
    ssh_pwauth: 1
  • 执行 /usr/bin/cloud-init init --local 命令,无错误发生,说明Cloud-init配置成功。

    正确安装的Cloud-init会显示Cloud-init的版本详细信息,并且无任何错误信息。

  • (可选)因迁移时会自动关闭selinux服务,如迁移后需启用selinux,执行 centos2hce2.py --precommit upg-selinux 命令。此命令分为两个阶段,每次执行后都需重启系统(若迁移前未开启selinux请忽略此步骤)。
  • 执行 centos2hce2.py --precommit upg-selinux 命令。
    [root@localhost ~]# centos2hce2.py --precommit upg-selinux
    2022-08-21 23:46:23,891-INFO-centos2hce2.py-[line:1239]: precommit migration
    2022-08-21 23:46:23,891-INFO-centos2hce2.py-[line:1149]: begin to set selinux
    2022-08-21 23:46:23,892-INFO-centos2hce2.py-[line:1157]: grub path is /boot/grub2/grub.cfg
    2022-08-21 23:46:23,895-INFO-centos2hce2.py-[line:1162]: sed selinux succeed
    2022-08-21 23:46:23,897-INFO-centos2hce2.py-[line:1167]: create autorelabel file succeed
    2022-08-21 23:46:23,901-INFO-centos2hce2.py-[line:1172]: modify selinux config succeed
    2022-08-21 23:46:23,901-INFO-centos2hce2.py-[line:1174]: create phase 1 flag file succeed
    2022-08-21 23:46:23,901-INFO-centos2hce2.py-[line:1184]: selinux has been set, please reboot now
    2022-08-21 23:46:23,901-INFO-centos2hce2.py-[line:1206]: upgrade precommit selinux success
    [root@localhost ~]# reboot
  • 系统重启后,再次执行 centos2hce2.py --precommit upg-selinux 命令。
    [root@localhost ~]# centos2hce2.py --precommit upg-selinux
    2022-08-21 23:57:07,576-INFO-centos2hce2.py-[line:1239]: precommit migration
    2022-08-21 23:57:07,576-INFO-centos2hce2.py-[line:1176]: now begin to set selinux phase 2
    2022-08-21 23:57:07,580-INFO-centos2hce2.py-[line:1181]: modify selinux config succeed
    2022-08-21 23:57:07,580-INFO-centos2hce2.py-[line:1183]: create phase 2 flag file succeed
    2022-08-21 23:57:07,580-INFO-centos2hce2.py-[line:1184]: selinux has been set, please reboot now
    2022-08-21 23:57:07,580-INFO-centos2hce2.py-[line:1206]: upgrade precommit selinux success
    [root@localhost ~]# reboot

    c.第二次重启后,执行 getenforce 查看selinux状态,Enforcing表明selinux为开启状态。

    [root@localhost ~]# getenforce
    Enforcing
  • (可选)确认迁移完毕后,清理原系统数据。

    迁移操作完成后,原系统的系统数据仍然保留在新系统中,并占用较大内存。建议执行 centos2hce2.py --commit all 命令清理数据。

    执行命令后,系统会自动清理原系统的系统数据,包括步骤 3 中备份路径下的系统数据。

    执行命令后,操作系统无法回退。

    [root@localhost ~]# centos2hce2.py --commit all
    2022-08-22 04:45:32,601-INFO-centos2hce2.py-[line:1242]: commit migration

  • 迁移操作支持系统回退,您可根据需要决定是否回退至原操作系统。
  • 执行 centos2hce2.py --rollback all 命令进行系统回退。回退后,执行 reboot 命令对系统重启。

  • 执行 centos2hce2.py --precommit rollback 命令,恢复环境。

  • (可选)若迁移前已开启selinux,迁移时会自动关闭selinux服务。如有需要,回退后请手动恢复selinux状态。
  • 执行 centos2hce2.py --precommit rbk-selinux 命令。
    [root@localhost ~]# centos2hce2.py --precommit rbk-selinux
    2022-09-05 03:58:37,015-INFO-centos2hce2.py-[line:1401]: precommit migration
    2022-09-05 03:58:37,047-INFO-centos2hce2.py-[line:1319]: now begin to set selinux
    2022-09-05 03:58:37,051-INFO-centos2hce2.py-[line:1324]: modify selinux config succeed
    2022-09-05 03:58:37,051-INFO-centos2hce2.py-[line:1325]: selinux has been set, please reboot now
    2022-09-05 03:58:37,051-INFO-centos2hce2.py-[line:1340]: set rollback selinux succeed
    2022-09-05 03:58:37,051-INFO-centos2hce2.py-[line:1365]: upgrade precommit selinux success
  • 执行 reboot 命令,进行系统重启。
    [root@localhost ~]# reboot
  • 系统重启后,可查看到selinux状态为开启状态。
    [root@localhost ~]# getenforce
    Enforcing
  • 清理系统数据。

    执行 centos2hce2.py --commit all 命令清理数据。

    执行命令后,系统会自动清理目标系统和原系统的系统数据,包括步骤 3 中备份路径下的系统数据。

    [root@localhost ~]# centos2hce2.py --commit all
    2022-08-22 04:45:32,601-INFO-centos2hce2.py-[line:1242]: commit migration

  •