關(guān)于存儲(chǔ)技術(shù)的入門科普
說(shuō)到 “存儲(chǔ)”,大家會(huì)想到什么?
是這個(gè)?
還是這個(gè)?
又或者是這個(gè)?
哈哈,沒(méi)錯(cuò),我們現(xiàn)在處于信息時(shí)代,每天都在和電腦、手機(jī)打交道。我們的工作和生活,已經(jīng)完全離不開視頻、音樂(lè)、圖片、文本、表格這樣的數(shù)據(jù)文件。
而所有這些數(shù)據(jù)文件,都需要通過(guò)電子設(shè)備進(jìn)行保存,這就是數(shù)據(jù)存儲(chǔ),簡(jiǎn)稱存儲(chǔ)。
▉ 存儲(chǔ)的基本載體——硬盤對(duì)于普通用戶來(lái)說(shuō),最常見的存儲(chǔ)設(shè)備,就是硬盤。
我們知道,計(jì)算機(jī)的三大核心硬件,分別是 CPU(中央處理器)、內(nèi)存(Memory)和硬盤(Hard Disk)。CPU 負(fù)責(zé)運(yùn)算,硬盤負(fù)責(zé)存儲(chǔ)。而內(nèi)存,是 CPU 和硬盤之間的橋梁。用于暫時(shí)存放 CPU 中的運(yùn)算數(shù)據(jù)。
CPU、內(nèi)存、硬盤
絕大部分的臺(tái)式機(jī)、服務(wù)器、手機(jī),都是內(nèi)置存儲(chǔ)系統(tǒng)。也就是說(shuō),它們的硬盤安裝在設(shè)備內(nèi)部。
以普通臺(tái)式機(jī)為例,硬盤通過(guò)專用接口和數(shù)據(jù)線,連接在主板上,實(shí)現(xiàn)和 CPU、內(nèi)存的數(shù)據(jù)連接。
臺(tái)式機(jī)上安裝好的硬盤
常用的硬盤專用接口如下:
手機(jī)等數(shù)碼設(shè)備的 “硬盤”,則是做成了很小的存儲(chǔ)芯片,直接焊在主板上。
常見的手機(jī)存儲(chǔ)芯片:eMMC、UFS(更快)
我們?cè)賮?lái)簡(jiǎn)單看看硬盤的內(nèi)部結(jié)構(gòu)。
目前主流的硬盤類型有兩種,分別是傳統(tǒng)機(jī)械硬盤和 SSD 固態(tài)硬盤。小棗君以大家比較熟悉的機(jī)械硬盤為例進(jìn)行介紹。
左邊是機(jī)械硬盤,右邊是 SSD 固態(tài)硬盤
硬盤之所以叫硬盤,是因?yàn)樗暮诵牟糠质且粔K或多塊由堅(jiān)硬金屬材料制成的盤片。盤片上面涂抹了磁性介質(zhì),兩面都可以記錄信息。在盤面上讀 / 寫數(shù)據(jù)的,是磁頭。
硬盤,也叫磁盤(有點(diǎn)像唱片機(jī))
下圖顯示的是一個(gè)盤面:
盤面中一圈圈灰色同心圓為一條條磁道。從圓心向外畫直線,可以將磁道劃分為若干個(gè)弧段,每個(gè)弧段被稱之為一個(gè)扇區(qū)(Sector,圖中綠色部分)。
扇區(qū)是磁盤的最小組成單元。大家應(yīng)該看出來(lái)了,越靠圓心,扇區(qū)越短。那么,是不是越往外,扇區(qū)越長(zhǎng),存儲(chǔ)的數(shù)據(jù)越多呢?
不一定。
老式的硬盤,不管靠?jī)?nèi)還是靠外,每個(gè)扇區(qū)的大小是一樣的,都是 512 字節(jié)。這種硬盤用柱面 - 磁頭 - 扇區(qū)號(hào)(CHS,Cylinder-Head-Sector)組成的編號(hào)進(jìn)行尋址。
而現(xiàn)在主流的硬盤,扇區(qū)密度是一致的,也就是說(shuō),越靠外側(cè),扇區(qū)數(shù)越多。每個(gè)扇區(qū)的大小是 4K 字節(jié),用一個(gè)邏輯塊編號(hào)尋址(LBA,Logical Block Addressing)。
以扇區(qū)為基礎(chǔ),一個(gè)或多個(gè)連續(xù)的扇區(qū)組成一個(gè)塊,叫做物理塊。所以,硬盤往往又叫塊設(shè)備(Block Device)。
▉ 什么是邏輯卷?什么是文件系統(tǒng)?為了方便管理,我們可以將硬盤這樣的物理塊設(shè)備,分割成多個(gè)邏輯塊設(shè)備。或者,我們也可以將多個(gè)物理塊設(shè)備,組合成一個(gè)容量更大的邏輯塊設(shè)備。
底層的相關(guān)技術(shù)和工具,包括 RAID(大家可能比較熟悉)、JBOD、卷管理系統(tǒng)(Volume Manager)。
Windows 的卷管理系統(tǒng),就是它自帶的磁盤管理工具。而 Linux 的,是大名鼎鼎的 LVM(Logical Volume Manager,邏輯卷管理)。
我們先說(shuō)說(shuō) Windows 的。
在 Windows 中,磁盤分為基本磁盤和動(dòng)態(tài)磁盤。默認(rèn)情況下,用戶用的都是基本磁盤。
一個(gè)基本磁盤可以劃分為多個(gè)分區(qū),分區(qū)類別包括主分區(qū)、擴(kuò)展分區(qū)和邏輯分區(qū)。
硬盤分區(qū)
主分區(qū)是硬盤的啟動(dòng)分區(qū),我們常說(shuō)的 “C 盤”就是硬盤上的主分區(qū)。MBR 分區(qū)表可以劃分出 4 個(gè)主分區(qū)。如果使用 GPT 分區(qū),可以管理 128 個(gè)主分區(qū)。
除去主分區(qū)以外,硬盤剩下的容量就被認(rèn)定為擴(kuò)展分區(qū)。擴(kuò)展分區(qū)不能直接使用。擴(kuò)展分區(qū)可以分成一個(gè)或若干個(gè)邏輯分區(qū),也就是我們的 “D 盤”、“E 盤”等。
動(dòng)態(tài)磁盤是基本磁盤的升級(jí)模式。在動(dòng)態(tài)磁盤中,分區(qū)叫做卷。卷的出現(xiàn),就是為了便于對(duì)多硬盤進(jìn)行管理。
簡(jiǎn)單來(lái)說(shuō),動(dòng)態(tài)磁盤可以將不同硬盤分到一個(gè)卷。假如你手中有 160G 和 250G 硬盤各一塊,如果想劃分 90G 和 320G 的分區(qū),就可以借助動(dòng)態(tài)磁盤來(lái)完成。
動(dòng)態(tài)磁盤里面的卷,又分為簡(jiǎn)單卷、跨區(qū)卷、帶區(qū)卷、鏡像卷、RAID-5 卷。限于篇幅,就不做具體介紹了。基本磁盤里的分區(qū),現(xiàn)在也被微軟改叫為卷。
再來(lái)看看 Linux 的 LVM 工具。
其實(shí) LVM 和動(dòng)態(tài)磁盤的思路差不多的,也是把物理空間變成邏輯空間。
首先,物理存儲(chǔ)介質(zhì)進(jìn)行初始化,變成物理卷(PV,physical volume)。
然后,一個(gè)或多個(gè)物理卷組成一個(gè)卷組(VG,Volume Group)。
創(chuàng)建卷組之后,再創(chuàng)建邏輯卷(LV,logical volume)。
整個(gè)過(guò)程,如下圖所示:
LVM 主要元素的構(gòu)成
好了,不管是 Windows 還是 Linux,邏輯卷都有了,是不是可以直接使用它們啦?
不行,還差一步。那就是文件系統(tǒng)(File System)。
文件系統(tǒng)就像倉(cāng)庫(kù)管理員。作為用戶,你不需要知道倉(cāng)庫(kù)里面到底是什么樣子,只需要把貨物交給他,他會(huì)以一個(gè)樹形結(jié)構(gòu)目錄,登記這些貨物。你來(lái)取的時(shí)候,只需要告訴他路徑,他就會(huì)把貨物交給你。
文件夾結(jié)構(gòu)
文件系統(tǒng)有很多種類型,常見的有 Windows 的 FAT/FAT32/NTFS(大家應(yīng)該很熟悉),還有就是 Linux 的 EXT2/EXT3/EXT4/XFS/BtrFS 等。
Windows 系統(tǒng)下,通過(guò)對(duì)分區(qū)(卷)進(jìn)行文件系統(tǒng)格式化,再分配一個(gè)盤符,我們就可以在 “我的電腦”里看到可用的磁盤。Linux 系統(tǒng)下,我們需要對(duì)邏輯卷進(jìn)行文件系統(tǒng)格式化,然后執(zhí)行掛載操作,也就能對(duì)存儲(chǔ)空間進(jìn)行使用了。
▉ 什么是 DAS/NAS/SAN除了內(nèi)置存儲(chǔ)之外,隨著存儲(chǔ)容量需求的不斷增加,加上維護(hù)便利性的需要,計(jì)算機(jī)系統(tǒng)開始引入了外掛存儲(chǔ)。也就是說(shuō),硬盤從計(jì)算機(jī)的內(nèi)部,跑到了計(jì)算機(jī)的外部。
外掛存儲(chǔ)分為兩種,一種是直連式存儲(chǔ)(DAS,Direct Attached Storage),還有一種是網(wǎng)絡(luò)存儲(chǔ)(FAS,F(xiàn)abric Attached Storage)。
DAS 直連式存儲(chǔ),一般是使用專用線纜(例如 SCSI),與存儲(chǔ)設(shè)備(例如磁盤陣列)進(jìn)行直連。
雖然數(shù)據(jù)存儲(chǔ)設(shè)備看似在外部,但直接掛接在服務(wù)器內(nèi)部總線上,是整個(gè)服務(wù)器結(jié)構(gòu)的一部分。
DAS 的缺點(diǎn)是存儲(chǔ)設(shè)備只能連接到一臺(tái)主機(jī)使用,無(wú)法共享,成本較高,且安全性可靠性較低。
FAS 網(wǎng)絡(luò)存儲(chǔ),是一種多點(diǎn)連接式的存儲(chǔ)。它又分為 NAS(Network-attached Storage,網(wǎng)絡(luò)接入存儲(chǔ))和 SAN(Storage Area Network,存儲(chǔ)區(qū)域網(wǎng)絡(luò))。
這些概念的名字非常像,大家千萬(wàn)別暈。畫個(gè)圖看得明白一些:
NAS 與 DAS 相比,最大的特點(diǎn)是非直連。它可以通過(guò) IP 網(wǎng)絡(luò),實(shí)現(xiàn)多臺(tái)主機(jī)與存儲(chǔ)設(shè)備之間的連接。
NAS 大大提高了存儲(chǔ)的安全性、共享性和成本。但是 I/O(輸入輸出)漸漸成為性能瓶頸。隨著應(yīng)用服務(wù)器的不斷增加,網(wǎng)絡(luò)系統(tǒng)效率會(huì)急劇下降。為了解決這個(gè)問(wèn)題,出現(xiàn)了 SAN 存儲(chǔ)方案。
SAN 是在 NAS 基礎(chǔ)上做的演進(jìn)。它通過(guò)專用光纖通道交換機(jī)訪問(wèn)數(shù)據(jù),采用 ISCSI、FC 協(xié)議。
SAN 和 NAS 的關(guān)鍵區(qū)別,就在于文件系統(tǒng)的位置。畫個(gè)圖就明白了:
可以看出,如果說(shuō) SAN 是一塊網(wǎng)絡(luò)硬盤的話,NAS 基本上已經(jīng)像一臺(tái)獨(dú)立的服務(wù)器了。NAS 擁有文件系統(tǒng),用戶可以通過(guò) TCP/IP 協(xié)議直接訪問(wèn)上面的數(shù)據(jù)。
現(xiàn)在很多家庭都開始使用小型 NAS 設(shè)備,相當(dāng)于一個(gè)小型服務(wù)器。
在 NAS 的模式下,不同的客戶端可以使用網(wǎng)絡(luò)文件系統(tǒng)(Network File System)訪問(wèn) NAS 上的文件。常見的網(wǎng)絡(luò)文件系統(tǒng)有 Windows 網(wǎng)絡(luò)的 CIFS(也叫 SMB)、類 Unix 系統(tǒng)網(wǎng)絡(luò)的 NFS 等。
FTP、HTTP 其實(shí)也算是文件存儲(chǔ)的某種特殊實(shí)現(xiàn),它們通過(guò)某個(gè) URL 地址來(lái)訪問(wèn)一個(gè)文件。
▉ 未完待續(xù)……隨著互聯(lián)網(wǎng)的持續(xù)發(fā)展,網(wǎng)絡(luò)上的數(shù)據(jù)量在不斷激增,這給存儲(chǔ)系統(tǒng)帶來(lái)了巨大的壓力和挑戰(zhàn)。
云計(jì)算的興起,會(huì)給我們?nèi)碌慕鉀Q方案嗎?