介绍
云托管是一种利用在线虚拟服务器的方法,这些服务器可以按需创建、修改和销毁。云服务器通过托管它们的物理主机分配资源,如CPU核心和内存,并可以配置任何操作系统和相关软件。云托管可用于托管网站、分发基于Web的应用程序或其他服务。
在本指南中,我们将介绍云托管涉及的一些基本概念,包括虚拟化的工作原理、虚拟环境中的组件以及与其他常见托管方法的比较。
什么是“云”?
“云”是一个常见术语,指的是可通过互联网访问的服务器,可以供公众使用,可以通过付费租赁或作为软件或平台服务的一部分获得。基于云的服务可以采取多种形式,包括网站托管、文件托管和共享以及软件分发。“云”也可以指云计算,即通过多个服务器透明地跨越任务。云计算将复杂的进程分布到许多较小的节点,而不是在单个强大的机器上运行。
虚拟化的工作原理
云托管环境主要分为两个主要部分:应用程序和网站可以托管的虚拟服务器,以及管理虚拟服务器的物理主机。虚拟化使云托管成为可能:主机和虚拟服务器之间的关系提供了灵活性和扩展性,这是通过其他托管方法无法实现的。
虚拟服务器
当今最常见的云托管形式是使用虚拟专用服务器(VPS)。VPS是一个表现像具有自己操作系统的真实计算机的虚拟服务器。虚拟服务器虽然共享主机分配给它们的资源,但在实践中它们是完全隔离的,因此一个VPS上的操作不会影响其他VPS。
虚拟服务器由物理主机的hypervisor部署和管理。每个虚拟服务器都有一个由hypervisor安装的操作系统,可供用户使用。在实际操作中,虚拟服务器的使用与专用物理服务器相同,尽管虚拟服务器需要与同一主机上的其他服务器共享物理硬件资源。
主机
虚拟服务器所使用的资源是由承载它的物理服务器分配的。这个主机使用一个称为 hypervisor 的软件层来部署、管理和分配资源给其控制下的虚拟服务器。术语“hypervisor”通常也用来指代安装了 hypervisors(及其虚拟服务器)的物理主机。
当启动一个虚拟服务器时,主机负责分配内存、CPU 核心和网络连接。Hypervisor 的持续任务是在虚拟 CPU 核心和物理核心之间调度进程,因为多个虚拟服务器可能正在使用同一物理核心。Hypervisors 在进程调度和资源共享方面有所不同。
虚拟化管理器
当今云主机有几种常见的 hypervisor 可用。这些不同的虚拟化方法有一些关键差异,但它们都提供了主机需要的工具,以根据需要部署、维护、移动和销毁虚拟服务器。
KVM,全称为“基于内核的虚拟机”,是内置在Linux内核中的虚拟化基础设施。激活后,这个内核模块将Linux机器转变为一个hypervisor,使其能够开始托管虚拟服务器。这种方法与其他hypervisor通常的工作方式相反,因为KVM不需要创建或模拟用于虚拟托管的内核组件。
Xen是最常见的一种hypervisor之一。与KVM不同,Xen使用自己的微内核,提供支持虚拟服务器所需的工具,而无需修改主机的内核。Xen支持两种不同的虚拟化方法:半虚拟化,它跳过了模拟硬件的需要,但需要对虚拟服务器的操作系统进行特殊修改;硬件辅助虚拟化(或HVM),它使用特殊的硬件功能高效地模拟虚拟服务器,使其能够使用未经修改的操作系统。HVM在2006年左右成为消费者CPU上普遍存在,使大多数台式机和笔记本电脑在运行虚拟机或基于微内核的容器(例如通过Docker)时能够实现类似的性能。
ESXi是由VMware提供的企业级hypervisor。ESXi独特之处在于不需要主机具有基础操作系统。这被称为“类型1”hypervisor,由于在硬件和虚拟服务器之间没有“中间人”,所以非常高效。对于像ESXi这样的类型1 hypervisor,不需要在主机上加载操作系统,因为hypervisor本身就充当操作系统。
Hyper-V是Windows服务器虚拟化的最流行方法之一,作为Windows Server中的系统服务可用。这使得Hyper-V成为在Windows软件环境中工作的开发人员的常见选择。Hyper-V包含在现代版本的Windows中,也可以作为一个独立的服务器,而不需要现有的Windows Server安装。WSL2,即Windows子系统用于Linux,是通过Hyper-V实现的。
为什么选择云托管?
虚拟化提供的特性非常适合云托管环境。虚拟服务器可以配置各种硬件资源分配,并且通常可以根据需要随时增加或减少资源。一些云主机可以在几乎没有或没有停机时间的情况下将虚拟服务器从一个hypervisor迁移到另一个hypervisor,或者为了在节点故障时进行冗余,复制服务器。
定制
开发人员通常喜欢在VPS上工作,因为他们可以控制虚拟环境。大多数运行Linux的虚拟服务器默认提供root(管理员)帐户或sudo特权访问,使开发人员能够安装和修改他们需要的任何软件。
这种选择自由始于操作系统。大多数Hypervisor都能够托管几乎任何客户操作系统,从Linux和BSD等开源软件到Windows等专有系统。从那里,开发人员可以开始安装和配置他们正在开发的任何东西所需的构建块。云服务器的配置可能包括Web服务器、数据库或已开发并准备好分发的应用程序。
可扩展性
云服务器在扩展能力方面非常灵活。扩展方法分为两大类:水平扩展和垂直扩展。大多数托管方法都可以实现其中一种方式的扩展,但云托管在水平和垂直扩展方面具有独特的能力。这是因为云服务器建立在虚拟环境上:由于其资源是分配给更大物理池的一部分,这些资源可以被调整或复制到其他Hypervisor上。
水平扩展,通常称为“横向扩展”,是向集群系统添加更多节点的过程。这可能涉及添加更多的Web服务器以更好地管理流量,向某个地区添加新服务器以减少延迟,或者添加更多数据库工作节点以增加数据传输速度。
垂直扩展,或称为“纵向扩展”,是指通过为单个服务器升级额外的资源来实现。这可能是扩展可用内存,分配更多的CPU核心,或者其他提高服务器容量的升级。这些升级通常为额外的软件实例(如数据库工作节点)在该服务器上运行铺平了道路。在水平扩展变得具有成本效益之前,垂直扩展是应对需求增加的事实上的方式。
使用云主机,开发人员可以根据其应用程序的需求进行扩展 – 他们可以通过部署额外的VPS节点进行水平扩展,通过升级现有服务器进行垂直扩展,或在服务器需求大幅增加时两者都进行。
结论
到目前为止,您应该了解了云主机是如何工作的,包括虚拟服务器与负责它们的虚拟化监视器之间的关系,以及云主机与其他常见主机方法的比较。有了这些信息,您可以选择最适合您需求的托管方式。
为了更全面地了解整个云计算领域,您可以阅读《云计算概论》。
Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-cloud-hosting