跳转至

CentOS7迁移到OpenCloudOS8

CentOS7迁移到OC8.8

1.支持迁移的路径:

架构和系统配置 源操作系统版本 目标操作系统版本
64位Intel CentOS7.9 OpenCloudOS8.8

2.迁移前的注意事项:

2.1硬件:

  • 支持的架构:目前仅支持X86结构的64系统
  • 迁移之前请检查内存,对于OpenCloudOS来说,最小需要2GB的内存

2.2软件与安全性

  • 迁移时会短暂改变Selinux策略,如果处于enforcing状态,在迁移的过程中将会被设置为permissive模式,迁移完成之前会再自动设置回来
  • 在迁移之前需要禁用FIPS

2.3停机时间

  • 根据系统中安装包的数量和大小,迁移占用时间从十几分钟到几十分钟不等,对于不含桌面的标准镜像(约含有1100个安装包),迁移所用时间大约在15分钟左右

2.4语言

  • 无论配置任何语言,生成的日志,报告和其他文档均为英文

3.迁移过程

3.1安装迁移工具

OpenCloudOS的安装包完全开源,因此可以直接从本地配置yum源来获取安装工具的安装包

  • 配置本地yum源: 运行
    vim /etc/yum.repos.d/migration.repo
    
    将以下内容写入:
[migration-rpms]
name = migration-rpms
baseurl= https://mirrors.opencloudos.tech/opencloudos/7/migration/x86_64/os/
enabled=1
gpgcheck=0
  • 安装迁移工具LEAPP:
yum -y install leapp

3.2迁移评估

在进行迁移之前,需要首先运行以下命令来检查系统是否可以迁移,以及迁移过程中的风险:

leapp preupgrade --opencloudos
3.2.1查看评估报告

在运行上面的命令之后会生成一个格式为.txt的评估报告,位于/var/log/leapp/leapp-report.txt。报告中详细列举出当前OS与目标OS系统间的迁移分析报告,每一个风险点都包含影响等级,影响范围以及解决方案。

评估报告中可能会有多个部分,每个部分对应可能存在的一个风险点。对于每个风险点,分为以下五个部分:Risk Factor(风险等级),Title(标题),Summary(问题简介),Remediation(推荐解决方案,这个可能会没有),Key(标识)。风险等级分为五个等级:inhibitor(禁止迁移),high(高风险),medium(中风险),low(低风险),info(无风险,仅作为通知)

3.2.2 基于评估报告处理迁移前问题

在进行预迁移检查的时候可能会遇到禁止迁移的情况,这里列出常见的情况,以及解决的办法,更多的情况请查看迁移常见问题:

  • 显示有未回答的问题:

inhibitor_report1

这是因为在迁移过程中有部分应用和配置的变化需要用户自己来决定,因此用户需要在填写/var/log/leapp/answerfile中问题的答案

下面以是否禁用pam中的部分模块来举例,只需要如下填写/var/log/leapp/answerfile中的问题即可:

answer

  • 显示部分pam的功能在OpenCloudOS8中不可用

要想继续进行迁移,思路是禁用掉在OpenCloudOS8中不可用的功能模块。请在迁移前仔细查阅pam模块相关的功能,如果对身份验证和登录有关键影响,请慎重进行禁用。

这里列出禁用pam_tally2的方案:

sudo sed -i '/pam_tally2.so/d' /etc/pam.d/system-auth /etc/pam.d/password-auth
  • 显示boot下空间不足:

在迁移时需要制作迁移所用的initramfs并且添加新的内核镜像,会占用额外的空间,这部分空间不到100MB,但是为了保证迁移顺利进行会留出部分冗余空间,因此,boot下需要留足100MB的空间

  • 显示根目录下的空间不足

在迁移过程中包的下载与安装都会在/data下进行,因此需要在此分区下留足空间,一般情况下标准镜像需要10G左右的空间,随着系统中安装包的增多会需要更多的空间

  • 显示内存等硬件不满足条件

OpenCloudOS8对硬件有一定的要求,如果是物理机,此时会禁止迁移,如果是虚拟机,请给出满足条件的配置。

  • 显示有不支持的安装包

这时需要卸载不支持的安装包,比如ipa,mpich等目前还不支持这些包的迁移,需要在迁移之前卸载,此外目前不支持idM服务器迁移,若是安装idM相关的包,需要在迁移之前卸载

如果迁移评估的结果如下图所示,则说明可以迁移,但是还是建议仔细查阅评估报告的内容,因为此时虽然整个系统可以迁移,但是对于部分应用和配置来说可能会发生较大变化,从而可能会影响业务的运行

good_preupgrade_report

3.3 实施迁移

在预迁移检查之后,确认系统处于可迁移状态后,可以运行下面的命令进行系统迁移

leapp upgrade --opencloudos --reboot

在迁移的过程中会出现两次重启,在命令行中加上--reboot之后,如果迁移顺利进行的话,在迁移完成之后会进入到新的系统的登录界面。如果命令行不加上--reboot,则第一次需要手动重启,第二次重启是迁移工具内置的,不需要手动进行。

3.4.迁移后验证

在迁移完成,进入新的系统之后可以用下面的方法验证迁移的情况:

3.4.1查看新系统信息

输入命令

cat /etc/os-release

可以查看迁移之后的系统的信息,迁移成功之后,会显示信息如下: release

3.4.2查看新系统中的安装包的情况

输入命令

rpm -qa

可以查看系统中的安装包的情况,如果绝大多数安装包的后缀为oc8,则说明绝大多数安装包已经是新系统中才有的安装包,可能存在CentOS7中的部分包在OpenCloudOS8中不存在与之对应的包的情况,这部分包予以保留。

4.迁移过程中的常见问题及重要问题说明

4.1 就地迁移失败是否支持回滚

迁移工具不支持回滚,迁移失败无法恢复到迁移初始状态,迁移前务必做好系统备份

4.2 支持的迁移的系统的桌面有哪些

目前仅支持Gnome桌面的迁移,KDE桌面暂时不支持,如果使用的时KDE桌面会禁止迁移

4.3.禁止迁移的情况:

  • 当系统中存在一下文件系统时迁移可能会对系统造成不可逆的损坏,因此当系统中有如下文件系统时,会禁止迁移:CIFS,NFS,Btrfs
  • 如果启用了FIPS会禁止迁移:目前还不支持在FIPS开启的情况下进行原地迁移
  • 当检测到一个挂载点覆盖另一个挂载点的文件系统,为了避免迁移过程会出现问题,当检测到此类问题时,会禁止迁移
  • 当系统中存在ipa-server时会禁止迁移
  • 如果有加密的分区,则会禁止迁移

4.4 网卡问题:

目前仅支持单网口的系统进行迁移,多网口的系统暂不支持迁移

4.5使用自建仓库来进行迁移

默认情况下会将yum源来作为获取安装包的源,同时用户也可以自己建立仓库来进行迁移,需要用户自己在别的机器上建立仓库,然后创建/etc/leapp/files/leapp_upgrade_repositories.repo文件,添加一个或多个仓库,每个仓库的最小内容.repo如下:

[repository_id]
name=repository_name
baseurl=repository_url

同时在预迁移检查和迁移实施的命令需要修改为:

leapp (pre)upgrade  --enablerepo repository_id --opencloudos

有多个自建仓库时:

leapp (pre)upgrade  --enablerepo repository_id1 --enablerepo repository_id2 ... --opencloudos

请注意,使用自建仓库来进行迁移的情况仅限于需要使用更为新的安装包或者yum源中没有的安装包,即自建仓库中的安装包版本高于OpenCloudOS8中的安装包的情况或者OpenCloudOS8中没有的安装包的情况,在其余情况下,自己仓库中的安装包将会被忽略

4.6迁移过程对存储空间的要求

4.6.1需要在boot分区下留下66MB的可用空间(最好是留下100MB):
  • 在重新启动进入 initramfs 之前,需要将内核和 initramfs 复制到 /boot 目录,总大小约为 66MB
  • 在安装一个新的内核包时,该包至少将额外的 54MB 数据添加到 /boot 目录
  • 在上面的过程中最多可能会用到66M的大小,但是后续内核大小可能会发生变化,因此将下限设置为100MB
4.6.2根目录空间要求

对于1000个左右的安装包,建议保留在根目录至少保留15GB的空闲空间,不然可能会存在升级过程中根目录空间不够用的情况

4.7rpmsave和rpmnew的说明

在迁移的过程中会生成部分.rpmsave和.rpmnew的文件,这些文件都是由于包的安装或删除生成的

4.7.1.rpmnew文件

.rpmnew 文件是在安装或更新 RPM 包时生成的。它们表示在升级过程中,新版本的 RPM 包中包含了与已安装系统中现有配置文件有差异的配置文件。为了避免在升级过程中覆盖用户自定义的配置,RPM 包管理器会将新版本的配置文件保存为 .rpmnew 文件。

生成 .rpmnew 文件的目的是让用户在升级过程中能够手动检查和合并新旧配置文件的差异。在升级完成后,用户应该检查这些 .rpmnew 文件,比较它们与现有配置文件的内容,并根据需要手动合并更改。

4.7.2.rpmsave文件

.rpmsave 文件是在使用基于 RPM 的包管理器(如 dnfyum)升级或删除软件包时自动生成的。它们是原始配置文件的备份,用于在升级过程中保留现有配置。.rpmsave 文件通常在以下情况中创建:

  • 当升级软件包时,如果新版本的软件包包含一个与当前配置文件不同的默认配置文件,包管理器会将当前配置文件重命名为 .rpmsave 文件。这样,在升级过程中,新的默认配置文件将替换旧的配置文件,但旧的配置文件仍然以 .rpmsave 文件的形式保留。
  • 当删除软件包时,如果包管理器检测到已修改的配置文件,它会将这些文件重命名为 .rpmsave 文件。这样,在卸载过程中,这些配置文件将不会被删除,以便在将来需要时可以恢复。

.rpmsave 文件的主要作用是在升级或删除软件包时保留现有配置。这些文件可以用于比较新旧配置文件之间的差异,或者在升级过程中出现问题时恢复原始配置。在处理 .rpmsave 文件时,请注意检查新的默认配置文件以确保它们与您的系统需求和安全策略相符。

4.8部分不支持迁移的安装包的说明

由于部分特定的包在迁移过程中会终止迁移进程,因此这部分安装包在迁移之前需要卸载

4.8.1不支持迁移的模块相关的包
  • idM服务器功能相关的包,这部分包括ipa相关的包,389-ds相关的包,和softhsm相关的包
  • 高可用服务器功能相关的包,这部分包括mvapich2相关的包
  • 制作安装包用的安装包,包括pki相关的安装包
4.8.2debug和devel的包
  • devel安装包可能会不存在与之对应的新版本或者新旧版本之间存在冲突,因此建议在迁移之前卸载无关的devel的包,对于大部分的devel安装包是可以进行迁移的,目前测试过程中发现必须删除的devel安装包是kernel-devel
  • debug相关的安装包和devel类似,可能也会存在冲突,因此建议在迁移之前卸载无关的devel的包,对于大部分debug安装包是可以进行迁移的
4.8.3重启之后会影响新系统生成的安装包

包括lvm2-cluster,acpica-tools,mksh这三个安装包。为了防止迁移之后的系统变得不可用,因此在预升级检查的时候会对这三个安装包进行检查,如果有这三个安装包,会禁止升级

4.9迁移出现问题怎么办

迁移过程中出现任何问题,可保存当前迁移工具执行报错信息,并提供初始系统信息(系统版本,内核,软件包列表等等),及时与我们联系获取帮助