华为云用户手册

  • nginx配置 slb_instance_config/nginx.conf #nginx默认配置 #user slb slb; worker_processes auto; #worker_cpu_affinity 0001 0010 0100 1000; pid logs/nginx.pid; ##################################################################### ### Default: Close the error log error_log /dev/null crit; # nofile per worker around 20000-100000 is ok, eg, if have 8 worker, nginx will use no more than 8*worker_rlimit_nofile nofile, should make this result less than system nofile. worker_rlimit_nofile 51200; events { use epoll; # connections per worker, usually setup same or similar value as worker_rlimit_nofile. worker_connections 51200; } http { ##################################################################### ### load basic lua script include 'lua/nginx.http.lua.conf'; init_by_lua_file 'conf/lua/initial.lua'; init_worker_by_lua_file 'conf/lua/initialWorker.lua'; log_by_lua_file 'conf/lua/monitor/LogRequest.lua'; #rewrite_by_lua_no_postpone on; ##################################################################### uninitialized_variable_warn off; server_tokens off; autoindex off; port_in_redirect off; ssi off; proxy_hide_header X-Powered-By; add_header X-XSS-Protection "1; mode=block"; add_header X-frame-options SAMEORIGIN; add_header X-Content-Type-Options nosniff; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains "; add_header Content-Security-Policy "default-src 'self'"; add_header Cache-control "no-cache, no-store, must-revalidate"; add_header Pragma no-cache; add_header Expires 0; client_header_timeout 60s; client_body_timeout 60s; keepalive_timeout 75s; send_timeout 60s; client_header_buffer_size 1k; large_client_header_buffers 4 8k; client_body_buffer_size 16k; client_max_body_size 1m; proxy_buffer_size 8k; proxy_buffers 8 8k; proxy_busy_buffers_size 16k; include mime.types; default_type text/html; ##################################################################### ### gzip compress gzip on; gzip_http_version 1.1; gzip_comp_level 5; gzip_min_length 1k; gzip_disable "MSIE [1-6]."; gzip_types text/plain text/css text/xml text/javascript application/json application/x-javascript application/xml application/xml+rss application/xhtml+xml; ##################################################################### ### enabled the error page process fastcgi_intercept_errors on; error_page 400 401 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 /4xx.html; error_page 500 501 502 503 504 505 /5xx.html; ##################################################################### ### log format and switch. log_format main '$time_local|$request_time|$upstream_response_time|$uri' '|$status|$body_bytes_sent|$request_length|$bytes_sent|$http_user_agent|$http_host' '|$upstream_addr|$upstream_status|$scheme|$is_grey_server|$resp_status|$server_protocol'; access_log logs/access.log main buffer=5m flush=10s; log_format bigData '$time_local|$server_addr|$upstream_addr|$is_grey_server|$uri' '|$upstream_status|$resp_status|$request_time|$upstream_response_time|$request_length|$bytes_sent|$connections_active|$target_all|$remote_addr' '|$http_x_forwarded_for|$request_method|$http_user_agent|$status|$http_referer|$server_protocol|$body_bytes_sent|$request_length|$http_host|$request' '|$server_port|-|$http_x_api_method||||||||||'; access_log logs/access_for_big_data.log bigData buffer=5m flush=10s; ##################################################################### ### load sub configure include vhosts/*.conf; include slb_conf/*.conf; }
  • 包描述文件介绍 iacspec包描述文件package.json样例如下: { "type": "iacspec", # 代码包类型 "name": "service/1180196813870297088", # 代码包名称,格式:service/{自有服务Id}(必须) "version": "1.0.0" # 代码包版本号(必须) } 表1 package.json字段说明 位置 类型 必填 描述 type string 是 包类型,常量:iacspec或iacpatch。 name string 是 包名称 iacspec包名称格式:service/{service-id},其中service-id为服务ID。 iacpatch包名称格式:service/{service-id}/{component-name},其中{service-id}为服务ID,{component-name}为组件名称。 您可以在AppStage运维中心工作台右上角的个人账号信息管理中,选择“租户管理”,查看服务ID。 version string 是 版本号。 父主题: 应用平台IaC部署代码开发
  • 配置管理 本章介绍如何通过IaC代码描述配置信息,支持私有配置和公共配置两种类型。 IaC3.0公共配置集模型与私有配置项绝大部分字段参数一样,具体请参见表1。 表1 配置管理字段说明 参数 是否必选 类型 说明 格式校验 name 是 string 配置集名称 私有配置集:服务环境下name唯一。 公共配置集:产品环境下name唯一。 建议:^[A-Za-z0-9_]{1,64} type 是 string 资源类型 私有配置集:WiseCloud::MicroService::PrivateConfig 公共配置集:WiseCloud::MicroService::PublicConfig - prefix 否 string 为虚机订阅坐标,虚机部署按prefix前缀来订阅配置,容器场景下不填。 私有配置样例:/app/cloudeye/WiseEyeConfig/v1/rnd 公共配置样例:/public/cloudeye/test 私有配置:/app/${scope}/${module}/${version}/${tag} 公共配置:/public/${scope}/${tag} version 私有配置必填 公共配置无此字段 string 配置版本 满足正则:^[A-Za-z0-9_.,:()-]{1,100} schema 否 object 配置项属性,描述配置项类型和作用。 properties属性为key-object格式,key是配置名称,object是配置项各项描述。 N/A description:最大长度256。 format当前支持的类型如表2所示。 records 是 object 描述配置,key:value格式,key为配置名称,value为配置值。 records数组内: key:满足正则^[A-Za-z0-9_.,:-]{1,100}$ value:最大长度5000 format为schema下的一个字段,对配置进行说明,不同的配置项在使用方式上有所不同。 表2 format说明 类型 中文 说明 notype 未分类 不提供时配置项默认为未分类的类型。 sensitive 敏感配置项 标记此配置项为敏感配置项,此类配置项存储的是配置在STS的路径,非配置密文。 env 环境 - business 调优 - thirdparty 对接三方配置 - system 业务系统配置项 - middleware 中间件配置 - internal 对接内部服务配置 - function 服务功能调优配置 - oap OAP - 私有配置样例: name: my_config type: WiseCloud::MicroService::PrivateConfig properties: prefix: /app/cloudeye/WiseeyeConfig/v1/rnd version: v1 schema: type: object properties: keyl: description: type: string format: notype key2: description: type: string format: sensitive records: key1: value1 key2: value2 公共配置样例: name: test_config_lhq type: WiseCloud::MicroService::PublicConfig properties: prefix: /public/cloudeye/wiseEyeConfigService schema: type: object properties: key_lhq1: description: KEY1相关描述 type: string format: notype key_lhq2: description: KEY2相关描述 type: string format: notype records: key_lhq1: value_lhq1 key_lhq2: value_lhq2 父主题: 资源列表
  • 配置监听 表4 SLB监听配置config字段说明 参数名 是否必选 说明 proxyReadTimeout 否 响应超时时间,不超过10位的数字。 proxySendTimeout 否 转发超时时间,不超过10位的数字。 keepaliveSwitch 否 启用长连接转发,是否keepalive,取值为on或off。 hostSwitch 否 是否透传请求头,取值为on或off,不填或者其他字符均为off。 xForwardedForSwitch 否 是否追加XFF,取值为on或off。 accessLogSwitch 否 是否开启access日志,取值为on或off,不填或者其他字符均为off。 proxyNextUpstreamSwitch 否 是否在异常时尝试下一台,取值为on或off,不填或者其他字符均为off。 proxyNextUpstreamCondition 否 尝试下一台场景,"403"、"404"、"429"、"500"、"502"、"503"、"504"、"error"、"timeout"、"invalid_header"。 clientConnectionFreeTime 否 客户端连接空闲时间,长度不超过10位的正整数。 proxyBuffersSwitch 否 开启响应缓存,取值为on或off,不填或者其他字符均为off。 proxyBuffersSize 否 响应缓存大小,由数字+空格+k/m组成,默认为8 k。 expiresSwitch 否 高级配置中Expires开关,取值为on或off,不填或者其他字符均为off。 expiresSize 否 设定页面缓存时间,不超过50位,不缓存或一直使用缓存。可以由字母、数字、空格、$、@、+、-、冒号、逗号组成。 indexPage 否 静态页面场景index页面设置,长度不超过255,非中文。 returnVal 否 固定返回响应码,长度不超过255,非中文。 allowMethod 否 允许的http方法,对于转发策略有效,对于监听仅为参考,在界面新增转发策略时会继承监听的此项配置,其余场景无效,"GET", "HEAD", "POST", "DELETE", "PUT", "OPTIONS", "PATCH", "MKCOL", "COPY", "MOVE", "PROPFIND", "PROPPATCH", "LOCK", "UNLOCK"。 command 否 nginx配置命令,非中文。 root 否 默认资源根目录,长度不超过500,非中文。 clientMaxBodySize 否 最大请求体大小,数字+空格+k/m组成。 clientBodyBufferSize 否 请求体buffer大小,数字+空格+k/m组成。 addHeaders 否 响应头 setVals 否 对应页面set proxySetHeaders 否 请求头 redirects 否 重定向 rewrites 否 重写 表5 addHeaders/setVals/proxySetHeaders字段说明 参数名 是否必选 说明 key 否 键,非中文 value 否 值,非中文 表6 redirects/rewrites字段字段活命 参数名 是否必选 说明 source 否 匹配规则,非中文。 target 否 重写/重定向目标,非中文。 option 否 重写标记,取值为:"last"、"break"、"permanent"。 slb_listener_config/listener_monitor_config.yaml hostSwitch: 'on' #是否透传请求头,on/off,不填或者其他字符均为off root: #默认资源根目录,不超过500非中文 clientConnectionFreeTime: 100 #客户端连接空闲时间,不超过10位的正整数 proxyReadTimeout: 70 #响应超时时间,不超过10位的数字 keepaliveSwitch: 'on' #启用长连接转发是否keepalive,on/off proxyBuffersSize: '2 m' #响应缓存大小,数字+空格+k/m组成,默认为8 k expiresSwitch: 'on' #高级配置中Expires开关,on/off,不填或者其他字符均为off proxyBuffersSwitch: 'on' #开启响应缓存,on/off,不填或者其他字符均为off accessLogSwitch: 'on' #是否开启access日志,on/off,不填或者其他字符均为off returnVal: 200 #固定返回响应码,不超过255非中文 allowMethod: POST,GET,HEAD,PUT,DELETE,OPTIONS #允许的http方法 nuwaTraceSwitch: 'off' command: #nginx配置命令,非中文 clientMaxBodySize: #最大请求体大小,数字+空格+k/m组成 clientBodyBufferSize: 10 #请求体buffer大小,数字+空格+k/m组成 expiresSize: 10 #设定页面缓存时间 indexPage: #静态页面场景index页面设置,不超过255非中文 proxyNextUpstreamCondition: error,timeout #尝试下一台场景 proxySendTimeout: 80 #转发超时时间,不超过10位的数字 xForwardedForSwitch: 'on' #是否追加XFF,on/off proxyNextUpstreamSwitch: 'on' #是否在异常时尝试下一台,on/off,不填或者其他字符均为off addHeaders: #响应头 - value: v1 key: k1 - value: v2 key: k2 rewrites: #重写 - source: s7 option: break target: t1 setVals: #对应页面set - value: v3 key: $k3 proxySetHeaders: #请求头 - value: v5 key: k5 redirects: #重定向 - source: s1 target: t1
  • 自服务License类商品 生产系统接口地址 商家发布License授权码商品时,需在生产接口服务器开发一个生产接口,后续通过此生产系统接口地址对不同场景调用。 同一个商品发布时,针对不同的调用场景(新购、续费、过期、释放),只需要配置一个“生产系统接口地址”; License类商品接入手册及视频指导可查看《联营License类商品接入指南》; 云商店开放接口描述可参考《云商店开放接口描述》; 商家接入接口描述可参考《商家接入接口描述》。
  • 通用License类商品 生产接口地址 商家发布License授权码商品时,需在生产接口服务器开发一个生产接口,后续通过此生产系统接口地址对不同场景调用。 同一个商品发布时,针对不同的调用场景(新购、续费、过期、释放),只需要配置一个“生产系统接口地址”。 License类商品接入手册及视频指导可参考《联营License类商品接入指南》; 云商店开放接口描述可参考《云商店开放接口描述》; 商家接入接口描述可参考《商家接入接口描述》。
  • 联营License类商品 生产系统接口地址 商家发布License授权码商品时,需在生产接口服务器开发一个生产接口,后续通过此生产系统接口地址对不同场景调用。 同一个商品发布时,针对不同的调用场景(新购、续费、过期、释放),只需要配置一个“生产系统接口地址”。 License类商品接入手册及视频指导可参考《联营License类商品接入指南》; 云商店开放接口描述可参考《云商店开放接口描述》; 商家接入接口描述可参考《商家接入接口描述》。 license规则 商品名称中如有”HCS版“或”CNP版“,请选择线下license服务流;如无,请选择联营线上License授权码服务流; license开通方式 如对接工业软件云,请选线上license交付,后续在商品规格处,需选择与规格相关联的资产;如未对接接工业软件云,请选线下license交付;
  • 背景信息 2020年12月08日,CentOS官方宣布了停止维护CentOS Linux的计划,并推出了CentOS Stream项目。更多信息,请参见CentOS官方公告。 CentOS 8系统2021年12月31日已停止维护服务,CentOS 7系统将于2024年06月30日停止维护服务。CentOS官方不再提供CentOS 9及后续版本,不再支持新的软件和补丁更新。CentOS用户现有业务随时面临宕机和安全风险,并无法确保及时恢复。
  • 影响 基于CentOS官方的变更计划,对CentOS操作系统的使用者产生的影响如下所述: 2021年12月31日以后,CentOS 8的使用者将无法获得包括问题修复和功能更新在内的任何软件维护和支持。 2024年06月30日以后,CentOS 7的使用者将无法获得包括问题修复和功能更新在内的任何软件维护和支持。 对于华为云的公共镜像及服务支持存在一定影响: 华为云暂不会下线CentOS 8公共镜像,同时已经使用CentOS 8创建的ECS实例运行不会受到影响,但将停止更新镜像。 华为云对于CentOS操作系统的服务支持将和CentOS官方日期保持同步。2021年12月31日以后将不再对CentOS 8提供服务支持;对CentOS 7的服务支持将持续至2024年6月30日。
  • 应对策略 为了保障使用CentOS系统的业务正常运行,华为云为您提供替换CentOS操作系统的应对策略。替换CentOS操作系统的方式分为两类,切换操作系统和迁移操作系统。 切换到Debian或Ubuntu具体操作、详见切换操作系统。 将CentOS操作系统切换为支持切换的操作系统。 如果现有的ECS配置(网卡、磁盘、VPN等配置的类型和数量)都不需要改变,仅需要修改ECS的操作系统镜像,并且您的软件和原操作系统耦合度较低,建议使用系统切换。 切换到Huawei Cloud EulerOS具体操作,详见将操作系统切换为HCE OS。 切换到Debian或Ubuntu具体操作、详见切换操作系统。 将CentOS操作系统迁移为Huawei Cloud EulerOS操作系统。 如果现有的ECS配置(网卡、磁盘、VPN等配置的类型和数量)都不需要改变,希望保留操作系统软件的配置参数,可以通过操作系统迁移的方式迁移到Huawei Cloud EulerOS。 系统迁移详见将操作系统迁移为HCE OS。 系统切换和迁移的区别如下表,请根据需要选择合适的替换方式。 表1 系统切换和迁移的区别 区别 系统切换 系统迁移 数据备份 切换操作系统会清除系统盘数据,包括系统盘上的系统分区和所有其它分区。 切换操作系统不影响数据盘数据。 迁移操作系统不会清除系统盘数据,为避免系统软件的数据丢失,建议将其备份。 迁移操作系统不影响数据盘数据。 个性化设置 切换操作系统后,当前操作系统内的个性化设置(如DNS、主机名等)将被重置,需重新配置。 迁移操作系统后,当前操作系统内的个性化设置(如DNS、主机名等)不需重新配置。 表2 支持切换的操作系统 操作系统 概述 适用人群 Huawei Cloud EulerOS Huawei Cloud EulerOS(简称HCE OS)是基于openEuler构建的云上操作系统。 HCE OS打造云原生、高性能、高安全、易迁移等能力,加速用户业务上云,提升用户的应用创新空间,可替代CentOS、EulerOS等公共镜像。 适用于希望使用免费镜像,并延续开源社区镜像使用习惯的个人或企业。 Debian、Ubuntu操作系统 Linux的其他发行版操作系统,不同操作系统在使用习惯和应用兼容性上存在一定差异。 适用于可以自行应对操作系统切换成本的个人或企业。
  • Huawei Cloud EulerOS、openEuler和EulerOS镜像的主要区别是什么? Huawei Cloud EulerOS、openEuler和EulerOS镜像均为华为自研镜像,主要区别如下表 1所示: 表1 Huawei Cloud EulerOS、openEuler和EulerOS镜像的区别与联系 镜像类型 描述 Huawei Cloud EulerOS(简称HCE OS) Huawei Cloud EulerOS(简称HCE OS),是基于openEuler开发的一款商业发行版镜像,可替代CentOS、EulerOS等操作系统,并提供专业的维护保障能力,镜像目前免费对用户使用。 说明: Huawei Cloud EulerOS 2.0是基于openEuler 22.03 LTS版本构建的云上操作系统。 openEuler openEuler是一款开源镜像,您可以免费使用,但是不提供商业维护保障能力。openEuler最初由华为研发,但是已经在2021年11月9日正式捐赠给开放原子开源基金会,openEuler的技术支持由开源社区提供。 EulerOS EulerOS是基于开源技术的企业级Linux操作系统软件,具备高安全性、高可扩展性、高性能等技术特性,能够满足客户IT基础设施和云计算服务等多业务场景需求。 说明: EulerOS是基于开源操作系统openEuler进行开发的华为内部的操作系统。
  • 修订记录 发布日期 更新说明 2024-03-30 第五次正式发布。 新增 xfs创建文件失败问题说明 2024-03-15 第四次正式发布。 新增 OOM相关参数配置与原因排查 2023-12-30 第三次正式发布。 新增 Huawei Cloud EulerOS、openEuler和EulerOS镜像的主要区别是什么? HCE OS如何配置与EulerOS相同的日志转储? 如何打开内核wireguard模块以及安装wireguard-tools? 2023-09-27 第二次正式发布。 新增 如何安装mlnx驱动? 如何开启HCE OS操作系统的SELinux功能? 迁移系统后,如何更改控制台操作系统名称? 2022-10-20 第一次正式发布。
  • 操作步骤 打开配置文件/boot/grub2/grub.cfg,删除selinux=0。 执行touch /.autorelabel命令。 /.autorelabel文件将触发OS在启动过程中对磁盘上所有文件relabel重新打selinux标签,该过程可能需要持续几分钟。relabel完成后OS将自动重启一次并生效,同时自动删除/.autorelabel文件确保下次不会再重复执行relabel动作。 打开配置文件/etc/selinux/config,设置SELINUX=permissive,并执行reboot重启操作系统。 再次打开配置文件/etc/selinux/config,设置SELINUX=enforcing,并执行reboot重启操作系统。 重启后执行getenforce命令查看SElinux状态。 显示Enforcing表示SElinux已经开启。
  • 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释放内存,并将内存提供至伙伴系统。
  • 在x86架构安装mlnx驱动 下载CX6网卡驱动安装包MLNX_OFED_LINUX-23.10-1.1.9.0-openeuler22.03-x86_64.tgz。 解压驱动安装包并进入工作目录。 tar -xf MLNX_OFED_LINUX-23.10-1.1.9.0-openeuler22.03-x86_64.tgz cd MLNX_OFED_LINUX-23.10-1.1.9.0-openeuler22.03-x86_64 安装CX6网卡驱动软件。 ./mlnxofedinstall --basic --without-depcheck --distro OPENEULER22.03 --force --kernel 5.10.0-60.18.0.50.oe2203.x86_64 --kernel-sources /lib/modules/$(uname -r)/build 其中,“5.10.0-60.18.0.50.oe2203.x86_64“是官方MLNX_OFED包本身编译时的内核版本。 创建链接。 ln -s /lib/modules/5.10.0-60.18.0.50.oe2203.x86_64/extra/mlnx-ofa_kernel /lib/modules/$(uname -r)/weak-updates/ ln -s /lib/modules/5.10.0-60.18.0.50.oe2203.x86_64/extra/kernel-mft /lib/modules/$(uname -r)/weak-updates/ depmod -a 执行reboot命令重新系统。 执行/etc/init.d/openibd status命令查看驱动安装结果。 显示如下信息表示驱动安装成功。
  • 在arm架构安装mlnx驱动 下载CX6网卡驱动安装包MLNX_OFED_LINUX-23.10-1.1.9.0-openeuler22.03-aarch64.tgz。 解压驱动安装包并进入工作目录。 tar -xf MLNX_OFED_LINUX-23.10-1.1.9.0-openeuler22.03-aarch64.tgz cd MLNX_OFED_LINUX-23.10-1.1.9.0-openeuler22.03-aarch64 安装CX6网卡驱动软件。 ./mlnxofedinstall --basic --without-depcheck --distro OPENEULER22.03 --force --kernel 5.10.0-60.18.0.50.oe2203.aarch64 --kernel-sources /lib/modules/$(uname -r)/build 其中,“5.10.0-60.18.0.50.oe2203.aarch64”是官方MLNX_OFED包本身编译时的内核版本。 执行如下命令创建链接。 ln -s /lib/modules/5.10.0-60.18.0.50.oe2203.aarch64/extra/mlnx-ofa_kernel /lib/modules/$(uname -r)/weak-updates/ ln -s /lib/modules/5.10.0-60.18.0.50.oe2203.aarch64/extra/kernel-mft /lib/modules/$(uname -r)/weak-updates/ depmod -a 执行reboot命令重新系统。 执行/etc/init.d/openibd status命令查看驱动安装结果。 显示如下信息表示驱动安装成功。
  • HCE OS如何配置与EulerOS相同的日志转储? HCE OS版本中的日志转储配置在hce-logrotate软件包中,对应EulerOS中的euleros-logrotate软件包。 操作方法如下: 2023年6月之前发布的HCE OS 版本,默认未安装hce-logrotate软件包,需执行命令yum install -y hce-logrotate进行手动安装。 2023年6月之后发布的HCE OS版本,已默认安装hce-logrotate软件包,如果有自定义的配置,需要手动同步配置,如果没有则无需其他操作。
  • 基本概念 账号 用户注册时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用他们进行日常管理工作。 用户 由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 详情请参见区域和可用区。 可用区(AZ,Availability Zone) 一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中创建资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。 图1 项目隔离模型 父主题: 使用前必读
  • 错误码 更多服务错误码请参见API错误中心。 状态码 错误码 错误信息 描述 处理措施 400 CBH.10020009 请求消息格式非法 请求消息格式非法 请求消息格式非法 400 CBH.10020010 Request message param error. 请求消息体参数错误! 请核对您的请求参数。 400 CBH.10020011 serverId错误 serverId错误 serverId错误 401 CBH.10020100 The IAM token is invalid. 无法通过IAM校验! 请核对您的token是否正确。 403 CBH.10020002 Tenant has no authority. 租户无权限! 该租户无权限,请去IAM确认用户权限。 500 CBH.10020000 Unknown error! 未知错误! 未知错误,请联系技术人员处理。 父主题: 附录
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 name String 云堡垒机实例名称。 status String 堡垒机实例状态。 POWERING_ON:正在开启 POWERING_OFF:正在关闭 DELETE_WAITE:等待删除 REBOOTING:重启中 RESIZE:变更中 UPGRADING:升级中 FROZEN:冻结 ACTIVE:运行 server_id String 云堡垒机实例ID,使用UUID格式表示。 实例ID获取方式。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 请求参数错误。 状态码: 401 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 校验TOKEN失败。 状态码: 403 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 租户无权限操作。 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 没有找到CBH资源。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 state String 链接获取状态 # SUCCESS(0): 成功;非SUCCESS状态都认为获取失败,需要展示错误代码及description # IAM_USER_CONFLICT(1016): IAM用户冲突; # HOST_NOT_MANAGE(1): 查询主机未被纳管; # HOST_ACCOUNT_NOT_EXIST(553): 主机账户不可用; # IAM_USER_NO_PERMISSION(901): IAM用户无运维该主机权限; # CUR_VERSION_NOT_SUPPORT_OPERATION(9001):当前服务版本不支持; # INS_WHITE_LIST_INITIALIZING(9002):实例白名单正在初始化,请稍后重试; # UNKNOWN_ERROR(9003):未知错误; 枚举值: SUCCESS IAM_USER_CONFLICT HOST_NOT_MANAGE HOST_ACCOUNT_NOT_EXIST IAM_USER_NO_PERMISSION CUR_VERSION_NOT_SUPPORT_OPERATION INS_WHITE_LIST_INITIALIZING UNKNOWN_ERROR description String 链接获取异常时说明提示 login_url String ECS运维登录地址 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 请求参数错误。 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 校验TOKEN失败。 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 租户无权限操作。 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 没有找到CBH资源。
  • URI GET /v2/{project_id}/cbs/instance/get-om-url 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。 获取方法详见API参考,附录获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 server_id 是 String 云堡垒机服务器ID ip_address 是 String 被纳管主机IP host_account_name 是 String 被纳管主机的账户
  • 响应示例 状态码: 200 List AvailableZone Info Success { "availability_zone" : [ { "region_id" : "cn-north-4", "id" : "cn-north-4a", "type" : "Core", "display_name" : "可用区1", "status" : "Running" }, { "region_id" : "cn-north-4", "id" : "cn-north-4b", "type" : "Core", "display_name" : "可用区2", "status" : "Running" }, { "region_id" : "cn-north-4", "id" : "cn-north-4c", "type" : "Core", "display_name" : "可用区3", "status" : "Running" } ] }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 availability_zone Array of AvailabilityZones objects 可用区信息 表4 AvailabilityZones 参数 参数类型 描述 region_id String 可用区ID。 id String 可用分区ID。 display_name String 可用分区显示名称。 status String 可用分区状态。 Running:运行中 type String 可用分区类型。 Core:核心可用区 Dedicated:专属可用区,只对内部客户开放 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 请求参数错误。 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 校验TOKEN失败。 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 租户无权限操作。 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 没有找到CBH资源。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Token获取方法详见获取用户Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 server_id 是 String 云堡垒机实例ID,使用UUID格式表示。 实例ID获取方式。 reboot_type 是 String 重启方式,不区分大小写。 SOFT:普通重启,关闭虚拟机服务 HARD:强制重启,重启虚拟机
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 请求参数错误。 状态码: 401 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 校验TOKEN失败。 状态码: 403 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 租户无权限操作。 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 没有找到CBH资源。
  • 响应示例 状态码: 200 Search Spec Info Successs [ { "data_disk_size" : 1, "ecs_system_data_size" : 10, "cpu" : 4, "connection" : 10, "resource_spec_code" : "cbh.basic.xxx", "asset" : 10, "type" : "basic", "ram" : 8 } ]
  • URI GET /v2/{project_id}/cbs/instance/specification 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。 获取方法详见API参考,附录获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 action 是 String 查询云堡垒机规格当前动作。 create:查询可创建云堡垒机规格信息 update:查询可变更云堡垒机规格信息 spec_code 否 String 云堡垒机规格信息,当action为update时此字段必填。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 [数组元素] Array of CbsGetSpecInfo objects Search Spec Info Successs 表5 CbsGetSpecInfo 参数 参数类型 描述 resource_spec_code String 云堡垒机规格名称。 ecs_system_data_size Integer 云堡垒机系统盘磁盘大小,单位GB。 cpu Integer 云堡垒机CPU核心数。 ram Integer 云堡垒机内存大小,单位GB。 asset Integer 云堡垒机资产数量。 connection Integer 云堡垒机最大连接数。 type String 云堡垒机规格类型。 basic:标准版 enhance:专业版 data_disk_size Number 云堡垒机数据盘大小,单位TB。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 请求参数错误。 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 校验TOKEN失败。 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 租户无权限操作。 状态码: 404 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_description String 没有找到CBH资源。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Token获取方法详见获取用户Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 without_any_tag 否 Boolean 不包含任意一个标签,该字段为true时查询所有不带标签的资源。 此时忽略 “tags”、“tags_any”、“not_tags”、“not_tags_any”字段。 tags 否 Array of Tags objects 包含标签,最多包含50个key,每个key下面的value最多10个,每个key对应的value可以为空数组但结构体不能缺失。 Key不能重复,同一个key中values不能重复。结果返回包含所有标签的资源列表,key之间是与的关系, key-value结构中value是或的关系。 无tag过滤条件时返回全量数据。 tags_any 否 Array of Tags objects 包含任意标签,最多包含50个key,每个key下面的value最多10个,每个key对应的value可以为空数组但结构体不能缺失。Key不能重复,同一个key中values不能重复。 结果返回包含标签的资源列表,key之间是或的关系,key-value结构中value是或的关系。 无过滤条件时返回全量数据。 not_tags 否 Array of Tags objects 不包含标签,最多包含50个key,每个key下面的value最多10个, 每个key对应的value可以为空数组但结构体不能缺失。Key不能重复,同一个key中values不能重复。 结果返回不包含标签的资源列表,key之间是与的关系,key-value结构中value是或的关系。 无过滤条件时返回全量数据。 not_tags_any 否 Array of Tags objects 不包含任意标签,最多包含50个key,每个key下面的value最多10个, 每个key对应的value可以为空数组但结构体不能缺失。Key不能重复,同一个key中values不能重复。 结果返回不包含标签的资源列表,key之间是或的关系,key-value结构中value是或的关系。 无过滤条件时返回全量数据。 sys_tags 否 Array of Tags objects 仅op_service权限可以使用此字段做资源实例过滤条件。 目前TMS调用时只包含一个tag结构体。 key:_sys_enterprise_project_id value:企业项目id列表 目前TMS调用时,key下面只包含一个value。0表示默认企业项目 sys_tags和租户标签过滤条件(without_any_tag 、tags、tags_any、not_tags、not_tags_any)不能同时使用 无sys_tags时按照tag接口处理,无tag过滤条件时返回全量数据。。 matches 否 Array of Match objects 搜索字段,key为要匹配的字段,如resource_name等。 value为匹配的值。key为固定字典值,不能包含重复的key或不支持的key。 根据key的值确认是否需要模糊匹配,如resource_name默认为模糊搜索(不区分大小写),如果value为空字符串精确匹配(多数服务不存在资源名称为空的情况,因此此类情况返回空列表)。 resource_id为精确匹配。第一期只做resource_name,后续再扩展。 表4 Tags 参数 是否必选 参数类型 描述 key 是 String 键。 说明: 说明: key不能为空,长度1~128个字符(中文也可以输入128个字符) 可用 UTF-8 格式表示的字母(包含中文)、数字和空格,以及以下字符: _ . : = + - @ _sys_开头属于系统标签,租户不能输入 建议正则:^((?!sys)[\p{L}\p{Z}\p{N}_.:=+\-@]*)$ values 是 Array of strings 值列表。 说明: 说明: 长度0~255个字符(中文也可以输入255个字符) 可用 UTF-8 格式表示的字母(包含中文)、数字和空格,以及以下字符: _ . : / = + - @ 建议正则:^([\p{L}\p{Z}\p{N}_.:/=+-@]*)$ 资源标签值可以为空(empty or null) 预定义标签值不可以为空 表5 Match 参数 是否必选 参数类型 描述 key 是 String 键。第一期限定为resource_name,后续扩展。 value 是 String 值。每个值最大长度255个unicode字符 。不校验字符集范。。
共100000条