华为云用户手册

  • XGPU服务使用示例 影响XGPU服务的环境变量如下表所示,您可以在创建容器时指定环境变量的值。容器引擎可以通过XGPU服务获得算力和显存。 表1 影响XGPU服务的环境变量 环境变量名称 取值类型 说明 示例 GPU_IDX Integer 指定容器可使用的GPU显卡。 为容器分第一张显卡: GPU_IDX=0 GPU_CONTAINER_MEM Integer 设置容器内可使用的显存大小,单位 MiB。 为容器分配的显存大小为5120MiB: GPU_CONTAINER_MEM=5120 GPU_CONTAINER_QUOTA_PERCENT Integer 指定显卡算力分配百分比。 算力支持最小1%粒度的划分,推荐最小算力不低于4%。 为容器分配50%的算力比例: GPU_CONTAINER_QUOTA_PERCEN=50 GPU_POLICY Integer 指定GPU使用的算力隔离的策略。 0:不隔离算力,即原生调度。 1:固定算力调度。 2:平均调度。 3:抢占调度。 4:权重抢占调度。 5:混合调度。 6:权重弱调度。 算力隔离策略示例详见XGPU算力调度示例。 设置算力隔离策略为固定算力调度:GPU_POLICY=1 GPU_CONTAINER_PRIORITY Integer 指定容器的优先级。 0:低优先级 1:高优先级 创建高优先级容器: GPU_CONTAINER_PRIORITY=1 以nvidia的docker创建两个容器为例,介绍XGPU服务的使用方法,数据规划如下。 表2 数据规划 参数 容器1 容器2 说明 GPU_IDX 0 0 指定两个容器使用第一张显卡。 GPU_CONTAINER_QUOTA_PERCENT 50 30 为容器1分配50%算力,为容器2分配30%算力。 GPU_CONTAINER_MEM 5120 1024 为容器1分配5120MiB显存,为容器2分配1024MiB显存。 GPU_POLICY 1 1 设置第一张显卡使用固定算力调度策略。 GPU_CONTAINER_PRIORITY 1 0 指定容器1为高优先级容器,容器2为低优先级容器。 配置示例: docker run --rm -it --runtime=nvidia -e GPU_CONTAINER_QUOTA_PERCENT=50 -e GPU_CONTAINER_MEM=5120 -e GPU_IDX=0 -e GPU_POLICY=1 -e GPU_CONTAINER_PRIORITY=1 --shm-size 16g -v /mnt/:/mnt nvcr.io/nvidia/tensorrt:19.07-py3 bash docker run --rm -it --runtime=nvidia -e GPU_CONTAINER_QUOTA_PERCENT=30 -e GPU_CONTAINER_MEM=1024 -e GPU_IDX=0 -e GPU_POLICY=1 -e GPU_CONTAINER_PRIORITY=0 --shm-size 16g -v /mnt/:/mnt nvcr.io/nvidia/tensorrt:19.07-py3 bash
  • 操作步骤 本例以优化/data/apps/mysql-8.0.28/bin目录下的mysqld应用 ,为您介绍动态加速方式优化应用的操作。 生成插桩版应用并运行。 执行命令/data/hce-wae/dbo/gen_instrumentation /data/apps/mysql-8.0.28/bin/mysqld生成插桩版应用。 命令格式:/data/hce-wae/dbo/gen_instrumentation 应用路径 图3 /data/hce-wae/dbo/gen_instrumentation命令执行示例 命令运行完成后,会在当前目录生成对应的以.inst为后缀的插桩文件mysqld.inst。 图4 查询以.inst为后缀的插桩文件示例 运行插桩文件获取进程PID,本例为87042。 图5 运行插桩文件获取进程PID示例 创建mysqld的应用加速动态配置文件。 每一个待优化的应用都要有一个对应的配置文件,应用加速工具根据此配置文件对应用进行动态加速。 执行如下命令复制一份默认的配置文件为/data/hce-wae/config/mysqld.conf。 [root@localhost]# cp /data/hce-wae/config/hce-wae-tmp.conf /data/hce-wae/config/mysqld.conf 设置/data/hce-wae/config/mysqld.conf配置文件中的origin-exe字段。 origin-exe为待优化应用的位置,本例为/data/apps/mysql-8.0.28/bin/mysqld [root@localhost]# vim /data/hce-wae/config/mysqld.conf 图6 origin-exe字段示例 使用配置文件和对应的进程PID配置动态加速工具。 命令格式:hce-wae --conf [PID] [/path/to/config] 图7 配置动态加速工具示例 启动动态加速,对插桩版mysql进行优化。 命令格式:hce-wae --start [PID] 图8 启动动态加速示例 启动后,可以通过--status参数查看当前优化状态。当状态为Running时,表示进程正在优化中;Finished时,表示进程已经优化完成。 命令格式:hce-wae --status [PID] 图9 查看当前优化状态示例 优化后,通过--snapshot参数生成优化后的.dbo二进制快照文件,本例为mysqld.dbo。 图10 生成优化后的.dbo二进制快照文件示例 快照生成的默认路径为/data/hce-wae/snapshot/,可在配置文件中对快照位置进行修改。后续您可以直接使用此优化后的快照文件mysqld.dbo运行应用,无需重复优化。 终止动态加速工具,应用优化结束。 命令格式:hce-wae --stop [PID] 图11 终止动态加速工具示例
  • 准备工作 在做动态加速之前,请先做如下两个检查。两个条件都满足,才能对应用进行动态加速。 执行如下命令检查待优化的二进制文件中是否可以重新定位。可以重新定位表示可以进行应用优化。 其中“application”可替换为待检查的二进制文件。 readelf -a application | grep .rela.text 图1 readelf命令执行示例 如果二进制文件中.rela.text段存在,表示可以重新定位。 如果不存在,为了允许BOLT在程序中重新排列函数,需要将选项--emit-relocs或-q添加到构建二进制文件的命令中。 执行hce-wae --check /data/apps/mysql-8.0.28/bin/mysqld命令查看应用是否支持动态加速。 如果检查结果为3,表示可以使用动态加速工具。否则不支持动态加速。 图2 检查结果为3示例
  • 使用概述 您可通过下列方法使用Huawei Cloud EulerOS。 首次创建弹性云服务器实例时,推荐使用HCE公共镜像。 将操作系统切换为HCE。 如果现有的弹性 云服务器配置 (网卡、磁盘、VPN等配置的类型和数量)都不需要改变,仅需要修改弹性云服务器的操作系统镜像,并且您的软件和原操作系统耦合度较低,适配到HCE改动较小,建议使用系统切换,可快速切换到HCE。 将操作系统迁移为HCE。 如果现有的弹性云服务器配置(网卡、磁盘、VPN等配置的类型和数量)都不需要改变,操作系统软件的配置参数希望保留,可以通过操作系统迁移的方式迁移到HCE。 仅支持迁移至Huawei Cloud EulerOS 2.0标准版和Huawei Cloud EulerOS 1.1CentOS兼容版,不支持迁移至其他HCE镜像版本。 表1 系统切换和迁移的区别 区别 系统切换 系统迁移 数据备份 切换操作系统会清除系统盘数据,包括系统盘上的系统分区和所有其它分区。 切换操作系统不影响数据盘数据。 迁移操作系统不会清除系统盘数据,为避免系统软件的数据丢失,建议将其备份。 迁移操作系统不影响数据盘数据。 个性化设置 切换操作系统后,当前操作系统内的个性化设置(如DNS、主机名等)将被重置,需重新配置。 迁移操作系统后,当前操作系统内的个性化设置(如DNS、主机名等)不需重新配置。
  • 约束与限制 仅HCE 2.0 x86架构支持使用tbwmcli命令。 仅允许root用户执行tbwmcli命令。 tbwmcli命令同一时间只能在一个网卡使能Qos功能,多个网卡不支持并行使能网络QoS。 网卡被插拔重新恢复后,原来设置的QoS规则会丢失,需要手动重新配置网络QoS功能。 不支持cgroup v2。 升级oncn-tbwm软件包不会影响升级前的使能状态。卸载oncn-tbwm软件包会关闭对所有设备的使能。 仅支持识别数字、英文字母、中划线“-” 和下划线“_”四类字符类型的网卡名,其他字符类型的网卡不被识别。 实际使用过程中,带宽限速有可能造成协议栈内存积压,此时依赖传输层协议自行反压,对于udp等无反压机制的协议场景,可能出现丢包、ENOBUFS、限流不准等问题。 收包方向的网络限速依赖于TCP的反压能力,在非TCP协议的场景中,网络包已经收至目标网卡,不支持对于收包方向的网络限速。 不支持tbwmcli、tc命令和网卡命令混用,只能单独使用tbwmcli工具进行限速。例如,某个网卡上已经设置过tc qdisc规则的情况下,对此网卡使能网络QoS功能可能会失败。
  • osmt-agent服务自动更新 osmt-agent服务支持周期性检查是否有待更新的RPM包,并自动更新RPM包。检查的周期和执行更新的时间段可以自定义设置。 执行以下命令,确保osmt.conf文件auto_upgrade字段为True。 osmt config -k auto_upgrade -v True 执行systemctl status osmt-agent.service命令确认osmt-agent服务是否正常开启。 Active为active (running)状态,表示osmt-agent正常开启。 如果osmt-agent没有处于active (running)状态,请执行systemctl start osmt-agent.service命令启动osmt-agent。 图1 确认osmt-agent服务是否正常开启 执行如下命令设置自动更新RPM包的时间段与升级周期。 指定可自动升级的时间段。 命令格式:osmt config -k auto_upgrade_window -v "auto_upgrade_window" auto_upgrade_window:配置后台osmt-agent服务自动升级的时间窗,格式为"HH:MM-HH:MM",表示升级的开始时间和截止时间。 如果截止时间小于开始时间,则表示本次升级时间段跨越自然日。如“22:00-05:00”表示升级时间段为当日22:00到次日凌晨5:00。 例如,配置当日23:00到次日01:00时间段为可升级时间窗: osmt config -k auto_upgrade_window -v "23:00-01:00" 指定检查升级的时间间隔。 命令格式:osmt config -k auto_upgrade_interval -v auto_upgrade_interval auto_upgrade_interval:指定两次自动升级之间的最小间隔(单位:天)。 例如,配置每隔1天进行自动升级的命令为: osmt config -k auto_upgrade_interval -v 1 父主题: 更新RPM包
  • 升级概述 HCE提供操作系统和RPM包的更新维护,包括部署在HCE上的RPM包、安全更新涉及的RPM包和漏洞修复。为了操作系统和RPM包的使用更加安全,请及时升级。 HCE支持使用dnf/yum命令和OSMT工具两种升级方式。 Linux自身支持dnf/yum命令,可对RPM包进行升级和回退,升级操作简单。 OSMT是华为云提供的对HCE系统及RPM包升级和回退的工具,可自定义升级范围和定时检查、延迟重启。 两种升级方式区别如下: 表1 升级方式区别 项目 使用dnf或yum命令升级 使用OSMT工具升级 RPM包升级 支持无差别升级所有待更新的RPM包,包括安全更新涉及的RPM包和漏洞修复。 支持仅升级安全更新涉及的RPM包。 支持无差别升级所有待更新的RPM包,包括安全更新涉及的RPM包和漏洞修复。 支持自定义升级范围: 升级不需要重启的RPM包。 升级需要重启的RPM包。 升级自定义黑白名或白名单列表中的RPM包。 升级安全更新涉及的RPM包。 漏洞修复。 升级新增功能的RPM包。 更新新增的RPM包。 支持自定义时间自动更新RPM包、延迟重启。 系统版本升级 不支持系统版本升级。 支持系统版本升级。 支持升级的版本 支持HCE 1.1从低版本向高版本的升级。 支持HCE 2.0从低版本向高版本的升级。 回退 支持回退所有历史操作。 系统或RPM包仅支持最近一次升级的回退。 父主题: 更新HCE系统和RPM包
  • 概述 OSMT是华为云提供的对HCE版本及RPM包升级和回退的工具。OSMT可自定义配置RPM包的升级范围,并支持周期性定时升级、在指定的时间段单次升级、延时升级并重启等功能。 版本升级和回退:介绍对整体HCE系统的升级及回退操作。 更新RPM包:介绍仅对RPM包的升级和回退操作。 OSMT仅支持针对HCE 2.0及以上的版本进行升级和回退。该工具会周期访问repo源以获取软件更新信息,从而产生网络流量。您可通过systemctl stop osmt-agent命令停止该服务,并通过systemctl disable osmt-agent命令禁用该服务自启动。 父主题: 使用OSMT工具升级
  • 工具概述 x2hce-ca是华为云对系统迁移提供的一款免费的应用兼容性评估工具。x2hce-ca通过对待迁移应用进行快速扫描分析,帮助您评估应用在源操作系统和目标操作系统的兼容性。 表1 支持兼容性评估的x86公共镜像 OS发行系列 源操作系统 目标操作系统 HCE 64bit:Huawei Cloud EulerOS:1.1 HCE 2.0 标准版 64位 EulerOS 64bit:EulerOS:2.10/2.9/2.5/2.3/2.2 HCE 2.0 标准版 64位 CentOS 64bit:CentOS 7:7.9/7.8/7.7/7.6/7.5/7.4/7.3/7.2/7.1/7.0 64bit:CentOS 8:8.3/8.2/8.1/8.0 HCE 2.0 标准版 64位 64bit:CentOS 7:7.9/7.6 Huawei Cloud EulerOS 1.1 CentOS兼容版 表2 支持兼容性评估的Arm公共镜像 OS发行系列 源操作系统 目标操作系统 EulerOS 64bit:EulerOS:2.10/2.9/2.8 HCE 2.0 标准版 64位 Arm版 父主题: x2hce-ca应用兼容性评估
  • 冲突包列表 冲突包列表表示在原系统中存在与HCE系统冲突的软件包,会影响升级过程。 冲突包会在升级过程中自动卸载并且不会再安装上,升级前请评估原系统依赖的软件包是否在此冲突列表内,以免造成升级完成后软件缺失。 如果发现升级后软件包丢失,可以通过yum命令安装新版本软件包。 如果升级过程中遇到其他冲突问题,可以修改/etc/centos2hce2.conf配置文件,参考本章节冲突包列表增加自定义的冲突包名称。 表1 CentOS 8系列冲突包列表 CentOS版本 冲突包列表 CentOS8.0 rust-doc;intel-gpu-tools;netcf-libs;redhat-rpm-config;asciidoc;gnuplot-common;perf;tigervnc-icons;libpq-devel;paratype-pt-sans-caption-fonts;scala-apidoc;java-11-openjdk-devel;java-11-openjdk-headless;java-1.8.0-openjdk-headless;dovecot;systemd-journal-remote;pcp-manager;pcp-webapi;libguestfs-java-devel;libguestfs-javadoc;icedtea-web-javadoc;systemtap-runtime-java;java-1.8.0-openjdk-accessibility;java-1.8.0-openjdk-demo;ant;tigervnc-server-applet;java-atk-wrapper;java-11-openjdk;guava20;javapackages-tools;jboss-jaxrs-2.0-api;maven-shared-utils;tagsoup;cdi-api;libbase;geronimo-annotation;pentaho-reporting-flow-engine;maven-resolver-api;apache-commons-codec;maven-lib;jansi-native;maven-wagon-provider-api;libguestfs-java;apache-commons-cli;istack-commons-tools;jline;plexus-cipher;istack-commons-runtime;jcl-over-slf4j;apache-commons-io;maven-resolver-spi;maven-wagon-file;httpcomponents-core;icedtea-web;glassfish-el-api;aopalliance;hawtjni-runtime;plexus-containers-component-annotations;flute;jboss-annotations-1.2-api;liblayout;java-1.8.0-openjdk;postgresql-jdbc;mariadb-java-client;plexus-sec-dispatcher;google-guice;libformula;jdeparser;ant-lib;maven-wagon-http-shared;jboss-logging;plexus-classworlds;slf4j;librepository;ongres-scram-client;sisu-plexus;libfonts;plexus-interpolation;java-1.8.0-openjdk-src;plexus-utils;scala-swing;maven-wagon-http;ongres-scram;maven-resolver-impl;libloader;httpcomponents-client;atinject;apache-commons-logging;maven-resolver-connector-basic;jansi;jsoup;maven-resolver-util;jboss-interceptors-1.2-api;libreoffice-ure;byteman;sac;apache-commons-lang3;libserializer;scala;maven-resolver-transport-wagon;jboss-logging-tools;sisu-inject;libreoffice-core;java-1.8.0-openjdk-devel CentOS8.1 kernel-rpm-macros;intel-gpu-tools;netcf-libs;redhat-rpm-config;asciidoc;gnuplot-common;perf;tigervnc-icons;libpq-devel;paratype-pt-sans-caption-fonts;java-1.8.0-openjdk-headless;java-11-openjdk-headless;java-11-openjdk-devel;pcp-pmda-rpm;pcp-pmda-podman;scala-apidoc;libguestfs-java-devel;libguestfs-javadoc;icedtea-web-javadoc;systemtap-runtime-java;java-1.8.0-openjdk-accessibility;java-1.8.0-openjdk-demo;ant;tigervnc-server-applet;java-atk-wrapper;java-11-openjdk;jansi-native;hawtjni-runtime;ongres-scram;jboss-annotations-1.2-api;liblayout;atinject;plexus-utils;istack-commons-tools;jline;apache-commons-io;ongres-scram-client;maven-shared-utils;maven-resolver-impl;libfonts;jsoup;apache-commons-codec;glassfish-el-api;jdeparser;maven-resolver-util;scala-swing;tagsoup;google-guice;istack-commons-runtime;jcl-over-slf4j;pentaho-reporting-flow-engine;maven-resolver-api;maven-resolver-connector-basic;libloader;slf4j;apache-commons-cli;maven-wagon-provider-api;maven-resolver-transport-wagon;byteman;httpcomponents-client;jna;java-1.8.0-openjdk-devel;maven-lib;libreoffice-core;java-1.8.0-openjdk-src;javapackages-tools;plexus-cipher;cdi-api;jboss-logging;sisu-inject;httpcomponents-core;guava20;sac;libbase;jboss-jaxrs-2.0-api;java-1.8.0-openjdk;libserializer;plexus-containers-component-annotations;jboss-interceptors-1.2-api;jboss-logging-tools;libguestfs-java;ant-lib;libreoffice-ure;maven-resolver-spi;maven-wagon-file;jansi;maven-wagon-http-shared;apache-commons-lang3;postgresql-jdbc;mariadb-java-client;plexus-sec-dispatcher;sisu-plexus;scala;plexus-classworlds;flute;maven-wagon-http;icedtea-web;libformula;plexus-interpolation;aopalliance;geronimo-annotation;librepository;apache-commons-logging CentOS8.2 python-psycopg2-doc;exiv2;llvm-googletest;adwaita-qt;llvm-static;rust-doc;intel-gpu-tools;netcf-libs;flatpak-session-helper;asciidoc;perf;tigervnc-icons;paratype-pt-sans-caption-fonts;java-1.8.0-openjdk-headless;java-11-openjdk-devel;java-11-openjdk-headless;scala-apidoc;libguestfs-java-devel;libguestfs-javadoc;icedtea-web-javadoc;systemtap-runtime-java;java-1.8.0-openjdk-accessibility;java-1.8.0-openjdk-demo;ant;tigervnc-server-applet;java-atk-wrapper;java-11-openjdk;jboss-annotations-1.2-api;cdi-api;ongres-scram;maven-resolver-util;apache-commons-codec;istack-commons-tools;icedtea-web;plexus-classworlds;plexus-utils;maven-wagon-http-shared;atinject;javapackages-tools;istack-commons-runtime;jline;geronimo-annotation;jansi;jdeparser;byteman;liblayout;maven-resolver-transport-wagon;jmc-core;ant-lib;libreoffice-core;jansi-native;jcl-over-slf4j;slf4j;ee4j-parent;libfonts;maven-wagon-http;jboss-logging;jboss-interceptors-1.2-api;tagsoup;httpcomponents-client;plexus-containers-component-annotations;apache-commons-lang3;jaf;java-1.8.0-openjdk-src;jsoup;guava20;flute;apache-commons-cli;libbase;ongres-scram-client;jboss-logging-tools;plexus-interpolation;libloader;librepository;libreoffice-ure;scala-swing;jboss-jaxrs-2.0-api;maven-resolver-spi;maven-lib;apache-commons-io;hawtjni-runtime;google-guice;aopalliance;libguestfs-java;postgresql-jdbc;jna;glassfish-el-api;maven-resolver-impl;java-1.8.0-openjdk;directory-maven-plugin;mariadb-java-client;httpcomponents-core;maven-wagon-file;maven-wagon-provider-api;owasp-java-encoder;libserializer;maven-shared-utils;plexus-cipher;java-1.8.0-openjdk-devel;plexus-sec-dispatcher;pentaho-reporting-flow-engine;maven-resolver-api;sac;scala;libformula;sisu-inject;apache-commons-logging;maven-resolver-connector-basic;sisu-plexus CentOS8.3 netcf-libs;rust-doc;git-credential-libsecret;texlive-context;intel-gpu-tools;flatpak-session-helper;asciidoc;perf;tigervnc-icons;paratype-pt-sans-caption-fonts;java-1.8.0-openjdk-headless;java-11-openjdk-devel;java-11-openjdk-headless;libguestfs-java-devel;libguestfs-javadoc;icedtea-web-javadoc;systemtap-runtime-java;java-1.8.0-openjdk-accessibility;java-1.8.0-openjdk-demo;ant;tigervnc-server-applet;java-atk-wrapper;java-11-openjdk;exiv2;llvm-googletest;adwaita-qt;llvm-static;python-psycopg2-doc;scala-apidoc;libXau;libappstream-glib;jmc-core;byteman;libfonts;jaf;jcl-over-slf4j;mariadb-java-client;tagsoup;libguestfs-java;jsoup;apache-commons-cli;sisu-inject;jansi-native;jna;apache-commons-lang3;flute;librepository;javapackages-tools;cdi-api;ongres-scram;java-1.8.0-openjdk-devel;sisu-plexus;istack-commons-runtime;jboss-logging;guava20;java-1.8.0-openjdk-src;maven-resolver-util;geronimo-annotation;hawtjni-runtime;jboss-annotations-1.2-api;ongres-scram-client;maven-resolver-connector-basic;slf4j;sac;apache-commons-codec;atinject;maven-wagon-http;libreoffice-ure;plexus-cipher;jboss-interceptors-1.2-api;jline;pentaho-reporting-flow-engine;httpcomponents-core;liblayout;istack-commons-tools;jdeparser;maven-wagon-provider-api;ee4j-parent;apache-commons-io;maven-resolver-spi;jboss-logging-tools;plexus-sec-dispatcher;plexus-containers-component-annotations;jboss-jaxrs-2.0-api;scala;libbase;libreoffice-core;httpcomponents-client;directory-maven-plugin;java-1.8.0-openjdk;libformula;maven-wagon-file;maven-shared-utils;aopalliance;glassfish-el-api;owasp-java-encoder;postgresql-jdbc;libloader;google-guice;plexus-classworlds;ant-lib;maven-resolver-api;plexus-interpolation;java-1.8.0-openjdk-slowdebug;maven-resolver-impl;java-1.8.0-openjdk-headless-slowdebug;prometheus-jmx-exporter;maven-resolver-transport-wagon;jolokia-jvm-agent;maven-wagon-http-shared;maven-lib;jansi;HdrHistogram;apache-commons-logging;plexus-utils;icedtea-web;libserializer;scala-swing CentOS8.4 python-psycopg2-doc;anaconda-install-env-deps;hwloc-gui;python3-lit;exiv2;cups-filters;cups-filters-libs;gutenprint;adwaita-qt;cups;cups-lpd;hplip-common;hwloc-libs;gutenprint-doc;gutenprint-libs;gutenprint-libs-ui;hwloc;foomatic-db-ppds;foomatic-db;python39-pip;python39-setuptools;python39-numpy;python39-chardet;python39-psutil;python39-urllib3;python39-requests;python39-wheel;libasan6;paratype-pt-sans-caption-fonts;python39-six;python39-idna;python39-ply;python39-pyyaml;python39-pycparser;python39-lxml;python39-pysocks;rust-doc;netcf-libs;git-credential-libsecret;texlive-context;flatpak-session-helper;asciidoc;intel-gpu-tools;tigervnc-icons;jmc-core;byteman;libfonts;jaf;jcl-over-slf4j;mariadb-java-client;tagsoup;libguestfs-java;jsoup;apache-commons-cli;sisu-inject;jansi-native;jna;apache-commons-lang3;flute;librepository;javapackages-tools;cdi-api;ongres-scram;java-1.8.0-openjdk-devel;sisu-plexus;istack-commons-runtime;jboss-logging;guava20;java-1.8.0-openjdk-src;maven-resolver-util;geronimo-annotation;hawtjni-runtime;jboss-annotations-1.2-api;ongres-scram-client;maven-resolver-connector-basic;slf4j;sac;apache-commons-codec;atinject;maven-wagon-http;libreoffice-ure;plexus-cipher;jboss-interceptors-1.2-api;jline;pentaho-reporting-flow-engine;httpcomponents-core;liblayout;istack-commons-tools;jdeparser;maven-wagon-provider-api;ee4j-parent;apache-commons-io;maven-resolver-spi;jboss-logging-tools;plexus-sec-dispatcher;plexus-containers-component-annotations;jboss-jaxrs-2.0-api;scala;libbase;libreoffice-core;httpcomponents-client;directory-maven-plugin;java-1.8.0-openjdk;libformula;maven-wagon-file;maven-shared-utils;aopalliance;glassfish-el-api;owasp-java-encoder;postgresql-jdbc;libloader;google-guice;plexus-classworlds;ant-lib;maven-resolver-api;plexus-interpolation;java-1.8.0-openjdk-slowdebug;maven-resolver-impl;java-1.8.0-openjdk-headless-slowdebug;prometheus-jmx-exporter;maven-resolver-transport-wagon;jolokia-jvm-agent;maven-wagon-http-shared;maven-lib;jansi;HdrHistogram;apache-commons-logging;plexus-utils;icedtea-web;libserializer;scala-swing;java-1.8.0-openjdk-headless;java-11-openjdk-devel;java-11-openjdk-headless;libguestfs-java-devel;libguestfs-javadoc;icedtea-web-javadoc;systemtap-runtime-java;java-1.8.0-openjdk-accessibility;java-1.8.0-openjdk-demo;ant;java-atk-wrapper;java-11-openjdk;scala-apidoc;libappstream-glib;PackageKit-gtk3-module;gnome-software;flatpak-libs;PackageKit-glib;PackageKit-gstreamer-plugin;libpq-devel;poppler;perf CentOS8.5 bluez;python-psycopg2-doc;perl-Devel-Peek;OpenIPMI-libs;anaconda-install-env-deps;postfix-mysql;perl-Devel-SelfStubber;metacity;bluez-libs;libicu;vte-profile;qt5-qttools-examples;exiv2;cups-filters;cups-filters-libs;gutenprint;gnome-session;cups;cups-lpd;hplip-common;hwloc;gnome-session-wayland-session;gutenprint-doc;gutenprint-libs;gutenprint-libs-ui;gnome-session-xsession;foomatic-db-ppds;foomatic-db;gnome-classic-session;gnome-shell-extension-apps-menu;gnome-shell-extension-auto-move-windows;gnome-shell-extension-drive-menu;gnome-shell-extension-launch-new-instance;gnome-shell-extension-native-window-placement;gnome-shell-extension-places-menu;gnome-shell-extension-screenshot-window-sizer;gnome-shell-extension-user-theme;gnome-shell-extension-window-list;gnome-shell-extension-windowsNavigator;gnome-shell-extension-workspace-indicator;python39-six;python39-idna;python39-ply;python39-pyyaml;python39-pycparser;python39-psutil;python39-urllib3;python39-lxml;python39-pysocks;xorg-x11-server-Xwayland;compat-hwloc1;bluez-obexd;bluez-hid2hci;netcf-libs;git-credential-libsecret;texlive-context;flatpak-session-helper;asciidoc;intel-gpu-tools;tigervnc-icons;libasan6;paratype-pt-sans-caption-fonts;pcp-pmda-podman;jmc-core;byteman;libfonts;jaf;jcl-over-slf4j;mariadb-java-client;tagsoup;libguestfs-java;jsoup;apache-commons-cli;sisu-inject;jansi-native;jna;apache-commons-lang3;flute;librepository;javapackages-tools;cdi-api;ongres-scram;java-1.8.0-openjdk-devel;sisu-plexus;istack-commons-runtime;jboss-logging;guava20;java-1.8.0-openjdk-src;maven-resolver-util;geronimo-annotation;hawtjni-runtime;jboss-annotations-1.2-api;ongres-scram-client;maven-resolver-connector-basic;slf4j;sac;apache-commons-codec;atinject;maven-wagon-http;libreoffice-ure;plexus-cipher;jboss-interceptors-1.2-api;jline;pentaho-reporting-flow-engine;httpcomponents-core;liblayout;istack-commons-tools;jdeparser;maven-wagon-provider-api;ee4j-parent;apache-commons-io;maven-resolver-spi;jboss-logging-tools;plexus-sec-dispatcher;plexus-containers-component-annotations;jboss-jaxrs-2.0-api;scala;libbase;libreoffice-core;httpcomponents-client;directory-maven-plugin;java-1.8.0-openjdk;libformula;maven-wagon-file;maven-shared-utils;aopalliance;glassfish-el-api;owasp-java-encoder;postgresql-jdbc;libloader;google-guice;plexus-classworlds;ant-lib;maven-resolver-api;plexus-interpolation;java-1.8.0-openjdk-slowdebug;maven-resolver-impl;java-1.8.0-openjdk-headless-slowdebug;prometheus-jmx-exporter;maven-resolver-transport-wagon;jolokia-jvm-agent;maven-wagon-http-shared;maven-lib;jansi;HdrHistogram;apache-commons-logging;plexus-utils;icedtea-web;libserializer;scala-swing;java-1.8.0-openjdk-headless;java-11-openjdk-devel;java-11-openjdk-headless;libguestfs-java-devel;libguestfs-javadoc;icedtea-web-javadoc;systemtap-runtime-java;java-1.8.0-openjdk-accessibility;java-1.8.0-openjdk-demo;ant;java-atk-wrapper;java-11-openjdk;scala-apidoc;libappstream-glib;PackageKit-gtk3-module;gnome-software;flatpak-libs;PackageKit-glib;PackageKit-gstreamer-plugin;coreos-installer-bootinfra;OpenIPMI;rust;cargo;perf;flatpak;hplip-libs;nautilus;gutenprint-cups;libgtop2;PackageKit;libsane-hpaio;PackageKit-command-not-found;xorg-x11-drv-wacom-serial-support;clutter;clutter-gtk;clutter-gst3;cheese-libs;cheese;gnome-initial-setup;gnome-control-center;clutter-gst2 表2 CentOS 7系列冲突包列表 CentOS版本 冲突包列表 CentOS7.0 texlive-kpathsea-lib;libdhash;libref_array;libbasicobjects;qemu-kvm-tools;texlive-dvipdfm-bin;texlive-dvipdfm;tomcat-servlet-3.0-api;gnuplot-common;postgresql-devel;tigervnc-icons;squid;perf;dovecot;dovecot-mysql;dovecot-pgsql;dovecot-pigeonhole;lvm2-cluster CentOS7.1 texlive-kpathsea-lib;libdhash;libref_array;qemu-kvm-tools;texlive-dvipdfm-bin;tomcat-servlet-3.0-api;gnuplot-common;squid;tigervnc-icons;postgresql-devel;perf;dovecot;dovecot-mysql;dovecot-pgsql;dovecot-pigeonhole;lvm2-cluster;texlive-dvipdfm;libcacard CentOS7.2 texlive-kpathsea-lib;libdhash;qemu-kvm-tools;rdma-ndd;texlive-dvipdfm;texlive-dvipdfm-bin;dstat;tomcat-servlet-3.0-api;gnuplot-common;perf;squid;tigervnc-icons;tigervnc-icons;postgresql-devel;dovecot;dovecot-pgsql;dovecot-pigeonhole;lvm2-cluster;ipa-server-trust-ad CentOS7.3 spice-glib;texlive-kpathsea-lib;libdhash;qemu-kvm-tools;rdma-ndd;texlive-dvipdfm;texlive-dvipdfm-bin;dstat;tomcat-servlet-3.0-api;gnuplot-common;perf;squid;tigervnc-icons;postgresql-devel;dovecot;dovecot-mysql;dovecot-pgsql;dovecot-pigeonhole;lvm2-cluster;pcp-pmda-kvm;pcp-pmda-rpm;spice-gtk3;vinagre;ipa-server;ipa-server-trust-ad CentOS7.4 spice-glib;texlive-kpathsea-lib;libdhash;qemu-kvm-tools;texlive-dvipdfm-bin;texlive-dvipdfm;dstat;tomcat-servlet-3.0-api;gnuplot-common;perf;squid;tigervnc-icons;postgresql-devel;lvm2-cluster;spice-gtk3;vinagre CentOS7.5 spice-glib;texlive-kpathsea-lib;qemu-kvm-tools;texlive-dvipdfm-bin;texlive-dvipdfm;dstat;tomcat-servlet-3.0-api;gnuplot-common;perf;squid;tigervnc-icons;postgresql-devel;lvm2-cluster;spice-gtk3;vinagre CentOS7.6 shim-x64;spice-glib;adwaita-gtk2-theme;texlive-kpathsea-lib;qemu-kvm-tools;texlive-dvipdfm-bin;texlive-dvipdfm;dstat;tomcat-servlet-3.0-api;gnuplot-common;cockpit-ws;perf;squid;tigervnc-icons;postgresql-devel;java-11-openjdk-headless;lvm2-cluster;spice-gtk3;vinagre CentOS7.7 shim-x64;spice-glib;openmpi;adwaita-gtk2-theme;exiv2;texlive-kpathsea-lib;qemu-kvm-tools;texlive-dvipdfm-bin;texlive-dvipdfm;dstat;tomcat-servlet-3.0-api;cockpit-ws;gnuplot-common;perf;squid;tigervnc-icons;postgresql-devel;java-11-openjdk-headless;lvm2-cluster;spice-gtk3;openmpi-devel;vinagre CentOS7.8 shim-x64;spice-glib;openmpi;adwaita-gtk2-theme;exiv2;texlive-kpathsea-lib;qemu-kvm-tools;texlive-dvipdfm-bin;texlive-dvipdfm;dstat;tomcat-servlet-3.0-api;cockpit-ws;gnuplot-common;perf;squid;tigervnc-icons;postgresql-devel;java-11-openjdk-headless;lvm2-cluster;spice-gtk3;openmpi-devel;vinagre CentOS7.9 spice-glib;openmpi;adwaita-gtk2-theme;exiv2;gnuplot-common;texlive-kpathsea-lib;perf;qemu-kvm-tools;texlive-dvipdfm-bin;texlive-dvipdfm;dstat;tomcat-servlet-3.0-api;cockpit-ws;squid;tigervnc-icons;postgresql-devel;java-11-openjdk-headless;lvm2-cluster;spice-gtk3;openmpi-devel 表3 HCE冲突包列表 HCE 冲突包列表 HCE 1.1 spice-glib;openmpi;exiv2;sg3_utils;spice-gtk3;openmpi-devel;kernel-hcek;tomcat-servlet-3.0-api;kernel-hcek-devel;dstat;gnuplot-common;cockpit-ws;perf;squid;postgresql-devel;java-11-openjdk-headless;lvm2-cluster;fcoe-utils;libblockdev;udisks2;python-blivet;device-mapper-multipath;device-mapper-multipath-libs;libblockdev-crypto;libblockdev-fs;libblockdev-loop;libblockdev-mdraid;libblockdev-nvdimm;libblockdev-part;libblockdev-swap;libblockdev-utils;NetworkManager-team;NetworkManager-bluetooth;NetworkManager-wifi;libstorage-uio-static;kiwi-dlimage 表4 EulerOS冲突包列表 EulerOS 冲突包列表 EulerOS 2.9 euleros-release;euleros-latest-release;kiwi-systemdeps;python3-kiwi;NetworkManager-team;NetworkManager-bluetooth;NetworkManager-wifi;libstorage-uio-static;kiwi-dlimage;systemd-udev-compat EulerOS 2.10 euleros-release;euleros-latest-release;kiwi-systemdeps;python3-kiwi;NetworkManager-team;NetworkManager-bluetooth;NetworkManager-wifi;libstorage-uio-static;kiwi-dlimage;systemd-udev-compat 表5 特殊冲突包配置项 配置选项 冲突包列表 specific_conflict openssl110f-libs;openssl110h-libs;openssl111d-libs 特殊冲突包配置项会在执行centos2hce2.py --check all命令时进行校验,如果系统中存在上述列表的软件,迁移过程中与HCE的软件包产生冲突,迁移工具会提示先进行卸载该软件包再进行升级。 父主题: 将操作系统迁移至HCE 2.0
  • /etc/osmt/osmt.conf配置文件说明 本节对OSMT工具的配置文件osmt.conf不建议修改的配置项进行说明。 [auto] # if auto_upgrade is True, the osmt-agent will auto upgrade rpms use osmt.conf and reboot between time interval we specified # the value of cycle_time means the osmt-agent will check upgrade every cycle_time seconds, default 86400s(1 day) # When a configuration item has a line break, you need to leave a space or tab at the beginning of the line auto_upgrade = False cycle_time = 3600 minimal_interval = 3600 auto_upgrade_window = "22:00-05:00" auto_upgrade_interval = 1 [Package] # There are three rules of filters, all enabled by default. severity will be effect only when the types contain security, it is the subtype of security. # The following are the three rules: # 1. whitelist has the highest priority, if whitelist is configured then ignore other rules and filter out the whitelist packages from the full list of packages to be upgrade # 2. Filter the update range by types, when the types contain security, further filter the severity of security updates severity, only upgrade the severity level of security. # 3. Filter blacklist to remove packages in blacklist from types filter results, and packages which depend on packages in blacklist will also be removed. # filters must contain at least one types rule, if the types rule is empty, the -a option will not upgrade any packages (by default all 3 filters are enabled). filters = "types, blacklist" whitelist = "" # types include: security, bugfix, enhancement, newpackage, unknown # if types is empty, no package will be upgrade # types = security, bugfix, enhancement, newpackage, unknown types = "security" # severity is the subtype of security, include: low, moderate, important, critical severity = "important, critical" blacklist = "mysql" # 升级后需要重启系统才能生效的rpm包 need_reboot_rpms = kernel,kernel-debug,glibc,glibc-utils,dbus,dbus-python… preinstalled_only = False [backup] store_path = /var/log backup_dir = /etc,/usr,/boot,/var,/run exclude_dir = recover_service = [resource_needed] #the minimum resources required(MB) #min_req_boot_space = 100 #min_req_backup_space = 8192 #min_req_root_space = 1536 #min_req_memory = 512 [cmdline] cmdline_value = crashkernel=512M resume=/dev/mapper/hce-swap rd.lvm.lv=hce/root rd.lvm.lv=hce/swap crash_kexec_post_notifiers panic=3 nmi_watchdog=1 rd.shell=0 [conflict] #conflict_rpm = test1,test2 [strategy] timeout_action = "stop" timeout_action_before = 0 [check] daemon_whitelist=sysstat-collect.service, sysstat-summary.service, systemd-tmpfiles-clean.service # the timeout of query systemd services check_systemd_running_jobs = True query_timeout = 30 check_rpm_packages = True check_file_attr = True [chroot_config] chroot_switch = False chroot_path = "/root/sut_chroot" rpm_tar_name = "hce-upgrade_pack" sut_config_file = "/etc/sut/sut.conf" storage_dir = "/opt/migrate" web_link_tar = 表1 osmt.conf不建议修改的配置项 配置项 说明 types 按照security、 bugfix、enhancement、newpackage、unknown五个配置项指定RPM包的更新范围,不建议修改。如有特殊需要可以根据系统实际情况进行修改。 severity 升级安全更新,不建议修改。默认升级安全更新。如有特殊需要可以根据系统实际情况进行修改。 [resource_needed] 指升级或更新前进行检查的系统资源限制值,不建议修改。如有特殊需要可以根据系统实际情况进行修改。 [chroot_config] 用于配置是否进行turbo方式升级的相关配置项,仅用于管理面HCE升级,租户面不适用,请保持默认配置。 父主题: 附录
  • debug参数 以下是所属文件在/proc/sys/debug目录下的参数: 系统异常通知 当Linux内核发生Oops时,会先后进入到die流程及panic流程中,此时会调用其他模块注册到die通知链及panic通知链的回调函数,当回调函数中存在使得内核发生Oops的异常时,内核会再次进入Oops流程, 而后在Oops流程中再次调用该回调函数时,又产生Oops,这样便形成了嵌套的Oops,无法走出Oops流程,系统挂死。 为了增强系统可定位性,提高可靠性,引入系统异常通知链特性,在用户注册的 panic/die通知链中出现嵌套Oops异常时,打印错误日志并执行crash流程复位系统。
  • kernel参数 以下是所属文件在/proc/sys/kernel目录下的参数: 扫描任务 自动NUMA平衡会扫描任务的地址空间并取消页面映射,以检测页面放置是否正确,或者数据是否应迁移到靠近任务运行的内存节点。每次“扫描延迟”,任务会扫描其地址空间中的下一个“扫描大小”数量的页面。当达到地址空间的末尾时,扫描器会从头开始。 “扫描延迟”和“扫描大小”共同决定了扫描速率。当“扫描延迟”减少时,扫描速率增加。因此“扫描延迟”和每个任务的扫描速率是自适应的,取决于历史行为。如果页面放置正确,则扫描延迟增加;否则,扫描延迟减少。“扫描大小”不是自适应的,但“扫描大小”越大,扫描速率越高。 更高的扫描速率会带来更高的系统开销,因为必须捕获页面错误,并迁移数据。然而,扫描速率越高,任务的内存迁移到本地节点的速度越快,如果工作负载模式发生变化,可以最小化由于远程内存访问带来的性能影响。表1中的参数控制扫描延迟和扫描页面数量的阈值。
  • 准备工作 RPM包的更新方法有两种:使用osmt update命令更新和使用后台osmt-agent服务自动更新。此两种方法,都须先执行本节操作。 确认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升级失败或非预期的升级行为。 执行dnf update osmt -y命令更新OSMT升级工具。 配置/etc/osmt/osmt.conf文件。 OSMT根据配置文件osmt.conf的设置,对RPM包进行更新。请根据需要配置osmt.conf文件。 [auto] #if auto_upgrade is True, the osmt-agent will auto upgrade rpms use osmt.conf and reboot between time interval we specified #the value of cycle_time means the osmt-agent will check upgrade every cycle_time seconds, default 86400s(1 day) #When a configuration item has a line break, you need to leave a space or tab at the beginning of the line auto_upgrade = False cycle_time = 3600 minimal_interval = 3600 auto_upgrade_window = "22:00-05:00" auto_upgrade_interval = 1 [Package] # There are three rules of filters, all enabled by default. severity will be effect only when the types contain security, it is the subtype of security. # The following are the three rules: # 1. whitelist has the highest priority, if whitelist is configured then ignore other rules and filter out the whitelist packages from the full list of packages to be upgrade # 2. Filter the update range by types, when the types contain security, further filter the severity of security updates severity, only upgrade the severity level of security. # 3. Filter blacklist to remove packages in blacklist from types filter results, and packages which depend on packages in blacklist will also be removed. # filters must contain at least one types rule, if the types rule is empty, the -a option will not upgrade any packages (by default all 3 filters are enabled). filters = "types, blacklist" whitelist = "" # types include: security, bugfix, enhancement, newpackage, unknown # if types is empty, no package will be upgrade # types = security, bugfix, enhancement, newpackage, unknown types = "security" # severity is the subtype of security, include: low, moderate, important, critical severity = "important, critical" blacklist = "" # The rpm package that requires a system reboot to take effect after the upgrade need_reboot_rpms = "kernel,kernel-debug,kernel-debuginfo,kernel-debuginfo-common,kernel-devel,kernel-headers,kernel-ori,kernel-tools,kernel-tools-libs,glibc,glibc-utils,glibc-static,glibc-headers,glibc-devel,glibc-common,dbus,dbus-python,dbus-libs,dbus-glib-devel,dbus-glib,dbus-devel,systemd,systemd-devel,systemd-libs,systemd-python,systemd-sysv,grub2,grub2-efi,grub2-tools,openssl,openssl-devel,openssl-libs,gnutls,gnutls-dane,gnutls-devel,gnutls-utils,linux-firmware,openssh,openssh-server,openssh-clients,openssh-keycat,openssh-askpass,python-libs,python,grub2-pc,grub2-common,grub2-tools-minimal,grub2-pc-modules,grub2-tools-extra,grub2-efi-x64,grub2-efi-x64-cdboot,kernel-cross-headers,kernel-source,glibc-all-langpacks,dbus-common,dbus-daemon,dbus-tools,systemd-container,systemd-pam,systemd-udev,grub2-efi-aa64,grub2-efi-aa64-cdboot,grub2-efi-aa64-modules,openssl-perl,openssl-pkcs,kernel-tools-libs-devel,glibc-debugutils,glibc-locale-source,systemd-help,grub2-efi-ia32-modules,grub2-efi-x64-modules,grub2-tools-efi,grub2-help,openssl-pkcs11,grub2-efi-ia32-cdboot,osmt" preinstalled_only = False [backup] store_path = /var/log backup_dir = /etc,/usr,/boot,/var,/run exclude_dir = recover_service = #the minimum resources required(MB) [resource_needed] #min_req_boot_space = 100 #min_req_backup_space = 8192 #min_req_root_space = 1536 #min_req_memory = 512 [cmdline] cmdline_value = [conflict] #conflict_rpm = test1,test2 [strategy] timeout_action = "stop" timeout_action_before = 0 [check] daemon_whitelist = "sysstat-collect.service, sysstat-summary.service, systemd-tmpfiles-clean.service" check_systemd_running_jobs = True # the timeout of query systemd services query_timeout = 30 check_rpm_packages = True check_file_attr = True 表1 osmt.conf主要配置项 配置项 说明 [auto] auto_upgrade:指定更新RPM包更新方式。默认为False。 True:使用osmt update命令更新和使用后台osmt-agent服务自动更新两种方式都支持。 False:仅支持使用osmt update命令更新RPM包。 auto_upgrade为True时,配套如下参数。 cycle_time:检查是否有待更新软件包的周期,单位是秒。默认值为3600秒。 minimal_interval:指定osmt update -b命令参数中开始时间和截止时间的最小时间间隔,单位是秒。默认值为3600秒。 auto_upgrade_window:配置后台osmt-agent服务自动升级的时间窗,格式为"HH:MM-HH:MM",表示升级的开始时间和截止时间。 如果截止时间小于开始时间,则表示本次升级时间段跨越自然日。如“22:00-05:00”表示升级时间段为当日22:00到次日凌晨5:00。 auto_upgrade_interval:指定两次自动升级之间的最小间隔(单位:天)。 auto_upgrade为False时,仅配套如下参数,执行配置文件时[auto]配置项中其他参数不生效。 cycle_time:检查是否有待更新软件包的周期,单位是秒。默认值为3600秒。 minimal_interval:指定osmt update -b命令参数中开始时间和截止时间的最小时间间隔,单位是秒。默认值为3600秒。 motd_setup: 设置登录提示是否开启。默认为True。 True:开启登录提示。 False:关闭登录提示,设置后会立刻删除登录提示,并且不会再次生成。如果重新开启,需要使用osmt update -s或任意升级命令重新触发生成。 [Package] filters:指定更新的范围,包括types、blacklist、whitelist。 例如filters = "blacklist",指升级时不更新黑名单中的RPM包。 types:待更新的RPM包类型。 blacklist:RPM包黑名单列表。 设置黑名单后,不对黑名单中的RPM包进行更新。如果某RPM包依赖黑名单中的包,则不会升级此RPM包。 whitelist:RPM包白名单列表。 如果不设置白名单或者黑名单列表,默认更新所有可更新的RPM包。 白名单优先级大于黑名单,如果某RPM包同时配置在白名单和黑名单,则会升级此RPM包。 说明: 如果使用命令指定了黑名单和白名单,以命令指定的黑名单和白名单为准,不再根据配置文件中的黑名单和白名单列表更新RPM包。 need_reboot_rpms:升级后要重启的RPM包。 后台osmt-agent服务自动升级时,不会更新need_reboot_rpms中的RPM包。若要更新need_reboot_rpms列表中的RPM包,必须使用osmt update --auto --reboot_config always或osmt update --auto --reboot_config “重启时间”命令更新。 preinstalled_only:当设置成True时,只升级/etc/osmt/preinstalled.list中的RPM包。 [backup] store_path:在该目录下创建备份目录。 升级过程中,OSMT会在store_path下创建.osbak目录,如果原先存在该目录,则需要先使用osmt remove将其删除。 backup_dir:需要备份的目录。其中/etc、/usr、/boot、/var、/run为默认的需要备份的目录,且不可以删减。这些目录会在执行版本升级功能的时候自动进行备份。注意不能与exclude_dir中配置的目录相同,否则升级工具会在目录处理时产生冲突而终止升级流程。 exclude_dir:不需要备份的目录。默认没有配置,一般建议配置成业务的数据目录,注意不能与backup_dir中配置的目录相同,否则升级工具会在目录处理时产生冲突而终止升级流程。 recover_service:OSMT会检查升级前后此列表中服务的启用状态是否一致,如果服务的启用状态被修改,OSMT会尝试恢复此服务的状态。 说明: [backup]中的路径需要配置为绝对路径的形式。 [cmdline] cmdline_value:指定升级之后系统的启动项。请配置正确的启动项,确保系统能够正常启动。默认值为HCE的默认启动项。 [conflict] conflict_rpm:指定升级过程中冲突的软件包,升级时系统将自动删除冲突的软件包。 [check] check_systemd_running_jobs:设置是否在升级前检查系统中有正在启动或正在停止的服务,默认为True。 True:升级前检查系统中是否有正在启动或正在停止的服务。 False:不检查系统中是否有正在启动或正在停止的服务。 check_rpm_packages:设置是否在升级前检查系统中rpm包的状态,包括包的依赖是否缺失、是否存在重复的包。默认为True。 True:升级前检查rpm包的状态。 False:升级前不检查rpm包的状态。 check_file_attr:设置是否在升级前检查系统文件是否有只读的属性。默认为True。 True:升级前检查系统中文件是否有只读属性。 False:升级前不检查系统中文件是否有只读属性。 [chroot_config] chroot_switch:是否开启turbo方式的版本升级,默认为False。 True:版本升级流程中开启turbo方式的升级。 False:版本升级流程中不开启turbo方式的升级。 chroot_path:设置turbo升级方式流程中的chroot环境目录。 rpm_tar_name:设置turbo升级方式中预构建的tar包的名字。 sut_config_file:设置sut的配置文件路径,默认是/etc/sut/sut.conf。 storage_dir:设置turbo升级方式流程中的下载预构建的tar包的目录。 web_link_tar:设置turbo升级方式中下载预构建的tar包的url地址。 说明: [chroot_config]中的所有配置仅适用于管理面的HCE版本升级方式,turbo方式指的是使用预构建出来的目标版本的tar包通过chroot方式在指定目录下进行版本升级。 其他配置项不建议修改,详情请参见/etc/osmt/osmt.conf配置文件说明。 父主题: 更新RPM包
  • 安装x2hce-ca 确认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/ 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 如果在CentOS上面安装x2hce-ca,请将上面的$releasever替换为实际使用的HCE版本,以HCE 2.0为例,正确配置如下: [base] name=HCE 2.0 base baseurl=https://repo.huaweicloud.com/hce/2.0/os/$basearch/ enabled=1 gpgcheck=1 gpgkey=https://repo.huaweicloud.com/hce/2.0/os/RPM-GPG-KEY-HCE-2 [updates] name=HCE 2.0 updates baseurl=https://repo.huaweicloud.com/hce/2.0/updates/$basearch/ enabled=1 gpgcheck=1 gpgkey=https://repo.huaweicloud.com/hce/2.0/updates/RPM-GPG-KEY-HCE-2 [debuginfo] name=HCE 2.0 debuginfo baseurl=https://repo.huaweicloud.com/hce/2.0/debuginfo/$basearch/ enabled=0 gpgcheck=1 gpgkey=https://repo.huaweicloud.com/hce/2.0/debuginfo/RPM-GPG-KEY-HCE-2 安装x2hce-ca。 通过yum install -y x2hce-ca-hce命令安装工具。安装完成后,生成表1列表中的目录。 表1 用户相关目录列表 目录 说明 /var/log/x2hce-ca 存放工具日志文件的目录。 /var/log/aparser 存放配置收集器日志文件的目录。 /opt/x2hce-ca/output 报告默认输出目录。 /opt/x2hce-ca/scan 待扫描应用软件包的建议存放目录。 /etc/x2hce-ca/config 存放静态配置文件的目录。 /etc/x2hce-ca/database_2.0.0.630 存放数据库文件的目录。 /usr/local/x2hce-ca 程序文件存放路径。 /usr/local/x2hce-python-3 工具自带python安装目录 为使x2hc-ca命令生效,请按照安装完成后的提示进行相应配置。提示样例如图1所示,此处是提醒用户执行命令alias x2hce-ca="x2hce_python39 /usr/local/x2hce-ca/x2hce-ca.pyc"或重启操作系统使x2hc-ca命令生效。 图1 x2hce-ca-hce安装后提示样例 父主题: x2hce-ca应用兼容性评估
  • 安装工具 确认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 -y install hce-wae命令安装加速工具。 检查工具是否安装成功。 执行以下命令如果有如图1输出信息,表示工具安装成功。 llvm-bolt --help | more 图1 输出信息示例 不同版本的输出可能有所差异,具体以实际输出为准。 父主题: 应用加速工具
  • 安装毕昇编译器 确认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 -y install bisheng-compiler命令安装工具。 执行source /usr/local/bisheng-compiler/env.sh命令,导入环境变量。 如果打开了新的终端,需要在新的终端重新导入环境变量才能正常使用毕昇编译器。 检查工具是否安装成功。 执行clang -v查看工具的版本号。若返回结果包含毕昇编译器版本信息,表示工具安装成功。
  • 准备工作 执行如下命令检查待优化的二进制文件中是否可以重新定位。可以重新定位表示可以进行应用优化。 其中“application”可替换为待检查的二进制文件。 readelf -a application | grep .rela.text 图1 readelf命令执行示例 如果二进制文件中.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:配置完日志采集方式后生成的新的动态库文件。本例中新生成的动态库为testd.so。 instrumentation-file:日志保存的文件名称。本例为test.log。 instrumentation-sleep-time:采集日志的时间间隔,单位为秒。本例中每隔30秒采集一次日志。 instrumentation-no-counters-clear:表示每次日志采集后不要清除日志计数器信息,保持日志信息上下文连续 运行testd.so对应的应用程序,应用程序运行日志会自动保存在test.log文件中。 应用加速工具会根据test.log文件中的动态数据来优化应用。
  • 使用镜像归档文件启动容器 确认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。 图2 查看容器镜像ID 创建镜像可使用如下命令指定镜像的REPOSITORY和TAG参数。 docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]] 使用指定的镜像运行容器并进入其bash环境。 运行如下命令后,如果shell视图改变,表示成功进入容器的bash环境。6cfefae3a541为上述镜像ID。 docker run -it 6cfefae3a541 bash
  • 前提条件 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 ......
  • 升级步骤 检查待更新的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! 升级成功后,请及时确认业务运行情况。
  • 调用已发布的应用 仅发布的应用支持调用。如果应用的状态为草稿,需要先进行发布才能调用。具体操作,请参见编辑和发布草稿应用。 在“应用管理”页面,在状态为已发布目标应用卡片,单击“调用”,在“调用说明”页面按照页面信息进行调用。 关于创建API Key的操作步骤,请参见在ModelArts Studio(MaaS)管理API Key。 在 函数工作流 FunctionGraph控制台查看应用的调用总量统计及资源用量统计。 数据可能存在1~2小时的时延。
  • 编辑和发布草稿应用 您可以在“编辑应用”页面按需修改草稿应用的名称、模型服务、提示词、添加或删除MCP等。 在“应用管理”页面,在状态为草稿的目标应用卡片单击“编辑”。 在“编辑应用”页面,按需修改应用名称、模型服务、提示词、添加或删除MCP等,在右上角单击“保存草稿”或“发布”。 关于参数的说明,请参见表1。单击“发布”后,会出现“计费提醒”对话框,请仔细阅读计费相关信息,然后单击“确定”。关于如何计费,请参见计费说明。 在“应用管理”页面的目标应用卡片中,当应用状态显示为已发布,表示该应用可以调用。
  • 前提条件 预置服务或我的服务满足以下条件: 预置服务中商用服务:已开通预置服务中的商用服务。具体操作,请参见在ModelArts Studio(MaaS)预置服务中开通商用服务。 预置服务中免费服务:已领取预置服务中的免费服务额度。具体操作,请参见 免费体验 ModelArts Studio(MaaS)预置服务。 我的服务:已在“我的服务”页面部署模型服务且状态为运行中。具体操作,请参见使用ModelArts Studio(MaaS)部署模型服务。 已在MCP广场开通MCP服务。具体操作,请参见在ModelArts Studio(MaaS)MCP广场开通MCP服务。
  • 计费说明 应用发布后,将托管至函数工作流FunctionGraph服务中。实际计费请以FunctionGraph计费为准,详情请参见FunctionGraph函数工作流计费规则。您可以在函数工作流FunctionGraph控制台查看应用的调用总量统计及资源用量统计。 调用应用按调用请求次数、资源用量(函数执行时间)收费。 每个自然月内,您全部的应用的总请求次数 、总资源用量有一定的免费额度。 MCP服务返回的内容将被计入输入Token消耗。
  • 场景描述 随着AI智能体技术的快速发展,智能体需要无缝接入企业数据库、代码仓库、 API服务 等多样化数据源,以提升决策质量。然而,传统数据集成方式面临三大核心挑战:异构数据源接口的碎片化导致开发与维护成本居高不下;跨系统间缺乏有效的上下文感知能力;安全管控机制的不统一。 为了解决这些难题,Anthropic推出的Model Context Protocol(MCP)作为一种开放协议标准,通过定义统一的上下文交互接口,实现了AI系统与数据源之间的即插即用式连接。通过在智能体平台中集成MCP协议,可以构建标准化的数据访问层,从而有效支撑智能体在复杂业务场景下的上下文感知能力,为AI决策提供更高质量的支持。借助MCP协议,开发者无需为每个外部工具编写复杂的接口,MaaS应用也能够接入海量第三方工具。
  • MCP服务介绍 模型上下文协议MCP(Model Context Protocol)旨在搭建大模型和外部工具之间的信息传递通道。MCP服务是MaaS提供的标准化中间件能力模块,通过预集成第三方服务或平台自研功能,帮助开发者快速扩展AI应用的专业能力。其核心价值在于将复杂的外部服务(如网页搜索、出行服务、开发功能等)封装为即插即用的功能组件,用户无需开发底层接口即可直接调用,显著降低多能力协同的开发成本。关于MCP的更多信息,请参见MCP官网。 您可以在MCP广场查看MaaS支持的MCP服务,并单击目标服务,查看服务的详细介绍、使用场景和参数说明等信息。
  • 取消开通MCP服务 对于已开通但不再需要的MCP服务,您可以取消开通该服务。如果发布的应用已添加该MCP,则无法直接取消开通该服务。 在“MCP广场”页面,单击目标服务卡片,查看服务的详情,然后在右上角单击“取消开通”。 在“取消开通MCP服务”对话框,按需选择以下操作。 如果发布的应用已添加该MCP服务: “取消开通MCP服务”对话框会提示无法取消开通该MCP服务,您可以单击应用名称,在“编辑应用”页面将需要取消的MCP进行删除,然后在右上角单击“更新”。 重复以上操作,确保发布的应用均已删除该MCP服务。 在“取消开通MCP服务”对话框,输入YES,单击“确定”。 如果发布的应用未添加该MCP服务:输入YES,单击“确定”。
  • 操作步骤 登录 云监控服务 控制台,在左侧导航栏单击“云服务监控”。 在“云服务监控”页面,单击“MaaS MaaS”看板名称。 在“资源详情”页签的实例列表,查看服务的整体情况。 在实例列表的“操作”列,单击目标服务对应的“查看监控指标”。 在“资源实例”页签或“API Key”页签,查看服务的监控指标详情。 不同监控周期对应聚合方式的聚合时间不同,详情请参见查看监控视图。 监控指标默认保留两位小数。 表1 监控指标说明 指标ID 指标名称 指标含义 单位 进制 监控周期 rpm RPM 每分钟处理的请求数。 times/minute - 1分钟 tpm TPM 每分钟处理的Tokens数(输入+输出)。 thousand tokens/minute - 1分钟 req_count_4xx 4XX数量 服务调用错误4XX次数。 times/minute - 1分钟 req_count_5xx 5XX数量 服务调用错误5XX次数。 times/minute - 1分钟 req_count 调用总量 调用的总量。 times/minute - 1分钟 req_count_2xx 调用成功次数 2XX成功的次数。 times/minute - 1分钟 req_count_error 调用失败次数 调用失败的次数。 调用失败次数可能会超过4XX和5XX错误的总和,因为还可能包含不属于4xx或5xx类别的错误。 调用失败次数仅涵盖模型服务产生的4XX和5XX错误,不包括租户在服务请求中因非模型服务因素导致的错误,例如鉴权失败等。 times/minute - 1分钟 req_error_rate 请求失败率 调用失败次数占调用总次数的比例。 % - 1分钟 prompt_tokens 输入tokens数 服务调用输入Tokens数。 thousand tokens - 1分钟 completion_tokens 输出tokens数 服务调用输出Tokens数。 thousand tokens - 1分钟 total_tokens 调用总tokens数 服务调用总Tokens数。 thousand tokens - 1分钟 prompt_tokens_avg 平均输入token长度 输入Token平均长度。 thousand tokens - 1分钟 completion_tokens_avg 平均输出token长度 输出Token平均长度。 thousand tokens - 1分钟 prompt_tokens_p50 输入token TP 50 50%的输入Token大小低于该值。 thousand tokens - 1分钟 prompt_tokens_p80 输入token TP 80 80%的输入Token大小低于该值。 thousand tokens - 1分钟 prompt_tokens_p90 输入token TP 90 90%的输入Token大小低于该值。 thousand tokens - 1分钟 prompt_tokens_p99 输入token TP 99 99%的输入Token大小低于该值。 thousand tokens - 1分钟 completion_tokens_p50 输出token TP 50 50%的输出Token大小低于该值。 thousand tokens - 1分钟 completion_tokens_p80 输出token TP 80 80%的输出Token大小低于该值。 thousand tokens - 1分钟 completion_tokens_p90 输出token TP 90 90%的输出Token大小低于该值。 thousand tokens - 1分钟 completion_tokens_p99 输出token TP 99 99%的输出Token大小低于该值。 thousand tokens - 1分钟 prompt_tokens_max 最长输入token长度 输入Token最大值。 thousand tokens - 1分钟 completion_tokens_max 最长输出token长度 输出Token最大值。 thousand tokens - 1分钟 ttft TTFT(AVG) 首Token时延,即从接收请求到生成第一个输出Token所需的时间。 ms - 1分钟 tpot TPOT(AVG) 增量Token时延,即生成后续每个输出Token所需的时间间隔。 ms - 1分钟 latency_avg 平均响应时延 单位时间内成功请求的响应时间平均值。 ms - 1分钟 ttft_p50 首token时延 TP50 50%的首Token时延低于该值。 ms - 1分钟 ttft_p80 首token时延 TP80 80%的首Token时延低于该值。 ms - 1分钟 ttft_p90 首token时延 TP90 90%的首Token时延低于该值。 ms - 1分钟 ttft_p99 首token时延 TP99 99%的首Token时延低于该值。 ms - 1分钟 ttft_max 最长首token时延 首Token时延最大值。 ms - 1分钟 tpot_p50 增量 token时延 TP50 50%的增量Token时延低于该值。 ms - 1分钟 tpot_p80 增量 token时延 TP80 80%的增量Token时延低于该值。 ms - 1分钟 tpot_p90 增量 token时延 TP90 90%的增量Token时延低于该值。 ms - 1分钟 tpot_p99 增量 token时延 TP99 99%的增量Token时延低于该值。 ms - 1分钟 tpot_max 最长增量 token时延 增量Token时延最大值。 ms - 1分钟
  • 约束限制 统计范围: 仅统计预置服务-商用服务、预置服务-免费服务、我的服务的调用数据。 实例列表:如实例超过一定时长(大于3小时)未上报监控数据,将不会展示在实例列表中。 实例列表-视图页面:如实例指标超过一定时长(大于1小时)未上报监控数据,则该指标将不会展示在视图页面。 时间范围限制: 支持预设时间段:近15分钟、近30分钟、近1小时、近2小时、近3小时、近12小时、近24小时、近7天、近14天、近30天。 自定义时间段:最长不超过30天。
共100000条
提示

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