云平台之实例类型与故障迁移
云平台之实例类型与故障迁移
前面有一篇博文对云平台的基础知识和核心概念进行了一次梳理(https://blog.csdn.net/yejingtao703/article/details/82321286),本篇在此基础上深入解析下云实例选择时需要注意的一些问题以及出现故障时平台的迁移策略。
本地盘与云盘:
在云平台启用实例时我们经常会看到一个选择,磁盘是选择本地盘还是云盘,单独从实例本身来说,我们很难发现这两种机制的区别和意义,如果考虑到云平台的容灾机制,云盘的优势将会体现出来。
冷迁移和热迁移:
关于冷迁移和热迁移在不同平台上定位略有不同,但在大体方向上平台都希望90%的容灾通过热迁移来完成,因为热迁移代表着快速、对生产服务影响最小、风险小;而冷迁移代表着低效、影响服务、有失败的风险。
说到这可能还是一头雾水,我们通过图片来看下冷迁移和热迁移的区别。
有A、B两台实例,A使用本地磁盘,B使用云盘
当实例出现故障需要迁移时A、B的策略是有区别的。
基于Image做实例创建的技术目前已经非常成熟,特别是对公共镜像实例平台都有预热池的概念,所以一旦发生故障我们最头疼的部分就是故障实例内的数据如何解决。
先看A:
新启动的实例A+需要完成磁盘内容的拷贝,可能直接对拷,也可能先拷贝到云盘后再从云盘拷贝回来,总之这一步时间会很久,而且有失败的可能。
再看实例B:
可以将原实例的云盘直接挂载给新启动的实例B+,效率高,风险小。
上述A使用的是冷迁移,B使用的热迁移,可以看得出网盘在热迁移中的决定性作用。
InstanceType的选择:
我们在购买云实例时会困扰自己选择哪种机型,这是跟你的应用场景有关的,本文再详细介绍下InstancType相关的知识点。
首先,最容易被忽视的一点是, 每个Region的可用机型可能是不一样的 !!
原因有很多,可能是售罄了,可能是硬件迭代,总之对于API调用的场景一定要根据服务端提供的接口确认下你想要的机型在该区域是否还存在。
InstanceType的命名规则是: {应用场景}{几代}.{规格} ,例如C4.large
{规格}最好理解,代表你云实例面板的物理性能,CPU核数、内存大小等,会按照英文的意义从小到达 nano
、
micro
、
small
、
medium
、
large
、
xlarge
、
2xlarge
如此扩展。
{几代}也好理解,硬件也在升级,同等场景和规格下,代数越高代表技术越先进,性能也会略好,一般体现在cpu和内存的频率上。
前两个还算好理解,{应用场景}有点复杂,云平台根据客户的需要把实例分为标准型、内存密集型、计算密集型、存储密集型和网络密集型等场景。
标准型,属于家庭式或者平衡型的类型,厂家会按照常用的比例为我们配置CPU、内存、磁盘等硬件。
计算密集型,一般用于企业的web应用等需要大量运算的场景,厂商会侧重加强CPU的运算能力和稳定性。
内存密集型,一般用于Redis服务器这类内存数据库场景,对内存的分配和拷贝能力要求较高。
存储密集型,一般用于MySql、HBase、ElasticSearch这类场景,对磁盘的吞吐、IOPS、时延、容量要求较高。
网络密集型,这类场景比较复杂,像以游戏服务器为代表的TCP长连接场景,以弹幕、http请求为代表的TCP短连接场景,除开长短连接这个维度,还有内网和公网这个维度也有网络上需要优化的空间。
本文这里介绍的InstanceType只针对应用服务器的选型,随着AI技术的发展云厂商们也推出了针对于深度学习的GPU机型。