当前位置: 代码迷 >> 综合 >> 在腾讯云上创建您的 SQL Cluster (2)
  详细解决方案

在腾讯云上创建您的 SQL Cluster (2)

热度:54   发布时间:2023-09-13 06:03:16.0

在腾讯云上创建您的 SQL Cluster (2)

作者介绍:李斯达,微软最具价值专家、认证讲师、无界工程师、场景式学习倡导者,曾在阿里 O2O 仓储解决方案公司担任系统架构师一职,目前就职于互联网企业担任系统运维工程师,致力于IT改善生活的实践之路。

在上一篇我们介绍了如何在 QCloud 标准化的搭建一套域环境,并介绍了如何在生产过程中如何避免一些坑,今天,我们来介绍此次 demo 中真正需要注意的一些细节及实现技术手段,主要为了让大家理解群集环境的隔离如何在 QCloud 上实现,先来看看以下两个 FQA :

Q1: QCloud 提供了虚拟机多个网卡的技术,但是如何确保它们在物理上是隔离的呢?

A1:不可能完全隔离,因为不单单是 QCloud ,大部分的公有云(包括国际)底层都是采用多个网卡做 team 来进行多卡容灾,如果要多个 vNet 拆分对 应多个物理网卡无非是增加服务器硬件成本,不过目前为止貌似也没有哪个公有云厂商敢宣称做了完全的 SDN ( SDN 意味着屏蔽了硬件, vNet 可随机落在某个宿主机的某个网卡上,这一点至少我们已经在日程上了),如果有兄弟知道这方面的资源欢迎纠偏指正:)

Q2:既然无法完全物理隔离难道没办法解决线路分离问题吗?

A2:完全物理分离的完美方案几乎不可能,对国内公有云来说也的确有点为难,所以尽可能的去避免单点故障还是有可能的,有这么一种方案,现在 QCloud 的虚拟机投放策略是尽可能打散在不同宿主机,那就意味着同一台宿主机多个虚拟机同一个物理网卡的可能性是微乎其微的,为了确保这个信息,可以提交工单来确保这个问题:

在腾讯云上创建您的 SQL Cluster (2)

Okay ,回答了上述问题后,我们开始进入正题,以下是今天需要的服务器信息(本例中会开通外网流量主要为了方便 Demo ,但是生产环境中不建议使用外网带宽):

编号 服务器名称 生产IP 存储IP 心跳IP 对外VIP
1 Q-DC01 192.168.108.188
2 Q-SG01 192.168.108.206 10.11.11.231
3 Q-SQL01 192.168.108.254 10.11.11.    10.10.10.2

4 Q-SQL02 192.168.108.114 10.11.11.    10.10.10.234

关于 SG ,是用来作为 SQL Cluster 共享存储,存储作用一共分为三块,一块作为仲裁盘,一块作为生产数据,一块作为备用(未启用预留空间)。

涉及架构如下:

在腾讯云上创建您的 SQL Cluster (2)

Okay,开始动手:

  1. 创建多个网卡作为辅助网卡添加到对应的 CVM 中,这里暂时不支持从控制台直接新建(已经快上线的功能)在腾讯云上创建您的 SQL Cluster (2)所以咱们通过 API 来进行添加即可 可以参考这两篇文章:创建私有网络和 VPC 内通过keepalived搭建高可用主备集群(记得先申请 API 授权哟)

    在腾讯云上创建您的 SQL Cluster (2)

  2. 创建完成后得使用 DescribenetworkInterfaces 遍历网卡(使用 api 创建的网卡不会在界面显示)

    在腾讯云上创建您的 SQL Cluster (2)

  3. 进行网卡改绑定(目前也仅能通过 API ):

    在腾讯云上创建您的 SQL Cluster (2)PS:注意是 networkinterfaceid 不是 name ,且成功后也不会在控制台上体现,但是在系统内部可以看到

    在腾讯云上创建您的 SQL Cluster (2)在腾讯云上创建您的 SQL Cluster (2)

  4. 使用同样的方式创建网卡,确认两个 sql 子机都可以获得网卡后(分别有三块,1块生产、1块心跳、1块存储),这里偷了下懒用内部系统看了下对应关系是正确的:

    在腾讯云上创建您的 SQL Cluster (2)(存储网络,两个 SQL 节点,一个存储节点)

    在腾讯云上创建您的 SQL Cluster (2)(心跳网络,两个 SQL 节点)

  5. 确保心跳网络、存储网络两两之间是通的。

附录(本篇槽点):

一. 创建弹性网卡到绑定主机这个流程太考验运维实力了,运维童鞋的代码能力直接决定了这个架构是否搭建成功,因为创建弹性网卡需要 API 调用,查看弹性网卡需要 API 调用,绑定弹性网卡也需要 API 调用。(这一点博主已经直接怼了研发童鞋跟产品童鞋进行双向整改)

二. 这里其实有更加优化的方案去做网络隔离,那就是私有网络也用不同的,但是这是博主之后想到,创建网卡也需要指定子网 ID ,就意味着要修改网卡重,根据槽点 A 这是致命的,所以博主按照规范及架构考虑,强烈建议分离,操作如下:

  1. 创建 VPC 私有网络

  2. (以同样的方式创建存储心跳) 效果如下:

  3. 接下来将 SQL01、SQL02 根据正文中的步骤重新创建网卡并做绑定(无法直接进行修改,见槽点三)

三.修改弹性网卡的 API ModifyNetworkInterface 竟然只能修改网卡名称跟网卡描述,如果要更改网卡,要经过 解绑主机网卡 —— 删除弹性网卡 —— 创建新弹性网卡 —— 绑定主机。而这一切,是的还是得通过 API 来做(见槽点二)。

在腾讯云上创建您的 SQL Cluster (2)

在腾讯云上创建您的 SQL Cluster (1)

该系列文章会陆续推送,敬请期待哟~

在腾讯云上创建您的 SQL Cluster (2)

在腾讯云上创建您的 SQL Cluster (2)

点击「阅读原文」可在腾讯云技术社区「腾云阁」阅读本文

  相关解决方案