本文歡迎轉載,轉載請註明出處和做者。git
如同前面所講的服務器同樣,存儲也有不少不一樣維度的對比。
例如塊存儲、ISCSI、SAN,日常可能會聽到不懂行的人拿這幾個來對比,可是這根本不是一個維度上面的概念,根本沒法進行對比。
如下咱們從幾個維度來對存儲類型進行對比。github
特徵:磁盤裝在服務器內部,直連服務器的串行(SCSI)接口。(相似筆記本經過USB直接插入移動硬盤)sql
優勢:部署簡單,即插即用,價格便宜;數據庫
缺點:只能單臺設備使用,沒法共享。服務器
特色:磁盤陣列接入IP交換機,服務器經過IP網絡訪問存儲;(相似Windows筆記本,文件夾右鍵屬性建立共享文件夾,而後其餘客戶端能夠經過\IP共享文件夾名稱訪問)微信
優勢:磁盤陣列能夠經過IP網絡多臺服務器共享訪問,便宜;網絡
缺點:傳輸數據速率較慢,對大量讀寫IO的支持較差。併發
特色:磁盤陣列接入光纖交換機,服務器配置HBA卡接入光纖交換機訪問存儲。運維
優勢:三者裏面性能最優,IO讀寫性能最好,速度最快;nosql
缺點:價格較高,須要額外購置光纖交換機與HBA卡進行組網。
對應DAS存儲,硬盤經過IDE或SATA接口線鏈接服務器主板,數據經過SCSI協議進行封裝,而後傳輸。
對應NAS或是使用IP交換機的塊存儲,磁盤陣列設備有控制器,控制器上有NAS接口板(至關於以太網卡),經過以太網線與普通IP交換機互聯,數據先經過SCSI協議封裝,外層再封裝IP協議,再通過IP網絡傳輸。
對應SAN網絡的存儲(通常爲塊存儲),磁盤陣列設備有控制器,控制器有光纖接口,經過光纖與光纖交換機互聯,服務器須要特別配置HBA卡,鏈接光纖交換機訪問磁盤陣列,數據經過FC協議進行封裝。
對應SAN網絡存儲,但IP交換機採用具有FCoE功能的交換機,數據經過FC協議進行封裝,外層再封裝IP協議,再經過IP網絡傳輸。
集中式存儲指採用單臺/單套專用存儲硬件,對數據進行集中存放,而後經過接入FC/IP網絡的方式,共享給多臺服務器同時訪問的存儲。此類存儲的冗餘一般經過該專用硬件裏面各部分部件進行冗餘配置來解決(如一般配置至少2個控制器,磁盤須要配置熱備盤,磁盤組要作Raid,風扇、電源也冗餘配置等)。(如IBM DS8000、EMC VMAX系統列 等)
優勢是專用硬件,各部分部件冗餘,性能強勁,能夠經過增長擴展櫃與磁盤擴容容量與性能。(Scale Up)
缺點是專用硬件價格昂貴,而且一般品牌綁定,不一樣品牌之間的設備沒法搭配擴容容量使用。甚至同品牌的不一樣系列存儲產品,都不會向下兼容。而就算再高端的系列產品,受限於控制器的性能,下面能夠帶的磁盤總數與擴展櫃數,都是有限制的。所以一旦使用容量/性能超過最大值,就要弄一套新的存儲,須要業務那邊考慮如何將數據拆分到2套獨立的存儲中去。
集中式存儲主要分如下兩類:
基本對應SAN、IPSAN、DAS,指裸磁盤映射給服務器的操做系統,由操做系統對裸磁盤進行格式化(即安裝文件系統)後才能使用。
優勢是讀寫IO性能高,部分數據庫必須採用這種方式的存儲。缺點是不適合存儲數據的共享,如Linux服務器的磁盤文件系統是EXT4,而Windows的服務器文件系統爲NTFS,二者的磁盤數據沒法共享。
基本對應NAS存儲,用普通服務器也能做爲NAS使用,有專門的文件系統(NFS、CIFS),其餘服務器只要IP可達,便可以使用其做爲文件存儲,訪問的時候能看見一級級的文件目錄,無需格式化便可以上傳或下載文件。
優勢是能夠共享數據(Linux/Win的服務器都能訪問),缺點是隻適合存放文件(數據庫不能用這種)以及IO性能差。
能夠理解爲服務器+DAS+軟件:業界基本採用服務器裝大硬盤,而後分佈式部署,再經過幾臺管理服務器安裝對象存儲軟件的方式實現。管理服務器有全部數據的元數據(即全部數據的屬性,如大小,日期等),用戶訪問時先向管理服務器查詢數據所在,而後直接訪問實際存儲數據的分佈式對象存儲服務器拿數據。
優勢是分佈式的服務器同時並行對外提供服務,提高了IO性能,理論上能夠無限橫向擴展。(Scale Out)
缺點是依賴於軟件自己,操做、維護都有門檻,須要專門的技術人員去管理與運維。
分佈式存儲分別有分佈式塊存儲、分佈式文件存儲、分佈式對象存儲。
對象存儲適合存放一次上傳,屢次讀取,從不修改的數據。(例如如今移動互聯網,你們抖音發的視頻,微博、朋友圈發的文字、圖片、視頻,都有此屬性)對象一旦上傳是不能修改的。
對象存儲與傳統的存儲不太同樣,存放的東西叫對象。對象除了須要存儲的數據自己,還包括一部分叫元數據的內容(用來描述數據自己屬性的數據,例如最後修改時間,對象大小等)。對象存放在一個叫Bucket的存儲空間下,沒有文件系統、目錄等概念,存儲空間在對象存儲內有惟一的全局ID,存儲對象數據是經過KEY:VALUE的鍵值對的方式進行存儲的。用戶能夠直接經過「存儲空間對象KEY」的方式,經過網絡讀取與調用對象的VALUE。
與塊存儲與文件存儲相比:
一、文件存儲是樹狀索引式的,訪問越深刻的目錄,消耗的資源越大。對象存儲使用key:value進行存儲,讀取開銷很低。
二、塊存儲不方便進行數據共享,而文件存儲能夠將文件上傳以後,其餘用戶有訪問權限的狀況下能夠直接經過http/RestAPI等方式調用對象,從而達到數據共享。
nosql的全稱是not-only-sql,以往經常使用的數據庫都是關係型數據庫,將業務邏輯經過抽象化的方式,具象成一堆具備關聯關係的二維表,可是隨着移動互聯網的高速發展傳統的關係型數據庫在應付超大規模超大流量以及高併發的時候力不從心,特別是在SNS之類的應用,不少都是圖片、視頻等非結構化的數據。
NOSQL具備Key-Value存儲、列式存儲、對象存儲等多種形式,在特定的應用場景可以提供更快的查詢能力。
更多精彩內容,能夠關注個人微信公衆號:Waiting的運維平常
本篇文章由一文多發平臺ArtiPub自動發佈