<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jasmine214--love

    只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
    posts - 731, comments - 60, trackbacks - 0, articles - 0

    LINUX 文件系統(tǒng)精通指南---講的非常好

    Posted on 2010-12-30 18:35 幻海藍夢 閱讀(250) 評論(0)  編輯  收藏 所屬分類: Linux

    究竟什么是“文件系統(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ū)主要特性的匯總表。

    特性 ext2 ext3 ReiserFS3.6(不受 Oracle 支持)
    最大分區(qū)大小 4TB 4TB 16TB
    最大文件大小 2GB-4GB 2GB-4GB 8TB
    塊大小 1KB-4KB 1KB-4KB 只有 4KB
    日志功能
    崩潰后重新啟動 非???/span>
    用于恢復清除文件的工具
    崩潰后數據的狀態(tài) 良好 非常好 一般
    ACL 支持
    穩(wěn)定性 優(yōu)秀 良好 良好

    由于 ext2 和 ReiserFS 均提供了用戶級安全性以及更高效的磁盤空間使用等特性,因此盡管至少 ext2 確實提供了碎片整理工具,但幾乎不需要這些工具。Ext2 是傳統(tǒng)的、事實上的標準 Linux 文件管理系統(tǒng)。它是 Red Hat 版本 Linux 的默認文件管理系統(tǒng),而 ReiserFS 是 SUSE 的默認文件管理系統(tǒng)。ext2/ext3 的最大文件大小實際上取決于所選擇的塊大小和硬件體系結構。ext2 的許多特性之一是它允許由磁盤分區(qū)決定塊大小。ReiserFS 技術允許在磁盤分區(qū)中使用可變的文件大?。ㄟ@是因為它基于平衡樹技術而不是基于范圍),因此除日志功能以外,高效的空間使用也是其設計所固有的。

    日志文件管理系統(tǒng)(如 ext3 和 ReiserFS)記錄對文件系統(tǒng)元數據:inode、空閑塊分配映射、inode 映射等的更改。當系統(tǒng)崩潰時,可以通過此方式檢查日志以獲得最近修改的元數據,從而確??焖倩謴臀募到y(tǒng)。此功能對大型系統(tǒng)尤其重要。如果沒有此功能,則 在出現硬件故障后,對于 ext2 等文件系統(tǒng),需要在重新啟動時運行 fsck 工具。對于大型文件系統(tǒng),此過程可能要花費幾個小時。

    當然,記錄日志需要付出一定的代價,即需要在處理時間和恢復之間尋求一個平衡。對于 ext3,可以選擇日志記錄模式,這些模式允許在尋求上述平衡時做出某些自主決定。journal 模式(記錄所有文件系統(tǒng)數據,包括數據塊和元數據)是最安全但也是最慢的模式。默認模式(稱作 orderd)只記錄元數據,但在寫元數據之前先將數據塊寫入磁盤,從而在快速恢復和快速性能之間取得折衷。最快的模式是 writeback 模式,該模式只記錄元數據。在此模式中,可能會丟失文件數據,但文件系統(tǒng)自身的完整性將得到維護。

    在編寫本文檔期間,Reiser4 剛好已經發(fā)布。同 ReiserFS3.6 一樣,ReiserFS4 只記錄元數據。與 ReiserFS3.6 不同的是,它基于新的舞蹈樹算法,此算法似乎比平衡樹算法更快。它還可以擴展到使用無數個 CPU,而且在磁盤寫入時具有內置加密和壓縮功能。

    OCFS 是 Oracle 真正應用程序集群 (RAC)、配置文件和數據庫文件的指定文件管理系統(tǒng)。其他文件(甚至是 Oracle 軟件文件)將在 ext2/ext3 或 ReiserFS 上獲得更好的性能。

    當前,就文件管理系統(tǒng)的選擇來講,共同的見解是,除少數情況外,ext2、ext3 和 ReiserFS 之間的性能基本相當。然而在各種系統(tǒng)的擁護者之間卻爆發(fā)了激烈的爭論。ReiserFS 由于能夠處理可變的文件大小,因此更適用于具有許多小文件的系統(tǒng)。當然,如果您正要或計劃在 Linux 上運行 Oracle RAC,則可能需要為 Oracle 數據文件和配置文件安裝 OCFS 或使用自動存儲管理 (ASM)。

    除了最常見的 ext2/ext3 和 ReiserFS 文件系統(tǒng)以外,Linux 還支持其他本地文件系統(tǒng),包括 IBM 的 jsf 和 SGI 的 xfs。對傳統(tǒng) UNIX 文件系統(tǒng)的支持包括 SYSV、BSD、Solaris、Next 和 Veritas VxFS。在各個級別支持的其他文件系統(tǒng)包括

    • Microsoft 的 fat、ntfs、vfat、fat32
    • IBM 的 hpfs (OS/2)
    • Apple 的 Macintosh hfs
    • Amiga 的 affs
    • Acorn 磁盤文件系統(tǒng) adfs

    請注意,Oracle 不支持某些文件系統(tǒng),因此在使用這些文件系統(tǒng)時風險自負。

    Linux 內核 2.6 版中最重要的新特性是訪問控制列表 (ACL)。ACL 允許為一個或多個用戶列表或用戶組授予對單個文件的使用權限。其他新特性包括:

    • 對 CD-ROM 上使用的 ISO 9660 文件系統(tǒng)的增強支持
    • 可以存儲在文件系統(tǒng)中的默認掛載選項
    • 用于加速文件搜索的索引目錄
    • 對 Windows 的邏輯磁盤管理器(動態(tài)磁盤)的支持
    • 能夠將 ntfs 掛載為讀/寫,但寫仍處于試驗狀態(tài)
    • 對 fat12(舊 DOS 文件系統(tǒng))的增強支持

    處理分區(qū)和文件系統(tǒng)的工具

    要添加一個新磁盤或調整現有磁盤的大小,您需要使用 fdiskcfdisk。盡管 cfdisk 表面上更易于使用,但 fdisk 已被證實最適用于磁盤分區(qū)。以下是有關使用 Linux 版本 fdisk 的幾個原則,幫助您了解其可能得到的結果。

    首先,以超級用戶身份用設備名稱調用 fdisk

    # fdisk /dev/hda

    The number of cylinders for this disk is set to 1940.
    There is nothing wrong with that, but this is larger than 1024,
    and could in certain setups cause problems with:
    1) software that runs at boot time (e.g., old versions of LILO)
    2) booting and partitioning software from other OSs
    (e.g., DOS FDISK, OS/2 FDISK)

    Command (m for help):m

    可以通過使用 p(或 print)命令顯示分區(qū)表。使用 nnew 命令可創(chuàng)建新分區(qū);使用 wwrite 命令可把新分區(qū)表寫入磁盤。輸入新命令后,fdisk 需要知道您要創(chuàng)建邏輯分區(qū)還是主分區(qū):

    Command (m for help):n
    Command action
    l logical (5 or over)
    p primary partition (1-4)
    l
    No free sectors available

    Command (m for help):

    您可以看到,如果沒有任何空閑空間(如上所示),則您將收到以上消息。但如果有空閑空間,則 fdisk 需要知道您想要的分區(qū)號。如果輸入“p”(代表主分區(qū)),則您將需要做出以下選擇。

    Partition number (1-4):

    對于邏輯分區(qū),您將需要做出以下選擇

    Partition number (5 or over):

    然后,您可以輸入新分區(qū)的起始柱面號。fdisk 將推薦一個默認編號,如下所示:

    First cylinder (1-1940, default 1):1

    您可以選擇接受此編號。接下來,您需要輸入最后一個柱面或分區(qū)大?。?/span>

    Last cylinder or +sizeM or +sizeK(1-1940), default 5721:1G

    此刻,fdisk 將假設這是一個常規(guī) Linux 分區(qū)(由分區(qū)表“ID”列中的十六進制數字 83 標識)。可以使用 fdisk 中的 ttype 命令更改分區(qū)類型。可以使用 llist 命令取得 fdisk 的可用分區(qū)類型。以下是可用類型的部分列表:

    ID System
    82 Linux swap
    83 Linux
    85 Linux extended
    8e Linux LVM

    必須注意,在您運行 write 命令之前,您在 fdisk 中執(zhí)行的任何操作都將是臨時的—如果您出于任何原因要離開 fdisk,則這確實很有好處。

    重新組織分區(qū)和文件管理系統(tǒng)

    由于每個分區(qū)都包含各自的文件管理系統(tǒng),因此調整分區(qū)大小涉及調整文件管理系統(tǒng)和分區(qū)的大小。因此,可用 的重新分區(qū)工具取決于所用文件管理系統(tǒng)的類型。對于 ext2/ext3 系統(tǒng),有一些可以選擇將 resize2fs 與 fdisk、GNU Parted 或 Partition Magic 結合使用。對于 ReiserFS,只能將 cfdiskresize_resiszerfs 搭配使用,這是因為 GNU Parted 對于 ReiserFS 來說仍需改進。

    resize2fs 和 resize_reiserfs 都可以調整文件管理系統(tǒng)的大小,并要求使用單獨的分區(qū)大小調整程序 — fdisk 或 cfdisk。我本人曾使用過 GNU Parted 對 ext2 分區(qū)進行重新分區(qū)。這是一個相當容易使用的程序。GNU Parted 對 ReiserFS 的支持將來會變得更穩(wěn)健。Partition Magic 是一個用于 DOS 和 Windows 的商業(yè)程序,但如果從它附帶的啟動軟盤或 CD-ROM 運行,則可以用于 Linux ext2/ext3 分區(qū)。

    盡管實際的命令取決于您所要更改到的系統(tǒng),但更改文件管理系統(tǒng)的一般過程涉及

    • 備份分區(qū)上的文件
    • 刪除分區(qū)中的文件
    • 如果使用的是 fdisk,則可能刪除一個分區(qū)以便為兩個更小的分區(qū)留出空間
    • 使用相應的命令生成新文件系統(tǒng)。例如,要創(chuàng)建 ext2 文件系統(tǒng),您可以使用

    $ mke2fs /dev/hda5  15088

    _ ..I

    可以隨意指定塊計數,如以上命令中的 15,088。以上事件序列的唯一例外是使用以下命令從 ext2 系統(tǒng)移植到 ext3 系統(tǒng)

    $tune2fs -j /dev/hda3

    但仍應進行備份。

    掛載分區(qū)

    僅當具有超級用戶權限的用戶掛載了分區(qū),分區(qū)才在 Linux 中可用。對于 /etc/fstab 文件中列出的 Linux 分區(qū),系統(tǒng)啟動時會自動掛載。對于 CD-ROM 和軟盤驅動器,通常只需單擊相應圖標即可。
    更多的資源

    Linux 技術中心

    OCFS

    ReiserF/SReiser4

    Ext2fs 主頁

    可與掛載選項結合使用的選項取決于文件管理系統(tǒng)。例如,您可以按如下方式指定 ext3 日志選項:

    $ mount -t ext3 -o data=journaled /dev/hda9 /home

    要拆下軟盤或 CD-ROM,您需要在拆下它之前使用以下命令將其卸載

    $ umount /media/floppy

    在 Linux 2.4 之前,一個文件系統(tǒng)只能掛載一次。而現在,不限制文件系統(tǒng)的掛載次數。

    結論

    Linux 文件系統(tǒng)是一個多方面的概念。本討論旨在作為根據您自己的需要對它的有用性和合意性進行進一步研究的基礎。

    在本文的第 2 部分中,我們將介紹集群文件系統(tǒng),其中包括 OCFS。


    Sheryl Calish (scalish@earthlink.net) 是 Blue Heron Consulting 的一位專門研究 Linux 的 Oracle 開發(fā)人員。她還是 Central Florida Oracle Users Group 的基金主席和 IOUG Linux SIG 的市場營銷主席。
    原文:http://www.oracle.com/technology/global/cn/pub/articles/calish_filesys.html
    主站蜘蛛池模板: 手机看片久久国产免费| 亚洲精品国产va在线观看蜜芽| 亚洲人成网站色7799| 亚洲AV无码成人精品区日韩| 久久久久亚洲av成人无码电影| 性色av极品无码专区亚洲| 亚洲尤码不卡AV麻豆| 国产亚洲精品国产福利在线观看| 亚洲精品中文字幕乱码三区| 免费的黄色的网站| 国产极品美女高潮抽搐免费网站| 中文字幕av免费专区| 中文字幕亚洲综合久久菠萝蜜| 97热久久免费频精品99| 亚洲一区二区三区免费观看| 丁香花免费完整高清观看| 亚洲精品白色在线发布| xxxxx免费视频| 亚洲欧洲国产精品久久| 亚洲精品色婷婷在线影院| xxxxwww免费| 国产猛男猛女超爽免费视频| 亚洲第一AV网站| 国产免费变态视频网址网站| 香蕉视频在线观看免费| 亚洲冬月枫中文字幕在线看| 亚洲中文字幕久久精品无码喷水 | 亚洲成AV人片高潮喷水| 国产精品成人无码免费| 人妻无码久久一区二区三区免费 | 成全视成人免费观看在线看| 亚洲AV香蕉一区区二区三区| 亚洲精品影院久久久久久| 国产亚洲?V无码?V男人的天堂| 日本高清免费aaaaa大片视频| 97公开免费视频| 亚洲激情视频图片| 无码不卡亚洲成?人片| 一个人免费播放在线视频看片| 亚洲а∨精品天堂在线| 亚洲午夜电影在线观看高清|