【理論研究】漫談傳統IT基礎設施07-存儲(01)

#本文歡迎轉載,轉載請註明出處和作者。

存儲是個很大的話題,而且講起來比較硬核,很多術語與知識點。我們儘量每一部分都標註重點,以及類比理解。

存儲是什麼

【理論研究】漫談傳統IT基礎設施07-存儲(01)

存儲的核心是硬盤中的磁片。(一個硬盤有很多塊)

磁盤裏面由多個鋁合金材料做的碟片構成,用於存儲數據。每個碟片會有一個讀寫磁頭通過磁化碟片來存儲數據。

碟片在格式化被劃分成爲許多同心圓,這些同心圓的軌跡叫做磁道。磁道從最外圈向最內圈由0開始編號。

碟片上的每個磁道被等分爲若干個弧段,這些弧段便是磁盤的扇區。每個扇區512個字節,扇區是磁盤可分的最小單位。
【理論研究】漫談傳統IT基礎設施07-存儲(01)

所有盤面上的同一磁道,垂直方向上構成一個圓柱,叫做柱面。

爲減少尋道時間,磁頭讀寫數據時先從同一個柱面的磁道0開始操作,然後再去往下一個柱面。

由於每個扇區的長度相等,因此0磁道周長最長,扇區最多,且各磁道角速度相等,因此外層磁道比內層磁道讀寫速率要高。

(重點:記住“扇區(sector)是磁盤可分的最小單位”即可,其他“柱面”、“磁道”那些後面都用不上)

如何使用磁盤

第一步:對磁盤進行格式化:

未格式化的硬盤稱作裸磁盤,不能被操作系統識別或直接使用。

格式化操作將裸磁盤劃分爲多個磁道,並且將多個扇區組成一個文件塊(Block),塊是操作系統能夠識別與操作的最小單位。(FAT32最小塊1KB,最大爲4GB,NTFS最小塊4KB,最大64GB)。

格式化操作其內涵是爲了將磁盤空間按照文件系統能夠識別的方法進行編址,以便文件系統進行讀寫操作。而不同的操作系統能夠支持不同的文件系統。

爲啥要編址呢,其實磁盤就像住房,如果你只有一套房,並且是自住的,那麼愛咋咋滴,反正就你自己住。但是如果你有N套房,你當房東了,那麼有租客過來了,一手交錢、一手交房卡,那麼租客如何找到他的房間而不要敲錯別人房間的門呢?房東你是不是要告訴租客他租的房間就是幾零幾號房?那麼其實這個幾零幾的編號,就是你對房間進行了編址。

其實磁盤也就一樣,裸磁盤相當於超市/圖書館門口那些臨時儲物櫃,每個扇區相當於1個儲物櫃,而操作系統相當於臨時寄存管理員,應用程序相當於帶着行李的遊客。應用程序(遊客)往裸磁盤(存儲櫃)存入東西的時候,租客不是直接隨便找個儲物櫃硬塞的,而是到寄存處,把行李交給管理員,而管理員看看哪裏有空的櫃子,然後把行李存進去,然後把帶有存物櫃編號(編址後,多個扇區組成的文件系統塊地址)的鑰匙/憑證交給遊客。等應用程序調用數據(遊客取行李)的時候,管理員根據憑證(編址),從對應的存物櫃裏面提取行李(數據)提取出來,然後交給遊客。

(重點:記住1、“格式化就是對裸磁盤空間進行編地址”,2、“文件塊(Block),塊是操作系統能夠識別與操作的最小單位”)

第二步:對磁盤進行分區

分區其實就是指定每個分區由哪個扇區開始,到那個扇區結束。

分區可以使多個分區之間的數據進行隔離。

分區後各分區可以用於格式化不同的文件系統,並且每個分區的格式化操作不會影響另外一個分區。(如平常C盤重裝WINDOWS操作系統,不會影響D、E盤數據,數據不會清空)

第一個扇區主要存儲:(1)主要開機區(Master boot record, MBR)及分割表(partition table), 其中 MBR 佔有 446 bytes,而 partition table 則佔有 64 bytes。

硬盤最多劃分4個物理分區(主分區/擴展分區),需要更多的分區就要在擴展分區上面劃邏輯分區。

數據如何寫入存儲

普通文件系統

以FAT32文件系統爲例,對硬盤進行格式化後,多個扇區組成了多個塊,並且對塊進行了編址(下圖每個矩形爲1個文件塊)。

假設每個塊爲1KB,一份4KB大小的文件,被分爲4個文件塊,分別存儲到塊1、4、7、15中去。

如1、4、7、15文件塊各位於不同的磁片,那麼每個磁片的磁頭會參與到讀取數據的操作中去。

這種方式讀寫效率低,如1、4、7文件塊都在第一塊磁盤,本來磁盤轉一圈即可讀取完3個文件塊,但是由於1後面指向7,所以轉第一圈經過4時不會讀取,讀取7後才知道要讀取4,需要轉第二圈才能夠讀取到4文件塊。
【理論研究】漫談傳統IT基礎設施07-存儲(01)

索引式文件系統

Linux的EXT4爲索引式文件系統,磁盤格式化後會生成Inode與Block,其中Block用戶存儲文件數據,Inode用來存放文件的元數據。每個文件有唯一的Inode編號。當訪問文件時,會在Inode查找對應編號,找到元數據後,就一次過知道文件分塊所有的存放位置,這個時候磁盤轉一圈就可以全部數據讀取完畢了。因此讀寫效率較高。
【理論研究】漫談傳統IT基礎設施07-存儲(01)

日誌式文件系統

傳統的文件系統,如果在寫入過程產生中斷,會產生寫入設備與被寫入設備上的數據不一致的問題,將需要啓動數據修復,修復時間長,資源消耗大,所以出現了日誌式文件系統。

在每次寫入數據之前,會先在日誌記錄緩存區中寫下要進行的寫入的數據的信息,然後纔會着手將數據以及元數據寫入到磁盤中,寫入數據完成後,又會將日誌記錄緩存區塊中的記錄寫入到磁盤的日誌記錄區,這樣如果中途出現問題,查看日誌記錄緩存區/日誌記錄區,就能找到中斷的位置或者錯誤的原因,重新進行讀寫,排錯時間短,修復時間快。
【理論研究】漫談傳統IT基礎設施07-存儲(01)

更多精彩內容,可以關注我的微信公衆號Waiting的運維日常
【理論研究】漫談傳統IT基礎設施07-存儲(01)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章