linux存儲系統流程簡介

存儲系統是linux系統非常重要,也是非常基礎的知識點。整個存儲系統涉及到知識點也非常的多。

本文主要通過磁盤簡介->分區管理->文件系統管理->文件存儲結構->軟連接和硬鏈接->掛載原理->常見存儲相關操作命令,這一條主線來讓大家對linux的整個存儲系統有個初步,清晰的了解.

1.磁盤簡介

    眾所周知,磁盤是數據存儲的基礎物理元件?,F在我們來對這個基礎原來進行解剖,看看其的內部結構以及工作原理。

19d40b1223046092f80be528e3859173.jpg

1.1

   如圖1.1所示,硬盤的內部就是由盤片,磁頭,轉軸等物理元件組成的。那么我們在來看看一些在其工作原理之上的一些虛擬概念以便我們能夠更好的去了解它其更細微的工作原理。

   首先是從盤片開始,對單個盤片來說,我們要掌握的兩個非常重要的概念就是磁道和扇區,盤片轉一圈畫出來的圓就是磁道。而磁道再往下細分就有個扇區的概念,記住扇區是硬盤的最小存儲物理量,通常一個扇區的存儲大小約為512字節。對多了盤片來說,我要掌握另一個非常重要的概念就是柱面,多個盤片的同一個磁道,所抽象出來的概念就叫柱面。記住柱面是分區時的最小單位。

   接著就是磁頭,磁頭的主要工作就是在盤片上里外來回往返的讀取和寫入數據。

   2.分區管理

   從分區開始往后的概念,已經和磁盤的物理組件沒有什么直接關系了。概念也會越來越抽象,也容易混淆。先說說磁頭的運作是很機械的,只能是在一個方向上來回的運動而已。怎么才能讓磁頭高效的準確的定位到所需要的數據上呢?于是有了分區,分了區后,磁頭就會知道哪些數據靠盤片外一點,哪些數據靠盤片的里面一點。前面已經提醒過,分區的最小單位是柱面,分區的時候也就是按第1到第1000個柱面設定為一個分區。

    大家有沒有想過,在分區時候的這些約定信息存放在哪里呢?其實這些信息存在的主引導區(MBR)上,也就是硬盤的第0個柱面上。MBR只提供四個分區信息的記憶能力,所以一般情況下就有個3個主分區+1個擴展分區。

   3. 文件系統管理

   就想一個機器人,沒有給它注入系統,它也就是一堆破鐵。硬盤也是一樣,要想讓磁盤能夠工作也同樣需要注入一個系統。為分區格式化就是給分區注入一個讓操作系統能夠識別的文件系統。因為每個操作系統能夠識別的文件系統都不相同。每個分區都應該對應一個文件操作系統。

   每個大的概念下,都會存在一些小的單位概念。所以在文件系統上也就有了“塊”的概念。塊是文件系統下的最小存儲單位。一個塊的存儲大小為扇區的2^n倍數。
   4.
文件存儲結構

   有個文件系統,那接下來,可以來了解一下文件系統的結構組成。以一個正統的linux文件系統ext2為例。

b41d5898-3e07-4773-92a6-3081fece898b.png

4.1

   如圖4.1所示,文件系統分成了若干個組塊,而每個組塊大體上分為了兩個區域,數據區以及源數據區。數據區存放的是數據的內容本身,而源數據區存放的是一些與數據的內容本身無關的一些為了達到某種管理機制的數據。

   在源數據區中,inode表,記錄的是文件的屬性和文件所在數據塊的地址。由于inode表中的數據量大,為了提高檢索效率,所以建立了inode位圖索引,同理,也為數據塊建立了塊位圖索引。于是乎我們就可以很好的理清楚整個流程是這樣的:

   操作系統向à文件系統發來數據讀寫指令à文件系統根據inode位圖索引à找到對應的inodeà從對應的inode中找到文件存放的數據塊地址à塊位圖索引à根據地址找到對應的數據塊。

   同樣的問題,那么文件系統本身的信息和數據結構信息存放在哪里呢?這些信息存放在“超級塊”中。

   5. 軟連接和硬鏈接

   有個inode的概念后,我們再來探討軟連接和硬鏈接就容易理解多了。

硬連接:就是把一個文件指向同一個inode,也就是讓這個文件共享同一個inode以及inode所指向的數據塊。

軟連接:也叫符號連接,他只是對源文件在新的位置建立一個“快捷方式”。

復制跟硬鏈接是不同的機制:

復制,會使用新的inode,而且會啟用新的磁盤塊;復制時會發現使用空間變大了。硬鏈接,不使用新的inode,也不會啟用新的數據塊,所以硬鏈接不會讓使用空間變大。

6.文件掛載原理

操作系統有了,文件系統也有了,那么接下來要啟用文件系統,操作系統怎么找到文件系統呢?是不是應該給一個入口才是呢?所以我們要使用“掛載”來建立這個訪問入口。

掛載:將額外的文件系統與根文件系統某現存的目錄建立關聯關系,并使得此目錄作為其他文件訪問入口的行為。

7.常見存儲相關操作命令

以上已經把整個存儲相關的概念和流程都梳理了一下,下面回到實際操作中來,如何在centos6中通過相關命令來完成這些流程。

有了磁盤設備后,先通過fdisk來對磁盤進行分區àkpartx加載分區表àmkfsmke2fs來為分區創建文件系統àmount將創建好的文件系統掛載到linux系統中àblkid查看塊設備屬性信息àtune2fs查看指定文件系統信息àdumpe2fs 查看超級塊信息和組塊信息

 

 

原創文章,作者:liang555856,如若轉載,請注明出處:http://www.www58058.com/9960

(1)
liang555856liang555856
上一篇 2015-12-14
下一篇 2015-12-15

相關推薦

  • 終端的類型

    Linux下的終端是一個連接系統的接口,它有以下幾個分類     tty:虛擬終端       tty是Teletype的縮寫。Teletype是最早出現的一種終端設備,很象電傳打字機(或者說就是?),是由Teletype公司生產的。   &nbsp…

    Linux干貨 2016-10-20
  • Linux基礎知識總結

    Linux基礎知識 計算機系統 計算機硬件組成 1.控制器:計算機系統的控制中心,協調各部分工作,保證計算機按照預先規定的目標和步驟進行操作及處理。 2.運算器:對數據進行算數運算,邏輯判斷以及數據的比較、移位等操作。 3.存儲器:存取程序和各種數據信息。  4.輸入設備:把信息,如數字、文字、圖像等轉換為數字形式的“編碼”的設備(鍵盤,掃描儀) …

    2017-05-18
  • N27_第六周作業

    請詳細總結vim編輯器的使用并完成以下練習題 基本模式:編輯模式(命令模式),輸入模式,末行模式 模式轉換: 編輯模式–輸入模式: i:insert,在光標所在處前方輸入 a:append,在光標所在處后方輸入 o:在光標所在處的下方新建一行 I:在光標所在行行首輸入 A:在光標所在處行尾輸入 O:在光標所在處的上方打開一個新行 輸入模式&#82…

    Linux干貨 2017-10-26
  • LVS DR模型演示

    LVS DR模型演示 環境介紹: Directory     DIP eth0    10.1.249.158     VIP eth0:0  10.1.249.111 rs1  &nbsp…

    2016-10-30
  • 谷歌三大核心技術(三)Google BigTable中文版

    摘要 Bigtable是一個分布式的結構化數據存儲系統,它被設計用來處理海量數據:通常是分布在數千臺普通服務器上的PB級的數據。Google的很多項目使用Bigtable存儲數據,包括Web索引、Google Earth、Google Finance。這些應用對Bigtable提出的要求差異非常大,無論是在數據量上(從URL到網頁到衛星圖像)還是在響應速度上…

    Linux干貨 2015-04-13
  • nginx初步

    一、知識整理 1、查看進程使用的cpu;ni查看nice值 [root@localhost html]# ps axo pid,comm,psr,ni  43769 nginx          &n…

    Linux干貨 2016-10-31
欧美性久久久久