华为云用户手册

  • OOM可能的原因 cgroup内存不足 使用的内存超出了cgroup中memory.limit_in_bytes配置的大小,如下示例演示memory.limit_in_bytes配置为80M,使用memhog模拟分配100M,触发OOM,/var/log/messages部分日志如下,可以从日志中看到memhog所在进程(PID: 2021820)使用了81920kB内存,超出了限制,触发了OOM: warning|kernel[-]|[2919920.414131] memhog invoked oom-killer: gfp_mask=0xcc0(GFP_KERNEL), order=0, oom_score_adj=0 info|kernel[-]|[2919920.414220] memory: usage 81920kB, limit 81920kB, failcnt 30 err|kernel[-]|[2919920.414272] Memory cgroup out of memory: Killed process 2021820 (memhog) total-vm:105048kB, anon-rss:81884kB, file-rss:1544kB, shmem-rss:0kB, UID:0 pgtables:208kB oom_score_adj:0 父cgroup内存不足 在子cgroup中内存仍然足够,但是父cgroup的内存不足,超过了内存限制,如下示例演示父cgroup memory.limit_in_bytes配置为80M,两个子cgroup memory.limit_in_bytes均配置为50M,在两个子cgroup中使用程序循环分配内存,触发OOM,/var/log/messages部分日志如下: warning|kernel[-]|[2925796.529231] main invoked oom-killer: gfp_mask=0xcc0(GFP_KERNEL), order=0, oom_score_adj=0 info|kernel[-]|[2925796.529315] memory: usage 81920kB, limit 81920kB, failcnt 199 err|kernel[-]|[2925796.529366] Memory cgroup out of memory: Killed process 3238866 (main) total-vm:46792kB, anon-rss:44148kB, file-rss:1264kB, shmem-rss:0kB, UID:0 pgtables:124kB oom_score_adj:0 系统全局内存不足 一方面由于OS的空闲内存不足,有程序一直在申请内存,另一方面也无法通过内存回收机制解决内存不足的问题,因此触发了OOM,如下示例演示OS中使用程序循环分配内存,触发OOM,/var/log/messages部分日志如下,可以从日志中看到内存节点Node 0的空闲内存(free)已经低于了内存最低水位线(low),触发了OOM: kernel: [ 1475.869152] main invoked oom: gfp_mask=0x100dca(GFP_HIGHUSER_MOVABLE|__GFP_ZERO), order=0 kernel: [ 1477.959960] Node 0 DMA32 free:22324kB min:44676kB low:55844kB high:67012kB reserved_highatomic:0KB active_anon:174212kB inactive_anon:1539340kB active_file:0kB inactive_file:64kB unevictable:0kB writepending:0kB present:2080636kB managed:1840628kB mlocked:0kB pagetables:7536kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB kernel: [ 1477.960064] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/system.slice/sshd.service,task=main,pid=1822,uid=0 kernel: [ 1477.960084] Out of memory: Killed process 1822 (main) total-vm:742748kB, anon-rss:397884kB, file-rss:4kB, shmem-rss:0kB, UID:0 pgtables:1492kB oom_score_adj:1000 内存节点(Node)的内存不足 在NUMA存储模式下,OS会存在多个内存节点,如果程序制定使用特定节点的内存,可能在OS内存充足的情况下触发OOM,如下示例演示在两个内存节点的条件下,使用程序循环在Node 1分配内存,导致Node 1内存不足,但是OS内存足够,/var/log/messages部分日志如下: kernel: [ 465.863160] main invoked oom: gfp_mask=0x100dca(GFP_HIGHUSER_MOVABLE|__GFP_ZERO), order=0 kernel: [ 465.878286] active_anon:218 inactive_anon:202527 isolated_anon:0#012 active_file:5979 inactive_file:5231 isolated_file:0#012 unevictable:0 dirty:0 writeback:0#012 slab_reclaimable:6164 slab_unreclaimable:9671#012 mapped:4663 shmem:2556 pagetables:846 bounce:0#012 free:226231 free_pcp:36 free_cma:0 kernel: [ 465.878292] Node 1 DMA32 free:34068kB min:32016kB low:40020kB high:48024kB reserved_highatomic:0KB active_anon:188kB inactive_anon:778076kB active_file:20kB inactive_file:40kB unevictable:0kB writepending:0kB present:1048444kB managed:866920kB mlocked:0kB pagetables:2752kB bounce:0kB free_pcp:144kB local_pcp:0kB free_cma:0kB kernel: [ 933.264779] oom-kill:constraint=CONSTRAINT_MEMORY_POLICY,nodemask=1,cpuset=/,mems_allowed=0-1,global_oom,task_memcg=/system.slice/sshd.service,task=main,pid=1733,uid=0 kernel: [ 465.878438] Out of memory: Killed process 1734 (main) total-vm:239028kB, anon-rss:236300kB, file-rss:200kB, shmem-rss:0kB, UID:0 pgtables:504kB oom_score_adj:1000 其他可能原因 OS在内存分配的过程中,如果伙伴系统的内存不足,则系统会通过OOM Killer释放内存,并将内存提供至伙伴系统。
  • /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 表1 osmt.conf不建议修改的配置项 配置项 说明 types 按照security、 bugfix、enhancement、newpackage、unknown五个配置项指定RPM包的更新范围,不建议修改。如有特殊需要可以根据系统实际情况进行修改。 severity 升级安全更新,不建议修改。默认升级安全更新。如有特殊需要可以根据系统实际情况进行修改。 [resource_needed] 指升级或更新前进行检查的系统资源限制值,不建议修改。如有特殊需要可以根据系统实际情况进行修改。 父主题: 附录
  • 约束限制 XGPU功能仅在Nvidia Tesla T4、V100上支持。 HCE OS内核版本为5.10及以上版本。 GPU实例已安装535.54.03版本的NVIDIA驱动。 GPU实例已安装18.09.0-300或更高版本的docker。 受GPU虚拟化技术的限制,容器内应用程序初始化时,通过nvidia-smi监测工具监测到的实时算力可能超过容器可用的算力上限。 当CUDA应用程序创建时,会在GPU卡上申请一小部分UVM显存(在Nvidia Tesla T4上大约为3 MiB),这部分显存属于管理开销,不受XGPU服务管控。 暂不支持同时在裸机环境以及该环境直通卡的虚拟机中同时使用。 XGPU服务的隔离功能不支持以UVM的方式申请显存,即调用CUDA API cudaMallocManaged(),更多信息,请参见NVIDIA官方文档。请使用其他方式申请显存,例如调用cudaMalloc()等。 XGPU允许用户动态禁用UVM的方式申请显存,禁用方法参考uvm_disable接口说明。
  • 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
  • 版本回退 请根据是否需要立刻重启,选择合适的回退方式。 回退至原系统,不立刻重启。 osmt rollback 回退至原系统并立刻重启。使用此方式,请忽略步骤2。 osmt rollback --reboot_config always 执行reboot命令重启系统。 必须重启系统才能回退到HCE OS的原系统版本。 检查是否回退成功。 可执行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 OS版本存在配套关系。HCE OS默认安装当前系统的OSMT工具,系统升级时,需要将OSMT更新至目标系统版本对应的OSMT版本。 执行dnf update osmt -y --releasever [系统目标版本号] 更新OSMT。例如,将HCE OS 2.0升级到HCE OS 2.1,则执行dnf update osmt -y --releasever 2.1命令更新OSMT到最新版本。 若误将OSMT删除,执行dnf install osmt -y --releasever [系统目标版本号] 进行安装。例如,将系统升级至HCE OS 2.1,则执行dnf install osmt -y --releasever 2.1命令安装OSMT最新版本。 升级HCE OS系统版本。 osmt update --releasever [系统目标版本号] --reboot_config [重启配置] 请根据是否需要立刻重启,选择合适的升级方式。更多的升级选项,详见osmt update -h。 将HCE OS 2.0升级到目标版本,如HCE OS 2.1。 osmt update --releasever 2.1 升级后,须执行reboot命令重启系统,目标系统版本才能生效。 将HCE OS 2.0升级到目标版本,如HCE OS 2.1,并立刻重启。 osmt update --releasever 2.1 --reboot_config always 将HCE OS 2.0升级到目标版本,如HCE OS 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将删除所有升级备份数据,执行后无法再执行回退。
  • warning Warning是操作系统在运行时,检测到需要立即注意的内核问题(issue),而采取的上报动作,打印发生时的调用栈信息。上报后,系统继续运行。 原理 Warning是通过调用WARN、WARN_ON、WARN_ON_ONCE等宏来触发的。 导致Warning的原因有多种,需要根据调用栈回溯,找到调用Warning宏的具体原因。Warning宏并不会导致系统运行状态发生改变,也不提供处理Warning的指导。 触发方法 根据系统调用构造Warning条件。
  • panic Kernel panic是指操作系统在监测到内部的致命错误,并无法安全处理此错误时采取的动作。内核触发到某种异常情况,运行kernel_panic函数,并尽可能把异常发生时获取的全部信息打印出来。 原理 导致异常的原因多种多样,通过异常打印的调用信息,找到调用kernel_panic的原因。常见的原因包括内核堆栈溢出、内核空间的除0异常、内存访问越界、内核陷入死锁等。 触发方法 内核态读0地址。
  • hung task 当内核检测到进程处于D状态超过设定的时间时,上报hung task异常。 原理 进程其中一个状态是TASK_UNINTERRUPTIBLE,也叫D状态,处于D状态的进程只能被wake_up唤醒。内核引入D状态时,是为了让进程等待IO完成。正常情况下,IO正常处理,进程不应该长期处于D状态。 hung task检测进程长期处于D状态的原理,内核会创建一个线程khungtaskd,用来定期遍历系统中的所有进程,检查是否存在处于D状态超过设置时长(默认120秒)的进程。如果存在这样的进程,则打印并上报相关警告和进程堆栈。如果配置了hung_task_panic(通过proc或内核启动参数配置),则直接发起panic。 触发方法 创建内核线程,设成D状态,scheduler释放时间片。
  • page allocation failure page allocation failure是申请空闲页失败时,系统上报的错误。当程序申请某个阶数(order)的内存,但系统内存中,没有比申请阶数高的空闲页,即触发内核报错。 原理 Linux使用伙伴系统(buddy system)内存分配算法。将所有的空闲页表(一个页表的大小为4K)分别链接到包含了11个元素的数组中,数组中的每个元素将大小相同的连续页表组成一个链表,页表的数量为1、2、4、8、16、32、64、128、256、512、1024,所以一次性可以分配的最大连续内存为1024个连续的4k页表,即4MB的内存。 假设申请一个包括256个页表的内存,指定阶数order为6,系统会依次查找数组中的第9、10、11个链表,上一个为空,表示没有此阶数的空闲内存,查找下一个,直到最后一个链表。 如果所有链表均为空,申请失败,则内核上报错误page allocation failure。输出报错信息,描述申请阶数为6的内存页失败: page allocation failure:order:6 触发方法 用alloc_pages连续申请高阶数内存页(例如order=10),不释放,直到申请失败。
  • Bad mm_struct Bad mm_struct错误通常是由于内核中的一个或多个mm_struct数据结构被破坏或损坏所导致。 原理 mm_struct是Linux内核中的一个重要数据结构,用于跟踪进程的虚拟内存区域。如果该数据结构被破坏,可能会导致进程崩溃或系统崩溃。这种错误通常内存异常导致,例如mm_struct区域的内存被踩踏、内存越界等。 触发方法 无人为触发方法,当硬件错误,或者Linux系统内核代码错误时会触发Bad mm_struct。
  • MCE (Machine Check Exception) Machine Check Exception (MCE) 是CPU发现硬件错误时触发的异常(exception),上报中断号是18,异常的类型是abort。 原理 导致MCE的原因主要有:总线故障、内存ECC校验错、cache错误、TLB错误、内部时钟错误等。不仅硬件故障会引起MCE,不恰当的BIOS配置、firmware bug、软件bug也有可能引起MCE。 MCE中断上报,操作系统检查一组寄存器称为Machine-Check MSR,根据寄存器的错误码执行对应的处理函数(函数实现依赖不同的芯片架构实现)。 触发方法 无人为触发方法,当总线故障、内存ECC校验错、cache错误、TLB错误、内部时钟错误等时会触发MCE。
  • 背景说明 HCE OS运行时,不可避免的会出现一些内核事件,例如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在关闭中断或关闭抢占场景中一直循环等。
  • global OOM Linux的OOM killer特性是一种内存管理机制,在系统可用内存较少的情况下,内核为保证系统还能够继续运行下去,会选择结束一些进程释放掉一些内存。 原理 通常oom_killer的触发流程是:内核为某个进程分配内存,当发现当前物理内存不够时,触发OOM。OOM killer遍历当前所有进程,根据进程的内存使用情况进行打分,然后从中选择一个分数最高的进程,终止进程释放内存。 OOM killer的处理主要集中在mm/oom_kill.c,核心函数为out_of_memory,函数处理流程为: 通知系统中注册了oom_notify_list的模块释放一些内存,如果从这些模块中释放出了一些内存,直接结束oom killer流程;如果回收失败,进入下一步。 触发oom killer通常是由当前进程进行内存分配所引起。如果当前进程已经挂起了一个SIG_KILL信号或者正在退出,直接选中当前进程,终止进程释放内存;否则进入下一步。 检查panic_on_oom系统管理员的设置,决定OOM时是进行oom killer还是panic。如果选择panic,则系统崩溃并重启;如果选择oom killer,进入下一步。 进入oom killer,检查系统设置,系统管理员可设置终止当前尝试分配内存、引起OOM的进程或其它进程。如果选择终止当前进程,oom killer结束;否则进入下一步。 调用select_bad_process选中合适进程,然后调用oom_kill_process终止选中的进程。如果select_bad_process没有选出任何进程,内核进入panic。 触发方法 执行占用大内存的程序,直到内存不足。
  • list corruption list corruption是内核检查链表有效性失败的报错,报错类型分为list_add corruption和list_del corruption。 原理 内核提供list_add和list_del,对传入的链表先检查链表的有效性(valid),检查通过后,修改链表增加或删除节点。如果检查链表失败,则上报corruption错误。检查和报错代码在内核lib/list_debug.c。 这种错误通常为内存异常操作导致,例如内存踩踏、内存损坏等。 触发方法 用list.h的内核标准接口创建链表,非法修改链表节点的prev或next指针,再调用内核list_add/list_del接口。
  • 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。 内核ext4校验使用checksum校验inode信息,当出现分区表错误、磁盘硬件损坏时,内核返回-EIO错误码,系统上报EXT4-fs error checksum invalid错误。 触发方法 使用磁盘过程中强行拔盘,重新接入读盘。
  • 安装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/ ...... 安装x2hce-ca。 通过yum install -y x2hce-ca-hce.x86_64命令安装工具。安装完成后,生成表1。 表1 用户相关目录列表 目录 说明 /var/log/x2hce-ca 存放工具日志文件的目录。 /var/log/aparser 存放配置收集器日志文件的目录。 /opt/x2hce-ca/output 报告默认输出目录。 /opt/x2hce-ca/scan 待扫描应用软件包的建议存放目录。 /opt/x2hce-ca/update 配置文件更新目录,用于存放更新包和对应的License文件。 /etc/x2hce-ca/config 存放静态配置文件的目录。 /etc/x2hce-ca/database_2.0.0.630 存放数据库文件的目录。 /usr/local/x2hce-ca 程序文件存放路径。 重启操作系统或者执行命令alias x2hce-ca="x2hce_python39 /usr/local/x2hce-ca/x2hce-ca.pyc",使x2hce-ca命令生效。 父主题: x2hce-ca应用兼容性评估
  • 通过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包,如下所示表示安装成功。 如果安装过程中提示需要依赖其他的安装包,请根据同样的操作步骤先安装所依赖的安装包。
  • 通过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 OS系统repo文件有冲突,请先将/etc/yum.repos.d目录下HCE OS原有的repo文件进行备份,并删除HCE OS原有的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文件通过备份恢复。
  • 工具概述 x2hce-ca是华为云对系统迁移提供的一款免费的应用兼容性评估工具。x2hce-ca通过对待迁移应用进行快速扫描分析,帮助您评估应用在源操作系统和目标操作系统的兼容性。 表1 支持兼容性评估的x86公共镜像 OS发行系列 源操作系统 目标操作系统 HCE OS 64bit:Huawei Cloud EulerOS:1.1 Huawei Cloud EulerOS 2.0 标准版 64位 EulerOS 64bit:EulerOS:2.10/2.9/2.8/2.5/2.3/2.2 Huawei Cloud EulerOS 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 Huawei Cloud EulerOS 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 Huawei Cloud EulerOS 2.0 标准版 64位 ARM版 父主题: x2hce-ca应用兼容性评估
  • 冲突包列表 冲突包列表表示在原系统中存在与HCE OS系统冲突的软件包,会影响升级过程。 冲突包会在升级过程中自动卸载并且不会再安装上,升级前请评估原系统依赖的软件包是否在此冲突列表内,以免造成升级完成后软件缺失。 如果发现升级后软件包丢失,可以通过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 OS冲突包列表 HCE OS 冲突包列表 HCE OS 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 父主题: 将操作系统迁移至HCE OS 2.0
  • 关于通用漏洞披露(CVE) CVE(Common Vulnerabilities and Exposures)是已公开披露的各种计算机安全漏洞,所发现的每个漏洞都有一个专属的CVE编号。Huawei Cloud EulerOS为保障系统安全性,紧密关注业界发布的CVE信息,并会及时修复系统内各类软件漏洞,增强系统的安全性。您可在Huawei Cloud EulerOS的安全公告中查看安全更新记录。 Huawei Cloud EulerOS 1.1安全公告 Huawei Cloud EulerOS 2.0安全公告 根据CVSS(Common Vulnerability Scoring System)评分,Huawei Cloud EulerOS将安全更新分为四个等级: Critical(高风险,必须安装) Important(较高风险,强烈建议安装) Moderate(中等风险,推荐安装) Low(低风险,可选安装) 若您目前已安装Huawei Cloud EulerOS 1.1及以上版本,您可以根据以下操作查询并安装安全更新,修复系统漏洞。本章节以Huawei Cloud EulerOS 2.0为例举例说明。 Huawei Cloud EulerOS系统版本不同,部分显示可能与本文档存在差异,以实际显示为准。 父主题: 对HCE OS进行安全更新
  • 第三方repo源配置 如果要新增第三方repo源,可按下述过程进行配置(以openEuler社区的镜像源为例): 在/etc/yum.repos.d/目录新增openEuler.repo文件(名称可以自定义,文件后缀需以.repo结尾)。使用vim /etc/yum.repo.d/openEuler.repo命令进行编辑。 配置仓库名字,如[openEuler],仓库名必须唯一,可根据实际情况进行调整。 配置name选项,如openEuler repository,表示仓库的具体描述,可根据实际情况进行调整。 配置baseurl选项,此处为:https://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/,表示软件包从该链接获取,具体可参考openEuler或者对应repo提供者的官方说明。 配置gpgcheck选项,为1表示对安装的软件包进行gpg校验。 配置enabled选项,为1表示启用该repo源。 配置gpgkey选项,此处为:https://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler,表示gpg校验使用的公钥来源于该链接。 最终openEuler.repo文件效果如下: [openEuler] name=openEuler repository baseurl=https://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler 可以通过配置中的priority字段控制repo源的优先级。如果优先使用HCE OS默认源,可在hce.repo配置中都加上priority=1(数值越小优先级越高),然后在第三方源配置中加上priority=2,数值根据实际情况进行调整。本文仅为示例,完整的openEuler仓库配置请参考HCE OS获取openEuler扩展软件包。 如果要升级软件包,可参考用户指南更新HCE OS系统和RPM包。
  • 官方repo源配置 通过弹性云服务器购买的HCE OS默认镜像,在/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校验。 修改该文件可能会对系统的软件安装、升级产生影响,不建议修改该文件。
  • 修订记录 发布日期 修订记录 2024-07-01 创建 自定义镜像 ,修改基础镜像的获取方式。 2024-05-30 云审计 服务支持的 DLI 操作列表说明新增Flink Jar作业和Flink模板相关审计事件。 2024-05-23 新增建立DLI与共享VPC中资源的网络连接。 2024-05-22 云审计服务支持的DLI操作列表说明新增Flink Opensource sql相关审计事件。 2024-05-10 弹性资源池概述,新增弹性资源池扩缩容约束限制。 队列弹性扩缩容,新增队列扩缩容约束限制。 2024-04-17 修改导出SQL作业结果,介绍导出作业结果到指定作业桶的方法。 2024-04-03 新增SQL防御,介绍SQL防御规则配置方法。 2024-03-30 新增 DLI委托权限设置,介绍DLI委托权限设置操作指导。 创建Spark作业,补充说明Spark3.3.x及以上版本仅支持选择OBS路径下的程序包。 2024-03-15 新增 标签管理、队列标签管理、弹性资源池标签管理、库表管理标签管理等标签配置相关内容,新增标签策略使用约束限制。 2024-03-08 新增 添加路由,补充关于路由IP的网段说明。 队列属性设置、弹性资源池添加队列补充关于队列的最小CUs小于16CUs时,队列属性相关约束限制说明。 2024-01-30 新增 SQL作业管理,补充说明DLI仅支持从作业桶读取查询结果。 2024-01-17 新增 内置依赖包,新增3.1.1版本依赖包信息。 2024-01-09 修改 数据湖探索 监控指标说明及查看指导,新增弹性资源池相关监控指标。 2023-12-11 修改 全局变量,删除敏感变量相关信息,DLI不再支持新建敏感变量。 2023-12-07 修改 内置依赖包,删除AI镜像安装依赖包信息。 2023-11-14 优化 SQL作业管理、Spark作业管理概述删除导出日志功能的相关描述,SQL作业和Spark作业不再支持导出日志功能。 2023-11-07 优化 跨源认证概述,修改跨源认证的简介,推荐用户使用跨源认证。 增强型跨源连接概述,补充说明跨源场景推荐使用跨源认证存储跨源凭证。 经典型跨源连接(废弃,不推荐使用),补充说明不推荐使用经典型跨源连接。 2023-11-02 优化 创建Spark作业,补充关于资源规格的说明,解释说明driver对队列资源的占用。 2023-08-28 新增 分配队列至项目。 队列属性设置。 弹性资源池添加队列、弹性资源池关联队列补充说明弹性资源池支持仅添加同一企业项目的队列资源。 下线“创建Flink SQL边缘作业”、“边缘鉴权码管理”。 2023-08-14 新增 SQL作业管理,SQL作业详情支持查看“CPU累计使用量”和“输出字节”。 2023-08-02 新增 全局配置,修改全局变量中关于敏感变量的说明。 新增全局变量权限管理。 修改 SQL编辑器,修改SQL作业编辑窗口说明内容。 SQL作业管理,修改作业管理参数表的内容。 使用场景一:创建弹性资源池并运行作业,修改SQL队列类型的相关说明。 弹性资源池添加队列,修改弹性资源池添加队列基础配置关于执行引擎的说明。 2023-07-31 新增 下载基础镜像章节,新增Flink 1.12镜像下载地址。 2023-07-25 修改 队列弹性扩缩容新增约束限制:16CUs队列不支持扩容。 2023-06-30 优化 增强型跨源连接(推荐)。 跨源认证。 2023-06-16 新增 下载基础镜像,新增Spark 3.1.1镜像下载地址。 2023-05-05 新增 开启Flink作业动态扩缩容。 设置作业优先级。 2023-04-17 修改 队列标签管理,修改其中的标签值和键的说明内容。 2023-03-03 新增Spark参数(--conf)配置跨源作业的依赖模块说明表。 2023-03-02 新增库表管理标签管理章节。 2023-02-28 优化弹性资源池队列管理章节。 2023-02-23 修改 下线调试Flink作业相关内容。 操作Flink作业,修改运行时配置中的“异常自动重启”参数描述,Flink SQL作业和Flink OpenSource SQL作业不支持配置从Checkpoint恢复。 2023-01-10 手册结构调整,新增配额管理。 2022-11-04 弹性资源池CU设置,补充CU设置的常见问题。 2022-09-20 创建自定义镜像,修改自定义镜像使用约束,当前仅支持Spark自定义镜像。 2022-08-22 数据库权限管理,补充“显示所有表”、“显示数据库”的权限说明。 Flink作业权限管理,补充查看作业详情的说明。 2022-08-19 云审计服务支持的DLI操作列表说明,修改DLI审计事件名称。 2022-08-12 内置依赖包,删除Python 3.7.5 依赖包相关内容。 2022-07-19 新增弹性资源池关联队列。 新增(推荐)创建Flink OpenSource SQL作业。 使用场景二:配置弹性资源池队列扩缩容策略,补充弹性资源池扩缩容约束限制。 弹性资源池CU设置,补充弹性资源池调整CU的约束限制。
  • 弹性资源池架构和优势 弹性资源池后端采用CCE集群的架构,支持异构,对资源进行统一的管理和调度。 图3 弹性资源池架构图 弹性资源池的优势主要体现在以下几个方面: 统一资源管理 统一管理内部多集群和调度作业,规模可以到百万核级别。 多AZ部署,支持跨AZ高可用。(暂未实现,后续版本支持) 租户资源隔离 不同队列之间资源隔离,减少队列之间的相互影响。 分时按需弹性 秒级动态扩容,从容应对流量洪峰和资源诉求。 支持分时设置队列优先级和配额,提高资源利用率。 作业级资源隔离(暂未实现,后续版本支持) 支持独立Spark实例运行SQL作业,减少作业间相互影响。 自动弹性(暂未实现,后续版本支持) 基于队列负载和优先级实时自动更新队列配额。 弹性资源池解决方案主要解决了以下问题和挑战。 维度 原有队列,无弹性资源池时 弹性资源池 扩容时长 手工扩容时间长,扩容时长在分钟级别 不需要手工干预,秒级动态扩容。 资源利用率 不同队列之间资源不能共享。 例如:队列1当前还剩余10CU资源,队列2当前负载高需要扩容时,队列2不能使用队列1中的资源,只能单独对队列2进行扩容。 添加到同一个弹性资源池的多个队列,CU资源可以共享,达到资源的合理利用。 配置跨源时,必须为每个队列分配不重合的网段,占用大量VPC网段。 多队列通过弹性资源池统一进行网段划分,减少跨源配置的复杂度。 资源调配 多个队列同时扩容时不能设置优先级,在资源不够时,会导致部分队列扩容申请失败。 您可以根据当前业务波峰和波谷时间段,设置各队列在弹性资源池中的优先级,保证资源的合理调配。 弹性资源池主要包括如下基本操作: 创建弹性资源池 弹性资源池权限管理 弹性资源池添加队列 弹性资源池关联队列 弹性资源池队列管理 弹性资源池CU设置 弹性资源池规格变更 弹性资源池标签管理
  • 队列管理页面 队列管理主要包括如下功能: 队列权限管理 创建队列 删除队列 修改队列网段 规格变更 弹性扩缩容 弹性扩缩容定时任务 测试地址连通性 创建 消息通知 主题 队列标签管理 DLI作业执行失败需要通过 SMN 发送通知消息,因此需要获得访问和使用SMN(消息通知服务)的SMN Administrator权限。 队列管理页面显示用户创建所有的队列和服务预置的default队列,您可以查看队列容量、计费方式等信息。队列列表默认按创建时间排列,创建时间最近的队列显示在最前端。 表2 队列管理参数 参数 参数说明 名称 队列的名称。 类型 队列的类型。 SQL队列 通用队列 Spark队列(兼容老版本) 规格 队列大小,单位:CUs。 按需队列:购买按需队列时的队列大小。 包年包月队列:购买包年包月队列时的队列大小。 CUs是队列的计价单位。 1CUs=1Core 4GMem 。不同规格的队列对应的计算能力不一样,规格越高计算能力越好。 实际CUs 当前队列实际大小值。 弹性扩缩容 定时扩缩容的目标CU值,或当前规格CU值的最大值和最小值。 计费模式 SQL作业有两种计费方式。 按需计费 按需计费有三种方式,三种方式是互斥的,可根据需要选择其中一种。 按需/CU时:按照CU时收取计算费用。建议选择CU时套餐包。 按需/SQL计算量:按照用户每个作业的数据扫描量收取计算费用。建议选择扫描量套餐包。 说明: 只有default队列按照数据扫描量收取计算费用,用户自定义队列均按照CU时收取计算费用。 按需/专属资源模式:自创建起按照自然小时收取计算费用。该模式下可创建增强型跨源连接。 包年包月: 包年 包月 用户名 队列所有者。 企业项目 显示所建队列所属的企业项目。如果不属于企业项目,则显示“--”。 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。关于如何设置企业项目请参考《企业管理用户指南》。 说明: 只有开通了企业管理服务的用户才显示该参数。 描述 创建队列时,对队列的描述。如果无描述,则显示“--”。 操作 删除:删除所选队列。如果队列中有正在提交或者正在运行的作业,将不支持删除操作。 说明: 只有按需计费可以删除队列。 权限管理:查看队列对应的用户权限信息以及对其他用户授权。 更多 重启:强制重启队列。 说明: 只有SQL队列有“重启”操作。 分配至项目:修改所选队列所属的企业项目。 说明: 只有开通了企业管理服务的用户才显示该参数。关于如何设置企业项目请参考《企业管理用户指南》。 弹性扩缩容:可以根据需要选择“扩容”或“缩容”,目标值大小必须为16CU的整数倍。 说明: 只有“按需/CU时”和“按需/专属资源模式”计费队列可以进行弹性扩缩容。 规格变更:可以根据需要选择“扩容”或“缩容”,目标值大小必须为16CU的整数倍。 说明: 只有“包年包月”计费队列可以进行规格变更。 弹性扩缩容定时任务:可以根据业务周期或使用情况,在不同的时间或周期内设置不同的队列大小,系统将定时自动进行“扩容”或“缩容”。目标值大小必须为16CU的整数倍。 续费/退订:根据需要选择续费或者退订。 说明: 只有包年包月计费有“续费/退订”操作。 修改网段:使用DLI增强型跨源时,DLI队列网段与数据源网段不能重合,可根据需要进行修改。 建议使用网段: 10.0.0.0~10.255.0.0/8~24 172.16.0.0~172.31.0.0/12~24 192.168.0.0~192.168.0.0/16~24 说明: 只有包年包月队列可以修改网段。 测试地址连通性:测试队列到指定地址是否可达,支持 域名 和ip,可指定端口。 标签:添加、编辑或删除标签。
共100000条