面向公有云:快速上云實踐(2)存儲與網(wǎng)絡(luò)

上一篇文章面向公有云:快速上云實踐(1)選區(qū)與規(guī)格中,筆者為大家介紹了在公有云上如何選擇合適的地區(qū)和服務(wù)器規(guī)則。其中特意指出計算、存儲、網(wǎng)絡(luò)是云上資源的三駕馬車,而服務(wù)器的規(guī)則其實代表云上計算資源能力。本文將繼續(xù)為大家公有云上存儲和網(wǎng)絡(luò)資源的相關(guān)內(nèi)容。

云盤-塊存儲篇

云硬盤,即云虛擬機(jī)上可以掛載和使用的硬盤,又叫做“云磁盤”或者“云盤”。云盤是云上提供的“裸盤”,可以格式化并且施加文件系統(tǒng),既包含了用于承載操作系統(tǒng)的系統(tǒng)盤,也包括了承載數(shù)據(jù)的數(shù)據(jù)盤。在云計算的領(lǐng)域,也習(xí)慣叫云端磁盤服務(wù)叫做塊存儲(Block Storage)或者彈性塊存儲(EBS, 與彈性計算ECS相對應(yīng)),

塊存儲的名字,是因為它與 Linux 操作系統(tǒng)中的塊設(shè)備(理解Linux操作系統(tǒng)中的塊設(shè)備 - 知乎)相對應(yīng),如果熟悉liunx IO的同學(xué)應(yīng)該會很熟悉這個概念。

既然是硬盤,當(dāng)然是帶有數(shù)據(jù)持久化功能的,也就是說寫入的數(shù)據(jù)不會丟失。即便所在虛擬機(jī)重啟、關(guān)機(jī)甚至下線刪除,這塊云硬盤只要還存在,其中的數(shù)據(jù)也并不會被擦除。不僅如此,云廠商對于云盤在會保障數(shù)據(jù)的順利寫入的同時,還實現(xiàn)了在存儲端同步和保留至少三份副本的數(shù)據(jù),保證數(shù)據(jù)不丟失。

目前的云行業(yè)中,存儲成本是很低的,因為云廠商通常把很多過保的機(jī)器用于存儲副本數(shù)據(jù),這些過保的機(jī)架雖然單個節(jié)點的計算資源(CPU和內(nèi)存)可靠性達(dá)不到云廠商的SLA,但是存儲資源還是卻是可以被充分利用的。更何況三副本數(shù)據(jù)只要有一個節(jié)點的數(shù)據(jù)正常,上面的數(shù)據(jù)就不會丟失,這又大大降低了存儲故障的風(fēng)險,因此,作為塊存儲資源是過保機(jī)器的一個重要的利用場景,大大降低了存儲的成本。

云盤資源都是遠(yuǎn)程的,即計算資源和存儲資源兩者是通過數(shù)據(jù)中心內(nèi)部的特有 IO 線路進(jìn)行連接,也就是我們前篇提到的“計算存儲分離”架構(gòu)的一種體現(xiàn)。我們在購買云上服務(wù)器的時候,會有“IO 優(yōu)化實例”(AWS 上稱為 EBS-Optimized)選項,它就是指云虛擬機(jī)與云硬盤之間的網(wǎng)絡(luò)傳輸,進(jìn)行了軟硬件層面的優(yōu)化,這樣可以充分地發(fā)揮所掛載磁盤的性能?,F(xiàn)在較新型號的云服務(wù)器都是自動啟用了IO優(yōu)化。

云盤還支持熱掛載特性,讓它使用起來特別靈活方便,支持動態(tài)添加和刪除,而且大小性能任你調(diào)度。掛載后的云硬盤真正使用起來,和你熟悉的硬盤操作也并沒有什么兩樣。

云盤性能分級

云盤的性能,可謂“一分錢一分貨”,但不是越貴越好,根據(jù)自身情況,夠用就行。

97150c100ba7b7d25dd5750e1c01ad13

云盤的性能可以分為如上圖的幾個等級:

  • 普通云盤,是基于傳統(tǒng) HDD 硬盤構(gòu)建而成的。 性能一般,IOPS 在幾百左右,成本很低,適用于工業(yè)測試環(huán)境或者個人使用。
  • 高效云盤,往往是結(jié)合 HDD 和 SSD 硬盤構(gòu)建的云硬,性能在 IOPS 幾百到數(shù)千,性能比普通云盤高,但是價格有可以接受,一般是默認(rèn)選項。
  • SSD云盤,它的存儲介質(zhì)就是純 SSD 硬盤,IOPS 通常能夠上萬,也有相當(dāng)不俗的吞吐量和較低的訪問延時。用它可以來承載生產(chǎn)環(huán)境中重要的關(guān)鍵業(yè)務(wù)應(yīng)用,或是各類數(shù)據(jù)庫等 IO 密集型應(yīng)用。
  • ESSD云盤,最高等級,采用更新一代的企業(yè)級閃存硬件,配合自研或改進(jìn)后的底層傳輸協(xié)議,和虛擬化技術(shù)棧的優(yōu)化來提供服務(wù)。因此它能夠達(dá)到驚人的性能水平,滿足我們最為苛刻的性能場景需求,比如承載 SAP HANA(SAP 的高性能計算平臺)、高并發(fā) OLTP 數(shù)據(jù)庫等等。這類 SSD 云盤的 IOPS 通常能夠突破十萬以上。但是庫存有效價格也比較貴,只適合特定的場景。

云盤大小與性能

需要大家注意,云盤的容量影響云盤的性能,也就是說同等級的云盤下,云盤空間越大性能就越好。所以在某些時候,你可能需要刻意地增大所申請的云硬盤的容量,以獲取更高的性能,即便這些額外的空間不一定能被用上。雖然有些反常規(guī),但是這是由于云盤特性造成的,云盤底層是由許多大容量磁盤組成的,某一塊大盤里面切出一小塊,就是我們購買的云盤,也會相應(yīng)地在這塊大盤的讀寫總通道中按照比例分給一部分給我們的云盤作為IO能力。所以,自然是容量越大,分到的比例越高,IO能力越強(qiáng)。

云上使用本地盤

當(dāng)一些應(yīng)用軟件系統(tǒng)本身考慮到了硬件的不可靠性,設(shè)計了上層的存儲冗余機(jī)制時,你就可以考慮采用本地磁盤。因為這種情況下,本地磁盤的可靠性缺陷得到了彌補(bǔ),它的相對高性能和低成本就成為了優(yōu)勢。比如,你要在云上用虛擬機(jī)自己搭建一個經(jīng)典的 Hadoop 集群,要用虛擬機(jī)的磁盤組合成 HDFS(Hadoop 的分布式文件系統(tǒng)),并希望使用 MapReduce 或 Spark 等支持?jǐn)?shù)據(jù)本地性(Data Locality)的計算框架。這時,你就應(yīng)該考慮使用帶有本地磁盤的機(jī)型了。

不過,雖然本地盤可以提高性能,但是當(dāng)機(jī)器關(guān)機(jī)或刪除,以及出現(xiàn)硬件故障時,本地磁盤上的數(shù)據(jù)就可能損壞或丟失,因此使用門檻較高。

省錢心得

云硬盤的付費模式,同樣有按量付費和包年包月之分。在很多的云上,你能夠為一塊云盤啟用包年,長期租用的確定性也能夠給你帶來折扣,這和虛擬機(jī)資源的包年包月是一樣的。因為相比計算資源,存儲資源成本較低,所以可以把計算資源和存儲資源分開購買,比如購買長期生效的云盤,等有計算需求的時候再購買ECS云服務(wù)器,然后熱掛載你長期購買的云盤保存數(shù)據(jù),等計算需求過去,釋放器云服務(wù),但是你的數(shù)據(jù)在云盤上不會丟失。

網(wǎng)絡(luò)-VPC篇

何為VPC

云上的VM的網(wǎng)絡(luò)有個專有名詞,叫虛擬私有網(wǎng)絡(luò)(Virtual Private Cloud,簡稱 VPC) ,也被稱為專用網(wǎng)絡(luò)或者彈性網(wǎng)絡(luò)。所謂私有網(wǎng)絡(luò)就是一張私有的內(nèi)部網(wǎng)絡(luò)。內(nèi)網(wǎng)之內(nèi)的服務(wù)器和設(shè)備,可以比較自由地互相通信,與外界默認(rèn)是隔離的。如果外部互聯(lián)網(wǎng),或者其他虛擬網(wǎng)絡(luò)需要連接,則需要額外的配置。

VPC全稱是Virtual Private Cloud,翻譯成中文是虛擬私有云。但是在有些場合也被翻譯成私有網(wǎng)絡(luò)或者專有網(wǎng)絡(luò)等。這里其實就有些讓人迷惑,VPC究竟是指云還是網(wǎng)絡(luò)?答案是,VPC即是一種云,也是一種網(wǎng)絡(luò)模式,不過應(yīng)該從服務(wù)和技術(shù)的角度分別來看。

首先從服務(wù)的角度來看,VPC指的是一種云(Cloud),這與它的字面意思相符。對于基礎(chǔ)架構(gòu)服務(wù)(IaaS),云就是指資源池,是一種運行在公有云上,將一部分公有云資源為某個用戶隔離出來,給這個用戶私有使用的資源的集合。VPC是這么一種云,它由公有云管理,運行在公共資源上,但是保證每個用戶之間的資源是隔離,用戶在使用的時候不受其他用戶的影響,感覺像是在使用自己的私有云一樣。

從技術(shù)角度來看,VPC是用戶專屬的一個二層網(wǎng)絡(luò)。

img

AWS的網(wǎng)絡(luò)產(chǎn)品,在VPC之前稱為EC2-Classic,也就是經(jīng)典網(wǎng)絡(luò)。之前@左耳朵耗子的熱帖 《關(guān)于阿里云經(jīng)典網(wǎng)絡(luò)的問題》說的就是這兩種網(wǎng)絡(luò)模式:Classic和VPC。他們之間最核心的區(qū)別是:經(jīng)典網(wǎng)絡(luò)提供的是多用戶共享的網(wǎng)絡(luò),而VPC提供的是用戶專屬的網(wǎng)絡(luò)。

這里的網(wǎng)絡(luò)就是指二層網(wǎng)絡(luò),經(jīng)典網(wǎng)絡(luò)模型本身有很多問題,其中最大的問題就是安全問題。除非加了特定的防火墻規(guī)則去攔截,二層網(wǎng)絡(luò)內(nèi)的所有設(shè)備默認(rèn)是可以通信的。這就好比大家都擠在一個房間里,彼此的隱私很難保障一樣。稍有不慎,云主機(jī)就可能被同網(wǎng)絡(luò)的其他用戶惡意攻擊。而VPC能夠為每個用戶一個專屬獨立的二層網(wǎng)絡(luò)。這樣相當(dāng)于給每個用戶分了個房間,用戶的隱私更容易得到保障。就算有惡意攻擊,一般也要走到網(wǎng)關(guān)或者VPN設(shè)備,在這些集中的設(shè)備上,網(wǎng)絡(luò)流量更可控。

另一個方面,由于每個用戶都有專屬的二層網(wǎng)絡(luò),那說明VPC模式下的可用二層網(wǎng)絡(luò)的數(shù)量是遠(yuǎn)超經(jīng)典模式的。雖然各家都沒有公布自己的實現(xiàn)細(xì)節(jié),但是這里有點類似VXLAN和VLAN的關(guān)系。VXLAN可以有1600萬個二層網(wǎng)絡(luò),VLAN只有4000多個二層網(wǎng)絡(luò)。公有云與私有云的區(qū)別在于用戶數(shù)量巨大。如果采用VLAN,每個用戶一個二層網(wǎng)絡(luò),那最多只能帶4000多個用戶,公有云許多用戶還是只有1-2個云主機(jī)那種,那必然不能滿足公有云的需求,所以在早期的經(jīng)典網(wǎng)絡(luò)模式下,不得不讓多個用戶擠在一個網(wǎng)絡(luò)里面。而如果采用VXLAN之類的技術(shù),則可以保證在一個region里面為1600萬個用戶每人分到一個二層網(wǎng)絡(luò)。

因為VPC是一個用戶專屬的網(wǎng)絡(luò),用戶可以任意定義VPC內(nèi)云主機(jī)的IP地址。二層隔離了,IP地址想怎么玩就怎么玩。而在經(jīng)典網(wǎng)絡(luò)模式下,大家擠在一個二層網(wǎng)絡(luò)里面,IP地址首先要保證不要重合,這對用戶和服務(wù)商來說都不是一件心情愉快的事情。

VPC組成

img

VPC作為私有網(wǎng)絡(luò),也是局域網(wǎng)一樣由如下幾個部分組成:

  1. 網(wǎng)段,私有網(wǎng)絡(luò)的內(nèi)部 IP 區(qū)段,通常用 CIDR 形式來表達(dá),如 192.168.0.0/16。
  2. 子網(wǎng),私有網(wǎng)絡(luò)的下級網(wǎng)絡(luò)結(jié)構(gòu),一個私有網(wǎng)絡(luò)可以劃分多個子網(wǎng),這和通常意義上的子網(wǎng)也是對應(yīng)和一致的。阿里云中把子網(wǎng)形象地稱為“交換機(jī)”。
  3. 路由表,用于定義私有網(wǎng)絡(luò)內(nèi)流量的路由規(guī)則,決定著數(shù)據(jù)包的“下一跳”去向何方。每個子網(wǎng)都必須有一張關(guān)聯(lián)的路由表,通常情況下,系統(tǒng)會自動幫你創(chuàng)建一個默認(rèn)的路由表。
  4. 網(wǎng)關(guān),是對進(jìn)出私有網(wǎng)絡(luò)的流量進(jìn)行把守和分發(fā)的重要節(jié)點,根據(jù)用途的不同,有多種類型,后面我們還會講到。
  5. 安全組,私有網(wǎng)絡(luò)里虛擬機(jī)進(jìn)出流量的通行或攔截規(guī)則,可以起到虛擬機(jī)網(wǎng)絡(luò)防火墻的作用,我們曾經(jīng)在第 2 講中提到過它。

我們可以建立跨可用區(qū),也就是跨同區(qū)域內(nèi)不同數(shù)據(jù)中心的私有網(wǎng)絡(luò).

如果在沒有 VPC 的情況下直接創(chuàng)建虛擬機(jī),公有云一般都會為你自動生成 VPC, 強(qiáng)烈地建議讀者不要讓系統(tǒng)自動建立 VPC,而是先自行建立好 VPC,配置好子網(wǎng)和網(wǎng)段等重要參數(shù),然后再創(chuàng)建云虛擬機(jī)“入住”。因為這樣,使用者會事先讓自己有一個明確的網(wǎng)絡(luò)規(guī)劃,對整個 VPC 的把控和理解也會更強(qiáng)。

VM & 網(wǎng)卡

虛擬機(jī)的網(wǎng)卡,又稱彈性網(wǎng)卡(Elastic Network Interface, 簡稱 ENI)。虛擬機(jī)的網(wǎng)卡一方面是和虛擬機(jī)的本體進(jìn)行綁定,另一方面則嵌入某個私有網(wǎng)絡(luò)的子網(wǎng),也會擁有至少一個私網(wǎng) IP。

  1. 一個虛擬機(jī)可以綁定多塊網(wǎng)卡,有主網(wǎng)卡和輔助網(wǎng)卡之分;
  2. 一塊網(wǎng)卡隸屬于一個子網(wǎng),可以配置同一子網(wǎng)內(nèi)的多個私有 IP;
  3. 輔助網(wǎng)卡可以動態(tài)解綁,還能夠綁定到另一臺虛擬機(jī)上。

這再次體現(xiàn)了云計算的解耦特征,在某些場景下是非常有用的。比如,有一臺服務(wù)線上流量的機(jī)器,而且線上流量導(dǎo)向的是它的輔助網(wǎng)卡,那么當(dāng)這臺機(jī)器因故無法正常工作時,你在排查問題的同時可以考慮這樣一個應(yīng)急的辦法:將這臺機(jī)器的輔助網(wǎng)卡迅速解綁,并重新綁定到待命的備用機(jī)上。這樣就能夠比較快地先恢復(fù)對外服務(wù)。

img

彈性IP

在公有云上購買VM一般會自動生成一個臨時到的IP,但是強(qiáng)烈建議盡量不要使用和依賴這個自動生成的公有 IP。因為它本質(zhì)上是一個從公有云的 IP 池中臨時租用給你的 IP。如果你的機(jī)器關(guān)閉或重啟,下次獲得的 IP 可能就完全不同了。彈性 IP(Elastic IP),有些云稱為 eIP。彈性 IP 一旦生成,它所對應(yīng)的 IP 是固定、不會變化的,而且完全屬于你所有。這非常適合需要穩(wěn)定 IP 的生產(chǎn)環(huán)境。

它所謂的彈性,其實是指可以非常自由地解綁和再次綁定到任意目標(biāo)。你本質(zhì)上是買下了這個 IP 的所有權(quán),將這個 IP 賦予誰,是你的權(quán)利,而且你還可以動態(tài)按需切換。 當(dāng)你有一個域名,需要讓 DNS 服務(wù)解析到某個外部 IP,你就應(yīng)該建立一個彈性 IP,綁定到相關(guān)資源后,讓域名解析到這個彈性 IP,而不應(yīng)該使用虛擬機(jī)自動匹配的公有 IP。因為后者是不穩(wěn)定的。

VPC與外網(wǎng)互通

我們希望內(nèi)網(wǎng)的機(jī)器和外界并不完全隔離,一些互聯(lián)網(wǎng)流量需要有序地引進(jìn)來,一些內(nèi)網(wǎng)機(jī)器也需要訪問外網(wǎng)。這時需要使用到的網(wǎng)關(guān)(NAT,Network Address Translation), 其還可以分為SNAT和DNAT

從定義上講,SNAT是原地址轉(zhuǎn)換,DNAT是目標(biāo)地址轉(zhuǎn)換。區(qū)分這兩個功能可以簡單的由服務(wù)的發(fā)起者是誰來區(qū)分,內(nèi)部地址要訪問公網(wǎng)上的服務(wù)時,內(nèi)部地址會主動發(fā)起連接,將內(nèi)部地址轉(zhuǎn)換成公有ip。網(wǎng)關(guān)這個地址轉(zhuǎn)換稱為SNAT。當(dāng)內(nèi)部需要對外提供服務(wù)時,外部發(fā)起主動連接,路由器或著防火墻的網(wǎng)關(guān)接收到這個連接,然后把連接轉(zhuǎn)換到內(nèi)部,此過程是由帶公有ip的網(wǎng)關(guān)代替內(nèi)部服務(wù)來接收外部的連接,然后在內(nèi)部做地址轉(zhuǎn)換,此轉(zhuǎn)換稱為DNAT.主要用于內(nèi)部服務(wù)對外發(fā)布。

如果需要VPC網(wǎng)絡(luò)來訪問外網(wǎng),可以在網(wǎng)關(guān)上設(shè)置SNAT條目,它非常適合讓私有網(wǎng)絡(luò)的主機(jī)共享某個公網(wǎng) IP 地址接入 Internet。注意,這是一種從內(nèi)向外的、單向的連通形式.

反之,如果要引導(dǎo)外網(wǎng)流量進(jìn)入VPC,除了最簡單的eIP綁定到虛擬機(jī)之外,主要考慮使用負(fù)載均衡和DNAT,讓VPC的網(wǎng)關(guān)將外網(wǎng)請求的目標(biāo)地址從公網(wǎng)IP裝換為內(nèi)網(wǎng)地址。

img

擴(kuò)展閱讀
面向公有云:快速上云實踐(1)選區(qū)與規(guī)格

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容