還不知道什麼是分佈式存儲?趕緊來學習一下FusionStorage吧。

前言

本文是HCIE雲計算學習的存儲部分學習筆記,主要介紹了分佈式存儲的原理,並詳細介紹了華爲分佈式存儲產品FusionStorage。

Server SAN(分佈式存儲)

  • 概念
    由多個獨立服務器自帶的存儲組成⼀個存儲資源池(邏輯),同時融合了計算和存儲資源。
  • 特徵
    • 專有設備變通用設備(既能做計算,又能做存儲)
    • 計算與存儲線性擴展
    • 簡單管理、低TCO

Server SAN實現效果

Server SAN實現效果

華爲Server SAN產品 FusionStorage

分佈式塊存儲軟件

  • 將通用X86服務器的本地HDD、 SSD等介質通過分佈式技術組織成大規模存儲資源池。
  • 對非虛擬化環境的上層應用和虛擬機提供工業界標準的SCSI和iSCSI接口。
  • 開放的API。
    Fusion Storage

數據有效性機制

數據有效性機制

FusionStorage副本機制

分佈式存儲採用的數據有效性機制。
FusionStorage副本機制

傳統SAN架構

  • 孤立的存儲資源:存儲通過專用網絡、專用線纜連接到有限數量的服務器。
  • 存儲設備通過添加硬盤框增加容量,控制器性能成爲瓶頸。
    傳統SAN架構

傳統SAN架構

  • 機頭瓶頸:雙控~16控,且⽆法線性擴展
  • Cache瓶頸:通常爲GB
  • 網絡瓶頸: 10G FCoE、8G FC、16G FC、32G FC
  • 傳統存儲資源缺乏共享:傳統存儲設備和資源往往由不同廠家提供,之間無法進行資源共享,數據中心看到的是⼀個個孤立的存儲資源。
  • 傳統存儲一般採用集中式元數據管理方式,元數據中會記錄所有LUN中不同偏移量的數據在硬盤中的分佈,例如LUN1+LBA1地址起始的4KB長度的數據分佈在第32塊硬盤的LBA2上。每次IO操作都需要去查詢元數據服務,隨着系統規模逐漸變大,元數據的容量也會越來越大,系統所能提供的併發操作能⼒將受限於元數據服務所在服務器的能力,元數據服務將會成爲系統的性能瓶頸。

分佈式Server SAN架構

沒有集中的控制器

  • 共享式存儲資源池
  • 計算、存儲融合部署
  • 容量和性能線性增長
    分佈式Server SAN架構

Server SAN架構

  • 分佈式控制器,可線性擴展至4096節點。
  • 分佈式Cache,擴展至TB級,甚至PB級。
  • P2P無阻塞高速IB網絡,56G InfiniBand RDMA。
  • 數據中心級資源共享:⼀個數據中心內可以構建⼀個很大的存儲資源池,滿足數據中心內各類應用對存儲容量,性能和可靠性的需求;實現資源共享和統⼀管理。
  • 雲數據中心的新存儲投資選擇。
  • FusionStorage採用的DHT算法具有以下特點:
    • 均衡性:數據能夠儘可能分佈到所有的節點中,這樣可以使得所有節點負載均衡。
    • 單調性:當有新節點加入系統中,系統會重新做數據分配,數據遷移僅涉及新增節點,現有節點上的數據不需要做很大調整。
  • FusionStorage通過創新的架構把分散的、低速的SATA/SAS機械硬盤組織成⼀個高效的類SAN存儲池設備,提供比SAN設備更高的IO,把性能發揮到了極致;性能提升1-3倍。
  • FusionStorage採用無狀態的分佈式軟件機頭,機頭部署在各個服務器上,無集中式機頭的性能瓶頸。單個服務器上軟件機頭只佔用較少的CPU資源,提供比集中式機頭更高的IOPS和吞吐量。
    • 例如:假設系統中有20臺服務器需要訪問FusionStorage提供的存儲資源,每臺服務器提供給存儲平⾯的帶寬爲210Gb,我們在每臺服務器中部署1個VBS模塊(相當於在每臺服務器中部署1個存儲機頭), 20臺服務器意味着可部署20個存儲機頭,所能獲取到的總吞吐量最高可達202*10Gb=400Gb,隨着集羣規模的不斷擴大,可以線性增加的存儲機頭,突破了傳統的雙控或者多控存儲系統集中式機頭的性能瓶頸。

華爲FusionStorage兩大主要應用場景

華爲FusionStorage兩大主要應用場景

FusionStorage邏輯架構

FusionStorage Manager:FusionStorage管理的入口,包括服務器的接入,存儲池的創建,磁盤的管理。可以作爲一個虛擬機安裝在虛擬化環境裏,可以支持主備部署。

物理服務器中需要安裝以下幾個組件:
FusionStorage Agent:FusionStorage的代理,FSM和服務器之間的通信,包括指令的下發、服務器狀態的檢查,都通過代理來做的。並且還包含了三個額外的子進程:

  • MDC元數據控制進程,用於管理FusionStorage下所有的元數據,並負責把元數據安全的保存在磁盤上。
  • VBS虛擬塊存儲管理組件,用於接收操作系統下發的IO請求,並且把IO請求轉發給對應的節點。
  • OSD對象存儲設備服務

服務器有三種角色:管理、計算和存儲。
如果有OSD,一定是存儲節點。
如果有VBS,一定是計算節點。
如果有MDC,一定是管理節點。

FusionStorage邏輯架構

FusionStorage組件介紹

  • FSM(FusionStorage Manager): FusionStorage管理模塊,提供告警、監控、日誌、配置等操作維護功能。一般情況下FSM主備節點部署
  • FSA(FusionStorage Agent):代理進程,部署在各節點上,實現各節點與FSM通信。 FSA包含MDC、 VBS和OSD三種不同的進程。根據系統不同配置要求,分別在不同的節點上啓⽤不同的進程組合來完成特定的功能
  • MDC(MetaData Controller): 元數據控制,實現對分佈式集羣的狀態控制,以及控制數據分佈式規則、數據重建規則等。 MDC默認部署在3個節點的ZK(Zookeeper)盤上,形成MDC集羣。
  • VBS(Virtual Block System):虛擬塊存儲管理組件,負責卷元數據的管理,提供分佈式集羣接⼊點服務,使計算資源能夠通過VBS訪問分佈式存儲資源。每個節點上默認部署⼀個VBS進程,形成VBS集羣。節點上也可以通過部署多個VBS來提升IO性能。
  • OSD(Object Storage Device):對象存儲設備服務,執行具體的I/O操作。在每個服務器上部署多個OSD進程,⼀塊磁盤默認對應部署⼀個OSD進程。在SSD卡作主存時,爲了充分發揮SSD卡的性能,可以在1張SSD卡上部署多個OSD進程進⾏管理,例如2.4TB的SSD卡可以部署6個OSD進程,每個OSD進程負責管理400GB。

FusionStorage部署方式

  • 融合部署(一臺服務器既作爲計算資源,又作爲存儲資源)
    指的是將VBS和OSD部署在同一臺服務器中。
    虛擬化應用推薦採用融合部署的方式部署。
  • 分離部署(計算節點就是計算節點,存儲節點就是存儲節點,沒有交集)
    指的是將VBS和OSD分別部署在不同的服務器中。
    高性能數據庫應用則推薦採用分離部署的方式。

硬件要求

FusionStorage 硬件要求

CPU

FusionStorage Block對服務器CPU的要求如下:

  • 服務器架構
    • X86架構CPU
    • ARM架構CPU(ARM64 Hi1612)
      說明: ARM服務器只適用於存儲節點。
  • 部署方式
    • 融合部署:
      CPU要求≥8個超線程(Hyper Thread)
    • 分離部署:
      • 計算節點: CPU要求≥4個超線程(Hyper Thread)
      • 存儲節點: CPU要求≥6個超線程(Hyper Thread)

內存

內存佔用的計算公式如下:

  • 每個服務器佔用內存容量 = 操作系統佔用內存容量 + 運行FusionStorage Block所佔用內存容量
  • FusionStorage Block所佔用的內存容量 = MDC進程佔用內存容量 + VBS進程佔用內存容量 + OSD進程佔用內存容量 + 緩存佔用內存容量

MDC進程佔用內存容量: 5GB,所有存儲節點均需要爲MDC進程預留5GB內存
空間

VBS進程佔用內存容量: 當使用普通網卡時,VBS進程佔用8GB內存;當使用IB用卡時,VBS進程佔用10.5GB內存。

OSD進程佔用內存容量:
當使用SSD卡或者NVMe SSD設備做主存時,佔用內存爲M × 主存SSD設備個數 ×[SSD設備容量GB/實際切分容量(默認切分容量是600GB)]
其中,“M” 根據切分容量的不同,取值如下:

  • 切分容量≤ 2T: M=3.5GB
  • 切分容量>2T時,容量每增加2T, M的取值增加1GB。 例如: 2T< 切分容量≤4T時, M=4.5GB; 4T< 切分容量≤ 6T時, M=5.5GB。

如果SSD設備容量GB/實際切分容量的值不爲整數,且小數部分的值大於0.1,系統默認剩餘容量爲1個切分單位,切分個數爲整數部分的值加1。如果小數部分的值小於或者等於0.1,系統默認剩餘容量不計入,切分個數爲整數部分的值。例如:SSD設備容量GB/實際切分容量值爲3.2時,切分個數位4。 SSD設備容量GB/實際切分容量值爲3.1時,切分個數爲3。

當使用磁盤做主存時,佔用內存爲N × 該服務器磁盤個數
其中,“N” 根據網絡和磁盤的不同,取值如下:

  • 使用IB網絡時,根據單個磁盤容量的不同,取值如下:
    • 容量≤ 2T: N=2.4GB
    • 容量>2T時,容量每增加2T, N的取值增加1GB。 例如: 2T< 容量≤ 4T時,N=3.4GB; 4T< 容量≤ 6T時, N=4.4GB。
  • 使用10GE網絡時,根據單個磁盤容量的不同,取值如下:
    • 容量≤ 2T: N=2GB
    • 容量>2T時,容量每增加2T, N的取值增加1GB。 例如: 2T< 容量≤ 4T時,N=3GB; 4T< 容量≤ 6T時, N=4GB。

緩存佔用內存容量:當緩存採用NVDIMM或者不使用緩存時,內存佔用容量爲0;當
緩存採用SSD卡或者SSD盤時,內存佔用爲(該服務器SSD緩存總大小GB× 8)/1024
其中, SSD緩存總大小的單位爲GB。

例如,10GE組網場景下,系統規劃創建2個存儲池,服務器操作系統佔用內存爲8G, 使用2T的SATA盤做爲數據盤(有4塊數據盤),使用1塊2.4T的SSD卡做緩存,則內存應設置爲:
操作系統佔用8GB + MDC進程佔用5GB + VBS進程佔用8GB + OSD進程佔用2GB×4 + 緩存佔用(2.4× 1024GB× 8)/1024 = 48.2 GB

網絡

計算節點:

  • 物理服務器網卡支持單網口(eBackup節點, CVM節點等需要使用單網口)和配置activebackup(Bond模式爲1)模式的網口聚合。
  • 10GE組網時,硬件至少爲210Gb組網,其中至少26Gb用於存儲平面。
  • 網卡和網絡類型:GE(TCP/IP協議)、10GE(TCP/IP協議)、40GbIB(RDMA協議)、56Gb IB(RDMA協議)、10GE/25GE RoCE(RDMA協議)。
  • 建議網絡時延小於1ms, 丟包率小於3%。

存儲節點:

  • 物理服務器網卡要求配置網口聚合(Bond),模式爲active-backup(Bond模式爲1)。
  • 10GE組網時,硬件至少爲210Gb組網,其中至少26Gb用於存儲平面。
  • 40Gb/56Gb IB組網時,帶寬共享皆可滿足要求。
  • 網卡和網絡類型: 10GE(TCP/IP協議)、 40Gb IB(RDMA協議)、56GbIB(RDMA協議)、10GE/25GE RoCE(RDMA協議)。
  • 使用機櫃級安全時,機櫃間至少爲410Gb帶寬,每服務器至少爲210Gb帶寬,其中存儲平面至少2*6Gb及以上帶寬。
  • 建議網絡時延小於1ms, 丟包率小於3%。

系統盤

系統盤配置RAID1

FusionStorage Manager配置要求

FSM配置要求

組網配置

FusionStorage網絡平面

  • 管理平面
    FMS與FSA通信的平面
  • 存儲平面
    OSD、MDC以及VBS之間所通信使用的平面
  • 業務平面
    VBS對外提供業務的時候,所使用的平面
    FusionStorage網絡平面

以太網組網

以太網組網

FusionStorage Infiniband組網介紹

  • 數據庫和數據倉庫場景下,數據庫和數據倉庫單獨部署在作爲計算節點的物理服務器上,運行企業關鍵數據庫、數據倉庫、關鍵ERP/CRM等應用,推薦使用40G/56G Infiniband組網。
  • 每服務器配置雙端口IB網卡,兩個IB網口配置爲主備bond,分別連接到兩塊IB交換機(板) 。
  • 每框(櫃)的兩塊IB交換機(板)之間不配置主備,也不配置堆疊,各自獨立 。
  • 匯聚框(櫃)與擴展框(櫃)之間的IB 交換機(板)通過IB線纜連接,不用配置trunk 。
  • IB連線規則:
    擴展框(櫃)的存儲帶寬要大於等於計算框(櫃)的輸出帶寬,儘量發揮存儲框的帶寬。

Fusion Storage IB組網介紹

配置規格及約束

FusionStorage難點!

FusionStorage ZK盤配置原則

ZK盤:存放元數據的盤,可以使用普通的機械磁盤,也可以使用SSD磁盤,也可以使用SSD卡的分區。
ZK盤的配置原則如下:

  • 32臺服務器內,默認選擇3個獨立的ZK盤(HDD)
  • 32~128臺服務器內,默認選擇5個獨立ZK盤(HDD)
  • >128臺服務器,默認選擇5個獨立ZK盤(SSD)
  • SSD卡主存時3個ZK分區

FusionStorage MDC配置原則

  • MDC部署在3個以上節點上(默認3節點),形成MDC集羣
  • MDC進程需要佔用獨立的存儲空間,該空間稱爲ZK
  • 將系統分區分給ZK使用(全SSD卡),該分區稱爲ZK分區,即和OS盤合布, ZK分區大小爲60G, ZK分區部署時,不能和管理節點OS盤合布。此部署方式需要整個系統規模爲5或以上服務器
  • 將單個磁盤分給ZK使用,該磁盤稱爲ZK盤,即在部署MDC的服務器中,劃⼀塊硬盤來獨立部署,此時會佔用⼀個數據盤槽位。但是使用獨立ZK盤的性能和可靠性要優於ZK分區

FusionStorage配置約束

主存:一臺服務器上加入分佈式存儲資源池的磁盤。
單服務器內總主存數量: 3~36盤/卡。單臺服務器上每資源池主存數3-12(2副本)/36(3副本)。單資源池兩副本情況下最大96塊盤(SAS / SATA/ NLSAS/SSD盤/SSD卡)。三副本情況下最大爲2048塊盤或者SSD卡 。

每臺服務器內每資源池Cache介質數量: 0~4,並且小於硬盤/主存介質數量, 集羣內初始各服務器間Cache介質數量可不⼀樣;但同⼀資源池內初始各服務器間Cache介質數量必須⼀樣。

服務器內硬盤/主存類型可不⼀樣,每⼀種硬盤/主存類型都可劃分到不同資源池,比如SATA劃個池、 SSD盤劃個池、 SSD卡劃個池;但資源池內各服務器間硬盤/主存類型必須⼀樣。

資源池內初始各服務器間硬盤/主存數量可不一樣,可以相差1-2個,但相差2個時,最多相差小於等於30%比例(如6個盤,⼀個是4個盤,相差比例爲33%,超過了30%,則不能組成資源池,如果是8個和6個則可以)。

服務器內硬盤/主存大小可以不⼀樣,大小不一(類型形同)的硬盤/主存,可以劃入同⼀個資源池,但只能大的當小的用。

每個節點上的存儲網絡配置要保持⼀致。

FusionStorage支持的主存類型: SATA/NLSAS盤SAS盤SSD盤以及SSD卡
從IO性能看, SSD卡>SSD盤> SAS盤>SATA/NLSAS盤
從每GB成本看, SSD卡>SSD盤>SAS盤> SATA/NLSAS盤
Cache類型的選擇: No Cache、 SSD盤和SSD卡(華爲推薦)、 NVDIMM(特殊的插在內存上的緩存)
No Cache指的是沒有Cache加速,原則上僅在SSD盤或者SSD卡做主存情況下采用
SSD盤/SSD卡在SAS盤或者SATA/NLSAS盤做主存情況下使用
NVDIMM跟服務器硬件緊耦合,當前僅在華爲E9000系列服務器和RH2288H服務器中支持,原則上也僅在SSD盤或者SSD卡做主存情況下采用,不推薦使用
從Cache時延看, NVDIMM<SSD卡<SSD盤
單部件容量看, SSD卡>SSD盤>NVDIMM, Cache容量越大,加速性能會越好
⼀般情況下默認採用SSD卡做Cache
存儲網絡類型的選擇:萬兆或者千兆以太網絡(10GE/GE) 和IB網絡

FusionStorage有效容量及性能估算

  • 單盤或卡的有效容量(TB) = (z/(1.024^4)-p*r/1024)*q/k
    Z=盤或SSD卡標稱容量(TB) , z爲GB時,需轉換爲TB(GB/1000)
    r= FusionStorage OSD開銷(GB)
    P=主存對應的OSD進程數, HDD和SSD盤, 1個硬盤上運行的OSD進程數爲1; SSD卡,不同的卡進程數不同
    k=副本數
    q=磁盤空間利用率
  • FusionStorage有效容量=單盤或卡的有效容量*總盤或卡數
  • 項目所需的總盤數=roundup(有效容量總需求/單盤或卡的有效容量,0)
  • FusionStorage總IOPS=單主存性能值*主存數量

例如,⼀共配置20臺服務器,每臺配置了12個4T SATA盤,這些盤都用於FusionStorage的數據盤, 3副本,磁盤利用率取0.95。則單盤有效容量=(4/(1024^4) -120.7/1024))0.95/3=1.15T, 總有效容量=20121.15=276TB; 反過來,如果需要配置200TB的有效容量,則需求的4TB盤數量:硬盤數量=roundup(200/1.15,0) =174個,如果每個服務器配置12個4TB盤,則服務器數量=roundup(174/12,0) =15臺。

  • 如某主存單IOPS=510, 主存數量36,則FusionStorage總提供IOPS=510*36=18360。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章