介紹
雲主機是一種利用線上虛擬伺服器的方法,可以根據需要創建、修改和刪除。雲伺服器由它們所托管的物理主機分配資源,如 CPU 核心和內存,並且可以配置任何操作系統和相應的軟件。雲主機可用於託管網站、分發基於 Web 的應用程序或其他服務。
在本指南中,我們將介紹一些與雲主機相關的基本概念,包括虛擬化的工作原理、虛擬環境中的組件以及與其他常見主機方法的比較。
什麼是“雲”?
“雲”是一個常見術語,指的是可通過付費租賃或作為軟件或平台服務的一部分提供給公眾使用的互聯網訪問伺服器。基於雲的服務可以採用多種形式,包括網站託管、文件託管和共享,以及軟件分發。 “雲”還可以指雲計算,即透明地將任務跨多個伺服器跨越。雲計算將一個複雜的過程分散到許多較小的節點上,而不是在單個強大的機器上運行。
虛擬化的運作方式
雲主機環境分為兩個主要部分:可以托管應用程序和網站的虛擬伺服器,以及管理虛擬伺服器的物理主機。虛擬化使雲主機成為可能:主機和虛擬伺服器之間的關係提供了彈性和擴展性,這是其他主機方法所不具備的。
虛擬伺服器
如今最常見的雲主機形式是使用虛擬專用伺服器,即 VPS。VPS 是一個行為像具有自己操作系統的真實計算機的虛擬伺服器。雖然虛擬伺服器共享由主機分配給它們的資源,但在實踐中它們是完全隔離的,因此對一個 VPS 的操作不會影響其他伺服器。
虛擬伺服器由物理主機的超級監視器部署和管理。每個虛擬伺服器都有一個由超級監視器安裝的操作系統,可供使用者使用。在實際用途中,虛擬伺服器在使用上與專用物理伺服器相同,儘管虛擬伺服器需要與同一主機上的其他伺服器共享物理硬體資源。
主機
資源是由承載它的物理伺服器分配給虛擬伺服器的。這個主機使用一個稱為 hypervisor 的軟體層來部署、管理和授予處於其控制之下的虛擬伺服器資源。”Hypervisor” 這個術語通常也用來指代 hypervisors(及其虛擬伺服器)安裝在其上的物理主機。
主機負責在啟動虛擬伺服器時為其分配記憶體、CPU 核心和網路連接。 hypervisor 的持續任務是在虛擬 CPU 核心和實體核心之間安排進程,因為多個虛擬伺服器可能正在使用相同的實體核心。 hypervisors 在進程排程和資源共享的細微差異方面有所不同。
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
權限的訪問,使開發人員能夠安裝和修改所需的任何軟件。
這種選擇自由始於操作系統。大多數超級監視器都能夠承載幾乎任何客戶操作系統,從Linux和BSD等開源軟件到Windows等專有系統。從那裡,開發人員可以開始安裝和配置他們正在開發的任何工作所需的基本組件。雲伺服器的配置可能包括網絡伺服器、數據庫或已開發並準備分發的應用程式。
可擴展性
雲伺服器在可擴展性方面非常靈活。擴展方法可分為兩大類:水平擴展和垂直擴展。大多數託管方法都可以實現其中一種方式,但是雲託管在能夠實現水平和垂直擴展方面獨具特色。這是因為雲伺服器建立在虛擬環境上:由於其資源是較大物理資源池的分配部分,因此這些資源可以調整或複製到其他超級監視器。
水平擴展,通常稱為“擴展”,是向集群系統添加更多節點的過程。這可能涉及添加更多 Web 服務器以更好地管理流量,向某個區域添加新的服務器以減少延遲,或者添加更多的數據庫工作者以增加數據傳輸速度。
垂直擴展,或稱“擴展”,是指對單個服務器進行升級以增加額外資源。這可能是擴展可用內存,分配更多的 CPU 核心,或者進行其他升級以增加該服務器的容量。這些升級通常為其他軟件實例(如數據庫工作者)在該服務器上運行打下了基礎。在水平擴展成本有效之前,垂直擴展是應對不斷增加的需求的事實上的方式。
通過雲主機,開發人員可以根據其應用程序的需求進行擴展 — 他們可以通過部署額外的 VPS 節點進行擴展,通過升級現有服務器進行擴展,或者在服務器需求大幅增加時兩者都進行。
結論
到目前為止,您應該已經了解了雲主機的工作原理,包括虛擬服務器與其負責的虛擬化管理程序之間的關係,以及雲主機與其他常見主機方法的比較。有了這些信息,您可以為您的需求選擇最佳的主機。
對於整體雲端運算格局的更廣泛了解,您可以閱讀雲端運算一般介紹。
Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-cloud-hosting