說到“存儲”,大家會想到什么?

是這個?

還是這個?

又或者是這個?

哈哈,沒錯,我們現(xiàn)在處于信息時代,每天都在和電腦、手機(jī)打交道。我們的工作和生活,已經(jīng)完全離不開視頻、音樂、圖片、文本、表格這樣的數(shù)據(jù)文件。
而所有這些數(shù)據(jù)文件,都需要通過電子設(shè)備進(jìn)行保存,這就是數(shù)據(jù)存儲,簡稱存儲。

▉ 存儲的基本載體——硬盤
存儲的載體有很多,例如各種規(guī)格的硬盤、光盤、軟盤、U盤和磁帶等。
對于普通用戶來說,最常用的存儲設(shè)備,就是硬盤。
我們知道,計算機(jī)的三大核心硬件,分別是CPU(中央處理器)、內(nèi)存(Memory)和硬盤(Hard Disk)。CPU負(fù)責(zé)運(yùn)算,硬盤負(fù)責(zé)存儲。而內(nèi)存,是CPU和硬盤之間的橋梁。用于暫時存放CPU中的運(yùn)算數(shù)據(jù)。

絕大部分的臺式機(jī)、服務(wù)器、手機(jī),都是內(nèi)置存儲系統(tǒng)。也就是說,它們的硬盤安裝在設(shè)備內(nèi)部。
以普通臺式機(jī)為例,硬盤通過專用接口和數(shù)據(jù)線,連接在主板上,實現(xiàn)和CPU、內(nèi)存的數(shù)據(jù)連接。

常用的硬盤專用接口如下:

手機(jī)等數(shù)碼設(shè)備的“硬盤”,則是做成了很小的存儲芯片,直接焊在主板上。

我們再來簡單看看硬盤的內(nèi)部結(jié)構(gòu)。
目前主流的硬盤類型有兩種,分別是傳統(tǒng)機(jī)械硬盤和SSD固態(tài)硬盤。小棗君以大家比較熟悉的機(jī)械硬盤為例進(jìn)行介紹。

硬盤之所以叫硬盤,是因為它的核心部分是一塊或多塊由堅硬金屬材料制成的盤片。盤片上面涂抹了磁性介質(zhì),兩面都可以記錄信息。在盤面上讀/寫數(shù)據(jù)的,是磁頭。

下圖顯示的是一個盤面:

盤面中一圈圈灰色同心圓為一條條磁道。從圓心向外畫直線,可以將磁道劃分為若干個弧段,每個弧段被稱之為一個扇區(qū)(Sector,圖中綠色部分)。
從側(cè)面看,如下圖所示。我們把磁道從外向內(nèi)進(jìn)行編號(最外面是0號),每個盤面中具有相同編號的磁道形成一個圓柱,稱之為磁盤的柱面。

所以,磁盤的存儲容量 = 磁頭數(shù) × 磁道數(shù) × 每磁道扇區(qū)數(shù) × 每扇區(qū)字節(jié)數(shù)。
扇區(qū)是磁盤的最小組成單元。大家應(yīng)該看出來了,越靠圓心,扇區(qū)越短。那么,是不是越往外,扇區(qū)越長,存儲的數(shù)據(jù)越多呢?
不一定。
老式的硬盤,不管靠內(nèi)還是靠外,每個扇區(qū)的大小是一樣的,都是512字節(jié)。這種硬盤用柱面-磁頭-扇區(qū)號(CHS,Cylinder-Head-Sector)組成的編號進(jìn)行尋址。
而現(xiàn)在主流的硬盤,扇區(qū)密度是一致的,也就是說,越靠外側(cè),扇區(qū)數(shù)越多。每個扇區(qū)的大小是4K字節(jié),用一個邏輯塊編號尋址(LBA,Logical Block Addressing)。
以扇區(qū)為基礎(chǔ),一個或多個連續(xù)的扇區(qū)組成一個塊,叫做物理塊。所以,硬盤往往又叫塊設(shè)備(Block Device)。

除了傳統(tǒng)機(jī)械硬盤之外,隨著自身成本的不斷下降,SSD固態(tài)硬盤(Solid State Disk或Solid State Drive)正在迅速崛起并成為主流。

這是一種由控制單元和固態(tài)存儲單元(DRAM或FLASH芯片)組成的硬盤。它的接口規(guī)范和定義、功能及使用方法上與普通機(jī)械硬盤基本相同,但速度要快得多。

固態(tài)硬盤的產(chǎn)品外形和尺寸上也與普通機(jī)械硬盤(2.5寸)一致。由于固態(tài)硬盤沒有普通硬盤的旋轉(zhuǎn)介質(zhì),因而抗震性極佳。固態(tài)硬盤內(nèi)部芯片的工作溫度范圍也很寬(-40~85℃),所以適用于很多較為苛刻的工作環(huán)境。
▉ 什么是邏輯卷?什么是文件系統(tǒng)?
為了方便管理,我們可以將硬盤這樣的物理塊設(shè)備,分割成多個邏輯塊設(shè)備?;蛘?,我們也可以將多個物理塊設(shè)備,組合成一個容量更大的邏輯塊設(shè)備。

底層的相關(guān)技術(shù)和工具,包括RAID(大家可能比較熟悉)、JBOD、卷管理系統(tǒng)(Volume Manager)。
Windows的卷管理系統(tǒng),就是它自帶的磁盤管理工具。而Linux的,是大名鼎鼎的LVM(Logical Volume Manager,邏輯卷管理)。
我們先說說Windows的。
在Windows中,磁盤分為基本磁盤和動態(tài)磁盤。默認(rèn)情況下,用戶用的都是基本磁盤。
一個基本磁盤可以劃分為多個分區(qū),分區(qū)類別包括主分區(qū)、擴(kuò)展分區(qū)和邏輯分區(qū)。

主分區(qū)是硬盤的啟動分區(qū),我們常說的“C盤”就是硬盤上的主分區(qū)。MBR分區(qū)表可以劃分出4個主分區(qū)。如果使用GPT分區(qū),可以管理128個主分區(qū)。
除去主分區(qū)以外,硬盤剩下的容量就被認(rèn)定為擴(kuò)展分區(qū)。擴(kuò)展分區(qū)不能直接使用。擴(kuò)展分區(qū)可以分成一個或若干個邏輯分區(qū),也就是我們的“D盤”、“E盤”等。

動態(tài)磁盤是基本磁盤的升級模式。在動態(tài)磁盤中,分區(qū)叫做卷。卷的出現(xiàn),就是為了便于對多硬盤進(jìn)行管理。
簡單來說,動態(tài)磁盤可以將不同硬盤分到一個卷。假如你手中有160G和250G硬盤各一塊,如果想劃分90G和320G的分區(qū),就可以借助動態(tài)磁盤來完成。
動態(tài)磁盤里面的卷,又分為簡單卷、跨區(qū)卷、帶區(qū)卷、鏡像卷、RAID-5卷。限于篇幅,就不做具體介紹了。基本磁盤里的分區(qū),現(xiàn)在也被微軟改叫為卷。
再來看看Linux的LVM工具。
其實LVM和動態(tài)磁盤的思路差不多的,也是把物理空間變成邏輯空間。
首先,物理存儲介質(zhì)進(jìn)行初始化,變成物理卷(PV,physical volume)。
然后,一個或多個物理卷組成一個卷組(VG,Volume Group)。
創(chuàng)建卷組之后,再創(chuàng)建邏輯卷(LV,logical volume)。
整個過程,如下圖所示:

LVM主要元素的構(gòu)成
好了,不管是Windows還是Linux,邏輯卷都有了,是不是可以直接使用它們啦?
不行,還差一步。那就是文件系統(tǒng)(File System)。
文件系統(tǒng)就像倉庫管理員。作為用戶,你不需要知道倉庫里面到底是什么樣子,只需要把貨物交給他,他會以一個樹形結(jié)構(gòu)目錄,登記這些貨物。你來取的時候,只需要告訴他路徑,他就會把貨物交給你。

文件系統(tǒng)有很多種類型,常見的有Windows的FAT/FAT32/NTFS(大家應(yīng)該很熟悉),還有就是Linux的EXT2/EXT3/EXT4/XFS/BtrFS等。
Windows系統(tǒng)下,通過對分區(qū)(卷)進(jìn)行文件系統(tǒng)格式化,再分配一個盤符,我們就可以在“我的電腦”里看到可用的磁盤。Linux系統(tǒng)下,我們需要對邏輯卷進(jìn)行文件系統(tǒng)格式化,然后執(zhí)行掛載操作,也就能對存儲空間進(jìn)行使用了。
▉ 什么是DAS/NAS/SAN
除了內(nèi)置存儲之外,隨著存儲容量需求的不斷增加,加上維護(hù)便利性的需要,計算機(jī)系統(tǒng)開始引入了外掛存儲。也就是說,硬盤從計算機(jī)的內(nèi)部,跑到了計算機(jī)的外部。
外掛存儲分為兩種,一種是直連式存儲(DAS,Direct Attached Storage),還有一種是網(wǎng)絡(luò)存儲(FAS,F(xiàn)abric Attached Storage)。
DAS直連式存儲,一般是使用專用線纜(例如SCSI),與存儲設(shè)備(例如磁盤陣列)進(jìn)行直連。

雖然數(shù)據(jù)存儲設(shè)備看似在外部,但直接掛接在服務(wù)器內(nèi)部總線上,是整個服務(wù)器結(jié)構(gòu)的一部分。
DAS的缺點(diǎn)是存儲設(shè)備只能連接到一臺主機(jī)使用,無法共享,成本較高,且安全性可靠性較低。
FAS網(wǎng)絡(luò)存儲,是一種多點(diǎn)連接式的存儲。它又分為NAS(Network-attached Storage,網(wǎng)絡(luò)接入存儲)和SAN(Storage Area Network,存儲區(qū)域網(wǎng)絡(luò))。
這些概念的名字非常像,大家千萬別暈。畫個圖看得明白一些:

NAS與DAS相比,最大的特點(diǎn)是非直連。它可以通過IP網(wǎng)絡(luò),實現(xiàn)多臺主機(jī)與存儲設(shè)備之間的連接。

NAS大大提高了存儲的安全性、共享性和成本。但是I/O(輸入輸出)漸漸成為性能瓶頸。隨著應(yīng)用服務(wù)器的不斷增加,網(wǎng)絡(luò)系統(tǒng)效率會急劇下降。
而SAN并不存在這個問題。
早期的SAN架構(gòu)專指FC SAN,它通過專用光纖通道交換機(jī)訪問數(shù)據(jù),采用FC協(xié)議。FC(光纖通道)的帶寬明顯高于NAS的以太網(wǎng),而且穩(wěn)定性也更好。

后來,有了iSCSI協(xié)議(Internet SCSI,2003年正式成為標(biāo)準(zhǔn))并且主流操作系統(tǒng)開始支持,就有了IP SAN(使用IP網(wǎng)絡(luò)和設(shè)備)。
說白了,iSCSI就是走IP網(wǎng)絡(luò)的SCSI。一方面擴(kuò)大了連接距離,另一方面增加了連接的服務(wù)器數(shù)量(原來的SCSI-3的上限是15)。
SAN和NAS的關(guān)鍵區(qū)別,就在于文件系統(tǒng)的位置。畫個圖就明白了:


可以看出,如果說SAN是一塊網(wǎng)絡(luò)硬盤的話,NAS基本上已經(jīng)像一臺獨(dú)立的服務(wù)器了。NAS擁有文件系統(tǒng),用戶可以通過TCP/IP協(xié)議直接訪問上面的數(shù)據(jù)。

現(xiàn)在很多家庭都開始使用小型NAS設(shè)備,相當(dāng)于一個小型服務(wù)器。
在NAS的模式下,不同的客戶端可以使用網(wǎng)絡(luò)文件系統(tǒng)(Network File System)訪問NAS上的文件。常見的網(wǎng)絡(luò)文件系統(tǒng)有Windows網(wǎng)絡(luò)的CIFS(也叫SMB)、類Unix系統(tǒng)網(wǎng)絡(luò)的NFS等。
FTP、HTTP其實也算是文件存儲的某種特殊實現(xiàn),它們通過某個URL地址來訪問一個文件。
▉ 未完待續(xù)……
隨著互聯(lián)網(wǎng)的持續(xù)發(fā)展,網(wǎng)絡(luò)上的數(shù)據(jù)量在不斷激增,這給存儲系統(tǒng)帶來了巨大的壓力和挑戰(zhàn)。
云計算的興起,會給我們?nèi)碌慕鉀Q方案嗎?
請看下期——《對象存儲的深度揭秘》
