IBM AIX 5.3 系統管理文件系統

IBM與中國的緣分源遠流長。早在1934年,IBM 公司就爲北京協和醫院安裝了第一臺商用處理機。下面是小編整理的IBM AIX 5.3 系統管理文件系統,歡迎大家參考!

IBM AIX 5.3 系統管理文件系統

  一. 文件系統類型

在 AIX 5L Version 5.3 中,支持下列類型的文件系統:

1.1日誌文件系統

之所以將這種類型文件系統稱爲日誌文件系統是因爲,這種系統使用日誌技術來維護控制結構的完整性。每個日誌文件系統必須位於不同的 JFS 邏輯卷。因此,該文件系統的大小爲一個邏輯分區大小的倍數。

1.2 增強的日誌文件系統

這是初始日誌文件系統的增強版本。它使用基於區段的分配以支持更高的性能、更大的文件系統和更大的文件大小。每個增強的日誌文件系統必須位於不同的 JFS2 邏輯卷。當使用缺省選項安裝操作系統時,將創建 JFS2 文件系統。

1.3 網絡文件系統

網絡文件系統 (NFS) 是一種分佈式文件系統,它允許用戶訪問位於遠程計算機的文件和目錄,可以像使用本地文件和目錄那樣使用這些遠程文件和目錄。

1.4 CD-ROM 文件系統

CD-ROM 文件系統 (CDRFS) 是一種文件系統類型,它允許您通過一般的文件系統接口來訪問 CD-ROM 中的內容。

  二. 文件系統結構

日誌文件系統使用了各種數據結構,如超級塊、分配組、索引節點,塊、分段和設備日誌。

2.1 超級塊

超級塊中包含關於文件系統的控制信息,如文件系統的整體大小(單位爲 512 字節的塊)、文件系統名稱、文件系統日誌設備、版本編號、索引節點的數目、空閒索引節點列表、空閒數據塊列表、創建時間和日期,以及文件系統狀態。所有這些數據都存儲在文件系統的第一個邏輯塊中。如果這些數據損壞,可能會使得該文件系統無法使用。所以,系統在邏輯塊 31 中保存了超級塊的另一個副本。

2.2 分配組

分配組由索引節點及其相應的數據塊組成。分配組可以跨越多個相鄰的磁盤塊,並且提高 I/O 操作的速度。JFS 和 JFS2 文件系統都使用了分配組。對於 JFS 文件系統,可以在創建文件系統時指定分配組的大小。

2.3 索引節點

索引節點包含關於文件的控制信息,如類型、大小、擁有者、文件創建、修改或者最近訪問的日期和時間。它還包含指向存儲文件實際數據的數據塊的指針。每個文件都具有對應的索引節點。

對於 JFS 文件系統,索引節點的最大數目(對應着文件的最大數目),由創建文件系統時所指定的每個索引節點擁有的字節數(number of bytes per inode,nbpi)值來確定。對於文件系統中的每個 nbpi 字節,都會創建一個索引節點。索引節點的總數是固定的。nbpi 值需要與分配組大小相關聯。

JFS 將所有的文件系統限制爲 16 MB (224) 個索引節點。

JFS2 文件系統動態地管理索引節點所需的空間,所以不存在任何 nbpi 參數。

2.4 數據塊

數據塊存儲了文件的實際數據,或者指向其他數據塊的指針。磁盤塊大小的缺省值爲 4 KB。

2.5 分段

邏輯塊的分段可用於支持小於邏輯塊標準大小 (4 KB) 的文件。這個規則僅適用於文件大小小於 32 KB的最後一個邏輯塊。

如果只有 JFS 文件系統,您可以選擇使用壓縮使得文件的所有邏輯塊存儲爲相鄰分段的序列。對文件系統進行壓縮,將增加使用該文件系統時 CPU 的使用量和 I/O 活動。

如果需要支持大量較小的文件,這些特性是非常有價值的。在安裝的時候,必須爲文件系統指定分段的大小。不同的文件系統可以使用不同的分段大小。

  三. 設備日誌

日誌文件系統的日誌存儲了關於文件系統元數據更改的事務信息。如果計算機崩潰,可以使用該數據來回滾未完成的操作。JFS 文件系統用於對 jfslog 類型的邏輯捲進行日誌記錄,而 JFS2 文件系統用於對 jfs2log 類型的邏輯捲進行日誌記錄。

不對數據塊中的數據進行日誌記錄。日誌設備用於確保文件系統的完整性,而不是數據的完整性。

在安裝了操作系統之後,rootvg 卷組中所有的文件系統都使用邏輯卷 hd8 作爲公共的日誌。

您可以創建一個能夠使用內聯日誌 (inline log) 的 JFS2 文件系統。這意味着,可以將日誌數據寫入到與該文件系統相同的邏輯卷,而不是寫入到日誌邏輯卷。

  四. 文件系統的區別

下表顯示了 JFS 和 JFS2 文件系統之間的一些區別。

功能

JFS

JFS2

體系結構上最大的文件系統大小

1 TB

4 PB

體系結構上最大的文件大小

64 GB

4 PB

索引節點的數目

在創建文件系統時確定

動態

索引節點大小

128字節

512字節

分段大小

512

512

塊大小

4096

4096

目錄組織

線性

B-樹

壓縮

創建時缺省的所有權

em

缺省文件模式的SGID

SGID=on

SGID=off

配額

日誌文件系統的區別

JFS 和 JFS2 文件系統可以共存於相同的系統中。

如果您需要將數據從 JFS 文件系統遷移到 JFS2 文件系統,那麼您必須對 JFS 文件系統進行備份,然後將數據還原到 JFS2 文件系統。

  五. 對文件系統進行碎片整理

分段和壓縮的使用,以及大量文件的創建和刪除,都可能降低連續的空閒磁盤空間的數量。defragfs 命令可用於提高或者報告文件系統中連續空間的狀態。 要對文件系統 /home 進行碎片整理,可以使用下面的命令:

defragfs /home

  六. 顯示關於索引節點的信息

可以使用 istat 命令來顯示關於某個特定索引節點的信息.

# istat /etc/passwd

Inode 66 on device 10/4 File

Protection: rw-r--r--

Owner: 0(root) Group: 7(security)

Link count: 1 Length 644 bytes

Last updated: Thu Dec 1 18:14:12 CST 2005

Last modified: Thu Dec 1 18:14:12 CST 2005

Last accessed: Mon Dec 5 17:04:17 CST 2005

  七. 對文件系統問題進行故障排除

7.1 對超級塊錯誤進行恢復

如果您在使用 fsck 或者 mount 命令時收到下面的錯誤之一,那麼該問題可能是超級塊遭到損壞:

fsck: Not an AIX3 file system

fsck: Not an AIXV3 file system

fsck: Not an AIX4 file system

fsck: Not an AIXV4 file system

fsck: Not a recognized file system type

mount: invalid argument

使用下列命令的其中一個,通過將超級塊備份還原到主超級塊,從而解決這個問題:

dd count=1 bs=4k skip=31 seek=1 if=/dev/lv00 of=/dev/lv00

在完成了還原過程之後,使用 fsck 命令檢查文件系統的完整性。如果該操作無法解決這個問題,那麼重新創建文件系統,並從備份還原數據。

7.2 無法卸載文件系統

如果文件系統中存在任何處於活動狀態的引用,則不能卸載該文件系統。下面的.情況可能導致一個已裝入的文件系統中存在打開的引用:

(1)文件系統中存在打開的文件。在卸載文件系統之前,必須關閉這些文件。要確定指定的文件系統中所有包含打開引用的進程的進程 ID,最好的方法是使用 fuser 命令。可以使用 kill 命令終止包含打開引用的進程,然後就可以完成卸載工作了。

(2)如果文件系統仍然處於繁忙狀態並且無法對其進行卸載,那麼這可能是由於加載了內核擴展,但存在於源文件系統中。fuser 命令無法顯示這些類型的引用,因爲並沒有涉及到任何用戶進程。然而,genkex 命令將報告所有已加載的內核擴展。

(3)該文件系統中裝入了其他文件系統。如果該文件系統中裝入了任何其他文件系統,那麼將在源文件系統中裝入其他文件系統的裝入點存在打開的引用。要卸載某個文件系統,需要卸載其中所裝入的所有文件系統。

(4)用戶正使用該文件系統中的目錄作爲其當前工作目錄。對於使用某個目錄作爲其當前工作目錄的進程,fuser 命令將在對應的進程 ID 後面追加字母“c”,而 -u 標誌可以表示進程的擁有者。可以將其與 find 命令一同使用,如下面的示例所示:

# find /home -type d -exec fuser -u {} /;

/home:

/home/lost+found:

/home/guest:

/home/kenzie:3548c(kenzie)

7.3 文件系統沒有剩餘空間

文件系統沒有剩餘空間可能會產生各種各樣的問題。例如,有些系統創建的文件系統,如 /、/usr、/var和 /tmp,由某些系統命令所使用。如果這些文件系統中沒有可用空間,那麼可能會產生一些預料之外的結果。請始終確保在這些文件系統中存在足夠的空閒空間。您可以使用諸如 df 或 du 之類的命令,監視您的文件系統的空間使用情況。

  八. 創建一個文件系統

AIX 5L Version 5.3 中的每個文件系統都必須位於某個邏輯卷。

當您創建文件系統時,如果您沒有指定一個以前創建的邏輯卷,那麼系統將使用系統生成的名稱創建一個邏輯卷,並使用缺省值作爲該邏輯卷的特徵。文件系統的大小非常接近邏輯分區大小的倍數。文件系統的大小不能超過邏輯卷的標準最大邏輯分區數。將向 /etc/filesystem 中添加一個包含該文件系統詳細信息的節,並將新的數據寫入到ODM。

在示例中,我們說明了如何使用 crfs 命令,如下所示:

(1)lsvg -l testvg 說明 testvg 不包含任何 jfs、jfs2、jfslog 和 jfs2log 類型的邏輯卷。

(2)crfs -v jfs -g testvg -a size=10M -m /fs1 將在卷組 testvg 創建一個大小爲 10 MB 的 jfs文件系統,並且裝入點爲 /fs1。目前沒有任何 jfs 邏輯卷,所以系統將創建一個,並指定其名稱爲 lv00。目前沒有任何 jfs 日誌設備,所以系統將創建一個,並指定其名稱爲 loglv00。

(3)crfs -v jfs2 -g testvg -a size=10M -p ro -m /fs2 將在卷組 testvg 中創建一個大小爲 10 MB的 jfs2 文件系統,其裝入點爲 /fs2,並且具有隻讀權限。目前沒有任何 jfs2 邏輯卷,所以系統將創建一個,並指定其名稱爲 fslv00。目前沒有任何 jfs2 日誌設備,所以系統將創建一個,並指定其名稱爲 loglv01。

(4)lslv lv00 和 lslv fslv00 說明所創建的邏輯卷使用了它們缺省的特徵。

(5)cat /etc/filesystems|grep -ip fs1 顯示了 /etc/filesystems 中與 fs1 相對應的節。

示例:創建文件系統時不指定邏輯卷

# lsvg -l testvg

testvg:

LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT

# crfs -v jfs -g testvg -a size=10M -m /fs1

Based on the parameters chosen, the new /fs1 JFS file system