【腾讯云的1001种玩法】在腾讯云上创建您的SQL Server 故障转移集群(2)

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

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

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

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

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

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

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 共享存储,存储作用一共分为三块,一块作为仲裁盘,一块作为生产数据,一块作为备用(未启用预留空间)。

涉及架构如下:

Okay,开始动手:

  1. 创建多个网卡作为辅助网卡添加到对应的CVM中,这里暂时不支持从控制台直接新建(已经快上线的功能)

所以咱们通过API来进行添加即可,可以参考这两篇文章:创建私有网络VPC内通过keepalived搭建高可用主备集群 (记得先申请API授权哟)。

  1. 创建完成后得使用DescribenetworkInterfaces遍历网卡(使用api创建的网卡不会在界面显示
  1. 进行网卡改绑定(目前也仅能通过API):

PS:注意是networkinterfaceid不是name,且成功后也不会在控制台上体现,但是在系统内部可以看到。

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

(存储网络,两个SQL节点,一个存储节点)

(心跳网络,两个SQL节点)

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

附录,本篇槽点:

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

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

  1. 创建VPC私有网络
  2. (以同样的方式创建存储心跳) 效果如下:
  3. 接下来将SQL01、SQL02根据正文中的步骤重新创建网卡并做绑定(无法直接进行修改,见槽点三)

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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏资深Tester

怎样才能提交一个让开发人员拍手叫好的bug单

27430
来自专栏WeTest质量开放平台团队的专栏

浅谈服务器性能测试的全生命周期——从测试、结果分析到优化策略

服务器性能测试是一项非常重要而且必要的工作,本文是作者Micheal在对服务器进行性能测试的过程中不断摸索出来的一些实用策略,通过定位问题,分析原因以及解决问题...

29140
来自专栏CSDN技术头条

架构师于小波:魅族实时消息推送架构

【编者按】此文是根据魅族架构师于小波在msup和魅族联合举办的#魅族技术开放日#的演讲中的分享内容整理而成,于小波分享了魅族实时消息推送架构的其中遇到的坑和一些...

40170
来自专栏BestSDK

一款完美的SDK产品,肯定具备这9个特质

即保证用户能够在5分钟以内学会使用代码。这一点非常重要,特别是考虑到有时候用户会评估我们的产品——如果无法轻松上手,他们很可能直接选择放弃。 ? 1. 简单性 ...

463100
来自专栏编程微刊

微信小游戏跳一跳外挂教程(安卓版)

37420
来自专栏企鹅号快讯

大话程序猿眼里的高并发

高并发是指在同一个时间点,有很多用户同时的访问URL地址。比如:淘宝的双11,双12,就会产生高并发,如贴吧的爆吧,就是恶意的高并发请求。也就是DDOS攻击,再...

216100
来自专栏Spark学习技巧

Redis热点Key发现及常见解决方案

在日常工作生活中一些突发的的事件,例如:双十一期间某些热门商品的降价促销,当这其中的某一件商品被数万次点击浏览或者购买时,会形成一个较大的需求量,这种情况下就会...

24530
来自专栏Golang语言社区

Go 语言构建高并发分布式系统实践

你知道互联网最抢手的技术人才有哪些吗?最新互联网职场生态报告显示,最抢手的十大互联网技术人才排名中Go语言开发人员位居第三,从中不难见得,Go语言的渗透率越来越...

69350
来自专栏Android群英传

推送,从入门到放弃

20720
来自专栏進无尽的文章

聊聊工程级别的组件化、插件化 以及 模块化

我们经常会听到组件化、插件化、模块化这三个概念,可是我们真的对这三个概念了解吗?明白它们三者之前的关系和区别吗?本文就我个人的理解做一下简单的总结,如有错误之处...

60340

扫码关注云+社区

领取腾讯云代金券