1. 程式人生 > >Linux 磁盤分區、文件系統、目錄

Linux 磁盤分區、文件系統、目錄

ger 系統管理員 字節 windows系統 sha 根目錄 物理內存 內存不足 隨著

本文出自 “水滴石穿” 博客,請務必保留此出處http://pengyl.blog.51cto.com/5591604/1178952 1、Linux中如何表示硬盤和分區 硬盤分區包括主分區、擴展分區、邏輯分區三種類型,之所以會有這樣的區分,是因為在硬盤的主引導扇區中用來存放分區信息的空間只有64個字節(主引導扇區一共只有512字節空間),而每一個分區的信息都要占用16字節空間,因而理論上一塊磁盤最多只能擁有4個分區,當然這4個分區都是主分區。這在計算機早期是沒什麽問題的,但後來隨著硬盤空間越來越大,4個分區就遠遠不夠了,所以才又引入了擴展分區的概念。擴展分區也是主分區,但是在擴展分區中可以再創建新的分區,這些分區就被稱為邏輯分區,邏輯分區的數量就不再受主引導扇區空間大小的限制了,像IDE磁盤最多可以創建60個邏輯分區。
在Windows系統中,我們一般都是只創建一個主分區(也就是C盤),再將剩余的磁盤空間全部劃給擴展分區,最後在擴展分區中創建邏輯分區。在“磁盤管理”工具中可以清楚地查看到這種邏輯關系。

技術分享

在Linux系統中所有的磁盤以及磁盤中的每個分區都是用文件的形式來表示的。比如在你的電腦中有一塊硬盤,硬盤上劃分了3個分區,那麽在Linux系統中就會有相應的4個設備文件,一個是硬盤的設備文件,另外每個分區也有一個設備文件,所有的設備文件都統一存放在/dev目錄中。
不同類型的硬盤和分區的設備文件命名都有統一的規則,具體表述形式如下:
硬盤:對於IDE接口的硬盤設備,表示為“hdX”形式的文件名,對於SATA或SCSI接口的硬盤設備,則表示為“sdX”形式的文件名,其中“X”可以為a、b、c、d等字母序號。例如,將系統中的第1個IDE設備表示為“hda”,將第2個SATA設備表示為“sdb”。
分區:表示分區時,以硬盤設備的文件名作為基礎,在後邊添加該分區對應的數字序號即可。例如,第1個IDE硬盤中的第1個分區表示為“hda1”、第2個分區表示為“hda2”,第2個SATA硬盤中的第3個分區表示為“sdb3”,第4個分區表示為“sdb4”等。
需要註意的是,由於主分區的數目最多只有四個,因此主分區和擴展分區的序號也就限制在1~4之間,而邏輯分區的序號將始終從5開始。例如,即便第1個IDE硬盤中只劃分了一個主分區、一個擴展分區,則新建的第1個邏輯分區的序號仍然是從5開始,應表示為“sda5”,第2個邏輯分區表示為“sda6”。

技術分享

技術分享

另外,對於所有使用USB接口的移動存儲設備,不論是移動硬盤、優盤,還是USB光驅,都一律使用/dev/sdxx的設備文件。光驅(光盤)的設備文件一般默認為/dev/cdrom,這個就與光驅的接口無關了。 2.LVM知識點: 每個Linux使用者在安裝Linux時都會遇到這樣的困境:在為系統分區時,如何精確評估和分配各個硬盤分區的容量,因為系統管理員不但要考慮到當前某個分區需要的容量,還要預見該分區以後可能需要的容量的最大值。因為如果估計不準確,當遇到某個分區不夠用時管理員可能甚至要備份整個系統、清除硬盤、重新對硬盤分區,然後恢復數據到新分區。
雖然現在有很多動態調整磁盤的工具可以使用,例如Partation Magic等等,但是它並不能完全解決問題,因為某個分區可能會再次被耗盡;另外一個方面這需要重新引導系統才能實現,對於很多關鍵的服務器,停機是不可接受的,而且對於添加新硬盤,希望一個能跨越多個硬盤驅動器的文件系統時,分區調整程序就不能解決問題。
因此完美的解決方法應該是在零停機前提下可以自如對文件系統的大小進行調整,可以方便實現文件系統跨越不同磁盤和分區。幸運的是Linux提供的邏輯盤卷管理(LVM,Logical Volume Manager)機制就是一個完美的解決方案。
LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。通過LVM系統管理員可以輕松管理磁盤分區,如:將若幹個磁盤分區連接為一個整塊的卷組(volume group),形成一個存儲池。管理員可以在卷組上隨意創建邏輯卷組(logical volumes),並進一步在邏輯卷組上創建文件系統。管理員通過LVM可以方便的調整存儲卷組的大小,並且可以對磁盤存儲按照組的方式進行命名、管理和分配,例如按照使用用途進行定義:“development”和“sales”,而不是使用物理磁盤名“sda”和“sdb”。而且當系統添加了新的磁盤,通過LVM管理員就不必將磁盤的文件移動到新的磁盤上以充分利用新的存儲空間,而是直接擴展文件系統跨越磁盤即可。
LVM基本術語
LVM是在磁盤分區和文件系統之間添加的一個邏輯層,來為文件系統屏蔽下層磁盤分區布局,提供一個抽象的盤卷,在盤卷上建立文件系統。下面是幾個LVM術語:
物理存儲介質(The physical media)
這裏指系統的存儲設備:硬盤,如:/dev/hda1、/dev/sda等等,是存儲系統最低層的存儲單元。
物理卷(physical volume)
物理卷就是指硬盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。
卷組(Volume Group)
LVM卷組類似於非LVM系統中的物理硬盤,其由物理卷組成。可以在卷組上創建一個或多個“LVM分區”(邏輯卷),LVM卷組由一個或多個物理卷組成。
邏輯卷(logical volume)
LVM的邏輯卷類似於非LVM系統中的硬盤分區,在邏輯卷之上可以建立文件系統(比如/home或者/usr等)。
PE(physical extent)
每一個物理卷被劃分為稱為PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認為4MB。
LE(logical extent)
邏輯卷也被劃分為被稱為LE(Logical Extents) 的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,並且一一對應。 3.RAID知識點 RAID,為Redundant Arrays of Independent Disks的簡稱,中文為廉價冗余磁盤陣列。主要RAID級別:RAID 0、RAID 1、RAID 5、RAID 6、RAID 0+1 磁盤陣列其實也分為軟陣列 (Software Raid)和硬陣列 (Hardware Raid) 兩種. 軟陣列即通過軟件程序並由計算機的 CPU提供運行能力所成. 由於軟件程式不是一個完整系統故只能提供最基本的 RAID容錯功能. 其他如熱備用硬盤的設置, 遠程管理等功能均一一欠奉. 硬陣列是由獨立操作的硬件提供整個磁盤陣列的控制和計算功能. 不依靠系統的CPU資源. 由於硬陣列是一個完整的系統, 所有需要的功能均可以做進去. 所以硬陣列所提供的功能和性能均比軟陣列好. 而且, 如果你想把系統也做到磁盤陣列中, 硬陣列是唯一的選擇. 故我們可以看市場上 RAID 5 級的磁盤陣列均為硬陣列. 軟 陣列只適用於 Raid 0 和 Raid 1. RAID 0:將多個較小的磁盤合並成一個大的磁盤,不具有冗余,並行I/O,速度最快。RAID 0亦稱為帶區集。它是將多個 磁盤並列起來,成為一個大硬盤。在存放數據時,其將數據按磁盤的個數來進行分段,然後同時將這些數據寫進這些盤中,系統有數據請求就可以被多個磁盤並行的執行,每個磁盤執行屬於它自己的那部分數據請求。這種數據上的並行操作可以充分利用總線的帶寬,顯著提高磁盤整體存取性能, 所以,在所有的級別中,RAID 0的速度是最快的。但是RAID 0沒有冗余功能的,如果一個磁盤(物理)損壞,則所有的數 據都無法使用。 RAID 1:兩組相同的磁盤系統互作鏡像,速度沒有提高,但是允許單個磁盤錯,可靠性最高。RAID 1就是鏡像。其原理為 在主硬盤上存放數據的同時也在鏡像硬盤上寫一樣的數據。當主硬盤(物理)損壞時,鏡像硬盤則代替主硬盤的工作。因 為有鏡像硬盤做數據備份,所以RAID 1的數據安全性在所有的RAID級別上來說是最好的。但是其磁盤的利用率卻只有50%, 是所有RAID上磁盤利用率最低的一個級別。 RAID 5:是一種存儲性能、數據安全和存儲成本兼顧的存儲解決方案。RAID 5不對存儲的數據進行備份,而是把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,並且奇偶校驗信息和相對應的數據分別存儲於不同的磁盤上。當RAID5的一個磁盤數據發生損壞後,利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據。RAID 5可以理解為是RAID 0和RAID 1的折衷方案。RAID 5可以為系統提供數據安全保障,但保障程度要比Mirror低而磁盤空間利用率要比Mirror高。RAID 5具有和RAID 0相近似的數據讀取速度,只是多了一個奇偶校驗信息,寫入數據的速度比對單個磁盤進行寫入操作稍慢。同時由於多個數據對應一個奇偶校驗信息,RAID 5的磁盤空間利用率要比RAID 1高,存儲成本相對較低。硬盤的利用率為n-1。 RAID 6:與RAID 5相比,增加了第二個獨立的奇偶校驗信息塊。 兩個獨立的奇偶系統使用不同的算法, 數據的可靠性非常高. 即使兩塊磁盤同時失效,也不會影響數據的使用。 但需要分配給奇偶校驗信息更大的磁盤空間,相對於RAID 5有更大的“寫損失”。RAID 6 的寫性能非常差, 較差的性能和復雜的實施使得RAID 6很少使用。 RAID 0+1:同時具有RAID 0和RAID 1的優點。RAID0+1也通過數據的100%備份提供數據安全保障,因此RAID 0+1的磁盤空間利用率與RAID 1相同,存儲成本高。RAID 0+1的特點使其特別適用於既有大量數據需要存取,同時又對數據安全性要求嚴格的領域,如銀行、金融、商業超市、倉儲庫房、各種檔案管理等。也稱為RAID 10 冗 余:采用多個設備同時工作,當其中一個設備失效時,其它設備能夠接替失效設備繼續工作的體系。在PC服務器上,通 常在磁盤子系統、電源子系統采用冗余技術。 4. Linux使用的文件系統類型 文件系統類型決定了向分區中存放、讀取文件數據的方式和效率,在對分區進行格式化時需要選擇所使用的文件系統類型。在Windows系統中,硬盤分區通常都是采用FAT32或NTFS文件系統,而在Linux系統中,硬盤分區則大都是采用EXT4文件系統。
EXT4,第4代擴展文件系統,是RHEL6中默認使用的文件系統類型,屬於典型的日誌型文件系統。其特點是保持有磁盤存取記錄的日誌數據,便於恢復,性能和穩定性更加出色。
除了EXT4文件系統之外,Linux中還有一個比較特殊的SWAP類型的文件系統,swap文件系統是專門給交換分區使用的。交換分區類似於Windows系統中的虛擬內存,能夠在一定程度上緩解物理內存不足的問題。不同的是,在Windows系統中是采用一個名為pagefile.sys的系統文件作為虛擬內存使用,而在Linux系統中則是劃分了一個單獨的分區作為虛擬內存,這個分區就被稱為交換分區。交換分區的大小通常設置為主機物理內存的2倍,如主機的物理內存大小為1GB,則交換分區大小設置為2GB即可。 5. Linux的目錄結構 在Windows系統中,為每個分區分配一個盤符,在資源管理器中通過盤符就可以訪問相應的分區。每個分區使用獨立的文件系統,在每一個盤符中都會有一個根目錄。
在Linux系統中,將所有的目錄和文件數據組織為一個樹型的目錄結構,整個系統中只存在一個根目錄,所有的分區、目錄、文件都在同一個根目錄下面。
在Linux系統中定位文件或目錄位置時,使用“/”進行分隔(區別於Windows中的“\”)。在整個樹型目錄結構中,使用獨立的一個“/”表示根目錄,根目錄是Linux文件系統的起點。在根目錄下面按用途不同劃分有很多子目錄,而一個硬盤分區只有掛載到某個目錄中才能被訪問,這個指定的目錄就被稱為掛載點。例如將分區“/dev/hda2”掛載到根目錄“/”,那麽通過訪問根目錄“/”就可以訪問到“/dev/hda2”分區,這個分區也就稱為根分區。對於初學者,除了交換分區以外,一般只需要再創建2個分區,分別作為根分區和/boot分區,基本就可以滿足需求了。 技術分享
/root:管理員的家目錄; /bin: 可執行文件, 用戶命令 /boot: 系統啟動相關的文件,如內核、initrd,以及grub(bootloader)
/dev: 設備文件
設備文件:字符設備、塊設備
塊設備:(硬盤、光盤)隨機訪問,數據塊
字符設備:(鍵盤、鼠標)線性訪問,按字符為單位
設備號:主設備號(major device number)和此設備號(minor device number)
系統核心就是通過這兩個號碼來判斷設備的。
/etc:配置文件
/home:默認用戶的家目錄,每一個用戶的家目錄通常默認為/home/USERNAME
~:表示當前用戶的家目錄
~USERNAME:則表示USERNAME的家目錄 /var:系統執行過程中經常變化的文件
/lib:系統使用的函數庫目錄
靜態庫, .a
動態庫, Windows(.dll), Linux(.so:shared object)
/lib/modules:內核模塊文件 /usr:shared, read-only (全局共享只讀)
系統主要程序、圖形界面所需要的文件、額外的函數庫、本機自行安裝的軟件、共享目錄與文件
/usr/bin、/usr/sbin:一般身份和管理員可執行的文件
/usr/lib:各應用軟件的函數庫文件

/usr/local:
/usr/local/bin
/usr/local/sbin
/usr/local/lib

/media:掛載點目錄,移動設備
/mnt:掛載點目錄,額外的臨時文件系統
/opt:可選目錄,第三方程序的安裝目錄 -> /usr/local/
/proc:偽文件系統,內核映射文件
/sys:偽文件系統,跟硬件設備相關的屬性映射文件
/tmp:臨時文件, /var/tmp
/sbin:管理命令
/lost+found:系統發生錯誤時,會將一些遺失的片段放置此目錄

Linux 磁盤分區、文件系統、目錄