版权声明:本文由李斯达原创文章,转载请注明出处: 
文章原文链接:https://www.qcloud.com/community/article/248

来源:腾云阁 https://www.qcloud.com/community

上一篇我们介绍了如何在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授权哟)

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

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

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

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

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

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

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

附录,本篇槽点:

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

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

  1. 创建VPC私有网络

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

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

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

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

在腾讯云上创建您的SQL Cluster(2)的更多相关文章

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

    版权声明:本文由李斯达原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/255 来源:腾云阁 https://www.qclo ...

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

    版权声明:本文由李斯达原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/250 来源:腾云阁 https://www.qclo ...

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

    版权声明:本文由李斯达原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/247 来源:腾云阁 https://www.qclo ...

  4. 【腾讯云的1001种玩法】在腾讯云上创建您的SQL Cluster(5)

    版权声明:本文由李斯达 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/97264001482830465 来源:腾云阁 h ...

  5. 创建Django项目并将其部署在腾讯云上

    这段时间在做scrapy爬虫,对爬出来的数据基于Django做了统计与可视化,本想部署在腾讯云上玩玩,但是因为以前没有经验遇到了一些问题,在这里记录一下: 首先说下Django的创建与配置: 1. 创 ...

  6. 腾讯云上PhantomJS用法示例

    崔庆才 前言 大家有没有发现之前我们写的爬虫都有一个共性,就是只能爬取单纯的html代码,如果页面是JS渲染的该怎么办呢?如果我们单纯去分析一个个后台的请求,手动去摸索JS渲染的到的一些结果,那简直没 ...

  7. 如何用Baas快速在腾讯云上开发小程序-系列4:实现客户侧商品列表、商品详情页程序

    版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/431172001487671163 来源:腾云阁 h ...

  8. 如何用Baas快速在腾讯云上开发小程序-系列3 :实现腾讯云COS API调用

    版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/640268001487425627 来源:腾云阁 h ...

  9. 本地docker镜像上传Docker Hub,并且在腾讯云上pull该镜像,最后运行成功。

    1:在docker hub 上注册一个账号(本人直接能注册,有的说不能),然后创建自己的仓库. 2:登录docker hub ( longdbdocker --hub账号,longdb --仓库名称) ...

随机推荐

  1. js 数组排序和算法排序

    1.算法排序 a.插入排序 var arr = [23,34,3,4,23,44,333,444]; var arrShow = (function insertionSort(array){ if( ...

  2. 2016CCPC东北地区大学生程序设计竞赛 1005 HDU5926

    链接http://acm.hdu.edu.cn/showproblem.php?pid=5926 题意:给我们一个矩阵,问你根据连连看的玩法可以消去其中的元素 解法:连连看怎么玩,就怎么写,别忘记边界 ...

  3. Android 内存分析工具 - LogCat GC

    一.GC_Reason 触发垃圾回收的回收的集中原因: 类型 描述 GC_CONCURRENT 内存使用将满时,并发的进行垃圾回收. GC_FOR_MALLOC 当内存已满应用尝试分配内存时会出触发垃 ...

  4. Java提高篇---Map总结

    一.Map概述 首先先看Map的结构示意图 Map:"键值"对映射的抽象接口.该映射不包括重复的键,一个键对应一个值. SortedMap:有序的键值对接口,继承Map接口. Na ...

  5. ViewState 视图状态对象实例

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DemoViewState. ...

  6. UVALive 6500 Boxes

    Boxes Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Pract ...

  7. I2C总线信号时序总结

    I2C总线信号时序总结 总线空闲状态  I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态.此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电 ...

  8. JUnit 单元测试 配置

    选中工程,右键  built path , add liberaries , JUnit , JUnit4 这样就不用每次测试时都在main方法中写了

  9. 9.Parameters

    1.Optional and Named Parameters calls these methods can optionally not specify some of the arguments ...

  10. JAVA操作数组

    使用 Arrays 类操作 Java 中的数组 Arrays 类是 Java 中提供的一个工具类,在 java.util 包中.该类中包含了一些方法用来直接操作数组,比如可直接实现数组的排序.搜索等 ...