HP-UX磁碟管理與檔案系統

liuhaimiao發表於2014-09-29

1.

磁碟和檔案的系統管理是一項重要的系統管理任務。它包括新增和刪除磁碟、配置磁碟、基於某種配置生成和管理檔案系統和磁碟問題的修復。

2.

每個物理磁碟都有兩個相關的裝置檔案,一個是字元裝置檔案,一個是塊裝置檔案。

每一個磁碟在被系統使用之前都必須經過配置。

一個磁碟可以被細分為多個部分組成,這些部分可能是:

  • 一個引導區:特殊區域,包含系統啟動時所必須的程式及檔案等
  • 檔案系統:儲存檔案的空間,比如/usr、/var或/home等,可以有多個檔案系統
  • 一個交換區:作為交換空間,也作為崩潰轉儲
  • 原始資料區:儲存原始資料,比如資料庫的資料

HP-UX提供了兩種磁碟管理的方法:

整盤分割槽

一個磁碟可以配置成以下5中方式:

  • 單獨的一個檔案系統
  • 完全用作交換區
  • 完全用作原始資料區(raw data)
  • 一個磁碟同時包含檔案系統和交換區
  • 一個磁碟配置成為啟動盤,包含根檔案系統、交換區和2M的特殊啟動區域

不足:

  • 每個磁碟只能有一個檔案系統分割槽。
  • 檔案系統也不能擴充套件到多個磁碟。
  • 當後期需要更多空間時,擴充套件檔案系統很難。

邏輯卷管理磁碟分割槽(LVM):

物理卷:實際的物理磁碟驅動器。使用pvdisplay命令顯示物理卷。

卷組:   多個物理卷組合成一個卷組,它將所有物理卷的空間融合成一個獨立的實體。

              第一次安裝HP-UX,預設生成一個根卷組名為:/dev/vg00。使用vgdisplay 顯示。

邏輯卷:由一個或多個物理卷構成,在卷組中建立並可以跨越多個物理卷。

              對於邏輯卷,你可以任何時候根據需要去改變它的尺寸而不丟失資料。

              使用lvdisplay命令顯示邏輯卷。

邏輯卷管理使你能將幾個磁碟(物理卷)裡的空間組合成一個卷組。然後把卷組裡的空間再劃分成邏輯卷。邏輯卷克服了整盤方法的一些不足,可以實現以下功能:

  • 建立跨越多個磁碟的邏輯卷
  • 在同一磁碟上建立多個邏輯卷
  • 根據需要擴充套件和壓縮邏輯卷

卷組裝置檔案為/dev/vg00/group。

每一個邏輯卷組中都有兩個裝置檔案,字元與塊。

所有lvm裝置檔案的主號為64次號顯示了邏輯卷名跟邏輯卷組之間的成員關係。

物理擴充套件(PE):是最小的磁碟空間分配單元,預設為4M。

邏輯擴充套件(LE):是核心記憶體中指向磁碟上某一個PE的指標。

PE的大小在建立卷組時背固定,整個卷組中的PE都是一樣的。

為了擴大邏輯卷,LVM只需要分配更多的LE。

3.

建立物理卷:

建立物理卷是LVM管理磁碟的第一步,為了找出某個磁碟相關的裝置檔案,使用IOSCAN命令。

也許你想檢視磁碟的大小,可以使用diskinfo命令完成。

在建立之前,先透過mediainit命令對一個磁碟進行格式化和校檢其完整性。

建立物理卷:

首先格式化硬碟:mediainit /dev/rdsk/c2t5d0                  #後面的引數必須為字元裝置檔案

建立物理卷:pvcreate /dev/rdsk/c2t5d0 

若磁碟已經屬於某個卷組,可以用-f選項強制執行建立(慎用)。

建好卷組後,可以透過pvdisplay命令來檢查它。(沒有成為卷組前不能pvdisplay)

LVM使用的資料結構會造成一些磁碟空間的開銷。

非啟動盤上如果設定了較小的PE或建立了很多物理卷,則LVM資料結構將會比較大。

這個開銷在可啟動的LVM盤上是固定的(2912KB)。

4.

建立卷組:

建完物理卷後,就可以將它新增到卷組中。

首先在/dev目錄下面建立一個卷組名為vg03的目錄:mkdir /dev/vg03。

在該目錄下面建立卷組裝置檔案,主號為64,次號顯示組名:

mknod /dev/vg03/group c 64 0x030000

最後用vgcreate命令建立卷組,以物理卷名為引數:

vgcreate /dev/vg03 /dev/dsk/cdt5d0

關於vgcreate的一些選項:

  • -l                   卷組最大能包含的邏輯卷數,預設為255
  • -p                  卷組最大能包含的物理卷數,預設為16
  • -e                  卷組中每個物理卷最多能包括的PE數,預設為1016
  • -s                  卷組中物理單元的尺寸大小,預設為4

建好卷組後,可以透過vgdisplay命令來檢查它。

5.

建立邏輯卷:

邏輯卷可以:

  • 包含所有或任何一部分物理捲上的空間
  • 擴充套件到多個LVM物理卷
  • 如果需要,可以改變大小,移動到不同磁碟中
  • 可以使用任何你需要的命名規則,預設是:/dev/vg**/lvol [1..2..3...]

用lvcreate命令可以建立邏輯卷。

當邏輯卷新建立時,其相應的字元裝置及塊裝置檔案會在卷組目錄下生成。

例如:為了在卷組vg03中建立一個空間為800M,名為moko的邏輯卷:

lvcreate -L 800M -n moko vg03

關於lvcreate命令的選項:

  • -L              以MB為單位表示邏輯卷的大小,預設為0
  • -l               以邏輯單元的數目來表示邏輯卷的大小,預設為0
  • -n             邏輯卷名稱,若不指定,預設的名為lvol1,lvol2...
  • -C             用臨近的空間來建立邏輯卷
  • -i               設定可以被邏輯卷使用的磁碟
  • -I               當邏輯卷使用一個以上的磁碟時,設定穿過每個物理卷的條帶尺寸,i與I必須一起使用

6.

卷組所包含的每一個磁碟都有LVM的資料結構:

物理卷保留區(PVRA):由pvcreate命令建立,含有物理卷資訊

卷組保留區(VGRA):由vgcreate命令建立,包含卷組狀態區(VGSA)和卷組描述區(VGDA),用於卷組的裝置驅動資訊。

壞塊重新分配區域(BBRA):由pvcreate建立,它是磁碟尾部的一個區域,發現物理卷缺陷時由LVM使用。

7.

檔案系統:

檔案系統時將檔案和目錄一起儲存的集合。

分配給檔案系統的區域被分成兩個主要部分,即使用者區和後設資料區。

使用者區用於儲存使用者檔案中真正的資料。

後設資料區儲存檔案系統的結構資料:

  • 超級塊:包含檔案系統型別,尺寸資訊,還有指向後設資料結構的指標
  • I節點:儲存檔案屬性的記錄。比如檔案屬主,許可權,型別等。02總是代表根目錄。
  • 目錄:目錄區儲存檔名與之相關的I節點的記錄。

8.

高效能檔案系統(HFS):

傳統的HP-UX檔案系統,作為/stand的檔案系統。

所有HFS檔案系統的前8KB空間用作HFS主超級塊,包含一般的檔案系統資訊。

超級塊還包含指向檔案系統中所有其他HFS結構資料的指標。

HFS擁有多個超級塊備份,位置在/var/adm/sbtab。

被損壞的HFS超級塊透過這些備份進行修復。

在一個讀請求中,HFS塊是最小資料單元,預設為8KB大小,有效資料塊為4-64K,2的乘方。

段是用於分配的最小資料單元,HFS塊可以分成多個段。

HFS便於管理,然而不能縮減它的空間,也不能方便地擴充套件空間,擴充套件前必須解除安裝檔案系統。

當建立HFS檔案系統時,必須標明你需要建立多少I節點。

I節點存放在新檔案系統的I節點表中。

如果沒有空閒的I節點,即使你有空閒的資料塊,也不能建立新檔案目錄。

可以透過以下兩種方式新增新的I節點:

  • 向檔案系統新增附加的空間,擴充套件檔案系統也向I節點表中新增了I節點。
  • 備份資料,重建檔案系統,建立更多的I節點,然後從磁帶上恢復你的資料。

系統崩潰或不正確的關閉會對HFS檔案系統造成災難性的後果,且恢復過程緩慢並不可預測。

在某些情況下,可能需要重新建立檔案系統並從磁帶恢復資料。

日誌檔案系統(JFS):

也被稱為Veritas檔案系統(vxfs)。

日誌檔案系統是為了克服HFS的一些不足而設計的。

這種檔案系統具有快速恢復的特性。

HP的線上日誌檔案系統(online JFS)它基於JFS擴充套件,可以對檔案系統進行線上管理,不用先解除安裝。

JFS也儲存超級塊的多個複製,與HFS不同,它能自動找到冗餘超級塊,所以備份不儲存在sbtab檔案中。

JFS的主要優點是所有對結構資料的修改都儲存在日誌中。

這種日誌機制保證了檔案系統的完整性,並且系統崩潰時能很快恢復檔案系統。

如果系統崩潰,檔案系統能透過應用JSF日誌中的所有改變記錄被迅速恢復。

系統崩潰後,簡單重做日誌中的事務處理,就可以在10-20秒內將檔案系統結構資料恢復到相應狀態。

相比於HFS,JFS另一個顯著有點就是它可以動態增加I節點的數量。

與HFS一樣,JFS將檔案系統分成若干個JFS塊,預設每塊為1KB大小。

JFS是一種以extent為基礎的檔案系統,為了達到效能最佳化,檔案和目錄中的資料應當是連續的。

在動態檔案系統中,可能需要定期使用fsadm碎片整理工具。

核心檔案不能在JFS檔案系統中。

9.

建立新的檔案系統:

要使一個檔案系統真正生效,需要經過4個步驟:

(1)先用newfs建立新檔案系統

newfs命令可以用於建立檔案系統,如果你採用LVM,在使用newfs之前,需要先完成下面3個步驟

建立物理卷,利用這些物理卷建立一個或多個卷組,建立邏輯卷。

執行了上面的步驟後,再用newfs在邏輯捲上建立一個檔案系統,使用字元裝置檔案:

例:在/dev/vg03/rlvol4上建立JFS檔案系統,使用下面的命令

       newfs -F vxfs /dev/vg03/rlvol4                         #在/dev/vg03/rlvol4上建立JFS檔案系統

       newfs -F vxfs -o largefiles /dev/vg03/rlvol5     #/dev/vg03/rlvol5上建立一個支援大檔案的系統

       newfs -F hfs -b 2048 /dev/vg03/rlvol5             #建一個塊尺寸2KB的HFS檔案系統

在一個整盤方法建立的磁碟c2t5d0上建立一個JFS檔案系統,並留出100MB空間用於交換:

newfs -F vxfs -R 100 /dev/rdsk/c2t5d0

newfs命令的一些選項:

  • -F                    檔案系統型別。HFS或vxfs等
  • -s                    以塊來表示檔案系統尺寸,若不指定,將使用邏輯卷所有空閒空間
  • -o largefiles     用於支援大檔案,預設檔案最大尺寸為2GB,使用後為128GB
  • -b                    以位元組表示每個塊的大小(僅用於HFS)
  • -i                     以位元組表示每個I節點的尺寸(僅用於HFS)
  • -f                     以位元組表示段的大小(僅用於HFS)
  • -R                   以MB表示檔案系統尾部保留作為交換區的空間,不可以與-s一起使用
  • -m                   允許的剩餘空間最小值,達到這個值後,則除root外其他使用者不能使用FS。

*:-i 4096 表示每4KB空間需要使用1個I節點

newfs命令需要使用字元裝置檔案做引數,邏輯卷或磁碟會被覆蓋,所以資料會被破壞。

如果沒有使用-F來定義檔案系統型別,將採取/etc/default下面的定義,HP11.0預設為vxfs。

(2)然後用mkdir命令為檔案系統建立一個掛在用的目錄

          mkdir /mnt

(3)建立目錄後,用mount命令將新檔案系統掛載

         mount -F vxfs /dev/vg03/lvol4 /mnt       #把JFS檔案系統/dev/vg03/lvol4掛載在/mnt目錄

         可以用mount -v或bdf檢視已掛載的檔案系統。

         fuser /mnt  可以檢視/mnt是否正在被使用者使用。

         fuser -ku -c /mnt 可以把正在使用/mnt檔案系統的所有程式停止下來。

         umount /mnt 可以解除安裝掛載在/mnt目錄的檔案系統。

         umount /dev/vg01/myfs1 解除安裝使用myfs1邏輯卷的檔案系統。

         umount -a 可以解除安裝所有當前掛載的檔案系統。

         umount -aF vxfs 可以解除安裝所有JFS檔案系統。

mount使用的是塊裝置檔案。

檔案系統必須掛起在空目錄下,如果檔案系統被掛起在已經包含檔案和目錄的目錄下,則這些檔案和目錄將會被隱藏。直到這個檔案系統被解除安裝。不可能把檔案系統掛載在正在被其他使用者或程式使用的目錄,試圖吧這個檔案系統掛在已經使用的目錄上會得到“裝置忙”的資訊。

 (4)修改/etc/fstab檔案,新增一行相關資訊,實現系統啟動時自動掛載檔案系統

 /e tc/fstab檔案示例:

/dev/vg00/lvol4    /tmp   vxfs delaylog  0  2
/dev/vg00/lvol5   /home vxfs delaylog  0  2
/dev/vg00/lvol6   /opt    vxfs delaylog  0   2
/dev/vg00/lvol7   /usr    vxfs delaylog  0  2
/dev/vg00/lvol8   /var    vxfs delaylog  0  2

 ...

行資訊包含了檔案系統名,掛載點,檔案系統型別以及其他相關選項。

新增一行例子:

/dev/vg00/lvol4 /moko xvfs delaylog 0 2

在啟動過程中,指令碼/sbin/init.d/localmount被執行,它呼叫mount -a命令,將/etc/fstab檔案中所列的檔案系統全部掛載。

10.

管理檔案系統:

改變檔案系統的大小包括3個步驟:

(1)擴充套件卷組:

如果在一個卷組中,沒有未分配的空間,你需要先擴充套件卷組,可以透過增加一個硬碟來實現。透過建立一個物理卷,然後將這個新的物理卷使用vgextend命令加入到卷組中,從而增加捲組容量。

例:pvcreate /dev/rdsk/c0t3d0

       vgextend vg03 /dev/dsk/c0t3d0

(2)擴充套件邏輯卷:

擴充套件卷組後,透過lvextend命令擴充套件邏輯卷的尺寸。

例:lvextend -L 800 /dev/vg03/lvol4       #將邏輯卷由本來400M增加到800M

       lvextend -L 800 /dev/vg03/lvol4 /dev/dsk/c0t3d0   #在特定磁碟上擴充套件邏輯卷

(3)擴充套件檔案系統:

擴充套件了邏輯卷的空間不會自動擴充套件檔案系統的空間,應使用extendfs命令給檔案系統增加空間。

在擴充套件之前,必須先解除安裝該檔案系統(線上式JFS除外)。

例:extendfs -F vxfs /dev/vg03/lvo14

線上式JFS擴充套件系統時,不用解除安裝,需要使用另一個命令fsadm來擴充套件檔案系統,例:

fsadm -F vxfs -b 819200 /mnt       #將/mnt檔案系統擴充套件到800MB(819200KB)

監視磁碟使用情況

bdf能夠顯示所有已掛載的檔案系統以及每個檔案系統的資訊:檔案系統名稱,總的磁碟空間,已用的磁碟空間,可用的磁碟空間,磁碟利用的百分率,掛載點。

Filesystem          kbytes    used   avail %used Mounted on
/dev/vg00/lvol3     204800   48168  155424   24% /
/dev/vg00/lvol1     295024   38856  226664   15% /stand
/dev/vg00/lvol8    4706304 1523976 3157592   33% /var
/dev/vg00/lvol7    1163264  708304  451464   61% /usr
/dev/vg00/lvol4     204800   96408  107568   47% /tmp
/dev/vg00/lvol6    1048576  766024  280360   73% /opt
/dev/vg00/lvol5    1048576    4456 1036024    0% /home
 

加上-i選項在輸出中增加了3個檔案系統可用I節點的列:

iused:檔案系統上正在使用的I節點數。

ifree:檔案系統上可用的i節點。

第三個位I節點的使用比例。

也可以使用du命令顯示一個目錄多少空間被使用。

清理磁碟空間

core檔案一般作為嚴重錯誤或QUIT訊號的結果,產生在程式被異常終止時。程式設計師可以透過使用它來確定當程式被終止時的情況。

core檔案可能很大,當不再需要時可以從系統上刪除,用find命令找出這些檔案並清除:

find / -name core -exec ll {} \;           #顯示所有core檔案

find / -name core -exec rm {} \;        #清除所有core檔案

/var包含系統日誌和緩衝區日誌,如果不仔細監控,很容易佔滿檔案系統:

>/var/adm/btmp                #清空btmp日誌檔案

>/var/adm/wtmp                #清空wtmp日誌檔案

可以用find命令找出不再需要卻忘了刪除的大檔案:

find /tmp -atime +30 -size +1000c -exec ll -ud {} \;

以上例子是查詢並顯示/tmp目錄下面大於1000個字元,在30天內沒有被訪問的檔案。

11.

檔案系統修復:

系統崩潰或非正常關機的關機操作都會導致檔案系統後設資料出現錯誤,這時,你應該對檔案系統進行修復。

fsck命令可用來檢查並修復系統。

如果系統崩潰或進行了非正常的關機操作,fsck命令會自動執行,需要時也可以手工執行。

執行fsck前,必須解除安裝檔案系統。

如果在後設資料區遇到不一致的情況,fsck命令會刪除一些檔案。

有些檔案不能被fsck完全識別,它會被放到lost+found目錄下。

在用完fsck修復完檔案後,你應該從先前的備份上將一些被毀壞的檔案恢復到系統上。

例:fsck -F vxfs /dev/vg03/rlvol4       

執行fsck時需要知道檔案系統的型別。指定需要檢查的檔案系統所在磁碟或邏輯卷的字元裝置檔案。

fsck命令的一些選項:

  • -F           檔案系統型別
  • -n           假設對fsck的所有問題回答No
  • -y           假設對fsck的所有問題回答yes
  • -b           告訴fsck去使用備用的超級塊(僅適用於HFS)
  • -f            強制在被掛起的檔案系統上執行fsck(僅適用於HFS)
  • -o full     強制fsck對檔案系統的後設資料進行全面檢查而不是指重放意圖日誌(僅用於JFS)
  • -o nolog 阻止意圖日誌重放(僅用於JFS)

12.

重要的LVM命令:

extendfs                擴充套件一個檔案系統

lvchange                改變一個邏輯卷的屬性

lvcreate                 建立一個邏輯卷

lvdisplay                 列出邏輯卷資訊

lvextend                 擴充套件邏輯卷

lvlnboot                  將邏輯卷設成root ,dump 或 swap

lvreduce                 減少一個邏輯卷的尺寸

lvremove                將卷組中的一個邏輯卷刪除

lvrmboot                 將邏輯卷作為root ,dump 或 swap使用

pvchange               改變一個物理卷的屬性

pvcreate                 建立一個物理卷

pvdisplay                列出物理卷的屬性

pvmove                   將某物理卷從一個卷組移動到另一個卷組

vgcfgbackup           備份LVM的配置資訊

vgcfgrestore           從備份的LVM配置資訊中恢復

vgchange                 改變一個卷組的屬性

vgcreate                   建立一個卷組

vgdisplay                  列出一個卷組的屬性

vgextend                   擴充套件卷組

vgexport                    從系統輸出一個卷組

vgimport                    從系統輸入一個卷組

vgreduce                   透過刪除物理捲來減小卷組

vgremove                  刪除一個卷組

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/223653/viewspace-1284538/,如需轉載,請註明出處,否則將追究法律責任。

相關文章