在上一篇咱们介绍了如何在 QCloud 标准化的搭建一套域环境,并介绍了如何在生产过程当中如何避免一些坑,今天,咱们来介绍这次 demo 中真正须要注意的一些细节及实现技术手段,主要为了让你们理解群集环境的隔离如何在 QCloud 上实现,先来看看如下两个 FQA :sql
Q1: QCloud 提供了虚拟机多个网卡的技术,可是如何确保它们在物理上是隔离的呢?
api
A1:不可能彻底隔离,由于不仅仅是 QCloud ,大部分的公有云(包括国际)底层都是采用多个网卡作 team 来进行多卡容灾,若是要多个 vNet 拆分对 应多个物理网卡无非是增长服务器硬件成本,不过目前为止貌似也没有哪一个公有云厂商敢宣称作了彻底的 SDN ( SDN 意味着屏蔽了硬件, vNet 可随机落在某个宿主机的某个网卡上,这一点至少咱们已经在日程上了),若是有兄弟知道这方面的资源欢迎纠偏指正:)服务器
Q2:既然没法彻底物理隔离难道没办法解决线路分离问题吗?
网络
A2:彻底物理分离的完美方案几乎不可能,对国内公有云来讲也的确有点为难,因此尽量的去避免单点故障仍是有可能的,有这么一种方案,如今 QCloud 的虚拟机投放策略是尽量打散在不一样宿主机,那就意味着同一台宿主机多个虚拟机同一个物理网卡的可能性是微乎其微的,为了确保这个信息,能够提交工单来确保这个问题:架构
Okay ,回答了上述问题后,咱们开始进入正题,如下是今天须要的服务器信息(本例中会开通外网流量主要为了方便 Demo ,可是生产环境中不建议使用外网带宽):app
编号 | 服务器名称 | 生产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 共享存储,存储做用一共分为三块,一块做为仲裁盘,一块做为生产数据,一块做为备用(未启用预留空间)。运维
涉及架构以下:ide
Okay,开始动手:优化
建立多个网卡做为辅助网卡添加到对应的 CVM 中,这里暂时不支持从控制台直接新建(已经快上线的功能)因此我们经过 API 来进行添加便可 能够参考这两篇文章:建立私有网络和 VPC 内经过keepalived搭建高可用主备集群(记得先申请 API 受权哟)spa
建立完成后得使用 DescribenetworkInterfaces 遍历网卡(使用 api 建立的网卡不会在界面显示)
进行网卡改绑定(目前也仅能经过 API ):
PS:注意是 networkinterfaceid 不是 name ,且成功后也不会在控制台上体现,可是在系统内部能够看到
使用一样的方式建立网卡,确认两个 sql 子机均可以得到网卡后(分别有三块,1块生产、1块心跳、1块存储),这里偷了下懒用内部系统看了下对应关系是正确的:
(存储网络,两个 SQL 节点,一个存储节点)
(心跳网络,两个 SQL 节点)
确保心跳网络、存储网络两两之间是通的。
一. 建立弹性网卡到绑定主机这个流程太考验运维实力了,运维童鞋的代码能力直接决定了这个架构是否搭建成功,由于建立弹性网卡须要 API 调用,查看弹性网卡须要 API 调用,绑定弹性网卡也须要 API 调用。(这一点博主已经直接怼了研发童鞋跟产品童鞋进行双向整改)
二. 这里其实有更加优化的方案去作网络隔离,那就是私有网络也用不一样的,可是这是博主以后想到,建立网卡也须要指定子网 ID ,就意味着要修改网卡重,根据槽点 A 这是致命的,因此博主按照规范及架构考虑,强烈建议分离,操做以下:
建立 VPC 私有网络
(以一样的方式建立存储心跳) 效果以下:
接下来将 SQL0一、SQL02 根据正文中的步骤从新建立网卡并作绑定(没法直接进行修改,见槽点三)
三.修改弹性网卡的 API ModifyNetworkInterface 居然只能修改网卡名称跟网卡描述,若是要更改网卡,要通过 解绑主机网卡 —— 删除弹性网卡 —— 建立新弹性网卡 —— 绑定主机。而这一切,是的仍是得经过 API 来作(见槽点二)。