华为云用户手册

  • I/O error Linux I/O error报错通常表示输入/输出操作失败,在网卡、磁盘等IO设备驱动异常,或文件系统异常都可能打印这个错误。 原理 错误原因取决于代码执行失败的条件。常见的触发异常的原因是硬件故障、磁盘损坏、文件系统错误、驱动程序问题、权限问题等。例如当系统尝试读取或写入磁盘上的数据时,如果发生错误,就会出现I/O错误。 触发方法 系统读写磁盘过程,拔出磁盘,导致磁盘数据损坏。
  • EXT4-fs error EXT4-fs error是由于ext4格式的文件系统中,文件节点的错误导致。 原理 文件储存的最小存储单位叫做“扇区”(sector),连续多个扇区组成“块”(block)。inode节点储存文件的元信息,包括文件的创建者、创建日期、大小、属性、实际存储的数据块(block number)。EXT4格式的inode信息校验失败会触发EXT4-fs error。 图2 EXT4文件系统结构 内核ext4校验使用checksum校验inode信息,当出现分区表错误、磁盘硬件损坏时,内核返回-EIO错误码,系统上报EXT4-fs error checksum invalid错误。 触发方法 使用磁盘过程中强行拔盘,重新接入读盘。
  • 背景说明 HCE运行时,不可避免地会出现一些内核事件,例如soft lockup、RCU(Read-Copy Update) stall、hung task、global OOM、cgroup OOM、page allocation failure、list corruption、Bad mm_struct、I/O error、EXT4-fs error、MCE (Machine Check Exception)、fatal signal、warning、panic。本节为您介绍这些内核事件的原理及触发方法。
  • soft lockup soft lockup是内核检测CPU在一定时间内(默认20秒)没有发生调度切换时,上报的异常。 原理 soft lockup利用Linux内核watchdog机制触发。内核会为每一个CPU启动一个优先级最高的FIFO实时内核线程watchdog,名称为watchdog/0、watchdog/1以此类推。这个线程会定期调用watchdog函数,默认每4秒执行一次。同时调用过后会重置一个hrtimer定时器在2倍的watchdog_thresh时间后到期。watchdog_thresh是内核参数,对应默认超时时间为20秒。 在超时时间内,如果内核线程watchdog没被调度,hrtimer定时器到期,即触发内核打印类似如下的soft lockup异常。 BUG: soft lockup - CPU#3 stuck for 23s! [kworker/3:0:32] 触发方法 关闭中断或关闭抢占,软件执行死循环。
  • RCU(Read-Copy Update) stall RCU stall是一种rcu宽限期内rcu相关内核线程没有得到调度的异常。 原理 在RCU机制中,reader不用等待,可以任意读取数据,RCU记录reader的信息;writer更新数据时,先复制一份副本,在副本上完成修改,等待所有reader退出后,再一次性地替换旧数据。 writer需要等所有reader都停止引用“旧数据”才能替换旧数据。这相当于给了这些reader一个优雅退出的宽限期,这个等待的时间被称为grace-period,简称GP。 当reader长时间没有退出,writer等待的时间超过宽限期时,即上报RCU Stall。 触发方法 内核在Documentation/RCU/stallwarn.txt文档列出了可能触发RCU stall的场景:cpu在rcu reader临界区一直循环,cpu在关闭中断或关闭抢占场景中一直循环等。
  • 接口示例 按如下所示创建6个cgroup节点A、B、C、D、E、F,配置memory.min接口,示例说明多级内存回收策略。 图2 多级内存回收策略 表2 数据规划 cgroup组 memory.limit_in_bytes memory.min memory.usage_in_bytes A 200M 0 - B - 0 - C - 75M 50M D - 25M 50M E - 0 50M F - 125M -
  • 产品优势 节约成本 随着显卡技术的不断发展,单张GPU卡的算力越来越强,同时价格也越来越高。但在很多的业务场景下,一个AI应用并不需要一整张的GPU卡。XGPU的出现让多个容器共享一张GPU卡,从而实现业务的安全隔离,提升GPU利用率,节约用户成本。 可灵活分配资源 XGPU实现了物理GPU的资源任意划分,您可以按照不同比例灵活配置。 支持按照显存和算力两个维度划分,您可以根据需要灵活分配。 图2 GPU资源分配 XGPU支持只隔离显存而不隔离算力的策略,同时也支持基于权重的算力分配策略。算力支持最小1%粒度的划分,推荐最小算力不低于4%。 兼容性好 不仅适配标准的Docker和Containerd工作方式,而且兼容Kubernetes工作方式。 操作简单 无需重编译AI应用,运行时无需替换CUDA库。
  • 第三方repo源配置 如果要新增第三方repo源,可按下述过程进行配置(以openEuler社区的镜像源为例): 在/etc/yum.repos.d/目录新增openEuler.repo文件(名称可以自定义,文件后缀需以.repo结尾)。使用vim /etc/yum.repos.d/openEuler.repo命令进行编辑。 配置仓库名字,如openEuler-everything,仓库名必须唯一,可根据实际情况进行调整。 配置name选项,如openEuler everything repository,表示仓库的具体描述,可根据实际情况进行调整。 配置baseurl选项,此处为:https://repo.openeuler.org/openEuler-22.03-LTS/everything/x86_64,表示软件包从该链接获取,具体可参考openEuler或者对应repo提供者的官方说明。 配置gpgcheck选项,为1表示对安装的软件包进行gpg校验。 配置enabled选项,为1表示启用该repo源。 配置gpgkey选项,此处为:https://repo.openeuler.org/openEuler-22.03-LTS/everything/x86_64/RPM-GPG-KEY-openEuler,表示gpg校验使用的公钥来源于该链接。 按照上述方法,再添加上openEuler update repo源,最终openEuler.repo文件效果如下: [openEuler-everything] name=openEuler everything repository 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 [openEuler-update] name=openEuler update repository baseurl=https://repo.openeuler.org/openEuler-22.03-LTS/update/x86_64/ gpgcheck=1 enabled=1 priority=3 gpgkey=https://repo.openeuler.org/openEuler-22.03-LTS/everything/x86_64/RPM-GPG-KEY-openEuler 可以通过配置中的priority字段控制repo源的优先级。如果优先使用HCE默认源,可在hce.repo配置中都加上priority=1(数值越小优先级越高),然后在第三方源配置中加上priority=2,数值根据实际情况进行调整。 如果要升级软件包,可参考用户指南更新HCE系统和RPM包。
  • 官方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 有如下回显信息,表示迁移完成。若迁移失败请使用备份数据恢复。 图3 回显信息 CentOS含有某些HCE 1.1不提供的RPM包,执行centos2hce1.py命令迁移系统后,迁移工具会自动清除这些RPM包。如果您想保留这些RPM包,请使用-s skip参数进行系统迁移。 (可选)删除无用的RPM包。 如下两个RPM包在迁移过程中并没有使用,也不会对系统运行产生任何影响。在此对您可能产生的疑惑进行解释。 图4 无用的RPM包 图5 删除无用的RPM包 执行reboot命令重启操作系统。 执行cat /etc/os-release命令检查是否迁移成功。 显示如下Huawei Cloud EulerOS信息表示迁移成功。 图6 迁移成功 (可选)开启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配置文件说明。
  • 版本回退 请根据是否需要立刻重启,选择合适的回退方式。 回退至原系统,不立刻重启。 osmt rollback 回退至原系统并立刻重启。使用此方式,请忽略步骤2。 osmt rollback --reboot_config always 执行reboot命令重启系统。 必须重启系统才能回退到HCE的原系统版本。 检查是否回退成功。 可执行cat /etc/hce-latest查看hceversion字段,若此字段中版本部分是升级前的版本号,表示已回退成功。
  • 版本升级 确认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/ ...... 错误的配置内容可能会导致OSMT升级失败或非预期的升级行为。 更新OSMT软件版本。 OSMT软件版本和HCE版本存在配套关系。HCE默认安装当前系统的OSMT工具,系统升级时,需要将OSMT更新至目标系统版本对应的OSMT版本。 执行dnf update osmt -y --releasever [系统目标版本号] 更新OSMT。例如,将HCE 2.0升级到HCE 2.1,则执行dnf update osmt -y --releasever 2.1命令更新OSMT到2.1版本。 若误将OSMT删除,执行dnf install osmt -y --releasever [系统目标版本号] 进行安装。例如,将系统升级至HCE 2.1,则执行dnf install osmt -y --releasever 2.1命令安装OSMT2.1版本。 升级HCE系统版本。 osmt update --releasever [系统目标版本号] --reboot_config [重启配置] 请根据是否需要立刻重启,选择合适的升级方式。更多的升级选项,详见osmt update -h。 将HCE 2.0升级到目标版本,如HCE 2.1。 osmt update --releasever 2.1 升级后,须执行reboot命令重启系统,目标系统版本才能生效。 将HCE 2.0升级到目标版本,如HCE 2.1,并立刻重启。 osmt update --releasever 2.1 --reboot_config always 将HCE 2.0升级到目标版本,如HCE 2.1,并指定重启时间,如“2022-12-30 23:00:00”。 osmt update --releasever 2.1 --reboot_config "2022-12-30 23:00:00" 重启完成后,检查是否升级成功。 执行cat /etc/hce-latest查看hceversion字段,若此字段中版本部分是--releasever指定的版本号,表示升级成功。 (可选)删除升级备份文件。 确认升级后功能正常后,执行osmt remove删除备份文件。 请确认升级无异常后再执行osmt remove。执行osmt remove将删除所有升级备份数据,执行后无法再执行回退。
  • 静态加速配置文件示例 [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的参数组合
  • 动态加速配置文件 应用加速工具默认动态加速配置信息如下,您可以自定义配置文件来优化应用。 图2 应用加速工具默认动态加速配置信息示例 配置文件中模块含义: [mission]:优化运行中的应用所要配置的参数。 [stop-strategy]:应用优化停止策略,请选择其中一种配置。 表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%。 图7 权重弱调度 权重弱调度涉及空闲算力的抢占和抢回,因此容器在空闲和忙碌之间切换时会影响其他容器的算力,该算力波动属于正常情况。当某个容器从空闲切换到忙碌时,其抢回算力的时延不超过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的空闲算力。 图6 混合调度 混合调度策略不支持高优先级容器。
  • 权重抢占调度(policy=4) 权重抢占调度表示按照每个容器的算力比例为容器分配时间片。XGPU服务会从算力单元1开始调度,但如果某个算力单元没有分配给某个容器,则跳过调度切换到下一个时间片。例如为容器1、2、3分别分配5%、5%、10%的算力,则容器1、2、3分别占用1、1、2个算力单元。图中灰色部分的算力单元表示被跳过不参与调度。 本例中容器1、2、3占用的实际算力百分比为25%、25%、50%。 图5 权重抢占调度
  • 系统回退 系统回退。 迁移操作支持系统回退,您可根据需要决定是否回退至原操作系统。 执行centos2hce2.py --rollback all命令进行系统回退。回退后,执行reboot命令对系统重启。 图7 系统回退&重启 执行centos2hce2.py --precommit rollback命令,恢复环境。 图8 恢复环境 (可选)若迁移前已开启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
  • 迁移系统至HCE 执行迁移命令centos2hce2.py --upgrade all 进行系统迁移。 出现migrate success提示信息,表明系统迁移成功。迁移后支持回退至原系统,详见系统回退的步骤1。 图1 系统迁移 图2 迁移成功 迁移命令不能设置为Linux后台方式执行。 可附加--simple_name参数,使得迁移后的grub菜单中显示Huawei Cloud EulerOS的简称。 在升级过程中如果遇到因为网络中断、软件包冲突等情况导致的升级失败,可以通过重新执行迁移命令再次进行系统迁移。 在升级过程中如果遇到报错如图3所示,表明升级过程因冲突包中断,需要处理冲突包后再次执行升级。冲突包处理请参见冲突包列表。 图3 冲突包报错 系统迁移完毕后,执行reboot命令(若reboot无响应,执行reboot -f)使系统完成切换。 系统重启后,执行cat /etc/hce-release命令查看迁移后的操作系统信息,执行uname -a命令查看系统内核信息。 若显示Huawei Cloud EulerOS操作系统,则迁移成功;否则迁移失败,请联系技术工程师咨询。 图4 查看迁移后操作系统信息及系统内核信息 待迁移系统迁移到HCE后,控制台仍然显示迁移前的操作系统名称。您可手动更新控制台操作系统名称,具体操作详见迁移系统后,如何更改控制台操作系统名称? 清理旧版本组件的文件。 待迁移系统迁移到HCE后,新版本组件替换旧版本组件,但此时旧版本组件的文件仍然保存在系统中。执行命令centos2hce2.py --precommit upgrade可清理旧版本组件的文件。 返回信息中提示“upgrade precommit success”表示环境清理成功。 图5 清理旧版本组件的文件 清理动作可执行多次。 (可选)修改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的版本详细信息,并且无任何错误信息。 图6 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 第二次重启后,执行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
  • 使用毕昇编译器 以下[command line flags]为命令行选项或参数,可按需替换。 编译运行C/C++程序。 clang [command line flags] hello.c -o hello.o ./hello.o clang++ [command line flags] hello.cpp -o hello.o ./hello.o 编译运行Fortran程序。 flang [command line flags] hello.f90 -o hello.o ./hello.o 指定链接器。 毕昇编译器指定的链接器是LLVM的lld,若不指定它则使用默认的ld。 clang [command line flags] -fuse-ld=lld hello.c -o hello.o ./hello.o
  • 升级后续操作 升级成功后,请及时确认业务运行情况,如果业务运行正常,请在合适的时候执行osmt remove命令删除备份内容,删除后将无法回退本次升级内容。 安全规范要求chronyd服务在安装/升级后默认处于disabled状态,所以从HCE-2.0.2206版本升级至新版本后,chronyd服务会处于disabled状态。如有需要,您可通过systemctl enable chronyd使能该服务,并通过systemctl start chronyd启动该服务。 父主题: 使用OSMT工具升级
  • 约束限制 由于x2hce-ca工具安装会有额外资源包引入,不建议在业务环境中运行。x2hce-ca工具支持在HCE 2.0和CentOS的操作系统进行安装使用。 x2hce-ca工具支持扫描的文件格式为jar、py、pyc、bin、sh、rpm、ko。其中,针对rpm格式文件只支持源码为C、C++、Java和Python语言。 x2hce-ca工具不支持回滚,任务异常中断后会在/opt/x2hce-ca/目录下产生残留文件,并不影响工具再次使用。异常中断的任务请重新执行。 安装和运行x2hce-ca工具的系统参数要求如表1所述。 表1 运行x2hce-ca工具的操作系统参数要求 硬件类型 说明 架构 x86_64、aarch64 CPU 双核及以上 内存 系统空闲内存要求8GB及以上 硬盘 20GB及以上 父主题: x2hce-ca应用兼容性评估
  • 通过wget命令下载RPM包 本节以下载hadoop-3.1-common-3.1.4-4.oe2203.noarch.rpm为例,介绍使用wget命令下载并安装RPM包。 单击这里登录openEuler社区。 在“OS/”或“everything/”目录下,选择“aarch64/”或者“x86_64/”系统架构目录,并打开“Packages/”目录。 图1 Packages目录示例 查找所需要的RPM包,例如hadoop-3.1-common-3.1.4-4.oe2203.noarch.rpm。 图2 hadoop的rpm包示例 选择此包后右击复制下载链接,执行wget命令下载RPM包。 图3 wget命令下载示例 检查是否下载成功。如图4所示表示下载成功。 图4 成功下载示例 使用rpm -ivh hadoop-3.1-common-3.1.4-4.oe2203.noarch.rpm命令安装RPM包,如图5所示表示安装成功。 如果安装过程中提示需要依赖其他的安装包,请根据同样的操作步骤先安装所依赖的安装包。 图5 rpm包安装示例
  • 通过repo文件批量下载RPM包 本节以openEuler-22.03-LTS的x86_64架构为例,介绍如何下载openEuler-22.03-LTS的x86_64架构的RPM包并使用yum命令安装。 首先确保虚拟机能访问https://repo.openeuler.org/openEuler-22.03-LTS/网址。 配置yum源。 进入/etc/yum.repos.d目录,新建一个openEuler.repo文件,并将以下内容复制到该文件里面。 由于repo.openeuler.org/openEuler-22.03-LTS/update/x86_64/的openEuler.repo文件和HCE系统的repo文件有冲突,请先将/etc/yum.repos.d目录下HCE原有的repo文件进行备份,并删除HCE原有的repo文件,再创建openEuler.repo文件。 [openEuler-everything] name=openEuler everything repository 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 [openEuler-update] name=openEuler update repository baseurl=https://repo.openeuler.org/openEuler-22.03-LTS/update/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连接新配置的源 ,如图6所示表示repo源连接成功。 图6 yum命令执行示例 安装RPM包,以hadoop-3.1-common包为例。 执行yum list | grep hadoop-3.1-common命令查看是否存在该包。 图7 查询hadoop-3.1-common包是否存在示例 执行yum -y install hadoop-3.1-common命令来安装此包,如图8所示表示该包已经安装成功。 图8 yum安装hadoop-3.1-common包成功示例 恢复repo文件。 安装所需的openEuler包后,删除openEuler.repo文件,并将步骤2中删除的repo文件通过备份恢复。
  • 背景信息 现有操作系统中,支持配置离线业务和在线业务。当内存发生OOM时,会优先选择离线业务控制组中的消耗内存最多的进程,结束进程回收内存,但是对于某些离线业务也有核心业务,因此会造成很大的影响。 针对这个问题,HCE调整了OOM时回收内存的策略,增加了配置cgroup优先级的功能。 内存紧张情况下内核会遍历cgroup,对低优先级的cgroup结束进程,并回收内存,使离线业务中重要的业务可以存活下来。
  • memcg OOM优先级接口功能说明 表1 接口功能说明 接口 说明 取值 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组单独设置优先级。
  • 关于通用漏洞披露(CVE) CVE(Common Vulnerabilities and Exposures)是已公开披露的各种计算机安全漏洞,所发现的每个漏洞都有一个专属的CVE编号。HCE为保障系统安全性,紧密关注业界发布的CVE信息,并会及时修复系统内各类软件漏洞,增强系统的安全性。您可在HCE的安全公告中查看安全更新记录。 Huawei Cloud EulerOS 1.1安全公告 Huawei Cloud EulerOS 2.0安全公告 根据CVSS(Common Vulnerability Scoring System)评分,HCE将安全更新分为四个等级: Critical(高风险,必须安装) Important(较高风险,强烈建议安装) Moderate(中等风险,推荐安装) Low(低风险,可选安装) 若您目前已安装HCE 1.1及以上版本,您可以根据以下操作查询并安装安全更新,修复系统漏洞。本章节以HCE 2.0为例举例说明。 HCE版本不同,部分显示可能与本文档存在差异,以实际显示为准。 父主题: 对HCE进行安全更新
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全