华为云用户手册

  • 官方repo源配置 通过弹性云服务器购买的HCE默认镜像,在/etc/yum.repos.d/hce.repo文件中会默认配置官方repo源。以HCE 2.0版本为例,其内容如下: [base] name=HCE $releasever base baseurl=https://repo.huaweicloud.com/hce/$releasever/os/$basearch/ enabled=1 gpgcheck=1 gpgkey=https://repo.huaweicloud.com/hce/$releasever/os/RPM-GPG-KEY-HCE-2 [updates] name=HCE $releasever updates baseurl=https://repo.huaweicloud.com/hce/$releasever/updates/$basearch/ enabled=1 gpgcheck=1 gpgkey=https://repo.huaweicloud.com/hce/$releasever/updates/RPM-GPG-KEY-HCE-2 [debuginfo] name=HCE $releasever debuginfo baseurl=https://repo.huaweicloud.com/hce/$releasever/ debuginfo/$basearch/ enabled=0 gpgcheck=1 gpgkey=https://repo.huaweicloud.com/hce/$releasever/ debuginfo/RPM-GPG-KEY-HCE-2 其中各字段含义如下: name:对repo源的描述。 baseurl:仓库所在的服务器地址,支持http://、ftp://、file://三种格式。 enabled:是否启用该软件仓库,1表示启用,0表示禁用。 gpgcheck:是否进行gpg校验,1表示启用校验,0表示禁用校验。 gpgkey:公钥保存的地址,用于gpg校验。 修改该文件可能会对系统的软件安装、升级产生影响,不建议修改该文件。
  • 附录:conf配置文件说明 #rpm lists for os migration [rpm_lists] #origin system must need rpms baserpms_list = "basesystem initscripts hce-logos plymouth grub2 grubby" //系统迁移依赖的RPM包 #old rpm and default conflict rpms //迁移过程中,原系统可能存在的冲突包 oldrpms_list = centos-backgrounds centos-release-cr desktop-backgrounds-basic \ centos-release-advanced-virtualization centos-release-ansible26 centos-release-ansible-27 \ centos-release-ansible-28 centos-release-ansible-29 centos-release-azure \ centos-release-ceph-jewel centos-release-ceph-luminous centos-release-ceph-nautilus \ centos-release-ceph-octopus centos-release-configmanagement centos-release-dotnet centos-release-fdio \ centos-release-gluster40 centos-release-gluster41 centos-release-gluster5 \ centos-release-gluster6 centos-release-gluster7 centos-release-gluster8 \ centos-release-gluster-legacy centos-release-messaging centos-release-nfs-ganesha28 \ centos-release-nfs-ganesha30 centos-release-nfv-common \ centos-release-nfv-openvswitch centos-release-openshift-origin centos-release-openstack-queens \ centos-release-openstack-rocky centos-release-openstack-stein centos-release-openstack-train \ centos-release-openstack-ussuri centos-release-opstools centos-release-ovirt42 centos-release-ovirt43 \ centos-release-ovirt44 centos-release-paas-common centos-release-qemu-ev centos-release-qpid-proton \ centos-release-rabbitmq-38 centos-release-samba411 centos-release-samba412 \ centos-release-scl centos-release-scl-rh centos-release-storage-common \ centos-release-virt-common centos-release-xen centos-release-xen-410 \ centos-release-xen-412 centos-release-xen-46 centos-release-xen-48 centos-release-xen-common \ python3-syspurpose python-oauth sl-logos yum-rhn-plugin centos-indexhtml \ libreport-centos libreport-web libreport-plugin-mantisbt libreport-plugin-rhtsupport \ libreport hunspell-en-US hunspell-en policycoreutils-gui libcanberra-gtk2 cups \ NetworkManager-libreswan-gnome plymouth-graphics-libs avahi cups-lpd pinentry-qt \ librsvg2-devel libcanberra-gtk3 gnome-themes-standard wodim gsettings-desktop-schemas-devel \ avahi-ui-gtk3 freerdp-libs pulseaudio-utils gstreamer1-plugins-bad-free-gtk ghostscript-cups \ setools-console libxkbcommon-x11 cups plymouth-plugin-two-step pulseaudio-module-x11 ImageMagick-c++ \ cups-devel policycoreutils-sandbox PackageKit-gstreamer-plugin gtk3-immodule-xim avahi-glib avahi-autoipd \ mesa-libGLES foomatic libcanberra-devel plymouth-plugin-label PackageKit-gtk3-module colord avahi-gobject \ pinentry-qt4 avahi-ui-gtk3 plymouth-plugin-two-step ghostscript-cups ImageMagick-perl firewall-config \ plymouth-plugin-label redhat-redhat-lsb-corelsb vim-X11 dbus-x11 pulseaudio PackageKit-command-not-found libproxy-mozjs \ pinentry-gtk nm-connection-editor gtk2-immodule-xim wireshark-gnome pulseaudio-module-bluetooth pidgin-sipe freerdp kmod-kvdo \ redhat-lsb-core #The following list contains the same symbol as centos/redhat dstrpms_list = "hce-release hce-repos" [log_conf] # migration tool log common dir migrate_common_dir = "/var/log/migrate-tool/" //日志存放路径 # migration tool classification log dir migrate_classification_dir = %(migrate_common_dir)s/centos2hce1/ #iso as yum source link [repo_info] base_yum_url =https://repo.huaweicloud.com/hce/1.1/os/x86_64/ //基础yum源路径,用于检查网络状态 #iso as yum source repostr_hce1_1 = //提供迁移模式的源路径 [base] name=hceversion baseurl=https://repo.huaweicloud.com/hce/1.1/os/x86_64/ //基础yum源路径,用于获取RPM包 gpgcheck=0 enabled=1 gpgkey= #released updates [updates] name=hce1_updates baseurl= gpgcheck=0 enabled=0 gpgkey= #additional packages that may be useful [extras] name=hce1_extras baseurl= gpgcheck=0 enabled=0 gpgkey= # plus packages provided by Huawei Linux dev team [plus] name=hce1_plus baseurl= gpgcheck=0 enabled=0 gpgkey=
  • 系统迁移 备份操作系统。 系统迁移至HCE1.1不支持回滚,请备份CentOS整体操作系统(包括系统盘和数据盘)。 执行centos2hce1.py命令,进行系统迁移。 系统迁移的耗时受更新的RPM包数量、大小和从repo源下载速度等影响,一般会在20分钟到1个小时左右完成,具体时间视实际环境确定,执行操作时注意预留足够的时间。 [root@localhost home]# centos2hce1.py 有如下回显信息,表示迁移完成。若迁移失败请使用备份数据恢复。 CentOS含有某些HCE 1.1不提供的RPM包,执行centos2hce1.py命令迁移系统后,迁移工具会自动清除这些RPM包。如果您想保留这些RPM包,请使用-s skip参数进行系统迁移。 (可选)删除无用的RPM包。 如下两个RPM包在迁移过程中并没有使用,也不会对系统运行产生任何影响。在此对您可能产生的疑惑进行解释。 执行reboot命令重启操作系统。 执行cat /etc/os-release命令检查是否迁移成功。 显示如下Huawei Cloud EulerOS信息表示迁移成功。 (可选)开启selinux。 系统迁移前关闭了selinux,请根据需要选择是否开启selinux。 修改/etc/selinux/config文件,将config文件中SELINUX的值设置成enforcing SELINUX=enforcing 重启操作系统使selinux配置生效。
  • 安装迁移工具 从华为云开源镜像站下载迁移工具安装包centos2hce1-*.rpm。 *表示迁移工具版本,本节以centos2hce1-1.0.0-0.0.2.x86_64.rpm安装包示例。 [root@localhost test]# wget https://repo.huaweicloud.com/hce/1.1/updates/x86_64/Packages/centos2hce1-1.0.0-0.0.2.x86_64.rpm //下载centos2hce1-*.rpm [root@localhost test]# ls //检查是否下载成功 centos2hce1-1.0.0-0.0.2.x86_64.rpm 安装迁移工具。 工具安装完成后,系统自动生成/etc/centos2hce1.conf配置文件。 [root@localhost ~]# rpm -ivh centos2hce1-1.0.0-0.0.2.x86_64.rpm 配置centos2hce1.conf文件。 配置HCE的repo源地址,用于检测repo源是否能够正常访问,并更新RPM包。 #iso as yum source link [repo_info] base_yum_url =https://repo.huaweicloud.com/hce/1.1/os/x86_64/ #iso as yum source repostr_hce1_1 = [base] name=hceversion baseurl=https://repo.huaweicloud.com/hce/1.1/os/x86_64/ gpgcheck=0 enabled=1 #released updates [updates] name=hce1_updates baseurl=https://repo.huaweicloud.com/hce/1.1/updates/x86_64/ gpgcheck=0 enabled=1 gpgkey= centos2hce1.conf配置文件说明详见附录:conf配置文件说明。
  • 静态加速配置文件示例 [binary] binary_out_path = "/data/llvm_auto" binary_num_threshold = 1000 binary_file_suffix = "blot.auto" [parameter] parameters = --align-blocks # 允许添加参数前缀-- frame-opt # 用户定义的参数集合中若不需要指定参数的值,则无需以=结束 align-functions=1 # 用户定义参数集合中指定了参数对应的值,则生成的参数集中,所有参数组合中该参数的值都为1 [include] align-blocks= # 参数无法指定值仍需以=结束 [exclude] frame-opt=none # 指定参数及对应的值,生成的参数集中会过滤参数为frame-opt,且值为none的参数组合 indirect-call-promotion= # 指定参数,该参数为枚举类型,则生成的参数集中会过滤所有参数为frame-opt的参数组合
  • 动态加速配置文件 应用加速工具默认动态加速配置信息如下,您可以自定义配置文件来优化应用。 表3 配置信息说明 模块名 描述 [mission]优化运行中的应用所要配置的参数。 log-type 运行时日志采集方式,当前仅支持instrument方式。 hotpatch-type 热补丁模式,当前仅支持mode1即ptrace方式。 snapshot-path 优化后的二进制快照文件存放的目录路径。 origin-exe 原始应用的位置,使用instrument日志采集模式时,须指定此参数。 [stop-strategy]应用优化停止策略,请选择其中一种配置。 run-times 指定优化次数,达到该次数时动态加速工具会停止优化,当前仅支持1次。 period 指定优化周期,达到该时间周期时停止优化,单位为秒,取值范围为1~600。 condition 指定优化条件,达到该条件时停止优化,当前不支持。
  • 权重弱调度(policy=6) 权重弱调度表示按照每个容器的算力比例为容器分配时间片,隔离性弱于权重抢占调度。XGPU服务会从算力单元1开始调度,但如果某个算力单元没有分配给某个容器,或者容器内没有进程打开GPU设备,则跳过调度切换到下一个时间片。例如为容器1、2、3分别分配5%、5%、10%的算力,则容器1、2、3分别占用1、1、2个算力单元。图中白色部分的算力单元表示容器3的空闲算力,图中白色部分和灰色部分的算力单元表示被跳过不参与调度。 本例中容器1、2、3占用的实际算力百分比为50%、50%、0%。 权重弱调度涉及空闲算力的抢占和抢回,因此容器在空闲和忙碌之间切换时会影响其他容器的算力,该算力波动属于正常情况。当某个容器从空闲切换到忙碌时,其抢回算力的时延不超过100ms。
  • 混合调度(policy=5) 混合调度表示单张GPU卡支持单显存隔离和算力显存隔离类型。其中算力显存隔离的容器其隔离效果同固定算力(policy=1)完全一致,单显存隔离的容器共享算力显存隔离的容器分配后剩余的GPU算力。以max_inst=20为例,容器1、2为算力显存隔离容器,其分配的算力分别为5%、10%,容器3、4为单显存隔离的容器,则容器1、2分别占用1、2个算力单元,容器3、4共享剩余17个算力单元。此外,当容器2中没有进程打开GPU设备时,则容器1、2分别占用1、0个算力单元,容器3、4共享剩余19个算力单元。 在混合调度下,根据GPU_CONTAINER_QUOTA_PERCENT是否为0来区分容器是否开启算力隔离,GPU_CONTAINER_QUOTA_PERCENT为0的所有容器共享GPU的空闲算力。 混合调度策略不支持高优先级容器。
  • 权重抢占调度(policy=4) 权重抢占调度表示按照每个容器的算力比例为容器分配时间片。XGPU服务会从算力单元1开始调度,但如果某个算力单元没有分配给某个容器,则跳过调度切换到下一个时间片。例如为容器1、2、3分别分配5%、5%、10%的算力,则容器1、2、3分别占用1、1、2个算力单元。图中灰色部分的算力单元表示被跳过不参与调度。 本例中容器1、2、3占用的实际算力百分比为25%、25%、50%。
  • 系统回退 系统回退。 迁移操作支持系统回退,您可根据需要决定是否回退至原操作系统。 执行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
  • 安装迁移工具并检查迁移条件 从华为云开源镜像站下载最新版本的迁移工具安装包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 参数说明 参数 说明 default_yum_source 迁移方式,设置为'web'。 web_link_dir HCE的base repo源和updates repo源地址,多个repo源之间需用英文分号隔开。 设置为https://repo.huaweicloud.com/hce/2.0/os/x86_64/;https://repo.huaweicloud.com/hce/2.0/updates/x86_64/ 在此配置的HCE repo源地址会在迁移过程中自动替换掉当前旧系统的repo源,并在升级完成后恢复旧系统的repo源。 配置isclose_modules参数,仅CentOS 8系列需要配置。 CentOS 8系列支持将RPM包集成为module的方式批量安装RPM包。HCE不支持此种安装方式。因此系统迁移前,须关闭module功能。 “yes”表示系统迁移前会自动关闭系统上的modules,默认为“yes”。 “no”表示系统迁移前不会自动关闭系统上的modules,且若检测到有modules开启时,迁移操作中断。 [system] # whether close modules, if value is no, system may be not migrate isclose_modules = "yes" 执行命令dnf module list可查看待迁移系统中所有运行的module。 执行命令dnf module list | grep '\[e\]'可查看待迁移系统开启的module。 执行centos2hce2.py --check all命令,检查当前系统配置是否满足迁移条件。 提示“Enviroment check passed!”时,表示满足迁移条件,可直接执行迁移操作。 提示“call migration failed”时,表示不满足迁移条件,请根据步骤6自动处理相关异常信息。Error Number及其对应错误信息请参见表2。 表2 Error Number对应关系 Error Number 错误信息 10001 非root用户下执行迁移工具命令时,需要切换至root。 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
  • 迁移系统至HCE 执行迁移命令centos2hce2.py --upgrade all 进行系统迁移。 出现migrare sucess提示信息,表明系统迁移成功。迁移后支持回退至原系统,详见操作步骤1。 迁移命令不能设置为Linux后台执行方式。 可附加--simple_name参数,使得迁移后的grub菜单中显示Huawei Cloud EulerOS的简称。 在升级过程中如果遇到报错如图1所示,表明升级过程因冲突包中断,需要先进行系统回退,处理冲突包后再次执行升级。冲突包处理请参见冲突包列表。 图1 冲突包报错 系统迁移完毕后,执行reboot命令(若reboot无响应,执行reboot -f)使系统完成切换。 系统重启后,执行cat /etc/hce-release命令查看迁移后的操作系统信息,执行uname -a命令查看系统内核信息。 若显示Huawei Cloud EulerOS操作系统,则迁移成功;否则迁移失败,请联系技术工程师咨询。 操作系统迁移为Huawei Cloud EulerOS后,控制台仍然显示迁移前的操作系统名称。您可手动更新控制台操作系统名称,具体操作详见迁移系统后,如何更改控制台操作系统名称?。 清理旧版本组件的文件。 待迁移系统迁移到HCE后,新版本组件替换旧版本组件,但此时旧版本组件的文件仍然保存在系统中。执行命令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的版本详细信息,并且无任何错误信息。 如果在升级完成后出现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
  • 安装工具 确认repo源配置正常。 请检查默认的/etc/yum.repos.d/hce.repo配置文件中参数是否正确,正确的配置如下。 [base] name=HCE $releasever base baseurl=https://repo.huaweicloud.com/hce/$releasever/os/$basearch/ enabled=1 gpgcheck=1 gpgkey=https://repo.huaweicloud.com/hce/$releasever/os/RPM-GPG-KEY-HCE-2 [updates] name=HCE $releasever updates baseurl=https://repo.huaweicloud.com/hce/$releasever/updates/$basearch/ ...... 执行yum install hce-wae命令安装加速工具。 检查工具是否安装成功。 执行llvm-bolt帮助命令有如下输出信息,表示工具安装成功。 父主题: 应用加速工具
  • 约束限制 由于x2hce-ca工具安装会有额外资源包引入,不建议在业务环境中运行。x2hce-ca工具仅支持在HCE 2.0的操作系统进行安装使用。 x2hce-ca工具支持扫描的文件格式为jar、py、pyc、bin、sh、rpm、ko。其中,只支持扫描源码为C、C++、Java和Python语言的rpm格式文件。 x2hce-ca工具不支持回滚,任务异常中断后会在/opt/x2hce-ca/目录下产生残留文件,并不影响工具再次使用。异常中断的任务请重新执行。 安装和运行x2hce-ca工具的系统参数要求如下所述。 表1 运行x2hce-ca工具的操作系统参数要求 硬件类型 说明 架构 x86_64 CPU 双核及以上 内存 系统空闲内存要求8GB及以上 硬盘 20GB及以上 父主题: x2hce-ca应用兼容性评估
  • 准备工作 执行如下命令检查待优化的二进制文件中是否可以重新定位。可以重新定位表示可以进行应用优化。 readelf -a application | grep .rela.text 如果二进制文件中.rela.text段存在,表示可以重新定位。 如果不存在,为了允许BOLT在程序中重新排列函数(除了重新排列函数中的代码),需要将--emit-relocs或-q添加到应用程序的最后链接步骤中。 采集应用运行时的日志数据。 部署并预热应用后,即可使用llvm-bolt -instrument -o -instrumentation-file命令配置应用的日志采集方式。 例如,配置test.so文件运行后每隔30秒收集一次日志,日志保存到运行时test.log文件中请使用如下命令。 llvm-bolt tests.so -instrument -o testd.so -instrumentation-file=test.log -instrumentation-sleep-time=30 -instrumentation-no-counters-clear instrument -o:配置完日志采集方式后生成的新的动态库文件。本例中新生成的动态库为testd.so。 instrumentation-file:日志保存的文件名称。本例为test.log。 instrumentation-sleep-time:采集日志的时间间隔,单位为秒。本例中每隔30秒采集一次日志。 instrumentation-no-counters-clear:表示每次日志采集后不要清除日志计数器信息,保持日志信息上下文连续 运行testd.so对应的应用程序,应用程序运行日志会自动保存在test.log文件中。 应用加速工具会根据test.log文件中的动态数据来优化应用。
  • 通过repo文件批量下载RPM包 本节以openEuler-22.03-LTS/everything/x86_64为例,介绍下载openEuler-22.03-LTS/everything/x86_64目录下的RPM包并使用yum命令安装。 首先确保虚拟机能访问https://repo.openeuler.org/openEuler-22.03-LTS/网址。 配置yum源。 进入/etc/yum.repos.d目录,新建一个openEuler.repo文件,并将以下内容复制到该文件里面。 由于openEuler.repo文件和HCE系统repo文件有冲突,请先将/etc/yum.repos.d目录下HCE原有的repo文件进行备份,并删除HCE原有的repo文件,再创建openEuler.repo文件。 [openeuler] name=openeuler baseurl=https://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/ gpgcheck=1 enabled=1 priority=3 gpgkey=https://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler [everything] name=everything baseurl=https://repo.openeuler.org/openEuler-22.03-LTS/everything/x86_64 gpgcheck=1 enabled=1 priority=3 gpgkey=https://repo.openeuler.org/openEuler-22.03-LTS/everything/x86_64/RPM-GPG-KEY-openEuler 执行yum clean all清除原来yum源的缓存信息。 执行yum makecache连接新配置的源 ,如下图所示表示repo源连接成功。 安装RPM包,以hadoop-3.1-common包为例。 执行yum list命令查看是否存在该包。 执行yum -y install hadoop-3.1-common命令来安装此包,如下所示表示该包已经安装成功。 恢复repo文件。 安装所需的openEuler包后,删除openEuler.repo文件,并将步骤2中删除的repo文件通过备份恢复。
  • 通过wget命令下载RPM包 本节以下载hadoop-3.1-common-3.1.4-4.oe2203.noarch.rpm为例,介绍使用wget命令下载并安装RPM包。 单击这里登录openEuler社区。 在OS/everything目录下,选择aarch64/或者x86_64/系统架构目录,并打开“Packages/”目录。 查找所需要的RPM包,例如hadoop-3.1-common-3.1.4-4.oe2203.noarch.rpm。 选择此包后右击复制下载链接,执行wget命令下载RPM包。 检查是否下载成功。如下所示表示下载成功。 使用rpm -ivh hadoop-3.1-common-3.1.4-4.oe2203.noarch.rpm命令安装RPM包,如下所示表示安装成功。 如果安装过程中提示需要依赖其他的安装包,请根据同样的操作步骤先安装所依赖的安装包。
  • 背景信息 现有操作系统中,支持配置离线业务和在线业务。当内存发生OOM时,会优先选择离线业务控制组中的消耗内存最多的进程,结束进程回收内存,但是对于某些离线业务也有核心业务,因此会造成很大的影响。 针对这个问题,HCE调整了OOM时回收内存的策略,增加了配置cgroup优先级的功能。 内存紧张情况下内核会遍历cgroup,对低优先级的cgroup结束进程,并回收内存,使离线业务中重要的业务可以存活下来。
  • memcg OOM优先级接口功能说明 接口 说明 取值 memcg_qos_enable memcg OOM优先级策略开关。 0:不开启优先级配置。当OOM时,按照系统原有的OOM操作结束进程,结束内存消耗最大的进程,回收内存。 1:开启优先级配置并以cgroup为粒度。当OOM时,结束优先级低的cgroup所有进程,并回收内存。 2:开启优先级配置并以单个进程个为粒度。当OOM时,结束优先级低的cgroup中的最大的一个进程,并回收内存。 整数形式,取值范围为0~2,默认值为0。 memory.qos_level 配置cgroup组优先级。值越小cgroup组优先级越低。 当memcg OOM时,会以当前cgroup组为父节点,查找子节点优先级最低的cgroup组中内存使用最大的进程,结束该进程,回收内存。 当OOM时,对于优先级相等的cgroup组,会根据组的内存使用量进行二次排序,选择内存使用最大的进行OOM操作。 说明: 使用memory.qos_level的前提条件为memcg_qos_enable取值须为1或2。 新创建的cgroup组的memory.qos_level值默认会继承父节点的memory.qos_level的值,但是子节点的优先级不受父节点的限制。 如果修改cgroup组父节点的优先级,子节点的优先级会自动调整,和父节点保持一致。 整数形式,取值范围为-1024~1023,默认值为0。
  • 需求背景 在业务混部场景中,Linux内核调度器需要为高优先级任务赋予更多的调度机会,并需要把低优先级任务对内核调度带来的影响降到最低。原有的在线、离线两级混部调度无法满足业务需求。 为解决此问题,HCE 2.0内核cpu cgroup支持多级混部调度,提供cgroup接口/sys/fs/cgroup/cpu/cpu.qos_level将任务调度级别扩展到5个级别,支持用户对每个cgroup组单独设置优先级。
  • 使用镜像归档文件启动容器 确认repo源配置正常。 请检查默认的/etc/yum.repos.d/hce.repo配置文件中参数是否正确,正确的配置如下。 [base] name=HCE $releasever base baseurl=https://repo.huaweicloud.com/hce/$releasever/os/$basearch/ enabled=1 gpgcheck=1 gpgkey=https://repo.huaweicloud.com/hce/$releasever/os/RPM-GPG-KEY-HCE-2 [updates] name=HCE $releasever updates baseurl=https://repo.huaweicloud.com/hce/$releasever/updates/$basearch/ ...... 安装docker软件包。 yum install docker -y 使用镜像归档文件创建容器镜像。 mv /tmp/docker_rootfs/hce-docker.x86_64.tar.xz . docker import hce-docker.x86_64.tar.xz 执行docker images命令可查看到容器镜像ID为6cfefae3a541。 创建镜像可使用如下命令指定镜像的REPOSITORY和TAG参数。 docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]] 在容器中运行镜像bash文件。 运行如下命令后,如果shell视图改变,表示成功进入容器bash。 docker run -it 6cfefae3a541 bash
  • 升级步骤 检查待更新的RPM包。 执行dnf list updates命令查看所有待更新的RPM包列表。 [root@localhost bin]# dnf list updates Last metadata expiration check: 6:49:11 ago on Tue 28 Jun 2022 01:55:35 PM CS T. hce-config.x86_64 3.0-66.hce2 hce-latest-release.x86_64 2.0-1656179342.2.0.2206.B032.hce2 irqbalance.x86_64 3:1.8.0-7.h9.hce2 kernel.x86_64 5.10.0-60.18.0.50.h316_1.hce2 kernel-tools.x86_64 5.10.0-60.18.0.50.h316_1.hce2 kernel-tools-libs.x86_64 5.10.0-60.18.0.50.h316_1.hce2 kexec-tools.x86_64 2.0.23-4.h8.hce2 libcurl.x86_64 7.79.1-2.h4.hce2 libssh.x86_64 0.9.6-2.h3.hce2 libstdc++.x86_64 10.3.1-10.h10.hce2 libxml2.x86_64 2.9.12-5.h5.hce2 openssh.x86_64 8.8p1-2.h12.hce2 openssh-clients.x86_64 8.8p1-2.h12.hce2 openssh-server.x86_64 8.8p1-2.h12.hce2 Obsoleting Packages dnf-data.noarch 4.10.0-3.h6.hce2 dnf.noarch 4.10.0-3.h5.hce2 dnf-data.noarch 4.10.0-3.h6.hce2 dnf-data.noarch 4.10.0-3.h5.hce2 执行dnf list updates --security命令,仅查看安全更新涉及的RPM包。 [root@localhost bin]# dnf list updates --security Last metadata expiration check: 0:00:03 ago on Fri 08 Jul 2022 04:45:56 PM CST. No security updates needed, but 2 updates available 升级待更新的RPM包。 执行dnf update命令升级所有待更新的RPM包,包括安全更新涉及的RPM包和漏洞修复。执行命令输出信息中会显示组件的目标版本信息(Version列)。 [root@localhost bin]# dnf update Last metadata expiration check: 7:12:18 ago on Tue 28 Jun 2022 01:55:35 PM CST. Dependencies resolved. ================================================================================================ Package Arch Version Repo Size ================================================================================================ Installing: kernel x86_64 5.10.0-60.18.0.50.h316_1.hce2 hce2 47 M Upgrading: hce-config x86_64 3.0-66.hce2 hce2 13 k hce-latest-release x86_64 2.0-1656179342.2.0.2206.B032.hce2 hce2 5.2 k kernel-tools x86_64 5.10.0-60.18.0.50.h316_1.hce2 hce2 230 k kernel-tools-libs x86_64 5.10.0-60.18.0.50.h316_1.hce2 hce2 62 k kexec-tools x86_64 2.0.23-4.h8.hce2 hce2 400 k libcurl x86_64 7.79.1-2.h4.hce2 hce2 284 k libssh x86_64 0.9.6-2.h3.hce2 hce2 194 k libstdc++ x86_64 10.3.1-10.h10.hce2 hce2 535 k libxml2 x86_64 2.9.12-5.h5.hce2 hce2 659 k logrotate x86_64 3.18.1-1.h2.hce2 hce2 60 k mdadm x86_64 4.1-5.h2.hce2 hce2 331 k nftables x86_64 1:1.0.0-1.h3.hce2 hce2 303 k perl x86_64 4:5.34.0-3.h5.hce2 hce2 3.2 M perl-libs x86_64 4:5.34.0-3.h5.hce2 hce2 1.8 M Installing dependencies: grub2-tools-efi x86_64 1:2.06-3.h5.hce2 hce2 472 k Transaction Summary ================================================================================================ Install 2 Packages Upgrade 72 Packages Total download size: 105 M Is this ok [y/N]: 执行dnf update --security命令,仅升级安全更新涉及的RPM包。 [root@localhost bin]# dnf update --security Last metadata expiration check: 7:15:16 ago on Tue 28 Jun 2022 01:55:35 PM CST. No security updates needed, but 73 updates available Dependencies resolved. Nothing to do. Complete! 升级成功后,请及时确认业务运行情况。 升级过程中遇到的常见问题: 安全规范要求chronyd服务在安装/升级后默认处于disabled状态,所以从HCE-2.0.2206版本升级至新版本后,chronyd服务会处于disabled状态。如有需要,您可通过systemctl enable chronyd使能该服务,并通过systemctl start chronyd启动该服务。
  • 前提条件 HCE中已安装dnf组件,dnf命令可用。 [root@localhost bin]# dnf usage: dnf [options] COMMAND List of Main Commands: alias List or create command aliases autoremove remove all unneeded packages that were originally installed as dependencies check check for problems in the packagedb check-update check for available package upgrades clean remove cached data deplist [deprecated, use repoquery --deplist] List package's dependencies and what packages provide them distro-sync synchronize installed packages to the latest available versions downgrade Downgrade a package ......
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 request_id String 请求的唯一标识ID。 jobs Array of PhoneJob objects 任务信息。 表6 PhoneJob 参数 参数类型 描述 phone_id String 云手机的唯一标识ID,云手机相关任务包含此字段。 job_id String 任务的唯一标识。 error_code String 错误码。 error_msg String 错误说明。
  • 请求示例 将手机数据导出到obs桶 POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/batch-storage { "storage_infos" : [ { "phone_id" : "1234567b8bab40ffb711234cb80d0234", "include_files" : [ "/data/app", "/data/local", "/data/media" ], "exclude_files" : [ "/data/app/com.xx.xx-*" ], "bucket_name" : "mybucket", "object_path" : "myimage/v1/xxxxx.tar" } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 storage_infos 是 Array of StorageInfo objects 待导出数据的云手机信息。 表4 StorageInfo 参数 是否必选 参数类型 描述 phone_id 是 String 云手机ID。 include_files 是 Array of strings 需要导出数据的存储路径,绝对路径,最大长度4096字节。仅支持导出/data和、cache目录下的数据。目前只支持大小写字母、数字、小数点(.)、斜线(/)、中划线(-)、下划线(_)、加号(+)、井号(#)、星号(*)、等号这些字符。 exclude_files 否 Array of strings 不能导出数据的存储路径。exclude_files优先级比include_files高,如果冲突,exclude_files生效。 路径要求同include_files。 bucket_name 是 String 导出数据存储的OBS桶名。 合法的OBS桶名,3-63个字符,只能由小写字母、数字、中划线(-)和小数点(.)组成。 object_path 是 String 导出数据存储的OBS路径名。 符合OBS的路径名规范,最大长度1024字符。目前只支持大小写字母、数字、小数点(.)、斜线(/)、中划线(-)、下划线(_)、加号(+)、井号(#)、等号这些字符。
  • 响应示例 状态码: 200 OK { "image_infos" : [ { "domain_id" : "4a2a9967e4514c388a4c945efcbab9d6", "image_name" : "cph-private-image", "update_time" : "2024-04-11T06:38:21Z", "create_time" : "2024-04-11T06:38:21Z", "image_size" : 1306150912, "project_id" : "3a63a229aa6e47bab2153b44a7f3f50d", "image_id" : "23030320230421e300221a2000004433", "image_version" : "AOSP 9.0", "image_type" : "private", "status" : 1 } ], "total" : 1, "request_id" : "bff458ad55f24751b0b226119ab4f9fd" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 image_infos Array of ListImagesView objects 镜像详情 total Integer 总条数 request_id String 请求的唯一标识ID。 表5 ListImagesView 参数 参数类型 描述 domain_id String 镜像所属租户 image_name String 镜像名称 update_time String 镜像更新时间 create_time String 镜像创建时间 image_size Long 镜像大小,单位byte project_id String project_id(当image_type为private时,才会返回此字段) image_id String 镜像ID image_version String 镜像AOSP版本 image_type String 镜像类型 公共镜像:public 私有镜像:private 共享镜像:share status Integer 镜像状态。 0:CREATING 创建中 1:PRODUCTION 生产态,可使用 2:CREATE_FAILED 创建失败 src_project_id String 共享镜像账号的projectId(当image_type为share时,才会返回此字段)
  • URI GET /v1/{project_id}/cloud-phone/images 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目id。 表2 Query参数 参数 是否必选 参数类型 描述 image_type 否 String 镜像类型。 private:私有镜像 share:共享镜像 status 否 Integer 镜像状态。 0:CREATING 创建中 1:PRODUCTION 生产态,可使用 2:CREATE_FAILED 创建失败 offset 否 Integer 偏移量为一个大于等于0整数,表示查询该偏移量后面的所有的资源数,默认值为0。 limit 否 Integer 每页返回的资源个数。取值范围:1~100(默认值为100),一般设置为10、20、50。 image_id 否 String 镜像id image_name 否 String 镜像名称 create_since 否 Long 起始时间 create_until 否 Long 截止时间 src_project_id 否 String 共享镜像账号的projectId
  • 操作步骤 进入“充值”页面。 选择充值方式。 在线支付 在“充值金额”后设置充值金额。 单击“下一步”,根据选择的充值方式跳转到对应的充值页面,继续完成充值操作。 转账汇款 已经获得专属汇款账号的客户,可通过当前账号实名主体的银行卡进行汇款。如需使用其他汇款户名的银行卡汇款,可单击“新增其他汇款户名”,创建第三方代付协议后,可通过新增的汇款户名转账汇款。 转账汇款预计1-5个工作日到账(工商银行1-2个工作日,跨行2-5个工作日,具体到账时间以银行的实际到账时间为准)。 为确保资金安全及合规性,当汇款户名不是华为云账号实名认证主体时,华为云将进行严格核查,并有权拒收存在异常情况的汇款。 单击“代付管理”,可管理代付协议,详情请参见代付管理。 单击“发送短信”,系统会将专属汇款账号信息发送到您的手机短信中。单击“下载文件”,可下载华为云专属账号证明文件。 如果当前客户已经通过实名认证,但是还没有申请专属汇款账号,请根据如下页面进行申请操作。 单击“开通”,根据页面提示进行二次确认后,单击“确定”,立即获取一个专属汇款账号。 如果当前客户没有通过实名认证,则可以根据页面提示完成认证后,再申请专属汇款账号进行转账汇款。详细的实名认证操作请参见客户认证。
共100000条