aws ec2 架构疑问

2018-10-04 11:14:24 +08:00
 mattx

最近看了点 aws ec2 介绍,对 ec2 架构存疑(对比虚拟机实例),主要是计算能力方面的,在存储方面把磁盘用网络连接起来是可以理解.

  1. ec2 实例如果要扩容很多计算能力,比如从 4vcpu 变成 80vcpu 怎么实现,如果扩容的 cpu 超过了底层物理机的最大计算能力,怎么办?ec2 实例是否有可能跨越多个物理机?

  2. ec2 内存方面是否支持扩容,比如从 4g 扩容到 256g 内存

  3. 不同类型的 ec2 实例,在底层是怎么区分的,应该不是运行所在的物理机不同吧?感觉没这么简单

希望知道的 v 友回答下,可能问题很简单,thx

5336 次点击
所在节点    Amazon Web Services
26 条回复
29EtwXn6t5wgM3fD
2018-10-04 11:35:54 +08:00
猜测一下 如果跨物理机的 性能也太差了吧 跨主机读取内存延迟感人吧 新老机器的 cpu 不同任务分配也有问题吧
dot2017
2018-10-04 11:44:42 +08:00
1. vCPU 是虚拟化出来的啊,理论上虚拟资源不超过操作系统所支持的核心数都行。但是超物理核心太多会造成虚拟机所在的宿主主机的 cpu wait 时间超级高,cpu 争用太大会直接降低虚拟机的速度,体验极差。一般 8 物理核心 CPU 对应 16vCPU 是实践最多了。ESXi 不支持跨物理机,虽然显示的 CPU 资源池是所有物理机的。KVM 不知道,ec2 应该是用的 KVM 的

2. 支持,所有虚拟资源都支持动态扩容,唯一区别是内存扩容不需要关机,CPU 不行。硬盘扩容一般是加盘,而不是对原盘扩容,原因是怕数据丢失(当然现在这么做的风险很低了)。

3. 底层你不用管,hypervisor 有套很成熟资源分配的机制。
AnyISalIn
2018-10-04 12:11:30 +08:00
openstack vm resize 操作是会迁移到有足够资源的宿主机的,当然也看 nova scheduler 的策略
lolizeppelin
2018-10-04 12:30:59 +08:00
这种问题看 openstack 源码就懂了

业务层怎么做最终落地还是执行具体的指令步骤及其虚拟化实现

cpu 可以直接超售 内存 256G 是因为现在物理机真有 256G
如何控制超售应该是云服务器厂商赚钱的核心部分之一了


目前虚拟化实例应该是不支持跨物理机的...把多个机器当一台机来用目前应该没有
如果这个功能很成熟的话,你想想多少架构都不用做了?全 TM 当单机来写就可以了

第 3 个问题....你知道 kvm qemu 么?我觉得我白打字了
webjin1
2018-10-04 12:42:53 +08:00
@lolizeppelin 先把所有机器 Hadoop 呢?
zwh2698
2018-10-04 13:05:44 +08:00
硬件虚拟化正在研究这个问题,你需求还是很前沿,
zxiso
2018-10-04 13:19:36 +08:00
虚拟机扩容取决于母鸡资源。如果需求资源超过母鸡提供资源,应该会做迁移操作。
毕竟以现在的技术来看,基本不可能垮设备
xenme
2018-10-04 13:24:14 +08:00
不要瞎想,现在有 80vcpu 的 ec2 实例卖么?而且卖的是计算能力,比如一核心 1ghz 等等,有 80 核心卖,那么它 host 就一定有超过这个能力的,你分配的话就会帮你迁移到其他物理机上了。
binux
2018-10-04 13:29:18 +08:00
别想了,ec2 扩容 CPU 和 内存都是要停机的。
EBS 硬盘扩容不需要停机,但是它本来就是磁盘虚拟化的啊。
swulling
2018-10-04 13:32:42 +08:00
技术上 EC2 并没有超过 OpenStack,所以你去看 OpenStack 就好了
abmin521
2018-10-04 13:40:25 +08:00
@swulling 没有超过??? ebs 不关机扩容 这个好像还是比较少的吧
AnyISalIn
2018-10-04 13:46:50 +08:00
关于纵向扩容,个人觉得 vmware 做的很好,扩 CPU 内存都不需要重启
[]( https://docs.vmware.com/cn/VMware-vSphere/6.0/com.vmware.vsphere.hostclient.doc/GUID-F102B9BD-1B92-4AC5-ADC0-BE4E90473C5F.html)
swulling
2018-10-04 14:12:58 +08:00
@abmin521 分布式块存储扩容不难,国内阿里的云盘,百度的 CDS 都支持在线扩容,架构上没啥难点。

OpenStack 中的 Ceph 也可以在线扩容
fredcc
2018-10-04 15:05:02 +08:00
ec2 更改 cpu 和内存相当于更换实例类型,当然要重启,宿主机大概率不是同一台。只要 az 还有该实例可用资源你就能用,不用担心宿主机这种具体问题。不同实例类型的 cpu 架构都不一样,肯定不是一种宿主机搞定的
abmin521
2018-10-04 15:23:24 +08:00
@swulling 我指的是根盘 对 Ceph 不了解 可能有点孤陋寡闻
swulling
2018-10-04 15:25:51 +08:00
@abmin521 我说的也没有排除系统盘
msg7086
2018-10-04 20:46:24 +08:00
EC2 就是虚拟机。现在 EC2 部分放在 XEN 上跑,部分是 KVM。
CPU 不能超过物理机 CPU 上限。比如现在插满的 8180 可以支持单机 448 个 vCPU。
内存也可以扩容的,同样一般也不会超过物理机内存上限。比如 8180M 插满可以支持单机 12TB 内存。
不同的 EC2 实例可以运行在同一台服务器上,只要限制 CPU 时间片就可以了。

这里说的一般是离线扩容,EC2 就是这种模式。在线扩容也可以,但是涉及到 CPU 与内存的热插拔,支持起来难度很高,操作系统也不一定兼容,所以还是离线为主。

EC2 其实就是个磁盘存储在外部的虚拟机。
mattx
2018-10-04 21:19:46 +08:00
@msg7086 #17 vcpu 单核来说,性能和我们物理机比怎么样,时间片是否能保证。
msg7086
2018-10-04 23:17:57 +08:00
@mattx 可以查阅 AWS 关于“ EC2 计算单位”的部分。
通常来说,单个 vCPU 要比普通的 i3 或者 i7 的单个核心慢。
opengps
2018-10-05 07:46:55 +08:00
80 核,256 内存完全可以没超过单台物理机资源
以 4 路服务器 ibm3850 为例(只说我装过的,不说最大支持配置):
CPU ~可以轻松 4 颗 e7 等于 64 个 vcpu,然后 CPU 是可以根据负载超售的,总资源不满就不会有直接体会单慢
内存~ 8 块内寸板卡,每块板卡上能装 8 块 16g 内存,轻松过 T 级别内存

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/494836

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX