云服务器
身处于云时代,相信你对云端服务器并不陌生,即使你没吃过猪肉,也见过猪跑,你一定听说过虚拟化、Xen、KVM 等一系列“高大上”的技术名词。今天我们不研究那些“阳春白雪”的底层实现,本节课我会站在开发者和使用者的角度,来说说我眼中的云中计算算力。
计算在云端实践中最为重要,身处云端三大件(计算、存储、网络)之首。可以说,一切服务围绕计算而展开,始于计算而又不止于计算。
云中计算的历史
云中计算的典型代表就是云端虚拟机,也称云服务器。2006 年,AWS 推出了 EC2 Bate 版本,08 年推出正式版本,标志着世界范围内云计算时代的算力正式开启。国内的阿里云也紧随其后,2009 年推出了 ECS,是国内最早的弹性计算服务。
从广义上来说,云上算力指包括云中虚拟机在内的一切提供算力的服务,比如 FaaS、弹性容器、批处理计算等。在大多数情况下,我们所说的算力默认指的是云中的虚拟服务器。今天,我们展开讲解云中服务器,一个服务器由哪些零部件构成,这些服务又能带给我们怎样的便利。
澎湃算力:计算
首先,对于服务器而言,自上而下地采用了计算与存储分离的思想。云中服务器,基于云端超高速的网络以及专属硬件设备、其附属的所有配件,都可以像家用台式电脑一样 DIY 组装。
仔细想想,如果你要自行组装一台家用电脑,需要购买哪些配件?
首先是 CPU 对吧?CPU 是整个电脑的大脑,提供了核心的算力及控制。除了 CPU,我们还需要购买内存,内存性能的强弱影响计算机的整体的水平。除此之外,我们还要购买硬盘进行操作系统的安装,数据的存储。如果我们想让我们的服务器接入互联网进行“网上冲浪”,还需要配置网卡、申请宽带等一系列的操作。
云上服务器的申请也大同小异,打开阿里云的云服务器购买界面,我们看到购买物理机的相关选项,出现在了 Web 控制台的购买界面中。
很明显,在云上虚拟机的购买中,机器的部件被逐一拆分,我们可以像搭积木一样,“搭”出一台服务器,下面,我就云端服务器中比较重要的部分进行讲解。
首先是 CPU 和内存,他们的重要性不言而喻,CPU 与内存的比例决定了服务器所适用的场景,通常来说,我们平时所使用的场景,大部分都在 1:2~1:8 之间。1:2 的服务器,是经典的黄金搭配比例,据统计 80% 的服务器 CPU 与内存比例都在 1:2,如 2 核 4G,4 核 8G。而 1:4 及 1:8 的服务器,适用于内存消耗高的服务。通常用在大数据分析,数据库存储及缓存数据库的场景下。
坚强后盾:存储
选择好核心之后,我们需要配置存储。云上虚拟机的存储也有不同的类别。比如说,我们把直接附加在虚拟机上,直接进行数据存储的磁盘,称为块存储云盘。而通过其他方式与云服务器进行交互的存储,我们称之为间接存储。比如通过 OSSFS 的工具,或者 NAS、文件存储网关进行对象存储的挂载。
直接存储与间接存储各有千秋,我们具体来看一看。直接存储的云盘,有不同的云盘类型。在阿里云中,云盘被分为了四种类型,分别是普通云盘、高效云盘、SSD 云盘、ESSD 云盘。它们的性能和档次各有不同。
云厂商逐渐淘汰早期的硬盘,依据电子产品“买新不买旧”的基本原则,建议你购买最新的云盘类型。最新的云盘类型除了在容量上、IOPS 上有所提升之外,其他方面也有着独特的使用技巧及优势,比如最新一代的 ESSD 磁盘就支持最新的快照技术。
快照极速可用
在上一代快照技术中,如果我们要对虚拟机进行高危操作,通常需要先打快照,出现误操作时,可进行磁盘回滚的兜底操作。我们需要等待,快照完成之后,再进行云主机的操作。而快照的制作时间,取决于本次快照与上一次快照之间增量的大小,增量越大,所花费的时间就越多。对于 500G 以下的磁盘,等待时间还能接受,通常在半小时左右。但如果是以 T 为量级的快照,等待时间通常在几小时以上。
快照极速可用就解决了这个问题,当快照创建之后,支持秒级回滚,无需等待快照创建完成,就可以进行相关操作,大大地提升了运维效率。
快照一致性组
我们所打的快照针对的只是单块磁盘,对于有多块磁盘的机器来说,要进行重复性操作。因此在进行快照时,会产生两个问题:
- 一是在效率上,N 快磁盘就要进行 N 次的时间操作,效率不高;
- 二是在数据一致性上,对于数据一致性要求高的服务,或者多块磁盘做了 LVM 的情况下,对单块磁盘做快照,会导致数据不一致而无法正常回滚。
通过创建快照一致性组,我们可以为云主机中的多块云盘同时创建快照。快照一致性组能够保证在业务系统跨多块云盘的场景下,数据写入云盘的时序一致性,并保证其崩溃一致性。
除了直接挂载云盘进行操作之外,还可以通过不同的软件或服务进行挂载。OSS 是一个对象存储服务,提供了海量的、低费用的存储服务。但由于对象存储是使用 RESTful API 进行交互的,所以不能直接挂载在服务器中,像正常访问云盘那样使用。但我们可以借助第三方工具 ossfs 将对象存储的存储空间挂载到本地文件系统中进行访问,为云中算力提供存储支持。
但 OSSFS 所提供的服务,使用限制较高,性能较差,一般仅做临时或低效能场景时使用。而如果要高效能、低延时的使用场景,我推荐使用云存储网关。它同样也以对象存储为后端存储,为云上和云上、云上和云下应用提供业界标准的文件服务(NFS 和 SMB)和块存储服务(iSCSI)。文件存储网关的基础逻辑是当我们数据上传至 OSS 中时,将热数据保留在本地缓存,首先保证数据访问的良好体验,再无感知地将海量数据存入对象存储中。
存储为我们的计算提供数据支持,我们可以把不同的云产品结合在一起,打造数据湖与数据仓库。
网络
云端三大件,除了计算和存储外,还有一个重要的部分——网络。
在云服务器中,不同的云产品相互连接访问,需要通过云端的弹性网卡来进行设置。弹性网卡也是一个很神奇的组件。它是附加在服务器上,依托云上专有网络 VPC 以及 VPC 下的子网及虚拟交换机为服务器所服务的组件。在云上,我们可以随意更改虚拟交换机、私网 IP、添加辅助网卡等来实现主备切换,心跳包检测,构建高可用的 SAP HANA 等高性能分析平台。
在上述组件配置完成之后,我们只需要为云上服务器安装系统,就完成了服务器的基础配置,可以直接使用了。通过云厂商提供的 VNC 或者 SSH 字符串,我们就可以登录进行相关服务的部署以及发布。
云中服务器的选择和配置几乎和自组装的电脑一样,我们要通过不同的排列组合,构建出一个强大算力的云上计算支撑,这里的算力,不单单指虚拟机,虚拟机后端的存储以及网络都是要考虑的点。而对于计算相关的服务,除了云厂商的服务器之外,包括但不限于弹性容器计算,Serverless 计算,这些都是服务器算力的补充及增强。
我把云上服务器的一些组件和相关联系做成了一个思维导图帮助你理解,它的内容涵盖了计算、存储、网络,服务层级区分了一级服务、二级服务、三级服务等。另外你还可以自己申请一个云厂商的账号,进行相关的操作。别担心,云厂商的服务费用极低,按照导航进行使用,相信你一定能够创建出你的第一台云上服务器。