一. 管理邏輯卷
物理卷和卷組通常不由用戶和應用程序直接訪問數據,並且也無法操作它們來提供磁盤空間以供用戶和應用程序使用。但是,邏輯卷提供了使磁盤空間可供使用的機制,從而爲用戶和應用程序提供了訪問存儲在其上的數據的能力。
當您創建邏輯卷時,您將指定用於該邏輯卷的邏輯分區的數量。一個邏輯分區映射到一個、兩個或三個物理分區,具體取決於您希望維護的數據副本的數量。
例如,您可以指定一個要鏡像的邏輯卷並擁有多個副本,如圖 1 所示。單個邏輯卷副本(缺省情況)表示存在從一個邏輯分區到一個物理分區的直接映射。
因此,邏輯卷的管理就是可供使用的磁盤空間的管理。本節將討論一下可由用戶對邏輯卷執行的功能。
1.1 添加邏輯卷
可以使用 mklv 命令創建邏輯卷。此命令允許您指定邏輯卷的名稱並定義其特徵,包括要爲其分配的邏輯分區的數量。邏輯卷在創建時的缺省最大大小爲 128 個邏輯分區。
1.1.1 使用命令行創建邏輯卷
mklv 命令用於創建新的邏輯卷。下面是 mklv 命令的語法,最常用的標誌如表 4 所示。
mklv [ -a Position ] [ -b BadBlocks ] [ -c Copies ] [ -d Schedule ][ -e Range ] [ -i ] [ -L Label ] [ -m MapFile ] [ -r Relocate ] [ -s Strict ][ -t Type ] [ -u UpperBound ] [ -v Verify ] [ -w MirrorWriteConsistency ][ -x Maximum ] [ -y NewLogicalVolume | -Y Prefix ] [ -S StripeSize ][ -U Userid ] [ -G Groupid ] [-P Modes ] VolumeGroup Number[ PhysicalVolume ... ]
表 4 mklv 命令的標誌
標誌 |
描述 |
-c copies |
設置爲每個邏輯分區分配的物理分區數量。copies 變量可設置爲 1 到 3 的值;缺省值爲 1。 |
-i |
從標準輸入讀取 PhysicalVolume 參數。僅當通過標準輸入設備輸入 PhysicalVolume 時才使用 -i 標誌。 |
-L |
設置邏輯卷標籤。缺省標籤爲 None。標籤文件的最大大小爲 127 個字符。如果要將該邏輯卷用作日記記錄文件系統 (JFS),則 JFS 將使用此字段來存儲文件系統在該邏輯捲上的掛載點,以便以後引用。 |
-P Modes |
指定邏輯卷特殊文件的權限(文件模式)。 |
-t Type |
設置邏輯卷的類型。標準類型爲 JFS(文件系統)、JFSLOG(日記文件系統日誌)和 paging(分頁空間),但是用戶可以使用此標誌來定義其他邏輯卷類型。不能創建啓動類型的邏輯卷。缺省類型爲 JFS。如果手動爲文件系統創建了日誌,則用戶必須運行 logform 命令來清空新的 JFSLOG,然後才能使用該日誌。可以使用以下命令來格式化邏輯卷 logdev: |
-y NewLV |
指定要使用的邏輯卷名稱,而不是使用系統生成的名稱。邏輯卷名稱必須是系統範圍的唯一名稱,並且可以在 1 到 15 個字符的範圍內。如果卷組是以併發模式 vary on 的,則新的名稱應該在 vary on 該卷組的所有併發節點中是唯一的。 |
下面的示例顯示瞭如何使用 mklv 命令來創建一個新的邏輯卷 newlv。此命令將在 rootvg 中創建一個名爲 newlv 的邏輯卷,並且該邏輯卷具有 10 個邏輯分區,每個邏輯分區由兩個物理分區組成。
mklv -y newlv -c 2 rootvg 10
1.1.2 使用 SMIT 創建邏輯卷
可以使用以下 SMIT 操作來創建邏輯卷。
1. 運行命令 smitty mklv
2. 按 F4 獲取系統中定義的所有卷組的列表。一個類似於圖 2 的屏幕將顯示出來:
3. 使用箭頭鍵來選擇要在其中創建新邏輯卷的卷組,然後按 Enter 鍵。一個類似於圖 3 的屏幕將顯示出來。
圖 3 設置新邏輯卷的特徵
4. 在 Logical volume NAME 字段中,輸入您正在創建的邏輯卷的名稱(在此例中爲 newlv)。
5. 在 Number of LOGICAL PARTITIONS 字段中,輸入您希望分配到新邏輯卷的邏輯分區數量(在此例中爲 10)。
每個邏輯分區對應於一個或多個物理分區,具體取決於您希望保留的數據副本的數量。
6. 在 PHYSICAL VOLUME names 字段中,輸入您希望用於該邏輯卷的物理卷。如果不指定任何名稱,則會使用系統中的第一個 PV 來保存所有數據。
7. 在 Number of COPIES of each logical partition 字段中,輸入您希望爲數據保留的 LP 副本的數量。允許的值爲 1 至 3。
8. 按 Enter 鍵創建該邏輯卷。
1.2 刪除邏輯卷
如果某個邏輯卷不再由用戶和應用程序用於存儲目的,您可能需要刪除該邏輯卷。rmlv 命令可以用於刪除邏輯卷。
1.2.1 使用命令行刪除邏輯卷
rmlv 命令用於刪除邏輯卷。下面顯示了該命令的一般語法,其常用的標誌如表 5 所示。
rmlv [ -f ] [ -p PhysicalVolume ] LogicalVolume ...
表 5 rmlv 命令標誌
標誌 |
描述 |
-f |
刪除邏輯卷而不請求確認。 |
-p PhysicalVolume |
僅刪除 PhysicalVolume 上的邏輯分區。除非沒有分配其他物理分區,否則不會刪除邏輯卷。 |
下面顯示了用於刪除邏輯卷 newlv 的命令:
# rmlv newlv
Warning, all data on logical volume newlv will be destroyed.
rmlv:Do you wish to continue? y(es) n(o) y
#
輸入 y 來響應此對話並按 Enter 鍵將完成刪除某個邏輯卷的過程。
1.2.2 使用 SMIT 刪除邏輯卷
或者,可以使用 SMIT 快速路徑命令 smitty rmlv 來刪除邏輯卷。
1.3 縮小邏輯卷的大小
可以執行下列步驟來縮小邏輯卷的大小,以釋放過多的邏輯分區分配:
1. 備份該邏輯卷中的所有數據。
2. 刪除該邏輯卷。
3. 重新創建具有縮小的邏輯分區分配的邏輯卷。
4. 還原數據。
最終的空閒空間可通過分配給其他需要它的邏輯捲來得到更好的利用。
1.4 增加邏輯卷的大小
使用 extendlv 命令或 SMIT 可以增加現有邏輯卷的大小。
如果該邏輯卷由某個日記記錄文件系統使用,您還可以使用 chfs 命令或 SMIT 快速路徑命令 smitty chjfs 來增加邏輯卷的大小。
1.4.1 使用命令行擴展邏輯卷
extendlv 命令用於增加邏輯卷的大小。下面是該命令的一般語法及其常用的標誌:
extendlv [ -a Position ] [ -e Range ] [ -u Upperbound ] [ -s Strict ]LogicalVolume Partitions [ PhysicalVolume ... ]
下面的示例顯示瞭如何使用 extendlv 命令來向您創建的邏輯卷添加三個額外的邏輯分區:
extendlv newlv 3
1.4.2 使用 SMIT 擴展邏輯卷
可以使用 SMIT 快速路徑命令 smitty extendlv 來增加邏輯卷的大小。
1.5 複製邏輯卷
可能由於多種原因而需要複製邏輯卷。如果要刪除某個磁盤並替換爲新磁盤,則需要將該磁盤上的邏輯卷複製到新磁盤。可以將邏輯卷複製到新的邏輯卷,或者到現有的邏輯卷,這將覆蓋現有的邏輯盤。
1.5.1 使用命令行復制邏輯卷
下面的示例顯示瞭如何使用 cplv 命令來複制邏輯卷:
cplv -v myvg -y newlv oldlv
此命令將把 oldlv 的內容複製到卷組 myvg 中的一個名爲 newlv 的新邏輯卷。如果未指定卷組,則會在舊邏輯卷所在的卷組中創建新的邏輯卷。此命令將創建一個新的邏輯卷。
下面的示例演示瞭如何將一個邏輯卷複製到一個現有的邏輯卷:
cplv -e existinglv oldlv
此命令將把 oldlv 的內容複製到相同卷組中的邏輯卷 existinglv。此命令會請求確認複製操作,因爲 existinglv 中的所有數據都將被改寫。
如果 existinglv 小於 oldlv,則數據將會丟失,並可能導致破壞。
注意:不要從包含數據的較大邏輯卷複製到較小的邏輯卷。這樣做會導致破壞文件系統,因爲有些數據未複製。如果 cplv 創建新的邏輯卷,並且卷組是以併發模式 vary on 的,則此命令將會失敗。
1.5.2 使用 SMIT 複製邏輯卷
另外一種選擇,您可以使用 SMIT 快速路徑命令 smitty cplv 來獲得類似於圖 4 所示的屏幕。
1. 選擇 Copy over an existing logical volume。一個類似於圖 5 的屏幕將顯示出來。
選擇源和目標邏輯卷
2. 在 SOURCE logical volume name 字段中輸入您希望複製的邏輯卷的名稱。
3. 在 DESTINATION logical volume name 字段中輸入您希望將現有邏輯卷複製到其上的邏輯卷的名稱。此名稱可以是某個已經創建的現有邏輯卷的名稱,或者是您希望創建的新邏輯卷的名稱。按 Enter 鍵完成此步驟。
注意:您可能會遇到以下錯誤:
cplv :Destination logical volume must have type set to copy
如果遇到這種情況,可以使用以下命令:
chlv -t copy Destination_Logical_Volume_Name
返回到您的 SMIT 會話。現在系統將允許您複製該邏輯卷。這樣做是爲了確保額外的安全性,以便不致意外地改寫數據。
1.6 拆分邏輯卷的副本
splitlvcopy 命令拆分一個邏輯卷中的副本,並從這些副本創建一個單獨的新邏輯卷。splitlvcopy 命令的一般語法規則如下所示:
splitlvcopy [ -f ] [ -y NewLogicalVolumeName ] [ -Y Prefix ] LogicalVolume
Copies [ PhysicalVolume ... ]
注意:儘管 splitlvcopy 命令可以拆分已打開的邏輯卷,包括那些包含已掛載的文件系統的邏輯卷,但是建議不要這樣做。如果多個進程同時訪問該邏輯卷,LogicalVolume 和 NewLogicalVolume 之間可能失去一致性。在拆分某個邏輯卷時,您將隱式地接受與此操作相關聯的潛在數據丟失和數據破壞的風險。
爲了避免潛在的破壞可能性,應該在拆分之前卸載文件系統並關閉邏輯卷。
要拆分屬於名爲 oldlv 的邏輯卷的每個邏輯分區的一個副本(當前有 3 個副本)並創建一個邏輯卷 newlv,可以按如下方式使用 splitlvcopy 命令:
splitlvcopy -y newlv oldlv 2
現在邏輯卷 oldlv 中每個邏輯分區具有兩個物理分區。
現在邏輯卷 newlv 中每個邏輯分區具有一個物理分區。
1.7 列出邏輯卷
以下邏輯卷是在系統安裝時自動創建的:
(1). hd5 這是包含啓動代碼的啓動邏輯卷。它僅在系統啓動時可用。
(2). hd6 這是系統用於執行分頁的缺省分頁空間邏輯卷。
(3). hd8 此邏輯卷用作日記記錄文件系統的缺省日誌記錄空間。
(4). hd4 此邏輯卷由 /, 根文件系統使用。
(5). hd2 此邏輯卷由 /usr 文件系統使用。
(6). hd9var 此邏輯卷由 /var 文件系統使用。
(7). hd3 此邏輯卷由 /tmp 文件系統使用。
(8). hd1 此邏輯卷由 /home 文件系統使用。
下面的命令將列出系統上定義的所有邏輯卷,如圖 6 所示。
lsvg | lsvg -il
可以使用 lslv 命令來查看與某個邏輯卷 (newlv) 相關的所有屬性,如圖 7 所示。
1.8 邏輯卷大小
某個邏輯卷的大小是分配到該邏輯卷的空間,並且是分配到該邏輯卷的邏輯分區數量和告訴系統要維護的副本數量的一個因子。
因此,該邏輯卷佔用的總空間由以下公式確定:
總的 LV 大小 = PP 大小 * 分配到 LV 的 LP 數量 * LV 的副本數量
下面的示例顯示瞭如何計算邏輯卷大小。
如果 PP 大小爲 4 MB,分配到該邏輯卷的 LP 數量爲 10,該邏輯卷的副本數量爲 2,則將分配到該邏輯卷的總空間爲 80 MB (4*10*2)。
二. 管理日記記錄文件系統
文件系統是文件、目錄和其他數據結構的集合。文件系統對相關的信息進行維護,並標識文件或者目錄數據所處的具體位置。除了文件和目錄以外,文件系統還可以包含一個引導塊、一個超級塊、位圖和一個或多個分配組。分配組包含磁盤索引節點和分段 (fragment)。
AIX 系統上支持以下三種類型的文件系統:
(1)日記記錄文件系統
這種本機文件系統類型稱爲日記記錄文件系統(journaled file system,JFS)。每個日記記錄文件系統駐留在單獨的邏輯捲上。操作系統在初始化期間掛載某些日記記錄文件系統(啓動和運行系統所必需的日記記錄文件系統),並且僅在得到指示時才掛載 /etc/filesystems 中的其他文件系統。
(2)網絡文件系統
網絡文件系統 (NFS) 是一種分佈式文件系統,它允許用戶訪問位於遠程計算機的文件和目錄,可以像使用本地文件和目錄那樣使用這些遠程文件和目錄。
(3)CD-ROM 文件系統
CD-ROM 文件系統 (CDRFS) 是一種文件系統類型,它允許您通過一般的文件系統接口來訪問 CD-ROM 中的內容。
日記記錄文件系統 (JFS) 將邏輯卷劃分爲許多固定大小的單元,這些單元稱爲邏輯塊。文件系統中的邏輯塊按如下方式進行組織:
(1)邏輯塊 0
文件系統中的第一個邏輯塊被保留,可用於引導程序或任何其它所需的信息;文件系統不使用此塊。
(2)超級塊
第一和第三十一個邏輯塊用於超級塊(邏輯塊 31 是一個備份副本)。超級塊包含相關信息,例如以 512 字節的塊爲單位的文件系統總大小、文件系統名稱、文件系統日誌設備地址(本節稍後將會介紹日誌)、版本號和文件系統狀態。
(3)分配組
文件系統中的其餘邏輯塊劃分爲許多分配組。分配組由數據塊和索引節點組成,當將數據塊分配到目錄或文件時,將使用索引節點來引用那些數據塊。
這些組可用於定製數據在磁盤上的物理佈局。
2.1 日記記錄文件系統的特徵
日記記錄文件系統 (JFS) 的大小是在創建文件系統時定義的,並考慮了以下參數:
(1). 索引節點的數目
(2). 分配組的大小
(3). 文件系統分段的可尋址性
(4). 日記記錄文件系統的日誌大小
(5). 日記記錄文件系統的最大大小
2.1.1 索引節點的數目
文件系統中的索引節點總數限制了文件總數和該文件系統的總大小。JFS 提供了 nbpi(每個索引節點的字節數)參數,用於改變文件系統中的索引節點數目。JFS 支持的 nbpi 值爲 512、1024、2048、4096、8192、16384、32768、65536 和 131072。值 32768、65536 和 131072 僅適用於 AIX Version 4.2 或更高版本。
例如,要創建 nbpi 值爲 4096 的 8MB 的文件系統,則會爲每 4096 字節的數據生成一個索引節點。這會導致一個 8 MB 的文件系統最多有 2048 個索引節點,從而意味着如果該文件系統中的每個文件長度恰好爲 4 KB,則最多可以在該文件系統中創建 2048 個文件。
JFS 將所有的文件系統限制爲 16 MB (2的24次方) 個索引節點。
2.1.2 分配組大小
AIX Version 4.2 及更高版本支持各種不同的分配組大小。JFS 將文件系統空間隔離爲索引節點和用於用戶數據的磁盤塊的分組。這些分組稱爲分配組。分配組的大小可以在創建文件系統時指定。分配組大小爲 8MB、16 MB、32 MB 和 64 MB。每個分配組大小具有一個關聯的 nbpi 範圍。表 6 定義了這些範圍。
表 6 允許的 nbpi 值
分配組大小(以 MB 爲單位) |
最大索引節點數量 |
8 |
512、1024、2048、4096、8192 和 16384 |
16 |
1024、2048、4096、8192、16384 和 32768 |
32 |
2048、4096、8192、16384、32768 和 65536 |
64 |
4096、8192、16384、32768、65536 和 131072 |
2.1.3 文件系統分段可尋址性
JFS 支持四種分段大小:512、1024、2048 和 4096 字節的連續磁盤空間單元。JFS 在索引節點和間接塊中維護 28 位數字的分段地址。每個分段必須可通過一個從 0 到 2的28次方大小的數字來尋址。如果某個文件系統主要是大小爲 400 字節的文件,則 512 的分段大小將是最高效的,因爲 4096 字節的分段將會浪費空間。分段是最小的可尋址存儲單元。
2.1.4 日記記錄文件系統日誌
多個日記記錄文件系統使用一個公共日誌,稱爲 JFS 日誌,並配置爲具有 4 MB 的大小。 例如,在初始安裝之後,根卷組中的所有文件系統都使用邏輯卷 hd8 作爲公共 JFS 日誌。缺省的邏輯卷分區大小爲 4 MB,並且缺省的日誌大小爲一個分區;
因此,根卷組通常包含一個 4 MB 的 JFS 日誌。當文件系統超過 2 GB,或者當使用單個日誌的文件系統空間總量超過 2 GB 時,需要增加缺省日誌大小。JFS 日誌僅限於最大 256 MB。
2.1.5 最大日記記錄文件系統大小
最大的 JFS 大小是在創建文件系統時定義的。例如,選擇 512 的分段大小將把文件系統大小限制到 8 GB (512 *224 = 8 GB)。在創建 JFS 文件系統時,需要對列出的因素(nbpi、分段大小和分配組大小)進行仔細權衡。文件系統大小限制爲 NPBI * 224 或分段大小 * 228 的最小值。
2.2 創建文件系統
AIX 中的每個文件系統對應於一個邏輯卷。要創建日記記錄文件系統,可以使用以下 SMIT 操作:
1. 執行 SMIT 快速路徑命令 smitty crjfs 將顯示一個類似於圖 8 的屏幕。
2. 選擇 Add a Standard Journaled File System 以添加一個新的日記記錄文件系統。這時將顯示與圖 9 所示類似的屏幕。
3. 使用箭頭鍵選擇要將新文件系統添加到其中的卷組。在此例中,由於僅有一個卷組 (rootvg),因此僅顯示了 rootvg。請按 Enter 鍵選擇 rootvg 作爲目標卷組。
4. 在選擇目標卷組以後,將顯示一個類似於圖 10 的屏幕。
5. 在 Size of file system (in 512 byte blocks) 字段中,輸入您希望創建的文件系統的大小。例如,如果您希望創建一個 4 MB 大小的文件系統,只需將 MB 數(在此例中爲 4)與 2048 相乘以獲得 512 字節的塊數,在創建此大小的文件系統時將需要指定該塊數(在此例中爲 8192)。
注意:在 AIX 中,所有的 I/O 都以 4 KB 的塊進行;但是空間是以 512 字節塊的倍數進行分配的。這樣做是爲了與其他 UNIX 系統保持一致。能夠創建的最小文件系統等於一個 PP;因此,即使指定的塊數小於一個 PP,系統仍然會創建等於一個 PP 的文件系統。下面的示例顯示瞭如何計算給定空間量(以 MB 爲單位)的塊數:
由於 512 字節 = 1 個塊
因此,1024 字節 = 2 個塊,1 MB = 2*1024 個塊
因此,x MB = x * 2048 個塊
這表明 2 MB 的文件系統的等效塊數爲 4096(在 Size of File System 字段中輸入此數字)。
6. 下一步,在 MOUNT POINT 字段中,輸入一個完整路徑,該文件系統將在該路徑中將自身連接到文件系統層次結構中。掛載點是一個目錄或文件,通過該目錄或文件可以訪問新的文件系統、目錄或文件。
7. 按 Enter 鍵以創建該日記記錄文件系統。如圖 11 所示的屏幕表示該過程成功完成。
或者,可以使用以下命令在命令行上執行同樣的任務:
crfs -v jfs -g rootvg -a size=8192 -m /dummy
此命令將創建一個 4 MB 的日記記錄文件系統,並將 /dummy 作爲在 rootvg 卷組中的掛載點。
2.3 掛載文件系統
掛載指的是使得用戶能夠在特定位置使用文件系統、文件、目錄、設備和特殊文件。這是使得一個文件系統可以訪問的唯一方法。一旦創建了文件系統,下一個任務就是使其對用戶可用。爲此,您必須知道 AIX 如何管理使用掛載點將新創建的文件系統連接到其文件樹中的過程。
圖 12 顯示了一個在通過其掛載某個文件系統之前的文件系統掛載點 (/u/kenzie)。
圖 13 顯示了一個已通過掛載點 /u/kenzie 掛載的文件系統 /u/kenzie。
注意:
(1)在將文件系統掛載到某個目錄時,所掛載文件系統的根目錄的權限將優先於掛載點的權限。
(2)一個常見問題是 pwd 命令失敗。由於沒有掛載點目錄中的搜索權限,pwd 命令將返回以下消息:
pwd:Permission denied
通過將掛載點目錄的權限至少設置爲 111 可以避免此問題。
2.3.1 使用命令行掛載文件系統
下面的命令顯示瞭如何掛載一個文件系統 (/FileSystemX)。
mount /FileSystemX
或者,如果知道與文件系統相關聯的設備的名稱,您可以使用設備名稱來掛載新創建的文件系統。
如果您希望掛載所有的文件系統,那麼您可以使用下面的命令,以便一次性掛載所有的文件系統。
mount {-a|all}
2.3.2 使用 SMIT 掛載文件系統
還可以使用以下 SMIT 快速路徑來掛載文件系統。
1. 執行 smitty mount 將顯示與的圖 14 類似的屏幕。
圖 14 smitty mount 命令
2. 使用箭頭鍵向下移動光標,並通過按 Enter 鍵選擇 Mount a File System。這時將顯示與圖 15 所示類似的屏幕:
3. 使用箭頭鍵向下移動到 DIRECTORY over which to mount。
4. 按 F4 以獲取爲您的文件系統定義的掛載點列表(請參考“創建文件系統”,以瞭解如何創建文件系統,並注意您爲自己的文件系統創建了一個掛載點。您將使用同一個掛載點來使您的文件系統對用戶可用)。按 F4 將顯示一個與圖 16 所示類似的屏幕。
圖 16 選擇掛載點
5. 使用箭頭鍵選擇希望掛載的文件系統。按 Enter 鍵做出選擇。此時將顯示您剛纔在 DIRECTORY over which to mount 字段中選擇的掛載點。
6. 再次按 Enter 鍵,並等待 SMIT OK 提示,此提示表明該過程成功完成。
2.4 自動掛載
可以將掛載設置爲在系統初始化期間自動進行。存在兩種類型的自動掛載:
(1)啓動和運行系統所必需的掛載。這些文件系統由啓動過程掛載。此類文件系統在 /etc/filesystems 文件中的節具有 mount=automatic 屬性。當多用戶初始化開始時,/etc/rc 腳本在運行 mount all 命令時不會嘗試再次掛載這些文件系統。類似地,在運行 umount all 命令時,不會卸載這些文件系統。
(2)第二種類型的自動掛載是由用戶控制的。這些文件系統在初始化期間由 /etc/rc 腳本在發出 mount all 命令時掛載。用戶控制的自動掛載在 /etc/filesystems 中包含 mount=true。
通過 mount all 命令或通過 /etc/rc 腳本,可以指定在初始化時自動掛載某個文件系統。這是通過在創建文件系統時將 Mount AUTOMATICALLY at system restart 字段設置爲 TRUE,或者通過使用 chfs –A yes file_system 命令實現的。
以下來自 /etc/filesystems 中的節顯示了一個自動掛載的文件系統:
/opt:
dev = /dev/hd10opt vfs = jfs log = /dev/hd8
mount = true check = true
2.5 顯示已掛載的文件系統
下面的示例顯示瞭如何使用不帶標誌的 mount 命令來顯示有關當前已掛載的所有文件系統的信息。
三. 刪除文件系統
下面的示例顯示了刪除某個文件系統所涉及到的步驟:
1. 使用 mount 命令來檢查當前已掛載的文件系統將會顯示以下屏幕:
2. 確定您希望刪除的文件系統是否顯示在該列表中。
如果是,則繼續步驟 3。
如果否,則轉到步驟 5。
3. 使用 umount 命令卸載該文件系統。
# umount filesystem_name
4. 重複步驟 1 以檢查該文件系統是否已成功卸載。
5. 使用 SMIT 快速路徑命令 smitty rmjfs 來刪除某個日記記錄文件系統將會顯示一個類似於圖 17 所示的屏幕。
6. 按 F4 以獲取系統上定義的所有文件系統的列表。
您將獲得與圖 18 所示類似的屏幕。
圖 18 選擇要刪除的文件系統
7. 使用箭頭鍵並按 Enter 鍵選擇要刪除的文件系統。
8. 您剛纔選擇的文件系統的名稱將顯示在 FILE SYSTEM name 字段中。
9. 如果希望保留用於掛載此文件系統的目錄,請按 Enter 鍵完成該命令,否則將 Remove Mount Point 字段設置爲 YES,並按 Enter 鍵完成該過程。
或者,可以將步驟 5 至 9 替換爲 rmfs 命令。
#rmfs filesystem_name
要在刪除文件系統時刪除掛載點,可以添加 –r 標誌。
四. 增加文件系統的大小
AIX 提供了動態增加文件系統大小的能力,用以保證磁盤上有足夠的空閒空間可用。空間不足的文件系統可能導致意外問題。
注意:每當某個文件系統裝滿時,系統將無法向其寫入數據,並返回以下錯誤:
There is not enough room in the file system
4.1 使用命令行增加文件系統大小
可以使用chfs 命令增加文件系統的大小,如下列步驟所示:
1. 使用 df 命令確定文件系統的當前大小。
2. 計算需要添加的塊數。
3. 在命令行上輸入以下命令:
#chfs -a size=new_size_in_512-byte_blocks file_system_name
Filesystem size changed to new_size_in_512-byte_blocks
4.2 使用 SMIT 增加文件系統大小
要使用 SMIT 增加文件系統的大小,可以執行下列步驟:
1. 運行 smitty chjfs 命令來顯示與圖 19 所示類似的屏幕。
2. 使用箭頭鍵選擇希望更改的文件系統並按 Enter 鍵。一個與圖 20 所示類似的屏幕將顯示出來,其中將報告當前的文件系統屬性。
圖 20 設置文件系統的新特徵
3. 在 SIZE of file system (in 512 byte block) 字段中輸入您計算得出的新的文件系統大小。
4. 按 Enter 鍵。SMIT OK 提示將表明該過程成功完成。
五.檢查文件系統的一致性
fsck 命令可以檢查文件系統的一致性,並以交互的方式修復文件系統。fsck 命令的一般語法如下所示:
fsck [ -n ] [ -p ] [ -y ] [ -dBlockNumber ] [ -f ] [ -ii-NodeNumber ][ -o Options ] [ -tFile ] [ -V VfsName ] [ FileSystem1 - FileSystem2 ... ]
常用於 fsck 命令的標誌及其含義如表 7 所示。
fsck 命令檢查並交互式地修復不一致的文件系統。
標誌 |
描述 |
-f |
執行快速檢查。在正常情況下,系統掛起而沒有正常關閉所影響到的唯一文件系統是在系統停止時掛載的文件系統。 |
-p |
不顯示有關次要問題的消息,而是自動修復它們。此標誌不保證 –y 標誌所執行的大規模許可 (wholesale license),並且對於在系統正常啓動時執行自動檢查非常有用。應該在每次系統自動運行時將此標誌用作系統啓動過程的一部分。此標誌還允許按組執行並行檢查。如果主超級塊受到破壞,則驗證輔助超級塊並將其複製到主超級塊。 |
-tFile |
如果 fsck 命令無法獲得足夠的內容來保存其表,則此標誌可以指定一個文件參數,將其作爲除正在檢查的文件系統以外的某個文件系統上的臨時文件 (scratch file)。如果不指定 –t 標誌,則 fsck 命令需要一個臨時文件,它將提示您指定該臨時文件的名稱。但是,如果已經指定了 -p 標誌,則 fsck 命令將會失敗。如果該臨時文件不是特殊文件,則會在 fsck 命令結束時刪除該文件。 |
-y |
對 fsck 命令提出的所有問題作肯定回答。此標誌允許 fsck 命令採取它認爲必要的任何操作。應該僅對受到嚴重破壞的文件系統使用此標誌。 |
應該在掛載任何文件系統之前運行此命令。您必須能夠讀取文件系統所在的設備文件(例如,/dev/hd0 設備)。
正常情況下,文件系統是一致的,fsck 命令只是報告文件系統中的文件、已使用的塊和空閒塊的數量。如果文件系統不一致,fsck 命令將顯示有關已發現的不一致性的信息,並提示您准許修復它們。如果無法修復文件系統,則從備份中恢復。
掛載不一致的文件系統可能導致系統崩潰。如果不使用 FileSystem 參數指定文件系統,則 fsck 命令將檢查在 /etc/filesystems 中具有屬性 check=TRUE 的所有文件系統。
注意:缺省情況下,/、/usr、/var 和 /tmp 文件系統在它們的 /etc/filesystem 節中將 check 屬性設置爲 False (check=false)。將該屬性設置爲 False 的原因如下:
1. 啓動過程顯式地對 /、/usr、/var 和 /tmp 文件系統運行fsck 命令。
2. /、/usr、/var 和 /tmp 文件系統在運行 /etc/rc 文件時掛載。fsck 命令不會修改已掛載的文件系統,並且 fsck 在已掛載的文件系統上的結果是不可預測的。
六. 初始化 JFS 日誌設備
logform 命令初始化某個邏輯卷以將其用作 JFS 日誌設備,此設備存儲有關文件系統元數據更改的事務信息,並且可以在計算機崩潰時用於回滾未完成的操作。下面是 logform 命令的一般語法:
logform LogName
注意:
(1)logform 命令是破壞性的;它清除邏輯卷中的所有數據。
(2)對某個文件系統意外運行此命令將會完全銷燬該文件系統的數據。如果日誌設備由於某個已掛載的文件系統對它的使用而處於打開狀態,則應該在對日誌設備運行 logform 命令之前卸載該文件系統。logform 命令銷燬現有日誌設備上的所有日誌記錄,從而可能導致文件系統數據丟失。可以運行以下命令來執行檢查,以確保日誌設備已關閉:
lsvg -l VGname
七. JFS 日誌設備的放置
應該將 JFS 日誌設備放置在與最活躍的文件系統不同的物理捲上,最好是放在具有最低 I/O 使用率的磁盤上,以提高並行資源利用率。還支持爲每個文件系統使用單獨的 JFS 日誌。但是,在同一個物理磁盤上放置多個 JFS 日誌具有一些特殊的注意事項,並且應該儘可能避免。
八. 支持大型文件的文件系統
AIX Version 4.3 及更高版本爲超過 2 GB 的文件大小提供了支持。64 位進程可以打開文件而不必明確指示它們這是大型文件。
使用 AIX Version 4.2 中的大型文件支持,將不再需要對超過 2 GB 的文件大小的基礎支持。
在支持大型文件的文件系統中,在 4 MB 文件偏移量之前存儲的文件數據以 4096 字節的塊進行分配,在 4 MB 文件偏移量以後存儲的文件數據使用 128 KB 大小的大型磁盤塊進行分配。大型磁盤塊實際上是 32 個連續的 4096 字節塊。
例如,在某個支持大型文件的文件系統中,一個 132 MB 的文件具有 1024 個 4 KB 磁盤塊和 1024 個 128 KB 磁盤塊。在常規文件系統中,132 MB 的文件將需要 33 個單獨的間接塊(每個塊填充有 1024 個 4 KB 磁盤地址)。但是,該 132 MB 文件的大型文件結構只需要兩個單獨的間接塊。
確定支持大型文件的文件系統
可以使用 lsfs -q file_system 命令來確定支持大型文件的文件系統,如圖 21 所示。
圖 21中的 bf: output 字段表示一個大型文件。如果此字段具有 true 值,則指定該文件系統支持大型文件。
九. 對文件系統問題進行故障排除
9.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
下列命令僅適用於 AIX Version 4:
fsck -p /dev/lv00
在完成了還原過程之後,使用 fsck 命令檢查文件系統的完整性。
fsck /dev/lv00
在許多情況下,將超級塊備份還原到主超級塊將會恢復文件系統。如果該操作無法解決這個問題,那麼重新創建文件系統,並從備份還原數據。
9.2 無法卸載文件系統
如果文件系統中存在任何仍處於活動狀態的引用,則不能卸載該文件系統。將會顯示以下錯誤信息:
Device busy 或 A device is already mounted or cannot be unmounted
下面的情況可能會給一個已掛載的文件系統產生一個已經打開的引用:
(1)文件系統中存在打開的文件。在卸載文件系統之前,必須關閉這些文件。fuser 命令通常是確定文件系統中的活動內容的最佳方法。fuser 命令將返回具有指定文件系統中的打開引用的所有進程的進程 ID,如下面的示例所示:
# fuser -xc /tmp
/tmp: 2910 3466 11654 26400
可以使用 kill 命令終止包含打開引用的進程,然後就可以完成卸載工作了。
(2)如果文件系統仍然處於繁忙狀態並且仍然無法對其進行卸載,那麼這可能是由於加載了內核擴展,但存在於源文件系統中。
fuser 命令不會顯示這些類型的引用,因爲並沒有涉及到任何用戶進程。然而,genkex 命令將報告所有已加載的內核擴展。
(3)該文件系統中掛載了其他文件系統。卸載那些文件系統,然後即可卸載該文件系統。如果該文件系統中掛載了任何其他文件系統,那麼將在源文件系統中掛載其他文件系統的掛載點存在打開的引用。使用 mount 命令獲取已掛載的文件系統的列表。要卸載某個文件系統,需要卸載其中已掛載的所有文件系統。
(4)進程正在使用該文件系統中的目錄作爲其當前工作目錄。對於正在使用某個目錄作爲其當前工作目錄的所有進程,fuser 命令將在對應的進程 ID 後面追加字母“c”,而 -u 標誌可以確定進程的所有者。可以將 fuser 與 find 命令一同使用,如下面的示例所示:
# find /home -type d -exec fuser -u {} /;
/home:
/home/lost+found:
/home/guest:
/home/kenzie: 3548c(kenzie)
對於交互式進程,如果已確定的用戶將其當前工作目錄更改爲該文件系統之外的某個目錄,否則終止該進程,然後就可以完成卸載工作了。
十. LVM 命令總結
10.1 命令
以下命令最常用於與物理卷相關的任務。
lsdev 列出 ODM 中的設備。
chdev 更改設備的特徵。
mkdev 將某個設備添加到系統。
chpv 更改物理卷的狀態。
lspv 顯示有關某個卷組中的某個物理卷的信息。
migratepv 將已分配的物理分區從一個物理卷移動到一個或多個其他物理卷。
10.2 VG 命令
以下命令最常用於與卷組相關的任務:
mkvg 創建一個新卷組。
extendvg 將一個物理卷添加到某個卷組。
reducevg 從卷組中刪除某個物理卷。
chvg 更改某個卷組。
lsvg 顯示有關某個卷組的信息。
importvg 安裝一個卷組。
exportvg 刪除一個卷組。
reorgvg 重新組織卷組。
syncvg 同步某個卷組。
varyonvg 使卷組可供使用。
varyoffvg 使卷組不可使用。
10.3 LV 命令
以下是一些最常用的邏輯卷命令:
mklv 創建邏輯卷。
lslv 列出邏輯卷的特徵。
rmlv 刪除邏輯卷。
extendlv 增加邏輯卷的大小。
chlv 更改邏輯卷的特徵。
mklvcopy 向邏輯卷添加副本。
rmlvcopy 刪除邏輯卷中的副本。
10.4 文件系統命令
以下是本章討論過的文件系統命令的列表:
chfs 更改文件系統的特徵。
crfs 添加文件系統。
lsfs 顯示文件系統的特徵。
rmfs 刪除文件系統。
mount 使文件系統可供使用。
fsck 檢查文件系統的一致性,並以交互的方式修復文件系統。
umount 卸載先前掛載的文件系統、目錄或文件。
df 報告有關文件系統上的空間的信息。
From:
IBM p 系列管理員認證(Test 191)指南系列,第 4 部分(下)存儲管理、LVM 和文件系統
https://www.ibm.com/developerworks/cn/aix/redbooks/test191-4-2/