技術人生系列——傳統集中式存儲與云化分布式存儲解析
日期:2021-01-21
作者簡介:楊學斌,現擔任中亦安圖資深架構師。專注于IT數據中心建設23年,15年以上全球領先IT企業工作經歷,8年以上專職構架師。精于IT基礎構架設計,多次參與金融、電信、大型制造業數據中心的整體規劃設計與實施工作。
文章梗概:本文通過分析基于分布式構架的云存儲與傳統集中式存儲在外部接口與內部構架上的區別,闡述各自的優勢以及適用場景,為基礎構架設計中存儲搭建提供設計選擇依據。
關鍵詞:分布式存儲;集中式存儲; FC-SAN;IP-SAN
作者:中亦科技資深架構師 楊學斌
在我的視野里,2010后存儲世界只有兩個革命性的技術進步,一個是SSD的廣泛使用導致單盤IOPS的大幅度提升,另一個是單盤容量越來越大。
這兩項技術的廣泛應用領導了最近十年存儲的演進與發展。于是大家看到了今天的存儲世界和十年前最明顯的兩大區別:
●高端集中式存儲的沒落。
●軟件定義的分布式存儲(SDS)廣泛應用于客戶的數據中心。
但是,凡事兩面看?;诋斍爸髁鞔蟊娦陨虡I客戶應用對于IT基礎構架的需求,我們并不同意很多廠家所倡導的數據中心基礎構架全面軟件化(SDDC——軟件定義的數據中心)。其中一個關鍵的技術點就是通用分布式存儲解決方案相對于傳統的FC集中存儲,依然有很大的性能差距。
本文從存儲設計構架出發,探討集中式存儲和分布式存儲的構架區別,以探求不同產品的不同應用場景。
一.數據存儲評估的幾個關鍵點
1>數據存儲方式
無論是文件,還是數據庫里使用的裸設備,我們日常使用的數據都是通過某種方式存儲在磁盤里的。我們最早接觸的數據放在本地的硬盤里,也就是以文件的形式存儲。
在外置存儲世界,常見的存儲方式有兩種。一種是數據存儲以FC(或者iSCSI)協議連接到外置的塊存儲設備。操作系統只是將其認作普通硬盤加以管理它,并不知道這塊硬盤是外置存儲的一塊邏輯空間。另一種是數據存儲以NFS(或者CIFS)網絡文件訪問協議連接到外置的文件存儲設備。從操作系統訪問看,它是一個目錄,并不知道這個目錄是在遠程存儲設備上。
還有一種我們常見的文件訪問方式,就是文件異地服務。典型的是我們從上大學就在用的FTP。但是ftp并不是NAS,我們處理ftp文件,需要先下載到本地,經過處理后再重新上傳到ftp server上。而NAS的文件處理是直接可以在NAS server上完成的。
隨著互聯網的發展,最近很多商業客戶開始使用對象存儲協議,以滿足更大容量以及云應用對接的業務需求。本質上對象存儲的方式和以前的FTP是比較相近的,但是使用的協議是完全不同的。
2>不同的數據存儲訪問需要不同的存儲性能
在當今的企業應用中,外置塊數據訪問已經至少使用了20多年了。從早期的高性能OLTP數據庫到近些年的虛擬機映像和實例,是我們最常用的高性能數據訪問方式。
網絡文件訪問同樣常用。無論是搭建文件服務器,還是使用專業NAS產品,理論上都是在訪問網絡中另一個位置的文件。最常見的就是windows的網上鄰居和linux的NFS了。
對象存儲是最近幾年隨著客戶非結構化數據快速增長而開始廣泛使用的第三種方式。本質上和我們企業以前使用的FTP區別不大,但是與公有云存儲的無縫對接和遠距離大文件訪問性能使得其快速推廣。
無論什么樣的訪問,對于存儲的需求無非容量和性能兩個維度。容量大家都懂,性能我們通??紤]以下三個因素:
IOPS:在固定的數據塊大小限定下,每秒讀寫次數
Throughput:吞吐量
Latency:每次讀寫平均需要的時間。要注意的是,我們不能只看一段時間內平均響應時間,更要看讀寫響應時間的差異以及最高讀寫響應時間。通常在傳統集中式存儲時代不被重視的指標在全SSD磁盤存儲和分布式存儲中都變得非常有意義
針對不同存儲場景的性能需求,我們使用了下圖總結:
由上圖我們可以總結出:
●小容量高性能存儲需求場景下FC存儲仍然是第一選擇。
●大容量低性能存儲需求場景下對象存儲有其特有的優勢。
●文件訪問是一個中間階段,越是高頻小文件的訪問越推薦集中式NAS,越是大文件低頻訪問越傾向于使用分布式NAS存儲。這里有一點特別要注意的是文件備份問題,集中式NAS可以通過NDMP協議快速備份大量小文件。但是分布式存儲由于自身構架問題,似乎看不到性能相當的解決方案。
我們日常工作可以參考上表并根據自己的需求來選擇采購使用存儲。
二、集中式存儲與分布式存儲在塊存儲環境下性能差異分析
當前在對象存儲上使用分布式基本上已經沒有爭議。無論是開源還是商業軟件,均已經使用分布式構架。但是在塊存儲和高端NAS上,存儲是否應該全面軟件化,存在比較大的爭議。
支持分布式的主要是一些云廠商。由于集中式存儲的封閉性,很難像分布式存儲那樣可以完美的和私有云(超融合)配合完成工作。每個私有云和超融合廠家幾乎都有自研技術的分布式存儲軟件,就連開源云平臺openstack首選也是CEPH,可見趨勢之明顯。
但是實際很多客戶卻只在外圍應用集群使用分布式存儲,而在核心數據層還是集中存儲的天下。筆者認為這種現狀是由于:
●集中式存儲可提供的容量完全可以滿足行式數據庫和中小規模虛擬化集群的需求。
●集中式存儲當前可以提供的高性能仍然是領先的。目前最好的分布式存儲可提供的性能都是對集群的,而對單一數據庫/虛擬機還是相對比較有限。
以下通過不同存儲構架的特點闡述兩種類型存儲的差異。
1>存儲網絡連接差異
在20多年前,服務器訪問外部存儲通常是通過SCSI線。后來有了專用的存儲網絡,服務器和存儲都是通過專用存儲網絡連接到服務器。這種模式沿用至今。
早期我們使用的專用的FC-SAN網絡,不僅成本高昂,而且需要專用的管理軟件,很難融入整體運維。而且SAN網絡極其關鍵,SAN網絡崩塌造成的后果必然是客戶大量生產業務停止。成為運維管理的一個老大難。
近年來分布式云存儲考慮到易用性以及廉價,往往使用萬兆以太網作為存儲網絡來替代以前的FC-SAN網絡。
但是,IP-SAN網絡畢竟是基于TCP/IP運行。TCP/IP網絡為了保證數據可完整的送達到世界上任何一個接入點,必然在數據傳輸中增加了大量的防錯措施,導致數據傳輸效率下降。
理論上FC-SAN是把存儲SCSI協議跑在光纖上,而IP-SAN則是把數據訪問通過以太網絡傳輸完成。
具體比較可參考下表:
2>數據寫入性能差異
集中式存儲組成分為前端和后端,前端由雙控制器或者多控制器組成,后端由一組一組的磁盤構成。
一個重要的技術點就是服務器寫入存儲時,寫到前端控制器里的cache就已經認為寫完成。準確的是說寫在內存中就算完成了。所以集中式存儲可以有很高的寫效率。寫在內存是不是很危險?是的,但是集中式存儲使用兩個技術來保證寫入cache的不會丟失。
為了應對控制器失敗,通常集中式存儲至少有兩個控制器。在我們寫入一個控制器的cache時候,控制器會自動把數據通過高速專用總線寫入另一個控制器。以保證控制器失敗切換的時候數據不會丟失。
集中式存儲通常會配置電池,就是為了在發生意外斷電的時候,可以提供足夠的電能,把cache中的數據寫入硬盤或者某個臨時空間。
分布式存儲由于節點之間沒有高速通信通路,在數據寫入一個節點時,需要通過以太網同步寫入另一個節點,以保證數據的安全。
分布式存儲通常使用標準的X86服務器作為硬件,通常使用SSD內置硬盤作為緩存,服務器通過以太網將數據寫入SSD硬盤即算完成寫入過程。
以上兩種不同的寫入方式會導致兩種存儲在寫入延時產生十倍以上的差異。盡管分布式存儲也可以在某些測試環境下給出比較高的IOPS,但是在OLTP數據庫環境下,還是首選高效的集中式存儲。
三、分布式存儲構架對于性能的影響
不同的分布式存儲構架也會導致不同的性能和擴展性,主要體現在元數據的存儲位置。
下面我們以最常見的兩種分布式存儲舉例。
HDFS文件系統的name node和data node 是分開的,通常需要先訪問name node得到數據存儲位置,再去data node讀寫數據。如下圖所示:
另一種方式是元數據和數據物理混用,這種結構最大的優勢是所需要存取的數據和元數據有可能在同一臺服務器上,從而減小了數據存儲路徑。但是隨著集群數量的增加,元數據應該設置幾份呢?如果包含元數據的服務器脫離集群,是否需要馬上在其它節點上復制一份元數據?每個軟件各不相同,但是原理是一樣的。下面是IBM的GPFS軟件讀寫過程,可做參考。
通過兩種方式的對比,可以看出元數據單獨存儲通??梢蕴岣呷萘?,但是速度更慢,更適合文件和對象存儲。元數據混放可以提高數據存儲速度,更適合塊存儲。
四、結語
構架在FC-SAN上傳統的集中式存儲,以高性能,高穩定性的特點仍然是企業級用戶核心業務的首選。但是由于其封閉的技術,較高的成本,擴展性差以及SAN網絡本身的運維成本,更多的客戶也開始在部分環境中使用分布式存儲取代集中式存儲。
分布式存儲通常使用開源或者商業軟件,硬件使用標準X86服務器,理論上有較高的性價比,容量和性能可按需增長配置,可更好的接受云系統的管理和調度。但是,除了在性能上的差距,多副本機制導致的磁盤利用率大幅下降,也是影響成本的重要因素。
我的每篇文章結論都是一樣的。世上從沒有一個完美的產品,只有更加適合客戶需求的產品。我們理解每個產品的優勢和不足,是為了更好的選擇應用場景。