云服务器内容精选

  • 磁盘扩容概述 随着客户业务的发展,磁盘空间往往最先出现资源瓶颈,在其他资源尚且充足的情况下,执行传统扩容操作不仅耗时久,还伴随着资源浪费问题。通过磁盘扩容可快速缓解存储资源瓶颈现象,操作过程中无需暂停业务,并且不会造成CPU、内存等资源浪费。用户可在没有其他业务情况下选择磁盘扩容操作,扩容成功后如果磁盘空间仍不足可以继续磁盘扩容,若扩容失败用户可尝试重新进行磁盘扩容操作。 磁盘扩容功能仅8.1.1.203及以上版本支持,并且创建集群规格需要为标准数仓SSD云盘、实时数仓或IoT数仓类型。 集群状态为“可用”、“待重启”、“只读”、“非均衡”、“节点故障”或者 “不可用”的情况下才能下发磁盘扩容。
  • 经典变更规格对系统的影响 经典变更规格前,需退出创建了临时表的客户端连接,因为在经典变更规格过程中及成功之前创建的临时表将会失效,操作临时表也会失败。但是经典变更规格后创建的临时表不受影响。 经典变更规格过程中,进入数据重分布阶段集群将会变成“只读”状态,变更过程中业务可能长期被阻塞,建议您在工程师的协助下进行,避免业务受影响。 经典变更规格后内网IP会变更,如果业务侧有使用IP地址进行连接,需要更新连接IP地址。 经典变更规格后域名会保持不变,域名内绑定IP地址会发生切换,过程中会出现短暂的连接中断,请注意在变更时间窗内尽量避免业务语句写入。如果业务侧有使用域名进行连接,则需要更新域名相应缓存信息避免变更结束后连接失败。 如果集群有绑定弹性负载均衡(ELB),经典变更规格后业务侧连接地址保持不变,继续使用ELB地址;ELB内部服务器地址会更新为新的连接地址。 为防止数据丢失,在变更完成后、删除老集群前会对老集群做一次全量快照(若不支持快照功能将跳过此步骤),可在快照列表中查看,确认无误后需手动删除快照。 经典变更规格过程中,集群只读会影响智能运维中相关运维任务的功能使用。建议在经典变更规格前,将智能运维任务暂停,或错开智能运维与经典变更规格的时间窗。
  • 请求示例 扩容存储空间(按需实例)。 POST https://{endpoint}/v2/{engine}/{project_id}/instances/{instance_id}/extend { "oper_type" : "storage", "new_storage_space" : 600 } 扩容代理数量(按需实例)。 POST https://{endpoint}/v2/{engine}/{project_id}/instances/{instance_id}/extend { "oper_type" : "horizontal", "new_storage_space" : 1600, "new_broker_num" : 4, "tenant_ips" : [ "127.0.0.1", "127.0.0.2", "127.0.0.3" ] } 扩容代理规格(按需实例)。 POST https://{endpoint}/v2/{engine}/{project_id}/instances/{instance_id}/extend { "oper_type" : "vertical", "new_product_id" : "c6.4u8g.cluster" }
  • 请求参数 表2 请求Body参数 参数 是否必选 参数类型 描述 oper_type 是 String 变更类型。 取值范围: storage:存储空间扩容,代理数量不变。 horizontal:代理数量扩容,每个broker的存储空间不变。 vertical:垂直扩容,broker的底层虚机规格变更,代理数量和存储空间不变。 new_storage_space 否 Integer 扩容后的存储空间。 当oper_type类型是storage或horizontal时,该参数有效且必填。 实例存储空间 = 代理数量 * 每个broker的存储空间。 当oper_type类型是storage时,代理数量不变,每个broker存储空间最少扩容100GB。 当oper_type类型是horizontal时,每个broker的存储空间不变。 new_broker_num 否 Integer 当oper_type参数为horizontal时,该参数有效。 取值范围:最多支持30个broker。 new_product_id 否 String 垂直扩容时的新产品ID。 当oper_type类型是vertical时,该参数才有效且必填。 产品ID可以从查询产品规格列表获取。 publicip_id 否 String 实例绑定的弹性IP地址的ID。 以英文逗号隔开多个弹性IP地址的ID。 当oper_type类型是horizontal时,该参数必填。 tenant_ips 否 Array of strings 指定的内网IP地址,仅支持指定IPv4。 指定的IP数量只能小于等于新增节点数量。 当指定IP小于节点数量时,未指定的节点随机分配内网IP地址。 second_tenant_subnet_id 否 String 实例扩容时新节点使用备用子网的id 当实例扩容使用备用子网,则传入此值 需要联系客服添加白名单才能传入此值
  • 响应示例 状态码: 200 实例缩容前置检查 { "success" : false, "check_detail" : [ { "broker_id" : 4, "can_delete" : false, "is_zk_node" : false, "is_controller" : false, "has_topics" : true, "topics" : [ "test" ] } ] }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 success Boolean 缩容检查是否通过 check_detail Array of check_detail objects broker检查结果 表4 check_detail 参数 参数类型 描述 broker_id Integer broker序号 can_delete Boolean 节点是否可删除。 is_zk_node Boolean 节点是否为zk部署节点。 is_controller Boolean broker是否为controller。 has_topics Boolean broker上是否存在topic数据。 topics Array of strings broker上存在的topic列表。
  • 操作步骤 以root用户登录云服务器。 执行以下命令,查询磁盘信息。 fdisk -l | grep 'Disk /dev/' 图1 查询磁盘信息 如图1所示,云服务器共有3块磁盘:/dev/vda、/dev/vdb、/dev/vdc。 执行以下命令,查看磁盘挂载情况。 df -h| grep '/dev/' 图2 查询磁盘挂载情况 如图2所示,云服务器只挂载了1块磁盘/dev/vda。 对比2和3中查询的磁盘个数是否一致。 是,表示变更成功,结束。 否,表示存在磁盘挂载失败,执行5。 使用mount命令挂载磁盘。 示例: mount /dev/vdb1 /mnt/vdb1 其中,/dev/vdb1是待挂载的磁盘,/mnt/vdb1是待挂载磁盘的路径。 待挂载磁盘的文件夹/mnt/vdb1必须是空文件夹,否则会挂载失败。 再次执行以下命令,对比查询的磁盘个数是否一致。 fdisk -l | grep 'Disk /dev/' df -h| grep '/dev/' 是,结束。 否,请联系客服获取技术支持。 图3 检查磁盘个数是否一致 如图3所示,使用两个命令查询的云服务器磁盘个数一致,分别是:/dev/vda、/dev/vdb、/dev/vdc。
  • GaussDB实例在扩容和规格变更期间是否一直可用 目前,GaussDB支持磁盘扩容和CPU/内存规格变更。 在磁盘扩容期间,云数据库GaussDB实例一直可用,业务不受影响,但不允许删除和重启实例。 在CPU/内存规格变更期间,有1到2次网络秒级闪断。规格变更过程中可能会发生主备倒换,倒换时业务可能会短暂中断。 规格变更完成后,在3.100版本之前的实例将会重启数据库集群,重启过程业务不可用。3.100版本及以上的实例不需要重启数据库集群,将会大幅度降低闪断影响。请选择业务低峰期,避免业务异常中断。重启后实例会自动释放内存中的缓存,请在业务低峰期进行重启,避免对高峰期业务造成影响。 父主题: 扩容及规格变更
  • 操作步骤 登录弹性云服务器,新建临时目录check。 mkdir /check 复制镜像文件到当前目录下。 cp /boot/initrd-2.6.18-308.el5.img /check/ 执行以下命令,修改文件格式为gz。 cd /check mv initrd-2.6.18-308.el5.img initrd-2.6.18-308.el5.img.gz 解压文件。 gzip -d initrd-2.6.18-308.el5.img.gz 查询驱动安装情况。 cpio -t -F initrd-2.6.18-308.el5.img | grep virtio 检查过程如图所示: 图1 查询驱动安装情况 如果回显包含:virtio,virtio_blk,virtio_net,virtio_pci则表示驱动安装成功。 由于镜像版本过低,缺少virtio_scsi驱动,此弹性云服务器将无法正常挂载SCSI类型的磁盘。
  • 扩容/缩容过程中生产消息失败 可能原因:在扩容/缩容代理规格的过程中,代理采用滚动重启的方式进行实例变更。在重启过程中,分区Leader会进行切换,此时生产客户端的元数据缓存中保存的分区Leader为旧分区Leader ID,仍然会向旧分区Leader发送消息,导致生产消息失败。 解决方法:在生产客户端配置重试机制。建议设置retries=Integer.MAX_VALUE 父主题: 实例规格变更问题
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String IAM TOKEN 最小长度:1 最大长度:1024 表3 请求Body参数 参数 是否必选 参数类型 描述 change_mode 是 Integer 规格变更类型:10:升配;30:降配;40:续费;60:扩容;70:切换操作系统 最小值:10 最大值:70 resource_id 是 String 资源id(即实例id) resource_spec_code 是 String 产品规格编码(即实例类型编码),例如dayu.starter,dayu.basic,dayu.advanced等。可通过查询其他实例信息进行获取。 product_id 否 String 产品id promotion_info 否 String 促销信息 最小长度:1 最大长度:1024
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_msg String 错误信息 最小长度:1 最大长度:1024 error_code String dayu异常码 最小长度:1 最大长度:1024 状态码: 500 表5 响应Body参数 参数 参数类型 描述 error_msg String 错误信息 最小长度:1 最大长度:1024 error_code String dayu异常码 最小长度:1 最大长度:1024
  • 响应示例 状态码: 200 OK,规格变更请求成功 { "message" : null, "is_success" : true} 状态码: 400 { "error_code" : "DAYU.4402", "error_msg" : "The operation failed, detail msg {0}."} 状态码: 500 { "error_code" : "DAYU.3531", "error_msg" : "Internal server error: {0}"}
  • DDS是否支持添加节点 DDS的集群和副本集实例均支持添加节点,单节点由于架构比较特殊,不支持添加节点。 集群实例 集群实例由Mongos(路由)、Config(配置)和Shard(分片)节点组成。其中,Shard节点和Mongos节点支持添加节点,Config节点不支持添加节点。 具体操作请参见添加集群实例的节点。 副本集实例 副本集实例由主节点、备节点和隐藏节点组成。系统默认提供的是三节点的实例,您可以根据需要新增节点至五节点或七节点副本集,新增的节点均为Secondary节点。 具体操作请参见添加副本集实例的节点。 父主题: 扩容及规格变更