华为云用户手册

  • CS E权限 默认情况下,新建的 IAM 用户没有任何权限,您需要将其加入用户组,并给用户组授予策略,才能使得用户组中的用户获得策略定义的权限,这一过程称为授权。授权后,用户就可以基于策略对云服务进行操作。 CSE资源通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域对应的项目中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问CSE时,需要先切换至授权区域。 根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。 如表1所示,包括了CSE的所有系统权限。 表1 CSE系统权限说明 系统角色/策略名称 描述 类别 依赖关系 CSE FullAccess 微服务引擎服务管理员权限。 系统策略 无 CSE ReadOnlyAccess 微服务引擎服务查看权限。 系统策略 无 如果表1所列权限不满足实际需求,可以在这个基础上创建微服务引擎自定义策略。 更多CSE相关功能需要依赖的服务权限,请参见表2所示。 表2 依赖的服务权限 依赖的服务 权限 VPC VPC ReadOnlyAccess ELB ELB ReadOnlyAccess AOM AOM ReadOnlyAccess TMS TMS ReadOnlyAccess 表3列出了微服务引擎常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。 表3 常用操作与系统权限之间的关系 操作 CSE ReadOnlyAccess CSE FullAccess 创建微服务引擎 x √ 维护微服务引擎 x √ 查询微服务引擎 √ √ 删除微服务引擎 x √ 创建微服务 x √ 查询微服务 √ √ 维护微服务 x √ 删除微服务 x √ 创建微服务配置 x √ 查询微服务配置 √ √ 编辑微服务配置 x √ 删除微服务配置 x √ 创建微服务治理策略 x √ 查询微服务治理策略 √ √ 编辑微服务治理策略 x √ 删除微服务治理策略 x √
  • 测试模型 workload模型 表2 测试模型 测试模型编号 测试模型 workload-read(单行读) 100% read workload-insert(单行写) 100% insert workload-range-read(范围读) 100% range read 预置数据量 本次性能测试中,针对每种规格的实例,都预置了20亿条数据,每条数据有20个字段,每个字段大小为20Bytes。
  • 操作步骤 登录管理控制台。 在“实例管理”页面,单击“购买数据库实例”。 在“服务选型”页面,选择计费模式,填写并选择实例相关信息后,单击“立即购买”。 图1 计费模式和基本信息 表1 计费方式 参数 描述 计费模式 目前仅支持按需计费模式。 用户选购完服务配置后,无需设置购买时长,系统会根据消费时长对账户余额进行扣费。 表2 基本信息 参数 描述 区域 租户所在的区域。 须知: 请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。不同区域内的产品内网不互通,且购买后不能更换,请谨慎选择。 实例名称 设置实例名称时,需要满足如下规则。 实例名称允许和已有名称重复。 实例名称长度在4个到64个字节之间,必须以字母或中文字开头,区分大小写,可以包含字母、数字、中划线、下划线或中文(一个中文字符占用3个字节),不能包含其他特殊字符。 兼容接口 HBase 实例类型 集群 版本 3.11 可用区 指在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。 图2 规格与存储 表3 规格与存储 参数 描述 性能规格 CPU规格越高,性能越好。请根据实际业务场景,选取符合业务类型的性能规格。 节点数量 节点数量可选择范围为3~21,请根据实际需要进行选取。 存储空间 存储空间的取值范围(最大值和最小值)与所选的实例规格有关 调整存储空间容量时,选择容量大小必须为整数,且至少需选择1GB的扩容量。 图3 网络配置 表4 网络配置 参数 描述 虚拟私有云 实例所在的 虚拟专用网络 ,可以对不同业务进行网络隔离。您可根据需要创建或选择所需的虚拟私有云。 如果没有可用的VPC,系统自动为您分配资源。 如何创建VPC,请参见《虚拟私有云用户指南》中的“创建虚拟私有云基本信息及默认子网”。 您还可以通过共享VPC功能,使用其他账号共享的VPC和子网。 共享VPC是基于 资源访问管理 (Resource Access Manager,简称 RAM )服务的机制,VPC的所有者可以将VPC内的子网共享给其他账号使用,以实现网络资源的共享和统一管理,提升资源管控效率、降低运维成本。 有关VPC子网共享的更多信息,请参见《虚拟私有云用户指南》的“共享VPC”相关内容。 说明: 目前实例创建完成后不支持切换 虚拟私有云VPC ,请谨慎选择所属虚拟私有云。 如需与ECS进行内网通信,实例与需要通信的ECS需要处于同一个虚拟私有云下,或者不同虚拟私有云之间配置对等连接。 子网 通过子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全。 说明: 目前不支持选择IPV6网段的子网,建议您在使用时创建并选择IPV4网段的子网。 内网安全组 安全组限制安全访问规则,加强与其他服务间的安全访问。请确保所选取的安全组允许客户端访问数据库实例。 如果没有可用的安全组,系统自动为您分配资源。 图4 数据库配置 表5 数据库配置 参数 描述 管理员账户名 管理员账户名默认为rwuser。 管理员密码 用户设置的密码。 长度为8~32个字符。 必须是大写字母、小写字母、数字、特殊字符的组合,其中可输入特殊字符~!@#%^*-_=+?。 系统会进行弱密码校验,安全起见,请输入高强度密码。 请妥善管理您的密码,因为系统将无法获取您的密码信息。 确认密码 必须和管理员密码一致。 企业项目 该参数针对企业用户使用。 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理,默认项目为default。 请在下拉框中选择所在的企业项目。更多关于企业项目的信息,请参见《企业管理用户指南》。 参数模板 数据库参数模板就像是数据库引擎配置值的容器,参数模板中的参数可应用于一个或多个相同类型的数据库实例。实例创建成功后,参数模板可进行修改。 用户可以在实例创建完成之后根据业务需要进行调整。 SSL安全连接 SSL证书是一种遵守SSL协议的服务器数字证书,能在客户端和服务器端之间建立加密通道,保证数据在传输过程中不被窃取或篡改。 您可以开启SSL连接,提高数据安全性。 说明: 如果您在创建实例时未开启SSL安全连接,可以待实例创建成功后开启,操作详情请参见设置SSL 数据加密 。 表6 标签 参数 描述 标签 可选配置,对GeminiDB HBase的标识。使用标签可以方便识别和管理您拥有的GeminiDB HBase资源。 每个实例默认最多支持20个标签配额。 如您的组织已经设定GeminiDB HBase的相关标签策略,则需按照标签策略规则为实例添加标签。标签如果不符合标签策略的规则,则可能会导致实例创建失败,请联系组织管理员了解标签策略详情。 标签由标签“键”和标签“值”组成。 键:如果要为数据库实例添加标签,该项为必选参数。 对于每个实例,每个标签的键唯一。长度不超过128字符,只能包含数字(0-9)、英文字母(A-Z,a-z)、下划线(_)、点(.)、连接符(-)和中文。 值:如果要为数据库实例添加标签,该项为可选参数。 长度不超过255个字符,只能包含数字(0-9)、英文字母(A-Z,a-z)、下划线(_)、点(.)、连接符(-)和中文。 在“订单详情确认”页面,核对实例信息。 如果需要修改,单击“上一步”,修改实例信息。 核对无误后,勾选协议,单击“提交”,开始创建实例。 在“实例管理”页面,您可以查看并管理实例。 实例创建过程中,运行状态显示为“创建中”。 实例创建完成后,运行状态显示为“正常”。 如果页面长时间未刷新,您可以单击页面右上角的刷新页面查看实例运行状态。 创建实例时,系统默认开启自动备份策略。因此,实例创建成功后,系统会自动创建一个全量备份。 实例创建完成后,在“实例管理”页面的兼容接口列显示“Cassandra 3.11.3”,实际为兼容HBase的Cassandra接口,使用与HBase无差异,可放心使用。
  • 测试数据 不同测试模型下,不同规格且预置相当数据量,测试的OPS*数据(表格中黑色字体),详见表1 测试数据中加粗内容。 表1 测试数据 实例类型 数据量 业务性能-吞吐量(QPS) 业务性能-P99时延ms 单行写 单行读 范围读 单行写 单行读 范围读 GeminiDB HBase实例 20亿 142154 95254 589050 3.5 8.5 19 开源HBase实例 20亿 139723 18931 63350 3.9 301 834 OPS:Operation Per Second,数据库每秒执行的操作数。 测试模型编号:测试模型编号对应的测试模型,请参见表2 测试模型。 父主题: 性能白皮书
  • GeminiDB HBase 接口兼容性列表 GeminiDB HBase目前暂不支持集群运维与管理相关接口。如果有实例级别操作需求如重启等,可以使用控制台相关功能。 表1 接口功能分类 接口 功能 是否支持 数据接口 Get Get:单行查询。 是 Filter:服务端过滤。 是 Consistency:数据强一致。 是 Versions:多版本查询。 是 Put Put:单行插入。 是 Condition:条件插入。 是 TTL:过期数据自动删除。 即将上线 Versions:多版本写入。 即将上线 Delete Delete:单行全部删除。 是 Delete:指定ColumnFamily/Qualifier删除。 是 Versions:多版本删除。 即将上线 Scan Scan:全量扫描。 是 Scan:指定start/stop行进行扫描。 是 TimeRange:过滤时间范围。 是 Filter:过滤指定cf/qf。 是 Versions:多版本查询。 即将上线 Increment 普通Increment操作。 规划中 Append 普通Append操作。 规划中 Bulk Load 从文件批量导入数据。 规划中 元数据操作 Table Create:普通创表操作。 是 SplitKey:创表同时指定。 是 Region:自动分裂。 规划中 Disable/Delete:禁用/删表。 是 Compress:指定压缩算法(已自带数据压缩)。 暂无规划 Alter Table:增加ColumnFamily。 规划中 Alter Table:减少ColumnFamily。 规划中 集群管理接口 运维侧关注,客户无需关注。 Namespace 创建/删除Namespace。 是 其他参数指定。 暂无规划 额外支持 Coprocessor 支持自定义插件 暂无规划 二级索引 需要Column内容支持用户多样化查询 规划中 父主题: HBase协议兼容版实例
  • 查看实例IP地址 登录管理控制台。 在“实例管理”页面,单击目标实例名称,进入基本信息页面。 方法一: 在“基本信息”页面下方节点信息列表中,即可查看到GeminiDB HBase实例下各个节点的内网IP地址。 GeminiDB HBase实例目前不支持绑定公网IP。 图1 查看IP地址 在网络信息区域可以查看到GeminiDB HBase实例的端口,界面显示默认为8635,实际使用的默认端口为2181。 图2 查看端口 方法二: 您也可以单击实例“基本信息”左侧导航中的“连接管理”,即可查看到实例的内网IP地址和端口。 图3 查看IP和端口
  • 使用须知 删除操作无法恢复,请谨慎操作。 删除节点时,您可以联系客服,选择1s到5min的节点连接时间(节点连接时间适用于所有节点),断开长连接。 如果搭建双活关系,不允许在主实例和备实例同时进行添加节点、删除节点和规格变更操作。 开启操作保护的用户,在进行敏感操作时,通过进行二次认证再次确认您的身份,进一步提高账号安全性,有效保护您安全使用云产品。关于如何开启操作保护,具体请参考《 统一身份认证 服务用户指南》的内容。
  • 应用场景 频控场景 频控指的是对用户在一定时间内(例如一天、一周、一个月)进行某种操作的次数进行限制,可以控制特定广告或信息在一定时间内在特定平台上的展示次数,以避免过度曝光和广告疲劳,同时优化广告效果和用户体验;对于广告来说,也可以提高广告的效果和转化率。此外,频控还可以避免恶意行为,如刷流量、刷评论、刷点赞等。 频控的3个要素包含用户ID、广告ID、触发次数;以用户ID为key,广告ID为field,指定时间内的触发次数为value,恰好构成频控的三要素。先配置好各个广告的指定频控策略,如下图所示即可根据如下的方式来实现频控: 图1 频控Hash方案 最左边通过Hash类型来实现,通过expire命令设置User_1的过期时间为一天,每推送一次通过hincrby来增加指定广告的推送次数,每次推送指定广告前在一天内的推送次数则可以通过hget获取进行判断,一天后该用户的数据自动过期无需手动清理,这样便可以简单地实现频控。但这个方案的缺点在于对于每个用户(即每个key)只能设置一个过期时间,无法做到例如8小时3次这样指定时间段内的灵活的频控策略。 为了做到对每个广告都配置指定时间段内的灵活频控,如中间图所示可以通过将时间戳拼接在value里的方式用Hash类型来实现,但这种方案无疑是增加了业务侧开发的工作量。 如最右图所示,支持给field设置过期时间的exHash类型可以很完美地解决Hash类型面对频控场景的缺点。由于Field支持过期时间设置,那么该场景下,平台可以给每个广告都配置不同时间段内的频次要求,假设此时给AD_2配置的频控策略为8小时内2次,那么如图所示在下一次再准备给User_1推送AD_2广告前,先通过exhget User_1 AD_2命令获取到了该值已经是2时,便可以判断出此时根据平台频控策略,不应该再给User_1推送AD_2广告了。而当8小时一过,User_1的AD_2这个field过期后,exhget无法再获取到这个field的信息,则可以继续给User_1推送AD_2广告了。 购物车场景 双十一期间,相信很多同学购物车里都填满了各种想要清空的宝贝,这里就以购物车场景为例介绍该场景的几种不同Redis类型的实现,并比较这几种实现方案的优缺点。 基于String实现购物车功能 如图图2所示,基于String可以轻松地实现各个用户的购物车功能,该方案需要将用户ID与商品ID进行拼接作为key,例如User_1#Earphones_1,key对应的value为购物车中用户准备购买的数量,其中可能有部分商品为限时特购,所以有过期时间,为key对应的过期时间。 图2 String方案 涉及命令如下: incrby User_N#Product_N [Number] # 增加商品数量 set User_N#Product_N [Number] # 设置商品数量 expire User_N#Product_N Time_N # 设置指定用户购物车中指定物品的过期时间 get User_N#Product_N # 获取商品数量 scan 0 match User_N* # 查找所有User_N下的所有商品 del User_N#Product_N # 删除指定用户购物车中的指定商品 该方案会存在如下问题: 额外拼接增加编、解码开发工作量。 某个用户获取自己的购物车清单时还需要通过scan命令前缀匹配扫描所有key,并通过get命令去获取对应的值。 想要直接获取清单长度时,仍然需要遍历整个前缀key的数目,方法复杂。 存在大量重复的用户名前缀,浪费存储空间。 基于Hash实现购物车功能 可以根据如图3所示的Hash类型来实现购物车的管理,用户ID作为key,商品ID作为field,value为购物车中对应商品的数量。其中对于部分限时特购的商品,其过期时间通过拼接的方式放到field对应的value里。 图3 Hash方案 涉及命令如下: hset User_N Product_N [Number#Time_N] # 设置指定用户购物车中指定商品的数量和过期时间 hincrby User_N Product_N [Number] # 增加指定用户购物车中的指定商品数量 hgetUser_N Product_N # 获取指定用户购物车中指定商品的信息 hgetall User_N # 获取指定用户的所有商品信息 hlen User_N # 获取指定用户购物车中的总商品数量 hdel User_N Product_N # 删除指定用户购物车中的指定商品 该方案相对于String类型的方案有了不少优化: 获取某个用户购物车中的所有商品清单仅需要一个hgetall命令即可。 获取某个用户的清单长度时直接hlen获取即可。 不存在大量重复的用户名前缀问题。 然而该方案仍存在一个明显的缺点,即对于部分限时特购的商品处理起来复杂:对于User_1的Keyboard_1商品,如果要再加一个数量,不能直接使用hincrby,而是需要先hget获取Keyboard_1商品的值并解码,再加上指定的数量再编码后hset对应的值。 基于exHash实现购物车功能 根据如图4所示的exHash类型来实现购物车的管理,同Hash类型一样,用户ID作为key,商品ID作为field,value为购物车中对应商品的数量。其中对于部分限时特购的商品,由于exHash类型可以为Field设置过期时间,其过期时间可通过hset命令直接设置。 图4 exHash方案 涉及命令如下: exhset User_N Product_N ex Time_N # 设置指定用户购物车中指定商品的数量和过期时间 exhincrby User_N Product_N [Number] keepttl # 增加指定用户购物车中的指定商品数量,保留原先过期时间exhget User_N Product_N # 获取指定用户购物车中指定商品的信息 exhgetall User_N # 获取指定用户的所有商品信息 exhlen User_N # 获取指定用户购物车中的总商品数量 exhdel User_N Product_N # 删除指定用户购物车中的指定商品 del User_N # 清空指定用户的购物车 该方案相对于Hash类型的优化主要体现在可以直接为各field设置过期时间,使业务侧使用起来简单又高效。可以看到exHash类型相关的命令和Hash类型是类似的,使用起来学习成本很低,业务侧改造成本相对也比较低。
  • GeminiDB Redis各版本的生命周期规划 在正式EOM/EOS前会发布公告,在此期间客户可以通过 数据复制服务 将版本在EOS之前切换到高版本。 EOM:End of Marketing,停止该版本的销售。 EOS:End of Service & support,停止该版本的服务,建议您在执行作业时选择最新版本的引擎。在该日期之后,不再提供该软件版本的任何技术服务支持。 表1 GeminiDB Redis各版本生命周期规划表 版本 当前状态 华为云商用时间 计划EOM时间 计划EOS时间 5.0 已商用 2021年6月 2026年12月 2027年12月 6.2 已商用 2024年3月 2027年12月 2028年12月
  • 如何选择接口 不同接口的适用场景及功能存在差异,您可以根据业务需要选择接口产品。 表1 场景说明 接口名称 兼容接口 使用场景 说明 GeminiDB Redis接口 兼容Key-Value接口:Redis GeminiDB提供高并发、低延迟业务访问。具备极致弹性扩缩容能力,从容应对业务高峰。常见的用户场景包括游戏、广告RTA、推荐系统、电商、教育等。 GeminiDB Redis是一款100%兼容Redis协议的弹性KV数据库,支持远超内存的容量和极致的性能。它具有稳定低延迟、高性价比、无需备节点,全主架构、具备4:1超高数据压缩等优势,支持Hash Field过期、布隆过滤器、数据极速导入、内存加速等企业级特性。 GeminiDB Influx接口 兼容时间序列型接口:InfluxDB GeminiDB Influx接口广泛应用于资源监控,业务监控分析,物联网设备实时监控,工业生产监控,生产质量评估和故障回溯等。 GeminiDB Influx 接口是一款基于华为自研的计算存储分离架构,兼容InfluxDB生态的云原生NoSQL 时序数据库 。提供大并发的时序数据读写,压缩存储和类SQL查询,并且支持多维聚合计算和 数据可视化 分析能力。具有高写入、灵活弹性、高压缩率和高查询等特点。 GeminiDB Cassandra接口 兼容宽列接口:Cassandra,DynamoDB GeminiDB Cassandra接口支持TB级别存储及近百万级QPS,提供强一致性级别,可适配各类应用场景,尤其是大规模集群部署:例如工业制造和气象业、互联网等海量数据存储的场景。 GeminiDB Cassandra 接口 是一款基于华为自研的计算存储分离架构,兼容Cassandra生态的云原生NoSQL数据库,支持类SQL语法CQL。具有安全可靠、超强读写、弹性扩展、便捷管理等特点。 GeminiDB Mongo接口 兼容文档型接口:MongoDB GeminiDB Mongo接口近百万级QPS,开源3倍性能提升,支持存海量文档、图片、IoT/车联网数据、社交视频/语音等,适用于互联网、物联网、游戏、金融等领域。 GeminiDB Mongo 接口是一款基于华为自研的计算存储分离架构,兼容MongoDB生态的云原生NoSQL数据库。具有企业级性能、灵活弹性、高可靠、可视化管理等特点。
  • 已申请权限,但是仍然没有权限操作 检查IAM和ACMS是否属于应用平台Console的同一个站点,需要在哪个站点操作ACMS,就通过该站点的应用平台Console进入IAM申请权限。 如果站点一致,则检查ACMS管理台上的自有服务和IAM里有权限的自有服务是否一致。自有服务下,必须有“服务敏感数据研发管理岗位”。 如果上述检查正确,但仍然没有权限,那么重新登录,再回到ACMS管理台,查看是否有权限。 如果重新登录后依然没有权限,在ACMS管理台,按F12,打开工作台,刷新页面,找到findUserPolicies,在响应中搜索是否存在SecurityTokenService_SDM。 如果不存在,就是没有申请权限,如果缺少SecurityTokenService_SDM,就需要申请自有服务的 ”敏感数据研发管理岗位“。 如果存在,但页面上依然报错,则找支撑人员定位,将站点名称、定位过程、findUserPolicies中的响应内容,提供给支撑人员。 父主题: 运行时引擎访问凭据管理服务
  • 解决方法 执行如下两条命令。 grep "^[ \t]*include" /opt/huawei/openresty/nginx/conf/nginx.conf|grep -v "include mime.types;"|grep -v "'lua/nginx.http.lua.conf'"|grep -v "include vhosts/"|grep -v "include slb_conf/" find /opt/huawei/openresty/nginx/conf/vhosts/ -type f|xargs grep "^[ \t]*include"|grep -v "include geoip.txt;"|grep -v "include geoip_country.txt;"|grep -v "include vhosts/" 根据以上两条命令的结果进行调整(将出现的内容注释掉),然后重新部署即可。
  • 解决方法 登录SLB实例主机,执行命令su os用户切换业务账号,然后执行以下命令: openssl req -new -newkey rsa:2048 -days 3650 -sha256 -nodes -x509 \-subj '/CN=dummy' \-keyout /opt/huawei/openresty/nginx/conf/ssl/dummy.key \-out /opt/huawei/openresty/nginx/conf/ssl/dummy.pem
  • 问题现象 SLB部署失败,日志详细信息提示如下: "cannot access /opt/huawei/openresty/nginx/conf/ssl/sample/resty-auto-ssl-fallback.pem. Permission denined" "cannot access /opt/huawei/openresty/nginx/conf/ssl/sample/resty-auto-ssl-fallback.key. Permission denined"
  • 解决方法 登录SLB实例主机,先执行启动命令/opt/huawei/openresty/init.d/nginx start,确认nginx启动失败的原因,可能是以下两种: 版本选装错误 图1 版本选装错误 解决方法:登录SLB实例主机,执行cat /proc/version,查看环境系统,SLB分为ARM、X86两个版本,界面上部署时需要选择与环境系统一样的包。 系统参数配置不正确 部署完之后,启动时提示参数不正确。 图2 参数配置不正确 解决方法:重新配置参数,参照参数配置不正确。
  • 解决方法 登录SLB实例主机,执行以下几条命令,先将找到的html文件注释掉,然后部署。 grep "^[ \t]*root" /opt/huawei/openresty/nginx/conf/nginx.conf|grep " /opt/huawei/openresty/"|grep -v " /opt/huawei/openresty/nginx/html/"|grep -v " /opt/huawei/openresty/nginx/html;" grep "^[ \t]*root" /opt/huawei/openresty/nginx/conf/nginx.conf|grep -v " /"|grep -v " html/"|grep -v " html;" find /opt/huawei/openresty/nginx/conf/vhosts/ -type f|xargs grep "^[ \t]*root"|awk -F ":" '{print $2}'|grep " /opt/huawei/openresty/"|grep -v " /opt/huawei/openresty/nginx/html/"|grep -v " /opt/huawei/openresty/nginx/html;" find /opt/huawei/openresty/nginx/conf/vhosts/ -type f|xargs grep "^[ \t]*root"|awk -F ":" '{print $2}'|grep -v " /"|grep -v " html/"|grep -v " html;" grep "^[ \t]*alias" /opt/huawei/openresty/nginx/conf/nginx.conf|grep " /opt/huawei/openresty/"|grep -v " /opt/huawei/openresty/nginx/html/"|grep -v " /opt/huawei/openresty/nginx/html;" grep "^[ \t]*alias" /opt/huawei/openresty/nginx/conf/nginx.conf|grep -v " /"|grep -v " html/"|grep -v " html;" find /opt/huawei/openresty/nginx/conf/vhosts/ -type f|xargs grep "^[ \t]*alias"|awk -F ":" '{print $2}'|grep " /opt/huawei/openresty/"|grep -v " /opt/huawei/openresty/nginx/html/"|grep -v " /opt/huawei/openresty/nginx/html;" find /opt/huawei/openresty/nginx/conf/vhosts/ -type f|xargs grep "^[ \t]*alias"|awk -F ":" '{print $2}'|grep -v " /"|grep -v " html/"|grep -v " html;"
  • 解决方法 系统参数修改 登录SLB实例主机,执行命令vim /etc/sysctl.conf,加入以下三行: fs.file-max = 1024000 fs.nr_open = 1048576 net.ipv4.ip_local_port_range = 1024 65535 执行命令/sbin/sysctl -p,刷新sysctl.conf文件。 执行命令vim /etc/security/limits.conf,加入以下两行: * soft nofile 1024000 * hard nofile 1024000 执行命令,su os用户,执行ulimit -n查看使limits.conf生效。
  • 排查定位 登录SLB实例主机,执行命令curl -k -v https://172.25.100.42:2379检查网络是否通畅。 若网络不通,执行命令ps -ef|grep easyconf,检查进程是否存在。 执行命令cat /opt/huawei/logs/easyconf/confagent_monitor.count,检查返回值是否为5;若不是,执行命令vim /opt/huawei/logs/easyconf/confagent_monitor.count修改。
  • 问题现象 SLB部署失败,日志详细信息提示如下: step2_install : generate confd conf & templates /opt/huawei/easyconf/sbin/confagent[27688]: FATAL Can't get local ip" ... "etcd_addr": "172.25.100.42:2379,172.25.100.43:2379,172.25.101.42:2379",
  • 解决方法 登录SLB实例主机,运行以下几条命令,根据提示处理找到的文件,然后部署。 grep "ssl_certificate" /opt/huawei/openresty/nginx/conf/nginx.conf|grep -v "^[ \t]*#"|grep -v "^[ \t]*ssl_certificate_by_lua_block"|grep -v "^[ \t]*ssl\.certificate"|grep " /opt/huawei/openresty/"|grep -v " /opt/huawei/openresty/nginx/conf/ssl/" grep "ssl_certificate" /opt/huawei/openresty/nginx/conf/nginx.conf|grep -v "^[ \t]*#"|grep -v "^[ \t]*ssl_certificate_by_lua_block"|grep -v "^[ \t]*ssl\.certificate"|grep -v " /"|grep -v " ssl/" find /opt/huawei/openresty/nginx/conf/vhosts/ -type f|xargs grep "ssl_certificate"|awk -F ":" '{print $2}'|grep -v "^[ \t]*ssl_certificate_by_lua_block"|grep -v "^[ \t]*ssl\.certificate"|grep -v "^[ \t]*#"|grep " /opt/huawei/openresty/"|grep -v " /opt/huawei/openresty/nginx/conf/ssl/"|grep -v " /opt/huawei/openresty/nginx/conf/vhosts/" find /opt/huawei/openresty/nginx/conf/vhosts/ -type f|xargs grep "ssl_certificate"|awk -F ":" '{print $2}'|grep -v "^[ \t]*ssl_certificate_by_lua_block"|grep -v "^[ \t]*ssl\.certificate"|grep -v "^[ \t]*#"|grep -v " /"|grep -v " ssl/"|grep -v " vhosts/"
  • 问题现象 SLB部署失败,日志详细信息提示如下: "content": "{\"data\":null,\"message\":\"[Service proxy.apply_sudo._wrapped_f]: fail to operator sudo, message: send request fail, status code: 400, error: None, message: illegal param\",\"status\":-2}", "msg": "status was not in [200]",
  • 日志 KooDrive控制台为企业租户提供KooDrive云服务的订购(开通和变更)、冻结和退订等服务,其日志系统对接了华为云的 云日志 服务(Log Tank Service)。LTS提供一站式日志采集、秒级搜索、海量存储、结构化处理、转储和可视化图表等功能,满足应用运维、网络日志可视化分析、等保合规和运营分析等应用场景。 用户开通云日志服务后,LTS可记录KooDrive管理侧的操作日志。 LTS的详细介绍和开通配置方法,请参见LTS快速入门。 开启了云日志服务后,系统开始记录KooDrive管理侧的操作日志。您可以在云日志服务管理控制台,单击“日志管理”,查看实时上报的日志(日志每隔大约1分钟上报一次,在日志消息区域,您最多需要等待1分钟左右,即可查看实时上报的日志)。 KooDrive服务记录了租户资源被访问的日志,客户可以使用祥云提供的日志管理工具,可以查询指定时间段的日志,分析日志,对相关业务资源的被访问情况进行详细的分析。
  • 审计 云审计 服务(Cloud Trace Service, CTS ),是华为 云安全 解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。 用户开通云审计服务后,CTS可记录KooDrive的操作事件用于审计。 CTS的详细介绍和开通配置方法,请参见CTS快速入门。 CTS支持追踪KooDrive管理事件,请参见审计管理。 开启了云审计服务后,系统开始记录KooDrive的操作。您可以在云审计服务控制台查看最近7天的操作记录,具体操作指导请参见查看审计事件。
  • 告警解释 系统每一个小时获取指定目录下直接子文件/目录的数量,判断其是否达到HDFS目录最大子文件/目录个数的百分比阈值(默认为“90%”),如果超过该阈值,则触发告警。 当发出告警的目录的子目录/文件数所占百分比低于阈值后,该告警将自动恢复。当监控开关关闭,所有目录对应的该告警都将自动恢复。当从监控列表中移除指定目录时,该目录对应的告警也会自动恢复。 HDFS目录的子文件/目录最大个数由参数“dfs.namenode.fs-limits.max-directory-items”指定,默认值为“1048576”。如果一个目录的子文件/目录数量超过该值,则无法再在该目录下创建新的子文件/目录。 要监控的目录列表由参数“dfs.namenode.directory-items.monitor”指定,默认值为“/tmp,/SparkJobHistory,/mr-history”。 监控开关由参数“dfs.namenode.directory-items.monitor.enabled”指定,默认值为“true”,即该检测默认开启。
  • 不同Region 当源集群与目标集群处于不同Region时,用Distcp工具将源集群数据拷贝到OBS,借助OBS跨区域复制功能(请参见跨区域复制)将数据复制到对应目的集群所在Region的OBS,然后通过Distcp工具将OBS数据拷贝到目的集群的HDFS上。由于执行Distcp无法为OBS上的文件设置权限、属主/组等信息,因此当前场景在进行数据导出时也需要将HDFS的元数据信息进行导出并拷贝,以防HDFS文件属性信息丢失。
  • 线下集群向云迁移 线下集群可以通过如下两种方式将数据迁移至云: 云专线(DC) 为源集群与目标集群之间建立云专线,打通线下集群出口网关与线上VPC之间的网络,然后参考同Region执行Distcp进行拷贝。 数据快递服务(DES) 对于TB或PB级数据上云的场景,华为云提供数据快递服务 DES。将线下集群数据及已导出的元数据拷贝到DES盒子,快递服务将数据递送到华为云机房,然后通过 云数据迁移 CDM 将DES盒子数据拷贝到HDFS。
  • 告警解释 HDFS的元数据信息存储在NameNode数据目录(由配置项“dfs.namenode.name.dir”指定)中的FsImage文件中。备NameNode会周期将已有的FsImage和JournalNode中存储的Editlog合并生成新的FsImage,然后推送到主NameNode的数据目录。这个周期由HDFS的配置项“dfs.namenode.checkpoint.period”指定,默认为3600秒,即1个小时。如果主NameNode数据目录的FsImage没有更新,则说明HDFS元数据合并功能异常,需要修复。 在主NameNode节点上,系统每5分钟检测其上的FsImage文件的信息。如果在三个合并周期没有新的FsImage文件生成,则系统产生该告警。 当新的FsImage文件生成并成功推送到主NameNode,说明HDFS元数据合并功能恢复正常,告警自动恢复。
  • 参考信息 NameNode JVM参数配置规则 NameNode JVM参数“GC_OPTS”默认值为: -Xms2G -Xmx4G -XX:NewSize=128M -XX:MaxNewSize=256M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -Djdk.tls.ephemeralDHKeySize=3072 -Djdk.tls.rejectClientInitiatedRenegotiation=true -Djava.io.tmpdir=${Bigdata_tmp_dir} NameNode文件数量和NameNode使用的内存大小成比例关系,文件对象变化时请修改默认值中的“-Xms2G -Xmx4G -XX:NewSize=128M -XX:MaxNewSize=256M”。参考值如下表所示。 表1 NameNode JVM配置 文件对象数量 参考值 10,000,000 -Xms6G -Xmx6G -XX:NewSize=512M -XX:MaxNewSize=512M 20,000,000 -Xms12G -Xmx12G -XX:NewSize=1G -XX:MaxNewSize=1G 50,000,000 -Xms32G -Xmx32G -XX:NewSize=3G -XX:MaxNewSize=3G 100,000,000 -Xms64G -Xmx64G -XX:NewSize=6G -XX:MaxNewSize=6G 200,000,000 -Xms96G -Xmx96G -XX:NewSize=9G -XX:MaxNewSize=9G 300,000,000 -Xms164G -Xmx164G -XX:NewSize=12G -XX:MaxNewSize=12G
  • 可能原因 Hive服务不可用可能与ZooKeeper、HDFS、Yarn和DBService等基础服务有关,也可能由Hive自身的进程故障引起。 ZooKeeper服务异常。 HDFS服务异常。 Yarn服务异常。 DBService服务异常。 Hive服务进程故障,如果告警由Hive进程故障引发,告警上报时间可能会延迟5分钟左右。 Hive服务和基础服务间的网络通信中断。 Hive的HDFS临时目录权限异常。 Hive节点本地磁盘空间不足。
  • 告警解释 系统每30秒周期性检查DBServer节点的数据库连接数使用率,并把实际数据库连接数使用率和阈值相比较,当数据库连接数的使用率连续5次(可配置,默认值为5)超过设定阈值时,系统将产生此告警,数据库连接数使用率的阈值设为90%(可配置,默认值为90%)。 平滑次数可配置,当平滑次数为1,数据库连接数使用率小于或等于阈值时,该告警恢复;当平滑次数大于1,数据库连接数使用率小于或等于阈值的90%时,该告警恢复。
共100000条