IT貓撲網:您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉貼|軟件發(fā)布

您當前所在位置: 首頁操作系統(tǒng)LINUX → Linux文件系統(tǒng)精通指南

Linux文件系統(tǒng)精通指南

時間:2015-06-28 00:00:00 來源:IT貓撲網 作者:網管聯盟 我要評論(0)

  究竟什么是"文件系統(tǒng)"?Sheryl Calish 介紹了這個概念以及它的實際應用

  盡管內核是 Linux 的核心,但文件卻是用戶與操作系統(tǒng)交互所采用的主要工具。這對 Linux 來說尤其如此,這是因為在 UNIX 傳統(tǒng)中,它使用文件 I/O 機制管理硬件設備和數據文件。

  遺憾的是,新手通常會混淆介紹 Linux 文件系統(tǒng)概念的術語。術語文件系統(tǒng) 可以在 Linux 文件編制中互換使用,用于指代幾個不同但相關的概念。除磁盤分區(qū)的具體實例外,文件系統(tǒng)還指代數據結構以及分區(qū)中文件的管理方法。

  另新手更感困惑的是,該術語還用于指代系統(tǒng)中文件的整體組織形式:目錄樹。此外,該術語還可以指代目錄樹中的每個子目錄,如在 /home 文件系統(tǒng)中。某些人認為,這些目錄和子目錄不能稱作真正意義上的文件系統(tǒng),除非它們均駐留在各自的磁盤分區(qū)上。然而,其他人卻將其稱作文件系統(tǒng),這無疑又增添了困惑。

  Linux 老手可以從上下文中理解這些術語的含義。而新手卻很難在一時半會兒就辨別出這樣的上下文。

  本文的主要目標就是提供足夠的背景知識,以幫助您辨別此術語的上下文。在闡明文件系統(tǒng)術語的細微差別的過程中,您還將學習如何將某些非常有用的相關工具從理論應用上升到實際應用。

  本文主要介紹了 2.4 版 Linux 內核中的 Linux 磁盤分區(qū)和文件管理系統(tǒng)特性。此外,還介紹了 2.6 版 Linux 內核中的新特性。

  磁盤分區(qū)概述

  Linux 和 UNIX 中的基本文件存儲單元都是磁盤分區(qū),即將一個或多個硬盤的邏輯劃分,操作系統(tǒng)將每個邏輯分區(qū)視為獨立的磁盤。文件和文件管理系統(tǒng)"居住"在磁盤分區(qū)中。Linux 將這些磁盤分區(qū)作為設備處理,進而通過 /dev 目錄中的特殊文件使用文件 I/O 機制。

  有兩種類型的設備文件:塊和字符/原始。兩者之間的一個重要差別是,塊設備被緩沖,而字符設備因為沒有文件管理系統(tǒng),所以不被緩沖。在 Oracle 集群文件系統(tǒng) (OCFS) 推出之前,使用原始設備是提高 Oracle 數據文件分區(qū)性能的常見方法。(在本文的后續(xù)部分,我們將詳細介紹原始設備。)

  存儲在磁盤最開始位置的分區(qū)表提供了該磁盤上分區(qū)的映射??梢允褂?fdisk 命令查看系統(tǒng)的分區(qū)表。

  # fdisk -l

  Disk /dev/hda:240 heads, 63 sectors, 1940 cylinders

  Units = cylinders of 15120 * 512 bytes

  Device Boot??? Start End??? Blocks?? Id? System

  /dev/hda????? 1??? 286??? 2162128+?? c???? Win95 FAT32 (LBA)

  /dev/hda2?? *???? 288?? 1940?? 12496680??? 5???? Extended

  /dev/hda5?? 288??? 289????? 15088+? 83???? Linux

  /dev/hda6?? 290??? 844??? 4195768+? 83???? Linux

  /dev/hda7?? 845??? 983??? 1050808+? 82???? Linux swap

  /dev/hda8?? 984?? 1816??? 6297448+? 83???? Linux

  /dev/hda9? 1817?? 1940???? 937408+? 83???? Linux

  分區(qū)表中的名稱 /dev/hda 至 /dev/hdd 分別代表 IDE 驅動器 1 至 4,其中 hda 代表驅動器 1,hdb 代表驅動器 2,依此類推。驅動器內的分區(qū)用數字指代,因此 /dev/hda5 是第一個 IDE 驅動器上的第五個分區(qū)。對于 SCSI 驅動器,使用了類似的命名模式:/dev/sda to /dev/sdd。

  第一至第四個分區(qū)保留給主分區(qū),第五個及隨后的分區(qū)用于邏輯分區(qū)。因此,以上所示的分區(qū)表中有一個驅動器 hda,它包含一個主分區(qū) hda1、一個擴展分區(qū) hda2 和五個邏輯分區(qū) /dev/hda5 至 /dev/hda9。以名稱 shmfs 列出的文件系統(tǒng)表示根據 Linux 2.4 中的 POSIX 標準掛載為特殊文件系統(tǒng)的共內存文件系統(tǒng)。

  您可能已經注意到,在 fdisk 列表中 LBA 是括在括號中的。LBA 表示邏輯塊尋址,它將硬盤的柱面、塊和扇區(qū)模式轉換為線性塊編號進行處理。

  在 Linux 中,分區(qū)分為主分區(qū)、擴展分區(qū)和邏輯分區(qū)。術語主分區(qū) 是先前 x86 系統(tǒng)上四個分區(qū)限制的遺留產物。與 DOS 和 Windows 不同,Linux 可以從主分區(qū)或邏輯分區(qū)啟動。用作邏輯分區(qū)占位符的主分區(qū)稱作擴展分區(qū)。擴展分區(qū)本身擁有指向一個或多個邏輯分區(qū)(它們只是主分區(qū)的子分區(qū))的分區(qū)表。在以上的 fdisk 列表中,hda2 就是一個擴展分區(qū)。

  文件管理系統(tǒng)概述

  要使分區(qū)后的磁盤可用,必須在其上構建文件系統(tǒng)。這種情況下,通常還將文件系統(tǒng)稱作"分區(qū)類型"、"基于磁盤的文件系統(tǒng)"和"文件系統(tǒng)類型"。實際上,可以將這些文件系統(tǒng)看作是文件管理系統(tǒng),這是因為該稱呼正體現了它們的功能:它們通過維護文件上的元數據,使系統(tǒng)上的文件保持狀態(tài)一致。

  Linux 項目的特點之一是需要實現與每個可用實用程序的多個樣式和首選設置的兼容性,而這種兼容性在可用文件管理系統(tǒng)的選擇上體現得最為明顯。Linux 內核內部的虛擬文件系統(tǒng) (VFS) 實現了此選擇。VFS 采用了一組可由其他文件管理系統(tǒng)使用的基本數據結構。這些數據結構是超級塊、inode、dentry(或目錄文件)和數據塊。

  每個分區(qū)都包含一個超級塊,用于維護分區(qū)中文件系統(tǒng)上的信息,包括一組在每個超級塊中唯一編號的 inode、空閑 inode 的數目以及 inode 總數、數據塊總數、空閑數據塊數和文件系統(tǒng)的狀態(tài)。文件系統(tǒng)的狀態(tài)有兩種:干凈(當文件處于未更改狀態(tài)時)和臟(當有未寫入磁盤的文件系統(tǒng)更改時)。超級塊中的一個 inode 對應著一個文件。

  除文件名外,inode 包含了有關文件的所有信息,其中包括:

  地址

  類型

  大小

  所有者

  對文件數據所在塊的引用

  文件最后一次修改和訪問的時間戳。

  可以使用以下命令查看文件的 inode:

  $ ls -i

  正如前面已經提到的,inode 只在超級塊中唯一編號,且每個分區(qū)只有一個超級塊,這就是硬鏈接無法跨越多個分區(qū)的原因。

  文件名通過 dentry 對象(用戶看到的是目錄文件)鏈接到一個 inode 編號。數據塊保存實際的文件數據。

  Linux 支持任何具備 VFS 定義的基本函數集的文件管理系統(tǒng)。對于像 vfat 這樣的文件管理系統(tǒng),Linux 項目提供了它自己的設備驅動程序。

  您可以從以下輸出中看到,同的文件管理系統(tǒng)可以存在于同一系統(tǒng)的不同分區(qū)上。

  df -T

  Filesystem??? Type?? 1K Blocks??? Used????? Available?? Use%?? Mounted on

  /dev/hda6???? reiserfs???? 4195632????? 2015020?? 2180612???? 49%??? /

  /dev/hda5???? ext2?? 14607? 3778????? 10075? 8%??? /boot

  /dev/hda9???? reiserfs???? 937372 202368??? 735004????? 22%??? /home

  /dev/hda8???? reiserfs???? 6297248????? 3882504?? 2414744???? 62%??? /opt

  shmfs?? shm??? 256220 0?? 256220 0%??? /dev/shm

  /dev/hda1???? vfat?? 2159992????? 1854192?? 305800????? 86%??? /windows/C

  當前,Oracle 用戶遇到的最常用的文件管理系統(tǒng)是 ext2/ext3、ReiserFS(不受 Oracle 支持)和 OCFS。以下是非 Oracle 分區(qū)主

關鍵詞標簽:Linux,文件系統(tǒng)

相關閱讀

文章評論
發(fā)表評論

熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 多種操作系統(tǒng)NTP客戶端配置 多種操作系統(tǒng)NTP客戶端配置 Linux操作系統(tǒng)修改IP Linux操作系統(tǒng)修改IP

相關下載

    人氣排行 Linux下獲取CPUID、硬盤序列號與MAC地址 dmidecode命令查看內存型號 linux tc實現ip流量限制 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 linux下解壓rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 關機、重啟、注銷 命令 查看linux服務器硬盤IO讀寫負載