在上一篇我们介绍了如何在QCloud标准化的搭建一套域环境,并介绍了如何在生产过程中如何避免一些坑,今天,我们来介绍此次demo中的另外一个角色——共享存储SG如何部署与设计。

接着搭建存储服务器来聊下如何在QCloud上做线路分离。

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

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

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

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

【VMC实验室】在QCloud上创建您的SQL Cluster(2)_第1张图片

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

涉及架构如下:

【VMC实验室】在QCloud上创建您的SQL Cluster(2)_第2张图片

Okay,开始动手:

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

wps4D4.tmp

所以咱们通过API来进行添加即可

可以参考以下两篇文章:

a、https://www.qcloud.com/doc/api/245/%E5%88%9B%E5%BB%BA%E7%A7%81%E6%9C%89%E7%BD%91%E7%BB%9C

b、https://www.qcloud.com/doc/product/215/5850

(记得先申请API授权哟)

【VMC实验室】在QCloud上创建您的SQL Cluster(2)_第3张图片

2、 创建完成后得使用DescribenetworkInterfaces遍历网卡(使用api创建的网卡不会在界面显示, https://www.qcloud.com/doc/api/245/4814)

【VMC实验室】在QCloud上创建您的SQL Cluster(2)_第4张图片

3、 进行网卡改绑定(目前也仅能通过API, https://www.qcloud.com/doc/api/245/4820):

【VMC实验室】在QCloud上创建您的SQL Cluster(2)_第5张图片

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

【VMC实验室】在QCloud上创建您的SQL Cluster(2)_第6张图片

【VMC实验室】在QCloud上创建您的SQL Cluster(2)_第7张图片

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

【VMC实验室】在QCloud上创建您的SQL Cluster(2)_第8张图片

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

wps4FA.tmp

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

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

附录,本篇槽点:

a) 创建弹性网卡 到 绑定主机这个流程太考验运维实力了,运维童鞋的代码能力直接决定了这个架构是否搭建成功,因为创建弹性网卡需要API调用,查看弹性网卡需要API调用,绑定弹性网卡也需要API调用。(这一点博主已经直接联系了对应的产品童鞋,产品童鞋回应在12月份就会上线GUI创建网卡这些功能,API主要是方便自动化场景调用)

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

i. 创建VPC私有网络

【VMC实验室】在QCloud上创建您的SQL Cluster(2)_第9张图片

(以同样的方式创建存储心跳)

ii. 效果如下:

【VMC实验室】在QCloud上创建您的SQL Cluster(2)_第10张图片

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

【VMC实验室】在QCloud上创建您的SQL Cluster(2)_第11张图片

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


【VMC实验室】在QCloud上创建您的SQL Cluster(2)_第12张图片