在企業的IT基礎架構體系中,數據是很是重要的一個部分,而數據又都是存在存儲設備裏面,故存儲設備的選型及相關的技術,便顯得很是重要。linux
本文旨在講述存儲的各方面概念之餘,提出相對各類場景最適合使用的存儲技術,以供實踐參考。算法
提到存儲,首先須要思考一個問題:爲何須要存儲?數據庫
假若有100TB的數據,買來100GB大小的磁盤來存放,則須要1000個。緩存
那麼,如何將1000個硬盤鏈接起來呢?若是用通常的PC,則須要250臺。安全
數據存放起來了,如何管理和使用?性能如何?當設備損壞或發生事故時如何應對?這些都在下文中進行逐一討論。服務器
總而言之,存儲主要解決了如下的幾個主要問題:網絡
容量架構
速度ide
易於管理性能
安全:容災與備份
可擴展性
發展歷史
提到存儲的發展歷史,不得不提到IT技術的發展趨勢,從大型機到小型機,到X86服務器,再到雲主機,IT技術經歷了一系列的迭代變革。
跟隨着IT技術的進步,存儲技術也隨之有了發展,存儲產品的發展歷程就是數據保存、應用發展的過程。
存儲產品的趨勢是,使用統一存儲,即經過整合下降成本,將NAS和SAN結合起來,簡化存儲管理,提升利用率。EMC在2010年推出了VNX系列產品,首次推出了統一存儲的概念,HDS在2012年跟進,推出了HUS系列產品。
企業級存儲分類
按存儲多樣性劃分,能夠分爲三大類:存儲硬件,存儲軟件和存儲方案,而每一個類別均可以延伸出不少技術內容。
而外置存儲的硬件構成,能夠分紅如下幾個內容:
而按照基礎架構去分類,則能夠分爲三類:
DAS(Direct Attached Storage)直接掛接存儲
NAS(Network Attached Storage)網絡掛接存儲
SAN(Storage Area Network)存儲區域網絡(包括FC SAN、IP SAN)
01 DAS
開放系統的直接掛接存儲(Direct Attached Storage,簡稱DAS)已經有近四十年的使用歷史,隨着用戶數據的不斷增加,尤爲是數百GB以上時,其在備份、恢復、擴展、災備等方面的問題變得日益困擾系統管理員。
直連式存儲與服務器主機之間的鏈接通道一般採用SCSI鏈接,隨着服務器CPU的處理能力愈來愈強,存儲硬盤空間愈來愈大,陣列的硬盤數量愈來愈多,SCSI通道將會成爲IO瓶頸;服務器主機SCSI ID資源有限,可以創建的SCSI通道鏈接有限。
02 NAS
NAS(Network Attached Storage:網絡掛接存儲)按字面簡單說就是鏈接在網絡上,具有資料存儲功能的裝置,所以也稱爲「網絡存儲器」。它是一種專用數據存儲服務器。它以數據爲中心,將存儲設備與服務器完全分離,集中管理數據,從而釋放帶寬、提升性能、下降總擁有成本、保護投資。其成本遠遠低於使用服務器存儲,而效率卻遠遠高於後者。
NAS解決方案一般配置爲做爲文件服務的設備,由工做站或服務器經過網絡協議(如TCP/IP)和應用程序(如網絡文件系統NFS或者通用Internet文件系統CIFS)來進行文件訪問。大多數NAS鏈接在工做站客戶機和NAS文件共享設備之間進行。這些鏈接依賴於企業的網絡基礎設施來正常運行
NAS的優勢是支持文件共享,易於管理,缺點是其爲網絡盤,而不是系統本地SCSI盤,不支持本地文件系統,軟件兼容性差(某些數據庫和系統級軟件不可使用)。
03 SAN
存儲區域網絡(Storage Area Network,簡稱SAN)採用網狀通道(Fibre Channel ,簡稱FC,區別與Fiber Channel光纖通道)技術,經過FC交換機鏈接存儲陣列和服務器主機,創建專用於數據存儲的區域網絡。SAN通過十多年曆史的發展,已經至關成熟,成爲業界的事實標準(但各個廠商的光纖交換技術不徹底相同,其服務器和SAN存儲有兼容性的要求)。
SAN實際是一種專門爲存儲創建的獨立於TCP/IP網絡以外的專用網絡。目前通常的SAN提供2Gb/S到4Gb/S的傳輸速率,同時SAN網絡獨立於數據網絡存在,所以存取速度很快,另外SAN通常採用高端的RAID陣列,使SAN的性能在幾種專業存儲方案中傲視羣雄。
SAN因爲其基礎是一個專用網絡,所以擴展性很強,無論是在一個SAN系統中增長必定的存儲空間仍是增長几臺使用存儲空間的服務器都很是方便。經過SAN接口的磁帶機,SAN系統能夠方便高效的實現數據的集中備份。
目前常見的SAN有FC-SAN和IP-SAN,其中FC-SAN爲經過光纖通道協議轉發SCSI協議,IP-SAN經過TCP協議轉發SCSI協議。
存儲技術
01 磁盤陣列
磁盤陣列又叫RAID(廉價磁盤冗餘陣列),是指將多個類型、容量、接口,甚至品牌一致的專用硬磁盤或普通硬磁盤連成一個陣列,使其能以某種快速、準確和安全的方式來讀寫數據,從而達到提升數據讀取速度和安全性的一種手段。
所以,磁盤陣列讀寫方式的基本要求是,在儘量提升磁盤數據讀寫速度的前提下,必須確保在一張或者多張磁盤失效時,陣列可以有效地防止數據丟失。
磁盤陣列的最大特色是數據存取速度特別快,其主要功能是可提升網絡數據的可用性及存儲容量,並將數據有選擇性地分佈在多個磁盤上,從而提升系統的數據吞吐率。
如下是磁盤陣列的一些概念:
磁盤陣列:指存儲設備全部的元件(包含控制器硬盤、電源、扇等等)。
控制器:可理解是用來管理存儲中的硬盤,用來管理數據存儲裝置。
磁盤:控制器是用來讀寫數據,則磁盤是用來存儲數據的。
擴展櫃:指的是放硬盤的盒子,若是把控制器的角色比喻成火車頭,那這個就是車箱。
控制器電池:是用於保護控制器緩存的數據 ,數據存入硬盤時,要先經過控制器進行算法運算後再存入硬盤,而這個操做會存在必定延時,若是此時掉電,這一時間段的數據就會丟失,使用電池後,在必定的時間內能夠保障數據不丟失。電池還有另- -個用途就是能夠提高控制器性能。默認讀緩存(cache)是開啓的,但寫緩存是沒啓用的,所以電池在這裏就用做寫緩存使用。
備註:磁盤陣列這裏的控制器,對應PC服務器上的RAID陣列卡。
RAID產生的緣由能夠概括以下:
RAID由幾個硬盤組成,從總體上看至關於一個物理卷,在物理卷的基礎上能夠按照指定容量建立一個或多個邏輯卷,經過LUN(Logic Unit Number)來標識。
磁盤陣列有如下幾種工做模式:
RAID0, RAID1, RAID3, RAID5, RAID6, RAID10
此處咱們僅討論RAID0, RAID1, RAID5, RAID10這四種典型類型。
1.RAID0
RAID0(條帶化-分條)能夠把多塊磁盤連成一個容量更大的磁盤羣,能夠提升磁盤的性能和吞吐量。RAID0沒有冗餘或錯誤修復能力,成本低,要求至少兩個磁盤,通常只是在那些對數據安全性要求不高的狀況下才被使用。
2.RAID1
RAID1(鏡像)把一個磁盤的數據鏡像到另外一個磁盤上,在不影響性能狀況下最大限度的保證系統的可靠性和可修復性上,具備很高的數據冗餘能力,但磁盤利用率爲50% ,故成本最高,多用在保存關鍵性的重要數據的場合。RAID1的操做方式是把用戶寫入硬盤的數據百分之百地自動複製到另一個硬盤上。
3.RAID5
能夠理解爲是RAID 0和RAID 1的折衷方案。但沒有徹底使用RAID 1鏡像理念。而是使用了「奇偶校驗信息"來做爲數據恢復的方式。以四個硬盤組成的RAID 5爲例。其數據存儲方式如圖所示:圖中Ap爲A1,A2和A3的奇偶校驗信息,其它以此類推。由圖中能夠看出, RAID 5不對存儲的數據進行備份。而是把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上。而且奇偶校驗信息和相對應的數據分別存儲於不一樣的磁盤上。當RAID5的一個磁盤數據發生損壞後,利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據。
4.RAID10
RAID10(鏡像陣列條帶)像RAID0同樣,數據跨磁盤抽取,像RAID1同樣,每一個磁盤都有一個鏡像磁盤,因此RAID 10的另外一種會說法是RAID 0+1。RAID10提供100%的數據冗餘,支持更大的捲尺寸。但價格也相對較高。
對大多數只要求具備冗餘度而沒必要考慮價格的應用來講, RAID10提供最好的性能。使用RAID10,能夠得到更好的可靠性,由於即便兩個物理驅動器發生故障(每對中一個), 數據仍然能夠獲得保護。
RAID10須要4 + 2*N個磁盤驅動器(N>=0),並且只能使用其中一半的磁盤用量,例如4個250G的硬盤使用RAID10陣列,實際容量是500G。
磁盤陣列的幾種工做模式對比總結:
02 SCSI
SCSI並非專門爲硬盤設計的接口,是一種普遍應用於小型機上的高速數據傳輸技術。
SCSI接口具備應用範圍廣、多任務、帶寬大、CPU佔用率低,以及熱插拔等優勢,但較高的價格使得它很難如IDE硬盤般普及。
SCSI硬盤主要應用於中、高端服務器和高檔工做站中。
03 iSCSI
iSCSI(Internet Small Computer System Interface)是IETF制訂的一項標準,用於將SCSI數據塊映射成以太網數據包。
從根本上說, iSCSI協議是一種跨過IP網絡來傳輸潛伏時間短的SCSI數據塊的方法。
iSCSI SAN的優點:
高可用性,在服務器和存儲資源之間創建起多條通道,即便一條線路斷開仍能保持系統鏈接;
擴展性,採用交換機式的結構,IT管理人員沒必要停止應用便可完成存儲容量的擴充;
最大程度地保護存儲資源投入,可以跨平臺共享硬盤和磁帶設備;
採用咱們熟悉的以太網技術。
04 FC
FC ( Fibre Channel), 一種高速網絡技術標準( T11),主要應用於SAN (存儲局域網)
光纖和銅製電纜均可以做爲FC的傳輸介質;
從分層協議棧的角度看,FC僅僅包含了從物理層到傳輸層的規範。它的上層定義了把其餘協議做爲應用層協議進行封裝的接口,如SCSI或IP協議。
05 SAS
SAS(Serial Attached SCSI)是新一代的SCSI技術 ,和如今流行的Serial ATA(SATA)硬盤相同,都是採用串行技術以得到更高的傳輸速度,並經過縮短連結線改善內部空間等。SAS是並行SCSI接口以後開發出的全新接口。此接口的設計是爲了改善存儲系統的效能、可用性和擴充性,提供與串行ATA(Serial ATA ,縮寫爲SATA)硬盤的兼容性。
06 硬盤
硬盤是電腦上使用堅硬的旋轉盤片爲基礎的非易失性( non-volatile )存儲設備。它在平整的磁性表面存儲和檢索數字數據。信息經過離磁性表面很近的寫頭,由電磁流來改變極性方式被電磁流寫到磁盤上。
07 SSD
固態硬盤(Solid State Drives),簡稱固盤。
固態硬盤(Solid State Drive)用固態電子存儲芯片陣列而製成的硬盤,由控制單元和存儲單元(FLASH芯片、DRAM芯片)組成。
固態硬盤在接口的規範和定義、功能及使用方法上與普通硬盤的徹底相同,在產品外形和尺寸上也徹底與普通硬盤一致。
被普遍應用於軍事、車載、工控、視頻監控、網絡監控、網絡終端、電力、醫療、航空、導航設備等領域。
08 NFS
網絡文件系統是FreeBSD支持的文件系統中的一種,也被稱爲NFS(Network File System)。NFS容許一個系統在網絡上與他人共享目錄和文件。經過使用NFS,用戶和程序能夠像·訪問本地文件同樣訪問遠端系統上的文件。
NFS至少有兩個主要部分:一臺服務器和一臺(或者更多)客戶機。客戶機遠程訪問存放在服務器上的數據。爲了正常工做, 一些進程須要被配置並運行。
注: NFS由Sun microsystems公司開發。是一種網絡文件系統,而且是unix/linux操做系統的協議。
09 CIFS
CIFS(Common Internet File System)使程序能夠訪問遠程Internet計算機上的文件並要求此計算機的服務。CIFS 使用客戶/服務器模式。客戶程序請求遠在服務器上的服務器程序爲它提供服務。服務器得到請求並返回響應。
CIFS是公共的或開放的SMB協議版本,並由Microsoft使用。SMB協議如今是局域網上用於服務器文件訪問和打印的協議。
像SMB協議同樣, CIFS在高層運行,而不像TCP/IP協議那樣運行在底層。CIFS能夠看作是應用程序協議如文件傳輸協議和超文本傳輸協議的一個實現。
CIFS最典型的應用是Windows用戶可以從「網上鄰居」中找到網絡中的其餘主機並訪問其中的共享文件夾。
總結
綜上,不一樣的存儲模式是和平常使用需求緊密結合起來的,不存在絕對的優劣之說,各位小夥伴還請多多思考,根據本身生產環境的實際狀況,來選擇合適的存儲軟硬件和方案哦!