vsan概述
- vSan是什么:
vsan是一種基于軟件的分布式存儲解決方案,其之間構(gòu)架在hypervisior中,支持VMware vsphere的所有需要共享存儲的特性。
- 為什么要使用vSan:
在企業(yè),最重要的就是數(shù)據(jù),而承載數(shù)據(jù)的設(shè)備就是存儲設(shè)備,企業(yè)的存儲設(shè)備一般都是由多塊硬盤和RAID卡組成,通過 RAID 卡可以將多個磁盤組成邏輯的陣列,使得數(shù)據(jù)分散保存在多個磁盤中,實現(xiàn)高效的讀寫,實現(xiàn)冗余,避免單個磁盤故障引起的數(shù)據(jù)丟失。
其中,RAID常用的配置模式有兩種:RAID1和RAID5。
RAID1的安全性能在所有的RAID配置中最高,可以保證數(shù)據(jù)不丟失,讀寫性能與單個磁盤的讀寫性能沒有區(qū)別,但是它的磁盤利用率很低,只有50%。
RAID5的讀的性能最好,寫的性能低于單個磁盤的性能,適合多讀少寫的環(huán)境。安全性能RAID5次于RAID1,但高于其他配置方式。磁盤的利用率則高于RAID1,成本也比RAID1低。
所以,RAID1適合于存放重要數(shù)據(jù),RAID5是一種存儲性能、數(shù)據(jù)安全和存儲成本兼顧的方案。這兩種配置方式現(xiàn)在依然有許多公司在使用。
但是現(xiàn)在這種配置方式有許多的問題暴露了出來:
(1) 無法平滑按照業(yè)務的需求進行容量和性能升級
(2) 配置復雜,學習成本高,并且容易出現(xiàn)誤操作。
(3) 無法區(qū)分服務
(4) 讀寫速度不夠高
為了解決上述的問題,現(xiàn)有的最好方案就是vSan,也就是軟件定義數(shù)據(jù)中心
- vSan:
- (1)服務器內(nèi)部的連接
X86 服務器的架構(gòu)決定了每個服務器必須有 RAID 卡才能使用硬盤,多塊硬盤使用 RAID 卡匯聚到一起再和主板連接。
而在每個 vSAN 服務器內(nèi),至少需要配置一塊 SSD + 一塊 HDD,HDD
用于存儲容量,SSD 只用于讀寫緩存。
在 RAID 卡選擇上,建議使用支持直通模式(Pass Through)的 RAID 卡。在這種模式下更換硬盤、新增硬盤會非常方便(而如果配置 RAID 來供 vSAN 使用,則很多時候需要重啟主機進入 BIOS 來配置)。
SSD 70%的容量用于讀緩存,30%的容量用于寫緩存。默認所有寫的數(shù)據(jù)會被先行放在 SSD 中以減少寫延遲,通過一些機制將這些數(shù)據(jù)逐漸寫入到 HDD 中。在從 vSAN 讀數(shù)據(jù)的時候,vSAN有一套算法來決定哪些數(shù)據(jù)為熱點數(shù)據(jù),然后預先緩存到 SSD 加快讀取速度。
所以,通常也不建議使用 RAID 卡自帶的讀寫緩存,因為 vSAN 已經(jīng)有很優(yōu)化的讀寫緩存加速了。
但是,在這里需要格外注意的是
vSAN 要求 SSD、HDD、IO Controller必須在 vSAN 兼容列表內(nèi),否則會出現(xiàn)不穩(wěn)定等情況。
(2)服務器之間的連接
vsan有兩種配置,兩種需要不一樣的連接配置。
全閃存架構(gòu)vsan:
在全閃存架構(gòu)中,閃存設(shè)備被分成了兩類:一種是持久快速的閃存設(shè)備用于寫Cache,另一種是空間較大而且相對廉價的閃存設(shè)備作為容量設(shè)備。在這種架構(gòu)中,由于直接從容量層的閃存設(shè)備讀數(shù)據(jù)會有更好的性能,因此100%的Cache層容量會被用于寫cache。然而,為了盡量延長容量層閃存設(shè)備的使用周期,多數(shù)的需要寫入會被置放于cache層,只有當需要寫入到容量層時才會將數(shù)據(jù)寫入容量層的閃存設(shè)備。
這種架構(gòu)的性能更好,能夠為各種工作負載提供更為可靠、強大的性能,但對網(wǎng)絡(luò)的要求也會更高,它要求專用萬兆網(wǎng)絡(luò)網(wǎng)絡(luò),不支持千兆網(wǎng)絡(luò)。
混合架構(gòu)vSan:
cache算法會最大化的保證整個vSAN群集的讀和寫的性能。70%的可用cache會被分配用于存儲有頻繁讀操作的磁盤塊,盡量減少讀操作發(fā)生在低速的普通磁盤上。另外30%的可用cache會被分配用于寫操作,為了最大化磁盤性能,會盡可能地將多個寫操作合并后再寫入磁盤。
這種架構(gòu)性價比更高,相對全閃存更為便宜,性能也相對還行。對網(wǎng)絡(luò)的要求也會低一些,有專用千兆網(wǎng)絡(luò)即可。
(3) 故障域:
主機:
vSphere提供了 HA 功能,保證單臺主機故障后業(yè)務可以在其他主機上運行,這里故障的單位是“主機”,vSAN 也繼承了這一設(shè)定(也很合理,因為主機也需要硬件維護,在維護的時候,一臺主機能提供的所有存儲資源都會下線)。
同一個虛擬機的同一份數(shù)據(jù),必須保存在不同主機上。
結(jié)合上面的架構(gòu)和 vSAN 的網(wǎng)絡(luò)架構(gòu),假如一臺主機心跳檢測出現(xiàn)問題怎么辦?(腦裂)
這時候需要有個仲裁機制保證同時只有一份數(shù)據(jù)是活動且是最新的,否則會造成沖突。
于是在上圖的架構(gòu)中,為每份數(shù)據(jù)再創(chuàng)建一個仲裁文件,保存在第三臺主機中。
這便是 vSAN 最簡單的架構(gòu),此架構(gòu)允許一臺主機故障,當然一臺主機上的任意硬件壞掉也是允許的,只要故障發(fā)生在一臺主機內(nèi)。
下圖便是 vSAN 故障域的一個簡單示意。vSAN 中有個詞叫 FTT (Fault
to Tolerance),意為最大允許同時故障多少臺主機。FTT 決定的是虛擬機數(shù)據(jù)保護級別,也決定了一個集群所需的最小數(shù)量,一個集群中主機數(shù)量>=2N+1,N=FTT的值。
- 為什么 FTT=2,需要5臺以上的主機
曾有人質(zhì)疑:“請解釋vSAN三副本(FTT=2,也即最多允許2臺主機出故障),為什么需要5臺以上的主機?我們需要的不只是官方要求(官方文檔中,允許最少主機數(shù)量=2n+1,n代表最多允許故障的主機數(shù)量),還需要知道具體的設(shè)計原理?!?/p>
其實這樣做主要是為了防止腦裂。假設(shè)腦裂后分成兩個斷開的子集群,如果要保證某個子集群接管數(shù)據(jù)服務,則該子集群的主機數(shù)必須大于原集群主機數(shù)的50%。這也表明,主機的最小數(shù)量一定是一個奇數(shù)。
通俗來講,四臺主機不能處理兩臺主機出錯,因為可能會出現(xiàn)腦裂。比如有四臺主機A、B、C、D。如果出現(xiàn)網(wǎng)絡(luò)分區(qū),A和B不能聯(lián)系C和D。這時外界看來只是兩臺主機出現(xiàn)故障,按照FTT=2的要求必須允許讀寫繼續(xù)進行。兩邊都有兩臺主機,所以兩邊都覺得自己可以進行讀寫,這樣就會造成兩邊的數(shù)據(jù)不一致(俗稱腦裂)。解決腦裂的辦法是必須要求能接管讀寫的子集群的主機數(shù)量大于原集群總數(shù)量的50%。集群主機總數(shù)是奇數(shù),這樣就不可能出現(xiàn)兩個子集群都滿足條件的情況了。
- 為什么FTT=3,需要7臺以上的主機
用戶又問:“如果最多允許3臺主機出故障,那么需要3+1臺主機做副本節(jié)點,再加1臺主機做見證(也即仲裁)節(jié)點,總數(shù)5臺主機不就可以了嗎,為何需要7臺主機?“
之后我陷入了長長的思考,這使我想到為何不可以是2n-1,或者2n-3。我覺得可以總結(jié)成:假設(shè)n表示最多允許n臺主機出故障,如果n+1臺主機都放副本數(shù)據(jù),這只能保證數(shù)據(jù)不丟失。而對于企業(yè)級存儲而言,數(shù)據(jù)不丟失只是最低限度,除此之外,還需要保證數(shù)據(jù)的持續(xù)可訪問,即HA。
磁盤:
上面提到每臺主機需要 RAID 卡將多個硬盤連接起來,也需要至少一個 SSD 和一個 HDD。SSD 只做讀寫緩存,從經(jīng)濟的角度看,不可能每個 HDD 都配置一塊 SSD,需要多個 HDD 共享一塊 SSD的資源
在 vSAN 中,有了磁盤組這一概念,磁盤組是個邏輯的組,用于讓多塊 HDD 共享一個 SSD。
vSAN 規(guī)定每個磁盤組最少需要一塊SSD+一塊HDD,最多一塊+7塊HDD。每臺主機不能多于 5 個磁盤組
讓多塊 HDD 共享一個 SSD 雖然節(jié)約成本,但也有一定風險,比如萬一 SSD 故障,整個磁盤組的數(shù)據(jù)均會處于無法訪問的情況,因此一般建議使用多個磁盤組分散數(shù)據(jù),減少此種故障帶來的影響。
比如磁盤組一可以由一塊400G SSD + 8塊800G HHD組成
磁盤組二可以由一塊200G SSD + 4塊800G HHD組成
磁盤組一的SSD故障,vSan會損失3.2T容量
磁盤組二的SSD故障,Vsan會損失1.6T容量
- (4)區(qū)分服務
對于傳統(tǒng)存儲而言,服務的區(qū)分是存儲卷級別的。一個存儲卷的底層使用 RAID 10,上層業(yè)務獲得的存儲資源便是 RAID 10的保護級別和性能;一個存儲卷的底層使用 RAID 5,上層業(yè)務獲得的存儲資源便是 RAID 5 的保護級別和性能。
vSan可以讓你給不同的虛擬機設(shè)定不同的保護等級去保障虛擬機。
假如一臺虛擬機上跑的服務并不那么重要,我們可以給它設(shè)置儲存策略為:
FTT=1,不預留緩存,限制IOPS為100而另一臺虛擬機上運行著十分重要的服務,需要保證其服務不間斷,數(shù)據(jù)不丟失,我們可以設(shè)置存儲策略為:
FTT=2,預留10%的SSD緩存,不限制IOPS這樣我們更精準的劃分資源,為不重要的服務減少資源,用以給更重要的服務增加資源,讓其獲得更好的服務。
- vCentr6.7安裝vSan集群要求
參考文章
https://new.qq.com/omn/20180717/20180717G0AUBL.html
https://blog.csdn.net/yjk13703623757/article/details/80786090
https://blog.csdn.net/weixin_33810006/article/details/92143861
總結(jié)
- 上一篇: thinkpad e440 如何进入BI
- 下一篇: 手把手教你C51单片机(史上最详细)