云服务器内容精选

  • 如何高效备份,容灾 传统场景采用文件或者块存储的数据库系统,备份恢复与数据量强相关,故在大数据量场景下,无法快速备份恢复,进而影响数据库的数据可靠性。 云数据库 GeminiDB基于DFV存储,底层采取Append Only方式存储,并在该基础上结合数据库逻辑进行分布式并行算法优化,极大地提升了数据备份、恢复性能。 DFV(Data Function Virtualization)是一个与数据库垂直整合的高性能,高可靠的分布式存储系统。存储集群采取池化部署,可以有效提升存储使用效率。 强大的数据快照处理能力,数据按多时间点多副本Append Only存储,快照秒级生成,支持海量快照。 并行高速备份、恢复备份及恢复逻辑下沉到各存储节点,本地访问数据并直接与存储系统交互,提高性能并发。 快速实例恢复 通过异步数据拷贝和按需实时数据加载机制,云数据库 GeminiDB实例可在数分钟内达到完整功能可用。 父主题: 关键特性
  • SDK列表 表1提供了云数据库 GeminiDB支持的SDK列表,您可以在代码仓库查看SDK更新历史、获取安装包以及查看指导文档。 表1 SDK列表 编程语言 Github地址 参考文档 Java huaweicloud-sdk-java-v3 Java SDK使用指导 Python huaweicloud-sdk-python-v3 Python SDK使用指导 Go huaweicloud-sdk-go-v3 Go SDK使用指导 .NET huaweicloud-sdk-net-v3 .NET SDK使用指导
  • 如何在线弹性扩容,支持业务扩展 云数据库 GeminiDB云原生的计算存储分离架构,使得计算节点无状态,非常有利于业务扩展。 业务扩展面临计算节点、存储空间的两方面的扩容。 云数据库 GeminiDB共享存储,存储按需计费,一键扩容,不中断业务,最大支持96TB存储容量。 计算节点提供快速的双向扩展: 由于计算节点无状态,添加分片只需添加计算节点,无需额外购买存储,无需重建,无论多大数据量,都可以控制在5分钟左右。 云数据库 GeminiDB采用容器化部署,规格变更只涉及计算资源,只需修改容器参数即可,无需挂盘等操作,规格变更速度极快。 父主题: 关键特性
  • 架构概述 云数据库 GeminiDB是一款基于计算存储分离架构的分布式多模NoSQL数据库服务。在华为云高性能、高可用、高可靠、高安全、可弹性伸缩的基础上,提供了一键部署、备份恢复、监控报警等服务能力。目前包含GeminiDB Cassandra、GeminiDB Mongo、GeminiDB Influx和GeminiDB Redis四款产品,具有高读写性能,高性价比等优势,适用于IoT、互联网、游戏等领域。 云数据库 GeminiDB架构特点: 计算和存储资源解耦,独立弹性伸缩 计算节点全负荷分担 存储层内置多副本强一致 分布式共享存储接口,扩缩容无数据迁移 存储层提供超低时延数据访问 支持快速弹性扩缩容 快照备份恢复,效率高 多副本强一致性( AZ内/跨AZ ) 支持海量存储水平扩展及池化共享 支持超低时延访问(100us)
  • 如何保障数据库高可用 云数据库 GeminiDB采用计算存储分离架构,集群下多个数据库实例访问下层共享分布式存储,整体的故障有计算节点故障、存储节点故障两类。 图1 原理图 当计算节点故障,由于下层共享存储,其余非故障节点不需要进行数据恢复,直接接管业务,可提供秒级的故障切换,加上上层Proxy层链接保持能力,客户应用基本不感知故障发生。 而底层存储3副本,单点故障不会造成整体系统不可用。 图2 底层存储原理图 父主题: 关键特性
  • 包年/包月资源 对于包年/包月计费模式的资源,例如包年/包月的GeminiDB Redis实例,用户在购买时会一次性付费,服务将在到期后自动停止使用。 如果在计费周期内不再使用包年/包月资源,您可以执行退订操作,系统将根据资源是否属于五天无理由退订、是否使用代金券和折扣券等条件返还一定金额到您的账户。详细的退订规则请参见云服务退订规则概览。 如果您已开启“自动续费”功能,为避免继续产生费用,请在自动续费扣款日(默认为到期前7日)之前关闭自动续费。
  • 如何使用GeminiDB Redis提供的多个节点IP地址 GeminiDB Redis提供多个IP地址供客户连接,连接任何一个IP地址都可以访问整个集群,其目的是为了提供负载均衡和容灾能力。 您可以通过以下三种方法使用多个IP。 业务侧实现连接池,实现负载均衡和故障检测处理。 联系客服,为您配置ELB(Elastic Load Balance,弹性负载均衡)服务,提供唯一IP供客户使用。 对多个proxy IP配置DNS 域名 ,详情请参见通过负载均衡地址连接实例(推荐)章节中“通过内网域名连接实例”的方法。 父主题: 数据库连接
  • 为什么阿里云Redis、腾讯云Redis等云服务不能使用DRS进行数据迁移? 通常有以下因素: 不支持PSync迁出协议:存在一些自研的Redis-like数据库没有兼容PSync协议。 架构限制:较多云厂商支持代理模式,即在用户与Redis服务之间增加Proxy组件。因为Proxy组件的存在,所以PSync协议无法支持。 安全限制:在原生Redis中PSync协议基本会触发fork,会导致内存膨胀与用户请求延迟增加,甚至可能会发生“out of memory”。 商业策略:较多用户使用RedisShake是为了下云或者换云,屏蔽了PSync协议。 通常可以使用对应云服务的数据迁移服务,可以完成迁移,迁移详情请参考Redis数据迁移方案概览。 父主题: 数据迁移
  • 成本分配 成本管理的基础是树立成本责任制,让各部门、各业务团队、各责任人参与进来,为各自消耗云服务产生的成本负责。企业可以通过成本分配的方式,将云上成本分组,归集到特定的团队或项目业务中,让各责任组织及时了解各自的成本情况。 华为云成本中心支持通过多种不同的方式对成本进行归集和重新分配,您可以根据需要选择合适的分配工具。 通过关联账号进行成本分配 企业主客户可以使用关联账号对子客户的成本进行归集,从而对子账号进行财务管理。详细介绍请参见通过关联账号维度查看成本分配。 通过企业项目进行成本分配 在进行成本分配之前,建议开通企业项目并做好企业项目的规划,可以根据企业的组织架构或者业务项目来划分。在购买云资源时选择指定企业项目,新购云资源将按此企业项目进行成本分配。详细介绍请参见通过企业项目维度查看成本分配。 图1 选择企业项目 通过成本标签进行成本分配 标签是华为云为了标识云资源,按各种维度(例如用途、所有者或环境)对云资源进行分类的标记。推荐企业使用预定义标签进行成本归集,具体流程如下: 图2 添加标签 详细介绍请参见通过成本标签维度查看成本分配。 使用成本单元进行成本分配 企业可以使用成本中心的“成本单元”来拆分公共成本。公共成本是指多个部门共享的计算、网络、存储或资源包产生的云成本,或无法直接通过企业项目、成本标签分配的云成本。这些成本不能直接归属于单一所有者,因此不能直接归属到某一类别。使用拆分规则,可以在各团队或业务部门之间公平地分配这些成本。详细介绍请参见使用成本单元查看成本分配。 父主题: 成本管理
  • 迁移原理 使用自研迁移工具leveldb-port,和LevelDB部署在相同机器上,准备好配置文件,启动迁移即可自动完成全量与增量的迁移。 全量迁移对LevelDB数据进行快照,然后扫描整个数据库,将数据打包成GeminiDB Redis接口识别的格式,发送到GeminiDB Redis接口,具有很高的迁移效率。 增量迁移解析LevelDB的wal文件,将LevelDB的操作解析出来,然后对其中的key进行分片,多线程进行发送。
  • Pipeline 简介 Redis 是一个请求/响应模型的服务,通常执行一个命令的流程为: 图1 Redis 命令执行流程 客户端发送命令到 Redis 服务器。 Redis 服务器收到命令,排队等待处理。 Redis 服务器执行命令。 Redis 服务器返回结果给客户端。 上述4个步骤中,步骤1和4是IO操作,速度慢并且受网络状况影响,很容易成为瓶颈点。 为了减小网络开销,充分发挥 Redis 高性能的优势,可以使用 Pipeline 流水线执行命令。Pipeline 机制通过将一组 Redis 命令进行组装,一次发送多个命令,并在执行完成后一次性返回结果集,可以减少网络传输带来的开销,流程如下图所示: 图2 使用 Pipeline 访问Redis 上图中的 Pipeline 将3条命令封装成一组,只需要进行一次网络IO就完成了3条命令的执行。 除了网络层面的开销,使用 Pipeline 还可以减少客户端/服务器的 read()/write() 调用,提高程序的执行效率。
  • Pipeline 大小选择及注意事项 虽然使用 Pipeline 可以节省网络IO开销,但 Pipeline 并不是越大越好;使用 Pipeline 对程序性能的提升是有上限的,随着 Pipeline 逐渐增加,提高 Pipeline 的收益逐渐降低;如果一次组装的 Pipeline 数据量过大,一方面会导致客户端等待时间增加,另一方面,如果大的 Pipeline 导致 socket buffer 写满,可能会带来网络阻塞,反而引起性能下降; 根据经验,30 - 100 大小的 Pipeline 就已经可以充分发挥数据库的性能,具体最佳值与实际业务有关,建议以实际测试为准。 其它注意事项: Pipeline 不保证原子性,服务端在处理批量命令时,解析出多个单命令并按顺序执行,各个命令相互独立,服务端有可能在该过程中执行其他客户端的命令。某个命令执行失败不会影响其他命令的执行,如需原子性,需要使用事务或lua实现。 单次 Pipeline 的大小需要适当,大Pipeline可能会有OOM风险,也可能会造成网络阻塞;因为Redis 必须在处理完所有命令前,先缓存起所有命令的处理结果。这样会有内存的消耗,过大Pipeline造成内存上涨甚至OOM;对于单个命令数据长度较大的场景,需要适当的减小 Pipeline。 对于时延敏感的场景,不建议使用大 Pipeline,需要结合业务场景选择合适的 Pipeline大小。
  • 连接方式介绍 GeminiDB Redis兼容开源Redis接口,支持应用程序使用多种SDK访问。同时还提供数据管理服务(Data Admin Service,简称DAS)、内网、公网的访问途径。 连接GeminiDB Redis实例的使用流程介绍如图1所示。 图1 连接方式介绍 表1 连接方式 连接方式 使用场景 默认端口 说明 DAS连接 GeminiDB Redis支持通过管理控制台的Web客户端连接Redis实例 - - 内网连接 介绍通过内网IP、内网域名或负载均衡地址连接GeminiDB Redis实例的方法。 该方式适用于当应用部署在弹性云服务器上,且该弹性云服务器与数据库实例处于同一区域、同一VPC内时连接数据库实例。 6379 推荐使用负载均衡地址连接实例,可靠性高,可消除单点故障带来的影响。 安全性高,可实现数据库实例的较好性能。 E CS 与Redis实例在相同安全组 默认ECS与Redis实例内网互通,无需设置安全组规则。 ECS与Redis实例在不同安全组时,需要为Redis和ECS分别设置安全组规则。 设置Redis安全组规则:为Redis所在安全组配置相应的入方向规则,详见设置安全组规则。 设置ECS安全组规则:安全组默认规则为出方向上数据报文全部放行,此时,无需对ECS配置安全组规则。当在ECS所在安全组为非默认安全组且出方向规则非全放通时,需要为ECS所在安全组配置相应的出方向规则。 公网连接 介绍通过公网域名、弹性公网IP或负载均衡器绑定弹性公网IP连接GeminiDB Redis实例的方法。 该方式适用于不能通过内网方式访问数据库实例时,可以单独使用公网域名或弹性公网IP连接弹性云服务器(或公网主机)与数据库实例。 6379 为了获得更快的传输速率和更高的安全性,建议您将应用迁移到与您的数据库实例在同一VPC子网内,使用内网连接。 推荐负载均衡器绑定弹性公网IP的方式,可靠性高,可消除单点故障影响。 用户需要购买弹性公网IP,请参见弹性公网IP计费说明。 。 客户端连接 介绍通过不同代码的方式访问GeminiDB Redis实例的方法,详情请参见客户端通过代码连接实例示例。 6379 - 父主题: 连接实例
  • 权限配置 使用 IAM 统一身份认证 )的用户,需要给对应的子用户授予DAS FullAccess权限,否则子用户无法正常使用该功能。具体授权的操作请参见创建用户并授权。 同时您也可以通过创建自定义策略的方式来限制有权限的数据库类型,具体操作如下: 登录统一身份认证服务页面,单击“创建自定义策略”。 图1 创建自定义策略 设置策略名称、策略配置方式、策略内容等信息。 图2 配置自定义策略 表1 自定义策略信息 参数名称 描述 策略名称 输入策略名称。 策略配置方式 此处选择“JSON视图”。 策略内容 在策略内容中配置如下自定义策略: { "Version": "1.1", "Statement": [ { "Action": [ "das:*:*", "nosql:instance:list" ], "Effect": "Allow" } ] } 或者您也可以在“策略内容”区域,单击“从已有策略复制”,选择“DAS FullAccess”作为模板,然后只保留对应的DB类型就可以指定权限的范围,此处只需要保留“nosql:instance:list”即可。 策略描述 输入策略描述。 作用范围 默认项目级服务 单击“确定”,返回权限页面,可以查看到创建成功的自定义策略。 图3 查看自定义策略 创建用户组。 图4 创建用户组 为4创建的用户组授权3已创建好的自定义策略。 图5 授权自定义策略 图6 选择自定义策略 单击用户组名称,进入用户组管理,添加对应的子用户即可。 图7 添加子用户
  • 请求示例 查询实例所有节点的会话信息 GET https://{endpoint}/v3/054e292c9880d4992f02c0196d3ea468/instances/e73893ef73754465a8bd2e0857bbf13ein12/sessions 查询实例指定节点的会话信息 GET https://{endpoint}/v3/054e292c9880d4992f02c0196d3ea468/instances/e73893ef73754465a8bd2e0857bbf13ein12/sessions?node_id=9d3288bbbb81448e8a99ff41a5717281no12