华为云用户手册

  • 支持复制的配置项 复制配置到新的域名时支持的配置项见下表: 表中支持复制的配置项为控制台可见配置。如果您请运维给原域名设置了特殊配置,该特殊配置将无法复制到新域名。如果新域名需要该特殊配置,您可以提交工单申请。 表1 支持复制的配置项 配置大类 配置项 基本配置 企业项目(校验子账号是否有权限,子账号如果没有该企业项目的权限,域名将添加失败) 业务类型 服务范围 源站配置 复制源站配置时会复制存量域名的回源HOST,详情如下: 如果存量域名的源站类型是IP或域名,且配置了自定义回源HOST,新域名将复制该HOST。 如果存量域名的源站类型是IP或域名,且回源HOST是存量域名本身,新域名的回源HOST也将是新域名本身。 如果存量域名的源站类型是OBS桶域名,新域名的回源HOST与存量域名保持一致。 IPv6配置 回源配置 回源方式 回源SNI 回源URL改写 高级回源 Range回源 回源跟随 回源是否校验Etag 回源超时时间 回源请求头 缓存配置 缓存规则 浏览器缓存过期时间 状态码缓存时间 访问URL重写 访问控制 防盗链 IP黑白名单 User-Agent黑白名单 URL鉴权配置 远程鉴权配置 高级配置 HTTP header配置(跨域请求) 自定义错误页面 智能压缩 请求限速 用量封顶 WebSocket配置(原域名的业务类型是全站加速时会复制该配置项) 视频配置 视频拖拽 标签 标签
  • 背景说明 您在添加加速域名时配置的源站会被CDN默认为主源站,您也可以在源站配置页面添加备源站,配置备源站可以有效降低回源失败率。 当源站存在多个IP地址时,CDN回源时采用负载均衡机制,详情如下: 一次回源请求最多访问两个高优先级源站IP,如果两个IP均回源失败,切换到低优先级源站IP,最多访问两个低优先级源站IP。一次用户请求CDN会进行四次回源尝试,如果四次均失败,此次用户请求失败。 回源失败:指连接超时、连接失败或者收到源站的5xx错误码。
  • CDN与其他服务间依赖关系 CDN对其他云服务有诸多依赖关系,因此在您开启IAM系统策略授权后,在CDN Console控制台的各项功能需要配置相应的服务权限后才能正常查看或使用,前提条件如下: 依赖服务的权限配置均基于您已设置了IAM系统策略授权的CDN FullAccess或CDN ReadOnlyAccess策略权限。 如果IAM用户需要在CDN Console控制台拥有相应功能的查看或使用权限,请确认已经对该用户所在的用户组设置了CDN Administrator、CDN FullAccess或CDN ReadOnlyAccess策略的集群权限,再按如下表3增加依赖服务的权限。 表3 CDN Console中依赖服务的角色或策略 Console控制台功能 依赖服务 需配置角色/策略 OBS委托授权 统一身份认证服务 IAM 创建委托:iam:agencies:createAgency 查询指定条件下的委托列表:iam:agencies:listAgencies 查询委托详情:iam:agencies:getAgency 为委托授予项目服务权限:iam:permissions:grantRoleToAgencyOnProject 查询委托是否拥有项目服务权限:iam:permissions:checkRoleForAgencyOnProject 查询项目列表:iam:projects:listProjects 查询权限列表:iam:roles:listRoles 源站配置 源站是OBS桶域名 对象存储服务 OBS 列举全部桶:obs:bucket:ListAllMyBuckets 列举桶内对象:obs:bucket:ListBucket 判断桶是否存在并获取桶的元数据:obs:bucket:HeadBucket SCM证书 云证书管理服务 CCM 查询证书列表:scm:cert:list 导出证书:scm:cert:download 按照标签筛选域名 标签管理服务 TMS 查询预定义标签:tms:predefineTags:list 企业项目 企业管理 查询企业项目详情:eps:enterpriseProjects:get 查询企业项目列表:eps:enterpriseProjects:list
  • CDN权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 CDN部署时不区分物理区域,为全局级服务。授权时,在全局级服务中设置权限,访问CDN时,不需要切换区域。 根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对ECS服务,管理员能够控制IAM用户仅能对某一类云服务器资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,CDN支持的API授权项请参见权限及授权项说明。 策略是以JSON格式描述权限集的语言。默认情况下,新建的IAM用户没有任何权限,您需要将其加入用户组,并给用户组授予策略,才能使得用户组中的用户获得策略定义的权限,这一过程称为授权。授权后,用户就可以基于策略对云服务进行操作。IAM系统预置了各服务的常用权限,例如管理员权限、只读权限,您可以直接使用这些系统策略。 CDN部署时不区分物理区域,为全局级服务。授权时,在全局项目中设置策略,访问CDN时,不需要切换区域。 如表1所示,包括了CDN的所有系统策略。
  • 什么是区域、可用区? 区域和可用区用来描述数据中心的位置,您可以在特定的区域、可用区创建资源。 区域(Region):从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 可用区(AZ,Availability Zone):一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 图1阐明了区域和可用区之间的关系。 图1 区域和可用区 目前,华为云已在全球多个地域开放云服务,您可以根据需求选择适合自己的区域和可用区。更多信息请参见华为云全球站点。
  • 云耀云服务器与普通ECS、普通VPS(Virtual Private Server)功能对比 表2 云耀云服务器与普通ECS、普通VPS功能对比 产品 云耀云服务器 普通ECS 普通VPS 客户群体 中小企业、开发者、学生 大中型企业用户 有端到端技术实力的用户 应用场景 轻量级应用场景: 轻量企业OA、博客、论坛 云端开发测试环境 跨境电商管理,网站建设 架构复杂的应用场景: 高并发网站,复杂分布集群 大型游戏,大数据分析 视频解码,AI应用 各类自建应用: 轻量级场景 架构复杂的应用场景 自定义场景 技术能力要求 低 中 高 运维能力要求 低 中 高 建设成本 低 中 高 售卖方式 包含多种产品类型,可选择高性价比套餐,整体更优惠 灵活选配资源,独立叠加计费 购买全部资源 应用构建 部分场景开箱即用 手动搭建 全流程手动搭建 管理控制台 一站式整合,独立且简化 面向全业务,较多细节 全流程手动搭建 镜像配置 丰富的应用镜像 丰富的应用镜像 系统镜像 网络配置 自动创建 手动配置 全流程手动配置 华为生态 支持 支持 不支持
  • 云耀云服务器与弹性云服务器区别 云耀云服务器:适用于中低负载业务场景,与弹性云服务器相比,云耀云服务器简化了购买ECS过程中的一些高级配置,一站式融合购买、登录、磁盘配置、网络配置、云监控、主机安全等多种功能,帮助您更加便捷高效的部署、配置和管理应用。 弹性云服务器:提供多种计费模式、规格类型、镜像类型、磁盘类型,针对不同的业务场景,自定义配置弹性云服务器。 HECS底层使用的物理硬件资源与ECS一致,同CPU、内存的HECS与ECS计算能力在同一标准。 高负载应用场景推荐使用ECS,性能更稳定。
  • 云耀云服务器与弹性云服务器的购买和配置区别 表1 L实例、X实例和ECS的区别 项目 L实例 X实例 ECS 适用对象 适用于业务负载要求相对较低,且期望即开即用、超快部署的中小企业和开发者。 适用于中负载业务,且期望资源灵活选配的中小企业和开发者。 适用于网站应用、企业电商、图形渲染、数据分析、高性能计算等高负载、全业务应用场景。 实例特点 内置丰富的解决方案与镜像,零门槛快速搭建业务环境,轻松启动和管理业务 灵活自定义规格、性能稳定强劲、按需灵活计费。 支持灵活地选择所需的内存、CPU、带宽等配置,帮助您打造可靠、安全、灵活、高效的应用环境。 CPU架构 X86 X86 X86、ARM 计费模式 包年/包月 L实例以套餐形式整体售卖、管理,随L实例创建的资源不支持单独卸载、解绑、删除、退订等操作。 按需计费 包年/包月 包年/包月 按需计费 竞价计费 规格 包含云耀服务组合套餐和多种流量套餐类型。 vCPU2核~16核、内存2G~64G灵活选配。 不同vCPUs对应的内存范围不同,具体以控制台为准。 支持多种实例规格系列。 ECS实例类型推荐参考ECS智选推荐。 磁盘 每个套餐默认配置一个固定容量的系统盘,最多支持一个数据盘。 系统盘:高IO 数据盘:通用型SSD V2 自定义配置系统盘规格,支持多个不同类型的数据盘。 系统盘:普通IO、高IO、通用型SSD、超高IO、通用型SSD V2 数据盘:普通IO、高IO、通用型SSD、超高IO、通用型SSD V2 支持选择全磁盘类型。 弹性云服务器支持使用的磁盘类型,请参见云硬盘。 网络 默认分配一个固定弹性公网IP。 公网带宽按流量计费,套餐包含每月固定流量包。 自定义是否绑定弹性公网IP。 线路类型可选。 带宽类型分为按带宽计费、按流量类计费、共享带宽。 自定义是否绑定弹性公网IP。 线路类型可选。 带宽类型分为按带宽计费、按流量类计费、共享带宽。 产品特点 易搭建、更实惠、易维护、更安全 易搭建、更实惠、易维护、更安全 Huawei Cloud EulerOS 2.0公共镜像支持Nginx、Redis或MySQL应用加速 稳定可靠、安全保障、软硬结合、弹性伸缩 镜像 支持5款主流系统镜像 支持11款严选应用镜像 支持使用私有镜像 镜像种类、数目丰富,包括:公共镜像、私有镜像、共享镜像。 镜像种类、数目丰富,包括:公共镜像、私有镜像、共享镜像、市场镜像。 鉴权方式 密码 密码、密钥对 密码、密钥对 集成的云产品 主机安全(基础版) 云备份 云耀负载均衡 主机安全(所有版本) 云监控 云备份 主机安全(所有版本) 云监控 云备份
  • 云耀云服务器 HECS 云耀云服务器(Hyper Elastic Cloud Server,HECS)是新一代开箱即用、面向中小企业和开发者打造的全新轻量级应用云服务器。提供快速应用部署和简易的管理能力,适用于网站搭建、开发测试环境、企业应用、网站分析、音视频服务等低负载应用场景。具有易搭建、更实惠、易维护、更安全的特点。 云耀云服务器包含云耀云服务器L实例、云耀云服务器X实例、旧版云耀云服务器三种服务器类型。 旧版云耀云服务器:即原云耀云服务器。旧版云耀云服务器将逐步下线,请优先使用云耀云服务器L实例或云耀云服务器X实例。 云耀云服务器L实例 :是旧版HECS的全新升级,提供更优体验、更低价格和更强性能。L实例的购买配置简单,以套餐形式整体售卖、管理,易搭建、易维护,更适合刚接触云服务的入门级用户。 云耀云服务器X实例:X实例提供比L实例更多的实例规格和镜像,实例配置较L实例更为灵活。 在云耀云服务器文档中,云耀云服务器L实例简称“L实例”,云耀云服务器X实例简称“X实例”,旧版云耀云服务器简称“旧版HECS”。若无特殊说明,云耀云服务器或HECS概指L实例、X实例和旧版HECS。
  • 到期与欠费 到期 包年/包月的L实例、旧版HECS使用时长结束后,即为到期。 欠费 包含按需计费资源的L实例、X实例,因按需付费的资源周期性结算费用,当账户余额不足时,账户将进入欠费状态。 L实例套餐中包含了固定的流量配额,流量配额使用完后,对超额流量按需计费。 HECS到期或欠费后的运行规则及影响 到期/欠费后阶段 影响 宽限期 HECS到期或欠费后进入宽限期。在宽限期内,您仍可正常访问及使用HECS。 保留期 宽限期到期后,若仍未续订HECS或按需资源仍未缴清欠款,将进入保留期。保留期内不能访问及使用HECS,但HECS仍予以保留。 资源进入宽限期/保留期后,华为云将会通过邮件、短信等方式向您发送提醒,提醒您续订或充值。保留期到期后,包年/包月资源仍未续订或按需资源仍未充值缴清欠款,所有资源将被释放。为避免对您的业务造成影响,请及时续费。
  • 计费项 华为云耀云服务器根据您选择的规格和使用时长计费。 标 * 的计费项为必选计费项。 表2 云耀云服务器L实例计费项 计费项 计费说明 计费模式 计费公式 * 云主机 不同的实例规格提供不同的计算和存储能力。 计费因子:vCPU和内存。 包年/包月 实例规格单价 * 购买时长 * 云硬盘(系统盘) 购买L实例时实例规格对应一个固定容量的系统盘。购买L实例成功后,将立即开始计费,计费与其是否被使用无关。 计费因子:系统盘容量。 说明: 不支持单独扩容系统盘,您可以通过升级实例规格扩容系统盘。 包年/包月 云硬盘单价 * 购买时长 * 流量包 套餐内包含每月固定流量包,出网业务流量优先抵扣流量包,流量包固定流量使用完后将产生超额流量。 计费因子:流量包。 说明: L实例仅对出网流量(云服务器访问外网的流量)计费,入网流量(外部访问云服务器的流量)不计费。 流量包使用周期为自购买日期起到下个月相同时间时段内。例如6月5日10:00:00购买L实例,当月流量包使用截止时间为7月5日23:59:59。 流量包当月剩余流量按月清零,不累计至下月流量配额中。 包年/包月 流量包单价 * 购买时长 超额流量 套餐内流量包使用完后将产生超额流量。超额流量以按流量计费的计费方式收取费用。超额流量的单价为0.8元/GB。 计费因子:超额流量。 按流量付费 流量单价*超额流量 * 镜像 L实例中仅Windows镜像计费,其他镜像免费。 为方便您操作,“系统镜像”页签下展示了非华为云自营的Windows操作系统镜像。 包年/包月 镜像单价*购买时长 数据盘 如有额外的存储需求,您需要购买数据盘。 计费因子:数据盘容量。 包年/包月 云硬盘单价 * 购买时长 主机安全 如有主机安全防护需求,您需要随L实例开启安全防护能力。 计费因子:主机安全基础版。 包年/包月 主机安全单价 * 购买时长 云备份 如有备份需求,您需要随L实例购买备份存储库,用来存放服务器产生的备份副本。 计费因子:存储库容量。 说明: L实例仅支持云服务器备份类型,如果您未随L实例购买云备份,您后续也可以在云备份控制台购买云服务器备份,对L实例备份数据。具体操作详见购买云服务器备份存储库。 在云备份控制台购买的云服务器备份支持包年/包月和按需计费方式。 包年/包月 存储库容量单价 * 购买时长 表3 云耀云服务器X实例计费项 计费项 计费项说明 适用的计费模式 计费公式 * 云服务器 不同规格的实例类型提供不同的计算和存储能力,您可根据实际需要选择合适的实例规格。 计费因子:vCPU和内存 包年/包月、按需计费 实例规格单价 * 购买时长 实例规格单价以控制台为准。 * 镜像 镜像计费模式和实例规格一致。 公共镜像:公共镜像由华为云提供,公共镜像免费。 Windows镜像为第三方收费镜像,为方便您操作,“公共镜像”页签下展示了第三方Windows镜像。 私有镜像: 系统盘镜像和数据盘镜像免费使用。 使用云服务器备份或云备份创建的整机镜像,收取云服务器备份或云备份涉及的存储、跨区域复制流量的按需费用。云备份费用详见云备份计费项。 如果私有镜像的镜像源来自市场镜像,则会根据云市场价格收取私有镜像费用。 共享镜像:来源于他人共享的系统盘镜像、数据盘镜像或整机镜像,属于私有镜像。计费规则同私有镜像。共享镜像为区域内共享,不涉及跨区域复制流量费用。 和实例规格一致,包年/包月、按需计费 镜像单价 * 购买时长 镜像单价以售卖页和云市场镜像显示的价格为准。 * 云硬盘(系统盘) 购买X实例时会默认购买40GiB的系统盘,您可以根据需要调整该容量。购买云硬盘成功后,将立即开始计费,计费与其是否被使用无关。 计费因子:云硬盘类型、容量。 包年/包月、按需计费 云硬盘单价 * 购买时长 云硬盘单价以控制台为准。 云硬盘(数据盘) 如有额外的存储需求,您需要购买数据盘。 计费因子:云硬盘类型、容量。 包年/包月、按需计费 云硬盘单价 * 购买时长 云硬盘单价以控制台为准。 带宽 如有互联网访问需求,您需要购买弹性公网IP。 计费因子:带宽费、流量费和IP保有费。 包年/包月计费模式支持按带宽计费方式,收取带宽费。 按需计费模式支持按带宽计费、按流量计费和加入共享带宽三种计费方式,分别收取带宽费+IP保有费、流量费+IP保有费、带宽费+IP保有费。 说明: 如果弹性公网IP已绑定至云服务器,则IP保有费为0。 包年/包月、按需计费 按固定带宽值采用阶梯计费 0Mbit/s~5Mbit/s(含):均为一个统一的单价 大于5Mbit/s:按每Mbit/s计费 公网带宽单价以控制台为准。 主机安全 如有主机安全防护需求,您需要开启安全防护能力,包含主机安全基础版和企业版。 可免费开启基础防护,开启后,将为您的主机提供四大安全防御能力:主机安全基础版防御(免费赠送一个月,超过一个月后自动取消)、账号破解防护、弱口令检测、恶意程序检测等功能。 包年/包月、按需计费 主机安全单价 * 购买时长 主机安全单价以控制台为准。 云备份 如有备份需求,您需要购买备份存储库,用来存放服务器产生的备份副本。 按照存储库容量计费,详细计费信息请参见云备份价格详情。 包年/包月、按需计费 云备份单价*购买时长 云备份单价以控制台为准。 表4 旧版HECS计费项 计费项 计费说明 计费模式 费用 旧版HECS实例 实例类型及规格(vCPU,内存),购买时长以及所购买的实例数量。 具体请参考云耀云服务器产品价格详情。 包年/包月 实例规格单价 * 购买时长 镜像 目前华为云中国站的公共镜像中,云耀云服务器使用的公共镜像暂时免费。如果选择市场镜像,以云商店价格为准。 说明: Windows操作系统为市场镜像,该服务由第三方提供。为方便用户选用,在公共镜像中提供入口。具体收费以镜像供应商提供的信息为准。 镜像单价 * 购买时长 系统盘(必选) 默认系统盘40GB~80GB(需购买),仅支持包周期购买方式,具体计费请参考云硬盘计费。建议云硬盘购买周期与云耀云服务器保持一致。 云硬盘单价 * 购买时长 数据盘(可选) 数据盘购支持包周期方式购买和添加,具体参考云硬盘计费。 带宽(可选) 按带宽计费,具体请参考带宽计费。 按固定带宽值采用阶梯计费 0Mbit/s~5Mbit/s(含):均为一个统一的单价 大于5Mbit/s:按每Mbit/s计费 主机安全 如有主机安全防护需求,您需要开启安全防护能力,免费提供主机安全基础防护。 - 免费
  • 计费模式 HECS包含包年/包月、按需计费的计费模式。 包年/包月是一种预付费模式,即先付费再使用,按照订单的购买周期进行结算,因此在购买之前,请务必确保账户余额充足。 按需计费是一种后付费模式,即先使用再付费,按照资源实际使用量计费。 不同的HECS类型计费模式不同,详见表1。 表1 HECS的计费模式 HECS类型 计费模式 说明 L实例 包年/包月 L实例以套餐形式整体售卖、管理, 不支持单独退订套餐中的云硬盘、云备份、主机安全等子资源。 L实例仅支持包年/包月计费模式,不支持变更计费模式。 X实例 包年/包月、按需计费 X实例时支持包年/包月、按需计费的计费模式,以满足不同场景下的用户需求。 X实例支持随时在包年/包月、按需计费间变更计费模式。 旧版HECS 包年/包月 旧版HECS仅支持包年/包月计费模式,不支持变更计费模式。
  • 示例流程 图1 给用户授权DeH权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予专属主机权限“DeH ReadOnlyAccess”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1.创建用户组并授权中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择专属主机服务,进入DeH主界面,单击右上角“购买专属主机”,如果无法购买专属主机(假设当前权限仅包含DeH ReadOnlyAccess),表示“DeH ReadOnlyAccess”已生效。 在“服务列表”中选择除专属主机服务外(假设当前策略仅包含ECS Viewer)的任一服务,若提示权限不足,表示“DeH ReadOnlyAccess”已生效。
  • 性能测试结果 本章介绍GeminiDB Redis性能测试结果,根据上述测试方法操作,展示在各种数据模型、测试场景、Workload模型组合下的性能指标。当前性能白皮书仅呈现中小规格并发能力下的数据库性能数据,如需更高的并发能力,可水平或垂直升级数据库规格。 总数据量小于内存场景下的测试数据请参见表1。 总数据量大于内存场景下的测试数据请参见表2。 表1 总数据量小于内存场景测试数据 实例规格 测试模型 Workload模型 QPS(次/秒) Average Latency(毫秒) P99 Latency(毫秒) 4U*3节点 value_length=100字节 clients=90 100% Write 125590 0.66 1.85 value_length=100字节 clients=105 100% Read 139741 0.62 1.51 value_length=100字节 clients=90 50% Read+50% Write 125620 Read:0.56 Read:1.32 Write:0.55 Write:1.30 8U*3节点 value_length=100字节 clients=128 100% Write 216392 0.62 1.92 value_length=100字节 clients=128 100% Read 202970 0.62 1.89 value_length=100字节 clients=128 50% Read+50% Write 212052 Read:0.63 Read:1.94 Write:0.63 Write:1.92 表2 总数据量大于内存场景测试数据 实例规格 测试模型 Workload模型 QPS(次/秒) Average Latency(毫秒) P99 Latency(毫秒) 4U*3节点 value_length=100字节 clients=75 100% Write 123942 0.62 1.30 value_length=100字节 clients=96 100% Read 125351 0.63 1.54 value_length=100字节 clients=96 50% Read+50% Write 122485 Read:0.64 Read:1.65 Write:0.64 Write:1.61 8U*3节点 value_length=100字节 clients=120 100% Write 196596 0.62 2.02 value_length=100字节 clients=120 100% Read 187716 0.62 1.90 value_length=100字节 clients=120 50% Read+50% Write 197097 Read:0.62 Read:1.94 Write:0.62 Write:1.94 注:clients是连接数,对应memtier命令中t和c字段的乘积。 父主题: GeminiDB Redis接口通用性能数据
  • 测试步骤 注入测试数据 测试前,生成并注入数据库测试数据。基于测试模型三种类型的分布,对三种数据类型进行如下配置: hash类型 key:34位字符,使用字符串前缀+9位数字,数字由1亿-9亿连续,以控制数据总量和热数据分布。 field-value共注入10对,其中field为10位字符,value为20-80位随机字符,注入测试数据时取均值50位。 构造并注入约8亿个key: memtier_benchmark -s ${ip} -a $(passwd} -p ${port} -c 20-t20 -n7500000 -d 32 -key-maximum=3 800000000 -key-minimum =1000000000 --key-pr efix ='cefkljrithuir123894873h4523blj4b2jkjh2iw13b nfdhsbnkfhsdjkh' --key-pattern=P:P--ratio=1:0 -pipelire=100 string类型 key:68位字符,使用字符串前缀+10位数字,数字由10亿-38亿连续,以控制数据总量和热数据分布。 value:注入32位随机字符。 构造并注入约28亿个key: memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 20 -t 20 -n 2500000 --command='hset __key__ mendke398d __data__ mebnejkehe __data__ fmebejdbnf __data__ j3i45u8923 __data__ j43245i908 __data__ jhiriu2349 __data__ 21021034ji __data__ jh23ui45j2 __data__ jiu5rj9234 __data__ j23io45u29 __data__' -d 50 --key-maximum=900000000 --key-minimum=100000000 --key-prefix='ewfdjkff43ksdh41fuihikucl' --command-key-pattern=P --pipeline=100 string类型 key:19位字符,使用字符串前缀+9位数据,数字由1亿到3亿连续,以控制数据总量和热数据分布。 value:500 – 2000位随机字符,注入测试数据时取均值1250位。 构造并注入约4亿个key: memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 20 -t 20 -n 520000 -d 1250 --key-maximum=300000000 --key-minimum=100000000 --key-prefix='miqjkfdjiu' --key-pattern=P:P --ratio=1:0 --pipeline=100 数据注入完成后,观察其key个数为3,809,940,889个key(约38亿)。观察GeminiDB Redis控制台中使用数据总量,计算GeminiDB Redis的数据压缩比。压缩后的存储容量约为155GB,即压缩比约为13.8%。 受memtier_benchmark数据平铺时数据生成影响,生成数据在40亿条左右,各类型间数据分布不受影响。 memtier_benchmark工具构造随机字符串中连续字符较多,因此压缩比偏低。根据经验,实际生产数据压缩比一般在30%-50%左右,仍可以达到很好的压缩效果。 压测命令 在三台ECS上对GeminiDB Redis实例执行多个压测任务,压测任务分别为: ECS1上,对类型一进行hgetall查询操作,通过key范围控制仅访问部分高频数据: memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 20 -t 30 --test-time 1200 --random-data --randomize --distinct-client-seed --command='hgetall __key__' --key-maximum=600000000 --key-minimum=200000000 --key-prefix='ewfdjkff43ksdh41fuihikucl' --out-file=./output_filename 对类型二进行get查询操作,通过key范围控制仅访问部分高频数据: memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 70 -t 30 --test-time 1200 --random-data --randomize --distinct-client-seed --key-maximum=2400000000 --key-minimum=1000000000 --key-prefix='cefkljrithuin123894873h4523bhj4b2jkjh2iu13bnfdhsbnkfhsdjkh' --ratio=0:1 --out-file=./output_filename 对类型三进行get查询操作,通过key范围控制仅访问部分高频数据: memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 10 -t 30 --test-time 1200 --random-data --randomize --distinct-client-seed --key-maximum=300000000 --key-minimum=100000000 --key-prefix='miqjkfdjiu' --ratio=0:1 --out-file=./output_filename 其中,连接数(c、t两个参数乘积)通过调整各个压测实例的client数量及配置使整体达到160w QPS,同时读请求流量1.5Gb/s。保持该业务流量,评估GeminiDB Redis的性能表现。
  • 测试环境 本次测试使用的GeminiDB Redis集群规格和弹性云服务器(Elastic Cloud Server,简称ECS)规格如下: GeminiDB Redis规格 局点 上海一 可用区类型 可用区一/二/三混合部署 节点CPU规格 16 vCPUs 节点数量 20 实例总容量 2 TB ECS规格: 可用区类型 AZ1 规格 c7.4xlarge.2,3台 CPU 16vCPUs 内存 32GiB 操作系统 CentOS 8.2 64bit
  • 测试指标 本次模拟的广告业务场景(RTA)业务规模大致抽象为:1TB数据量、160w QPS、1.5Gbit/s带宽。 数据样本 本次测试使用的数据样本主要分为以下三种: 类型 Key Value Hash 34位字符 10对field(10位)-value(20-80位) String 68位字符 32位随机字符 String 19位字符 500 – 2000位随机字符 其中,需要存储在Redis中的Key总数约为40亿条。各类型数据占比约为2:7:1,高频访问的数据约占总体的50%。 评估指标 对于上述测试模型及场景,记录各数据库操作的如下测试指标: 指标缩写 指标描述 QPS 每秒执行的请求数,单位为次/秒。 Avg Latency(ms) 请求的平均时延,代表GeminiDB Redis整体性能表现。 P99 Latency(ms) 请求的P99时延,是比较严格的时延指标,表示99%的请求执行时间都小于该值。 P9999 Latency(ms) 请求的P9999时延,是非常严格的时延指标,表示99.99%的请求执行时间小于该值,仅少量尾部请求超过该值。
  • 测试环境 区域:华北-北京四 可用区:可用区1 弹性云服务器(Elastic Cloud Server,简称ECS):规格选择c6.4xlarge.2,16U32GB,操作系统镜像使用CentOS 7.5 64位版本。 被测试实例的配置:每个实例均包含3个节点。 被测试实例的规格:覆盖以下规格类型,详见表1。 表1 实例规格 编号 规格 cluster1 4U*3节点 cluster2 8U*3节点
  • 测试工具 本次测试采用Redis Labs推出的多线程压测工具memtier_benchmark,具体使用方法请参见memtier_benchmark。下面就使用到的memtier_benchmark的部分功能进行简单介绍。 Usage: memtier_benchmark [options] A memcache/redis NoSQL traffic generator and performance benchmarking tool. Connection and General Options: -s, --server=ADDR Server address (default: localhost) -p, --port=PORT Server port (default: 6379) -a, --authenticate=PASSWORD Authenticate to redis using PASSWORD -o, --out-file=FILE Name of output file (default: stdout) Test Options: -n, --requests=NUMBER Number of total requests per client (default: 10000) -c, --clients=NUMBER Number of clients per thread (default: 50) -t, --threads=NUMBER Number of threads (default: 4) --ratio=RATIO Set:Get ratio (default: 1:10) --pipeline=NUMBER Number of concurrent pipelined requests (default: 1) --distinct-client-seed Use a different random seed for each client --randomize Random seed based on timestamp (default is constant value) Object Options: -d --data-size=SIZE Object data size (default: 32) -R --random-data Indicate that data should be randomized Key Options: --key-prefix=PREFIX Prefix for keys (default: memtier-) --key-minimum=NUMBER Key ID minimum value (default: 0) --key-maximum=NUMBER Key ID maximum value (default: 10000000)
  • 测试步骤 以4U*3节点数据库实例为例: 1.首先进行总数据量小于内存大小场景下的写入,读取,以及同时写入和读取操作,并记录各操作的QPS、Avg Latency、P99 Latency。各个workload模型的性能指标的方法如下所示: 测试模型:100% Write模型 使用30个线程,每个线程创建3个client连接,即总共建立的90个连接并发写入60,000,000次长度为100字节的数据,其中数据为各client采用不同seed在[1, 60,000,000]范围内随机生成。基于key的给定范围,本次写入总数据大小小于数据库集群的内存容量。 ./memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 3 -t 30 -n 1000000 --random-data --randomize --distinct-client-seed -d 100 --key-maximum=60000000 --key-minimum=1 --key-prefix= --ratio=1:0 --out-file=./output_filename 测试模型:100% Read模型 使用30个线程,每个线程创建3个client连接,即总共建立的90个连接并发均匀随机读取60,000,000次数据,读取key范围在[1, 60,000,000]内。 ./memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 3 -t 30 -n 1000000 --random-data --randomize --distinct-client-seed --key-maximum=60000000 --key-minimum=1 --key-prefix= --ratio=0:1 --out-file=./output_filename 测试模型:50% Read+50% Write模型 使用30个线程,每个线程创建3个client连接,即总共建立的90个连接并发写入和读取60,000,000次的数据,写入和读取key范围在[1, 60,000,000]内,同时写入和读取操作比例为1:1。基于key的给定范围,本次写入和读取总数据大小小于数据库集群的内存容量。 ./memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 3 -t 30 -n 1000000 --random-data --randomize --distinct-client-seed -d 100 --key-maximum=60000000 --key-minimum=1 --key-prefix= --ratio=1:1 --out-file=./output_filename 2. 在数据库中增加超过数据库集群内存容量的数据:使用30个线程,每个线程创建3个client连接,即总共建立的90个连接并发写入20,000,000次长度为100字节的数据,其中数据为各client采用不同seed在[60,000,001, 780,000,000]范围内随机生成,同时通过设置pipeline参数,增加数据写入效率。基于key的给定范围以及总共写入次数,本次写入总数据大小大于数据库集群的内存容量。 ./memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 3 -t 30 -n 20000000 --random-data --randomize --distinct-client-seed -d 100 --key-maximum=780000000 --key-minimum=60000001 --pipeline=100 --key-prefix= --ratio=1:0 --out-file=./output_filename 3. 数据库存储数据量大于数据库集群内存容量条件下,进行写入、读取、同时写入和读取操作,并记录各操作的QPS、Avg Latency、P99 Latency。各个workload模型的性能指标的方法如下所示: 100% Write模型 使用30个线程,每个线程创建3个client连接,即总共建立的90个连接并发写入500,000次长度为100字节的数据,其数据为各client随机生成,key范围在[1, 780,000,000]内。 ./memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 3 -t 30 -n 500000 --random-data --randomize --distinct-client-seed -d 100 --key-maximum=780000000 --key-minimum=1 --key-prefix= --ratio=1:0 --out-file=./output_filename 100% Read模型 使用30个线程,每个线程创建3个client连接,即总共建立的90个连接并发均匀随机读取500,000次数据,key范围在[1, 780,000,000]内。 ./memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 3 -t 30 -n 500000 --random-data --randomize --distinct-client-seed --key-maximum=780000000 --key-minimum=1 --key-prefix= --ratio=0:1 --out-file=./output_filename 50% Read+50% Write模型 使用30个线程,每个线程创建3个client连接,即总共建立的90个连接并发写入和读取500,000次的数据,其数据为各client随机生成,key范围在[1, 780,000,000]内。 ./memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 3 -t 30 -n 500000 --random-data --randomize --distinct-client-seed -d 100 --key-maximum=780000000 --key-minimum=1 --key-prefix= --ratio=1:1 --out-file=./output_filename
  • 测试模型 workload模型 表3 workload模型 workload模型编号 测试模型 100% Write 100%写操作(string set)。 100% Read 100%读操作(string get),采用均匀随机访问模型,按照严苛场景测试读性能。 50% Read+50% Write 50%读操作(string get)+ 50%写操作(string set)。 数据模型 表4 数据模型 数据模型编号 数据模型 value length 随机生成value,长度为100字节。
  • 实例设置只读状态说明 为保护GeminiDB Redis实例的正常运行,在存储空间即将被写满的时候,数据库会被设置成只读状态,该状态下只支持数据的读取,不支持写入和更新,可以通过扩容存储容量来解除该状态,重新获得写入和更新的能力。 表1 实例设置只读状态说明 存储容量 说明 小于600GB 存储容量使用率达到97%时,实例状态被设置为只读。 存储容量使用率下降到85%,实例自动解除只读状态。 大于或等于600GB 存储容量剩余空间小于18GB,实例状态被设置为只读。 存储容量剩余空间大于或等于90GB,实例自动解除只读状态。
  • 响应示例 状态码: 202 Accepted 创建按需实例响应样例: { "id" : "39b6a1a278844ac48119d86512e0000bin06", "name" : "test-cassandra-01", "datastore" : { "type" : "cassandra", "version" : "3.11", "storage_engine" : "rocksDB" }, "created" : "2019-10-28 14:10:54", "status" : "creating", "region" : "aaa", "availability_zone" : "bbb,ccc,ddd", "vpc_id" : "490a4a08-ef4b-44c5-94be-3051ef9e4fce", "subnet_id" : "0e2eda62-1d42-4d64-a9d1-4e9aa9cd994f", "security_group_id" : "2a1f7fc8-3307-42a7-aa6f-42c8b9b8f8c5", "mode" : "Cluster", "flavor" : [ { "num" : 3, "size" : 500, "storage" : "ULTRAHIGH", "spec_code" : "geminidb.cassandra.4xlarge.4" } ], "backup_strategy" : { "start_time" : "08:15-09:15", "keep_days" : "8" }, "enterprise_project_id" : "0", "ssl_option" : "1", "job_id" : "c010abd0-48cf-4fa8-8cbc-090f093eaa2f" } 创建包周期实例响应样例:
  • 请求示例 URI样例 POST https://{Endpoint}/v3/375d8d8fad1f43039e23d3b6c0f60a19/instances 创建一个按需付费的3节点Cassandra实例,规格是16U64G 请求体样例中参数“region”和“availability_zone”的值为示例值,具体取值请以实际环境为准。 { "name" : "test-cassandra-01", "datastore" : { "type" : "cassandra", "version" : "3.11", "storage_engine" : "rocksDB" }, "region" : "aaa", "availability_zone" : "bbb", "vpc_id" : "674e9b42-cd8d-4d25-a2e6-5abcc565b961", "subnet_id" : "f1df08c5-71d1-406a-aff0-de435a51007", "security_group_id" : "7aa51dbf-5b63-40db-9724-dad3c4828b58", "password" : "******", "mode" : "Cluster", "flavor" : [ { "num" : 3, "storage" : "ULTRAHIGH", "size" : 500, "spec_code" : "geminidb.cassandra.4xlarge.4" } ], "backup_strategy" : { "start_time" : "08:15-09:15", "keep_days" : 8 }, "ssl_option" : 1 } 创建一个包周期付费的3节点Cassandra实例,规格是16U64G 请求体样例中参数“region”和“availability_zone”的值为示例值,具体取值请以实际环境为准。 { "name" : "test-cassandra-01", "datastore" : { "type" : "cassandra", "version" : "3.11", "storage_engine" : "rocksDB" }, "region" : "aaa", "availability_zone" : "bbb", "vpc_id" : "674e9b42-cd8d-4d25-a2e6-5abcc565b961", "subnet_id" : "f1df08c5-71d1-406a-aff0-de435a51007", "security_group_id" : "7aa51dbf-5b63-40db-9724-dad3c4828b58", "password" : "******", "mode" : "Cluster", "flavor" : [ { "num" : 3, "storage" : "ULTRAHIGH", "size" : 500, "spec_code" : "geminidb.cassandra.4xlarge.4" } ], "backup_strategy" : { "start_time" : "08:15-09:15", "keep_days" : 8 }, "ssl_option" : 1, "charge_info" : { "charge_mode" : "prePaid", "period_type" : "year", "period_num" : 3, "is_auto_renew" : true, "is_auto_pay" : true } } 根据指定备份恢复数据创建一个新的按需付费的3节点16U64G的Cassandra实例 请求体样例中参数“region”和“availability_zone”的值为示例值,具体取值请以实际环境为准。 { "name" : "test-cassandra-01", "datastore" : { "type" : "cassandra", "version" : "3.11", "storage_engine" : "rocksDB" }, "region" : "aaa", "availability_zone" : "bbb", "vpc_id" : "674e9b42-cd8d-4d25-a2e6-5abcc565b961", "subnet_id" : "f1df08c5-71d1-406a-aff0-de435a51007", "security_group_id" : "7aa51dbf-5b63-40db-9724-dad3c4828b58", "password" : "******", "mode" : "Cluster", "flavor" : [ { "num" : 3, "storage" : "ULTRAHIGH", "size" : 500, "spec_code" : "geminidb.cassandra.4xlarge.4" } ], "backup_strategy" : { "start_time" : "08:15-09:15", "keep_days" : 8 }, "ssl_option" : 1, "restore_info" : { "backup_id" : "2f4ddb93b9014b0893d81d2e472f30fe" } } 根据指定实例的指定时间点的数据创建一个新的包周期付费的3节点16U64G的Cassandra实例 请求体样例中参数“region”和“availability_zone”的值为示例值,具体取值请以实际环境为准。 { "name" : "test-cassandra-01", "datastore" : { "type" : "cassandra", "version" : "3.11", "storage_engine" : "rocksDB" }, "region" : "aaa", "availability_zone" : "bbb", "vpc_id" : "674e9b42-cd8d-4d25-a2e6-5abcc565b961", "subnet_id" : "f1df08c5-71d1-406a-aff0-de435a51007", "security_group_id" : "7aa51dbf-5b63-40db-9724-dad3c4828b58", "password" : "******", "mode" : "Cluster", "flavor" : [ { "num" : 3, "storage" : "ULTRAHIGH", "size" : 500, "spec_code" : "geminidb.cassandra.4xlarge.4" } ], "backup_strategy" : { "start_time" : "08:15-09:15", "keep_days" : 8 }, "ssl_option" : 1, "charge_info" : { "charge_mode" : "prePaid", "period_type" : "year", "period_num" : 3, "is_auto_renew" : true, "is_auto_pay" : true }, "restore_info" : { "restore_time" : 1607731200000, "source_instance_id" : "054e292c9880d4992f02c0196d3ein12" } }
  • 响应参数 状态码: 202 表12 响应Body参数 参数 参数类型 描述 id String 实例ID。 name String 实例名称,与请求参数相同。 datastore Datastore object 数据库信息,与请求参数相同。 created String 创建时间为本地时间,格式为“yyyy-mm-dd hh:mm:ss”。 status String 实例状态,取值为“creating”。 region String 区域ID,与请求参数相同。 availability_zone String 可用区ID,与请求参数相同。 vpc_id String 虚拟私有云ID,与请求参数相同。 subnet_id String 子网ID,与请求参数相同。 security_group_id String 安全组ID,与请求参数相同。 mode String 实例类型,与请求参数相同。 flavor Array of Flavor objects 实例规格详情,与请求参数相同。 backup_strategy BackupStrategy object 高级备份策略,与请求参数相同。 enterprise_project_id String 企业项目ID。取值为“0”,表示为default企业项目。 ssl_option String SSL开关选项,与请求参数相同。 job_id String 创建实例的工作流ID, 仅创建按需实例时会返回该参数。 order_id String 创建实例的订单ID,仅创建包年包月时返回该参数。 charge_info ChargeInfo object 计费类型信息,支持包年包月和按需计费,默认为按需计费。 dedicated_resource_id String 专属资源ID,只有创建在专属资源上的实例才会返回该字段。 表13 Datastore 参数 参数类型 描述 type String 数据库类型。 支持GeminiDB Cassandra、GeminiDB Mongo、GeminiDB Influx和GeminiDB Redis数据库实例。 取值为“cassandra”,表示创建GeminiDB Cassandra数据库实例。 取值为“mongodb”,表示创建GeminiDB Mongo数据库实例。 取值为“influxdb”,表示创建GeminiDB Influx数据库实例。 取值为“redis”,表示创建GeminiDB Redis数据库实例。 version String 数据库版本。 GeminiDB Cassandra实例支持3.11版本,取值为“3.11”。 GeminiDB Mongo实例支持4.0版本,取值为“4.0”。 GeminiDB Influx实例支持1.7版本,取值为“1.7”。 GeminiDB Redis实例支持5.0版本,取值为“5.0”。 storage_engine String 存储引擎。 GeminiDB Cassandra实例支持RocksDB存储引擎,取值为“rocksDB”。 GeminiDB Mongo实例支持RocksDB存储引擎,取值为“rocksDB”。 GeminiDB Influx实例支持RocksDB存储引擎,取值为“rocksDB”。 GeminiDB Redis实例支持RocksDB存储引擎,取值为“rocksDB”。 表14 Flavor 参数 参数类型 描述 num String 节点数量。 GeminiDB Cassandra实例的节点数量可取3~60。 GeminiDB Mongo 4.0版本副本集实例的节点数量为3。 GeminiDB Influx实例的节点数量可取3~16。 GeminiDB Redis实例的节点数量可取3~12。 size String 磁盘大小。必须为整数,单位为GB。 GeminiDB Cassandra,GeminiDB Mongo,GeminiDB Influx的最小磁盘容量100GB,最大磁盘容量与实例的性能规格有关。GeminiDB Redis的最大和最小磁盘容量与节点数和实例的性能规格有关。 GeminiDB Cassandra请参见数据库实例规格。 GeminiDB Mongo请参见数据库实例规格。 GeminiDB Influx请参见数据库实例规格。 GeminiDB Redis请参见数据库实例规格。 storage String 磁盘类型。 取值为“ULTRAHIGH”,表示SSD盘。 spec_code String 资源规格编码。 获取方法请参见查询数据库规格中响应参数“spec_code”的值。 表15 BackupStrategy 参数 参数类型 描述 start_time String 备份时间段。自动备份将在该时间段内触发。 取值范围:非空,格式必须为hh:mm-HH:MM,且有效,当前时间指UTC时间。 HH取值必须比hh大1。 mm和MM取值必须相同,且取值必须为00、15、30或45。 不传该参数,默认的备份时间段为00:00-01:00。 取值示例:23:00-00:00 keep_days String 指定已生成的备份文件可以保存的天数。 取值范围:0~35。 取0值,表示不设置自动备份策略。 不传该参数,默认开启自动备份策略,备份文件默认保存7天。 表16 ChargeInfo 参数 参数类型 描述 charge_mode String 计费模式。 取值范围: prePaid:预付费,即包年/包月。 postPaid:后付费,即按需付费。 period_type String 订购周期类型。 取值范围: month:包月。 year:包年。 说明: “charge_mode”为“prePaid”时生效,且为必选值。 period_num String “charge_mode”为“prePaid”时生效,且为必选值,指定订购的时间。 取值范围: 当“period_type”为“month”时,取值为1~9。 当“period_type”为“year”时,取值为1~3 is_auto_renew String 创建包周期实例时可指定,表示是否自动续订,续订的周期和原周期相同,且续订时会自动支付。 true,表示自动续订。 false,表示不自动续订,默认为该方式。 is_auto_pay String 创建包周期实例时可指定,表示是否自动从账户中支付,该字段不影响自动续订的支付方式。 true,表示自动从账户中支付 false,表示手动从账户中支付,默认为该支付方式。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 实例名称,允许和已有名称重复。 实例名称长度在4个到64个字节之间,必须以字母或中文字开头,区分大小写,可以包含字母、数字、中划线、下划线或中文(一个中文字符占用3个字节),不能包含其他特殊字符。 datastore 是 Datastore object 数据库信息。 region 是 String 区域ID。 取值:非空,请参见地区和终端节点。 availability_zone 是 String 可用区ID。 取值:请参见5.2.2-查询数据库规格中返回的“az_status”,支持创建3可用区实例,中间以逗号隔开。 vpc_id 是 String 虚拟私有云ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,在虚拟私有云的详情页面查找VPC ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询VPC列表。 subnet_id 是 String 子网的网络ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,单击VPC下的子网,进入子网详情页面,查找网络ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询子网列表。 security_group_id 是 String 安全组ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,在安全组的详情页面查找安全组ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询安全组列表。 password 是 String 数据库密码。 取值范围:长度为8~32位。必须是大写字母(A~Z)、小写字母(a~z)、数字(0~9)、特殊字符~!@#%^*-_=+?的组合。仅GeminiDB Redis至少包含以下字符中的2种:大写字母、小写字母、数字和特殊字符~!@#$%^&*()-_=+?。 建议您输入高强度密码,以提高安全性,防止出现密码被暴力破解等安全风险。 mode 是 String 实例类型。 GeminiDB Cassandra支持集群类型,取值为“Cluster”。 GeminiDB Mongo 4.0版本支持副本集类型,取值为“ReplicaSet”。 GeminiDB Influx支持集群类型,取值为“Cluster”。 GeminiDB Influx支持单节点类型,取值为“InfluxdbSingle”。 GeminiDB Redis支持集群类型,取值为“Cluster”。 GeminiDB Redis支持主备类型,取值为“Replication”。 flavor 是 Array of Flavor objects 实例规格详情。 获取方法请参见查询数据库规格中响应“flavors”字段下参数的值。 configuration_id 否 String 参数模板ID。 backup_strategy 否 BackupStrategy object 高级备份策略。 enterprise_project_id 否 String 企业项目ID。 对于未开通企业多项目服务的用户,不传该参数。 对于已开通企业多项目服务的用户,不传该参数时,表示为default企业项目。获取方式请参见《企业管理API参考》的“查询企业项目列表”响应消息表“enterprise_project字段数据结构说明”的“id”。 ssl_option 否 String SSL开关选项。 取值: 取“0”,表示默认不启用SSL连接。 取“1”,表示默认启用SSL连接。 不传该参数时,默认不启用SSL连接。 charge_info 否 ChargeInfo object 计费类型信息,支持包年包月和按需计费,默认为按需计费。 dedicated_resource_id 否 String 专属资源ID,只有开通专属资源池后才可以下发此参数。 restore_info 否 RestoreInfo object 备份信息。支持按指定备份恢复和按指定实例的指定时间点恢复。 目前仅GeminiDB Cassandra和GeminiDB Influx集群支持按指定实例的指定时间点恢复。 port 否 String 数据库访问端口号。 目前仅支持GeminiDB Redis实例支持自定义端口,取值范围为:1024~65535,禁用端口号为:2180、2887、3887、6377、6378、6380、8018、8079、8091、8479、8484、8999、12017、12333、50069。 不指定端口时,创建GeminiDB Redis实例的访问端口默认为6379。 如果该实例计划用于搭建双活容灾场景,请配置为8635端口。 availability_zone_detail 否 object 主备类型实例的多AZ可用区详情。 目前仅支持GeminiDB Redis实例。 当选择单AZ部署时,自动忽略该参数设置。详情请参考表9。 表4 Datastore 参数 是否必选 参数类型 描述 type 是 String 数据库类型。 支持GeminiDB Cassandra、GeminiDB Mongo、GeminiDB Influx和GeminiDB Redis数据库实例。 取值为“cassandra”,表示创建GeminiDB Cassandra数据库实例。 取值为“mongodb”,表示创建GeminiDB Mongo数据库实例。 取值为“influxdb”,表示创建GeminiDB Influx数据库实例。 取值为“redis”,表示创建GeminiDB Redis数据库实例。 version 是 String 数据库版本。 GeminiDB Cassandra实例支持3.11版本,取值为“3.11”。 GeminiDB Mongo实例支持4.0版本,取值为“4.0”。 GeminiDB Influx实例支持1.7版本,取值为“1.7”。 GeminiDB Redis实例支持5.0版本,取值为“5.0”。 storage_engine 是 String 存储引擎。 GeminiDB Cassandra实例支持RocksDB存储引擎,取值为“rocksDB”。 GeminiDB Mongo实例支持RocksDB存储引擎,取值为“rocksDB”。 GeminiDB Influx实例支持RocksDB存储引擎,取值为“rocksDB”。 GeminiDB Redis实例支持RocksDB存储引擎,取值为“rocksDB”。 表5 Flavor 参数 是否必选 参数类型 描述 num 是 String 节点数量。 GeminiDB Cassandra实例的节点数量可取3~60。 GeminiDB Mongo 4.0版本副本集实例的节点数量为3。 GeminiDB Influx集群实例的节点数量可取3~16。 GeminiDB Influx单节点实例的节点数量可取1。 GeminiDB Redis实例的节点数量可取3~12。 size 是 String 磁盘大小。必须为整数,单位为GB。 GeminiDB Cassandra,GeminiDB Mongo,GeminiDB Influx的最小磁盘容量100GB,最大磁盘容量与实例的性能规格有关。GeminiDB Redis的最大和最小磁盘容量与节点数和实例的性能规格有关。 GeminiDB Cassandra请参见数据库实例规格。 GeminiDB Mongo请参见数据库实例规格。 GeminiDB Influx请参见数据库实例规格。 GeminiDB Redis请参见数据库实例规格。 storage 是 String 磁盘类型。 取值为“ULTRAHIGH”,表示SSD盘。 spec_code 是 String 资源规格编码。 获取方法请参见查询数据库规格中响应参数“spec_code”的值。 表6 BackupStrategy 参数 是否必选 参数类型 描述 start_time 是 String 备份时间段。自动备份将在该时间段内触发。 取值范围:非空,格式必须为hh:mm-HH:MM,且有效,当前时间指UTC时间。 HH取值必须比hh大1。 mm和MM取值必须相同,且取值必须为00、15、30或45。 不传该参数,默认的备份时间段为00:00-01:00。 取值示例:23:00-00:00 keep_days 否 String 指定已生成的备份文件可以保存的天数。 取值范围:0~35。 取0值,表示不设置自动备份策略。 不传该参数,默认开启自动备份策略,备份文件默认保存7天。 表7 ChargeInfo 参数 是否必选 参数类型 描述 charge_mode 是 String 计费模式。 取值范围: prePaid:预付费,即包年/包月。 postPaid:后付费,即按需付费。 period_type 否 String 订购周期类型。 取值范围: month:包月。 year:包年。 说明: “charge_mode”为“prePaid”时生效,且为必选值。 period_num 否 String “charge_mode”为“prePaid”时生效,且为必选值,指定订购的时间。 取值范围: 当“period_type”为“month”时,取值为1~9。 当“period_type”为“year”时,取值为1~3 is_auto_renew 否 String 创建包周期实例时可指定,表示是否自动续订,续订的周期和原周期相同,且续订时会自动支付。 true,表示自动续订。 false,表示不自动续订,默认为该方式。 is_auto_pay 否 String 创建包周期实例时可指定,表示是否自动从账户中支付,该字段不影响自动续订的支付方式。 true,表示自动从账户中支付 false,表示手动从账户中支付,默认为该支付方式。 表8 RestoreInfo 参数 是否必选 参数类型 描述 backup_id 否 String 全量备份文件ID。 用于根据指定备份恢复数据到一个新创建的实例的场景,此场景下该字段取值不能为空。 source_instance_id 否 String 数据恢复参考的指定实例的ID。 用于恢复指定实例的指定时间点的数据到一个新创建的实例的场景,此场景下该字段取值不能为空。 restore_time 否 Long 数据恢复的指定的时间点。 用于恢复指定实例的指定时间点的数据到一个新创建的实例的场景,此场景下该字段取值不能为空。取值为UTC 13位毫秒数,可通过查询实例可恢复的时间段接口进行查询。 表9 AvailabilityZoneDetail 参数 是否必选 参数类型 描述 primary_availability_zone 是 String 主可用区,应为单可用区且和备可用区不同。 secondary_availability_zone 是 String 备可用区,应为单可用区且和主可用区不同。 表10 LbAccessControlSettings 参数 是否必选 参数类型 描述 enabled 是 Boolean true 开启,false 关闭。 枚举值: true false type 是 String 黑白名单类型,blackList黑名单,whiteList白名单,仅支持设置黑名单或白名单中的一种。 枚举值: blackList whiteList ip_groups 是 Array of 表11 objects IP地址组中包含的IP或网段列表。 表11 IpGroupsDetail 参数 是否必选 参数类型 描述 ip 是 String IP地址或网段。支持IPv4。 description 是 String 备注信息,最大长度255个字符。
  • 云数据库 GeminiDB授权项说明 表1 实例管理 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 创建数据库实例 POST /v3/{project_id}/instances nosql:instance:create √ √ 删除数据库实例 DELETE /v3/{project_id}/instances/{instance_id} nosql:instance:delete √ √ 查询数据库实例列表 GET /v3/{project_id}/instances?id={id}&name={name}&mode={mode}&datastore_type={datastore_type}&vpc_id={vpc_id}&subnet_id={subnet_id}&offset={offset}&limit={limit} nosql:instance:list √ √ 扩容实例存储容量 POST /v3/{project_id}/instances/{instance_id}/extend-volume nosql:instance:modifyStorageSize √ √ 扩容集群实例的节点数量 POST /v3/{project_id}/instances/{instance_id}/enlarge-node nosql:instance:extendNode √ √ 缩容集群实例的节点数量 POST /v3/{project_id}/instances/{instance_id}/reduce-node nosql:instance:reduceNode √ √ 变更实例规格 PUT /v3/{project_id}/instances/{instance_id}/resize nosql:instance:modifySpecification √ √ 修改实例管理员密码 PUT /v3/{project_id}/instances/{instance_id}/password nosql:instance:modifyPasswd √ √ 修改实例名称 PUT /v3/{project_id}/instances/{instance_id}/name nosql:instance:rename √ √ 变更实例安全组 PUT /v3/{project_id}/instances/{instance_id}/security-group nosql:instance:modifySecurityGroup √ √ 数据库补丁升级 POST /v3/{project_id}/instances/{instance_id}/db-upgrade nosql:instance:upgradeDatabaseVersion √ √ 创建冷数据存储 POST /v3/{project_id}/instances/{instance_id}/cold-volume nosql:instance:modifyStorageSize √ √ 扩容冷数据存储 PUT /v3/{project_id}/instances/{instance_id}/cold-volume nosql:instance:modifyStorageSize √ √ 绑定/解绑弹性公网IP POST /v3/{project_id}/instances/{instance_id}/nodes/{node_id}/public-ip nosql:instance:bindPublicIp √ √ 切换SSL开关 POST /v3/{project_id}/instances/{instance_id}/ssl-option nosql:instance:switchSSL √ √ 重启数据库实例 POST /v3/{project_id}/instances/{instance_id}/restart nosql:instance:restart √ √ 设置磁盘自动扩容策略 PUT /v3/{project_id}/instances/disk-auto-expansion nosql:instance:modifyStorageSize √ √ 表2 备份与恢复 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 查询自动备份策略 GET /v3/{project_id}/instances/{instance_id}/backups/policy nosql:backup:list √ √ 设置自动备份策略 PUT /v3/{project_id}/instances/{instance_id}/backups/policy nosql:instance:modifyBackupPolicy √ √ 查询可恢复的实例列表 GET /v3/{project_id}/backups/{backup_id}/restorable-instances nosql:instance:list √ √ 查询实例可恢复的时间段 GET /v3/{project_id}/instances/{instance_id}/backups/restorable-time-periods nosql:backup:list √ √ 创建手动备份 POST /v3/{project_id}/instances/{instance_id}/backups nosql:backup:create √ √ 删除手动备份 DELETE /v3/{project_id}/backups/{backup_id} nosql:backup:delete √ √ 恢复到已有实例 POST /v3/{project_id}/instances/{instance_id}/recovery nosql:backup:refreshInstanceFromBacku √ √ 表3 参数模板管理 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 获取参数模板列表 GET /v3/{project_id}/configurations nosql:param:list √ √ 创建参数模板 POST /v3/{project_id}/configurations nosql:param:create √ √ 修改参数模板的参数 PUT /v3/{project_id}/configurations/{config_id} nosql:param:modify √ √ 应用参数模板 PUT /v3/{project_id}/configurations/{config_id}/apply nosql:instance:modifyParameter √ √ 修改指定实例的参数 PUT /v3/{project_id}/instances/{instance_id}/configurations nosql:instance:modifyParameter √ √ 获取指定实例的参数 GET /v3/{project_id}/instances/{instance_id}/configurations nosql:param:list √ √ 获取指定参数模板的参数 GET /v3/{project_id}/configurations/{config_id} nosql:param:list √ √ 删除参数模板 DELETE /v3/{project_id}/configurations/{config_id} nosql:param:delete √ √ 查询参数模板可应用的实例列表 GET /v3/{project_id}/configurations/{config_id}/applicable-instances nosql:instance:list √ √ 查询实例参数的修改历史 GET /v3/{project_id}/instances/{instance_id}/configuration-histories nosql:param:list √ √ 查询参数模板应用历史 GET /v3/{project_id}/configurations/{config_id}/applied-histories nosql:param:list √ √ 表4 标签管理 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 查询资源实例 POST /v3/{project_id}/instances/resource_instances/action nosql:instance:list nosql:tag:list √ √ 批量添加或删除资源标签 POST /v3/{project_id}/instances/{instance_id}/tags/action nosql:instance:tag √ √ 查询资源标签 GET /v3/{project_id}/instances/{instance_id}/tags nosql:instance:list nosql:tag:list √ √ 表5 日志管理 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 查询数据库慢日志 GET /v3/{project_id}/instances/{instance_id}/slowlog?start_date={start_date}&end_date={end_date} nosql:instance:list √ √ 表6 配额管理 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 查询配额 GET /v3/{project_id}/quotas nosql:instance:list √ √ 表7 容灾管理 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 预检查容灾操作 POST /v3/{projectId}/instance/{instanceId}/disaster-recovery/precheck nosql:dr:precheck √ √ 搭建容灾 POST /v3/{projectId}/instance/{instanceId}/disaster-recovery/construction nosql:dr:construct √ √ 解除容灾 POST /v3/{projectId}/instance/{instanceId}/disaster-recovery/deconstruction nosql:dr:deconstruct √ √ 获取容灾实例主/备角色信息 POST /v3/{project_id}/instances/{instance_id}/instance-role nosql:instance:switchoverDisaterRecovery √ √ 容灾实例备升主 POST /v3/{project_id}/instances/{instance_id}/switchover-master nosql:instance:switchoverFromDisaterToMaster √ √ 容灾实例主降备 POST /v3/{project_id}/instances/{instance_id}/switchover-slave nosql:instance:switchoverFromMasterToDisater √ √ 暂停/恢复容灾实例间数据同步 POST /v3/{project_id}/instances/{instance_id}/disaster-recovery/data-synchronization nosql:dr:operateDataSync √ √ “√”表示支持,“x”表示暂不支持。 父主题: 权限策略和授权项
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 config_ips Array of strings 免密配置,IP与网段的列表,仅支持ipv4的IP或网段。 total_count Integer 免密配置的总数。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。
  • URI GET /v3/{project_id}/instances/{instance_id}/passwordless-config 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一region下的project ID。获取方法请参见获取项目ID。 instance_id 是 String 实例ID。 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 索引位置偏移量,表示从查询到的免密配置列表偏移offset条数据后查询对应的免密配置。 取值大于或等于0。不传该参数时,查询偏移量默认为0,表示从第一条记录开始查询。 limit 否 Integer 查询个数上限值,取值范围:1~100。不传该参数时,默认查询前100条记录。
  • 请求示例 PUT https://{endpoint}/v3/619d3e78f61b4be68bc5aa0b59edcf7b/instances/b31f6915c8be45e38958eac14e96a5d2in12/nodes { "action" : "shutdown", "node_ids" : [ "d96eaf85e4b44b2aa800dcf2a5981711no12", "e76f07fb1dae420791af867fc2ac4c35no12" ] }
共100000条