1. 程式人生 > >用Storage Foundation管好儲存系統-檔案系統

用Storage Foundation管好儲存系統-檔案系統

 【IT168 專稿】在Storage Foundation儲存解決方案中,磁碟組和卷一般都是由專業的儲存專業人員來配置和管理的。作為普通使用者,我們並不關心檔案系統是多少個硬碟組成,資料存放在哪個硬碟,磁碟資料部署是用條帶,映象還是RAID5技術的。使用者能夠感受到的是,檔案系統讀寫是否快速,檔案系統是否穩定,操作是否簡單,維護是否便捷。

    可以說,檔案系統是Storage Foundation與普通使用者互動的介面,檔案系統的好壞是使用者對於Storage Foundation是否滿意的關鍵所在。正因為如此,今天我們來聊聊檔案系統的入門知識和用法。

    相關連結
   
用Storage Foundation管好儲存系統-安裝
    用Storage Foundation管好儲存系統-入門
    用Storage Foundation管好儲存系統-進階
    用Storage Foundation管好儲存系統-高階
    用Storage Foundation管好儲存系統-檔案系統

    談檔案系統,必然先要談到裸裝置和塊裝置,建立檔案系統一般都會建立一個裸裝置檔案和一個與之對應的塊裝置檔案,裸裝置檔案是Storage Foundation用來管理檔案系統的,塊裝置檔案是使用者可以用來讀寫資料的。

    很多使用者都會混淆這兩個概念,我給大家做個比喻:Storage Foundation就好像一個數據專家,他手裡有一些硬碟資源,他來維護這些資源的可靠性和安全性等等;使用者習慣使用的作業系統就好像是Storage Foundation的代理,Storage Foundation委託作業系統給使用者提供服務資料讀寫的服務。Storage Foundation根據使用者建立檔案系統的大小要求,就會在硬體上面劃分一塊相應的區域出來,作為資料存放的物理空間;然後給作業系統提供一組介面,使得使用者可以通過作業系統來讀寫這個物理空間,這個介面就是塊裝置了。

    根據剛才講的裸裝置和塊裝置的區別,我們應該能夠了解:裸裝置檔案和塊裝置檔案其實都是可以讀寫的。對裸裝置檔案的讀寫其實是直接對硬碟進行讀寫操作,優點是讀寫速度快,有利於提高IO的速度,但是缺點是容易出錯,而且對硬碟的讀寫不利於檔案的管理和維護,所以對裸裝置檔案的方法一般不會被採用,除非是資料庫檔案大塊的寫入,為了提高速度,避免或者減弱在IO的瓶頸。相反的,對塊裝置檔案的讀寫雖然稍微慢一點(畢竟要通過作業系統做代理,代理總會幹點什麼影響效率的),但是優點是易於管理,易於維護。所以一般來說,使用者都不得不在塊裝置檔案上進行操作(畢竟不會人人都是儲存專家的)。

    在Storage Foundation中,裸裝置檔案存放的地址是/dev/vx/rdsk/disk_group/volume_name,而對應的塊檔案裝置的存放地址是/dev/vx/dsk/disk_group/volume_name,其中disk_group就是檔案系統所屬的磁碟組,volume_name就是檔案系統所屬的卷,rdsk就是裸磁碟(raw disk)的意思。

    好了,介紹了兩種裝置檔案的區別之後,我們開始詳細講述檔案系統的用法。

1. 建立檔案系統
    mkfs –F VxFS –o [option]
    其中,option是Storage Foundation為使用者提供的一些可選項:

    a) –o N
    表示並不真實建立檔案系統,只是給使用者提供建立檔案系統的資訊;
    b) –o largefile
    表示建立的檔案系統支援大檔案或者多個檔案,如果有這個選項,VxFS檔案系統可以識別超過2GB大小的檔案,也可以支援八百萬以上的超多檔案。如果不希望用大檔案系統,可以使用-o nolargefile代替;
    c) -o bsize=n
    表示可以設定檔案系統的最小塊大小,預設是1024byte(1KB)。越大的block可以帶來越好的讀寫效能,但是相應的,穩定性會受到影響。所以需要使用者自己去權衡利弊了。
    d) -o logsize=n
    設定VxFS日誌檔案的大小,預設值與檔案系統大小有關。大的日誌檔案需要更多的空間,降低了硬碟的有效利用,但是它也可以生成更多的檢查點,如果硬碟出現錯誤,就可以恢復到離事故發生最近的地方,減少使用者的資料損失。
    e) 例項:
    # vxfs –F VxFS –o large file /dev/vx/rdsk/TestDG/TestVol
因為建立檔案系統是需要資料專家給使用者分配空間的,所有需要使用裸裝置檔案。

2. 維護檔案系統
    a) 檢查檔案系統移植性並使用日誌記錄資訊:
    # fsck-F VxFS /dev/vx/rdsk/TestDG/TestVol
    檢查檔案系統的活也是屬於資料專家的活了,代理可不會做這個的。所以,這裡同樣需要使用裸裝置檔案;
    b) 檢查檔案系統移植性但不要記錄日誌:
    # fsck-F VxFS -o full,nolog  /dev/vx/rdsk/TestDG/TestVol
    c) 並行檢查多個檔案系統:
    # fsck -F VxFS -o p /dev/vx/rdsk/TestDG/TestVol1 /dev/vx/rdsk/TestDG/TestVol2
    顯然,這個檢查也是需要記錄日誌的,如果不想記錄日誌,需要再加入” full,nolog” 引數;

    3. 掛載(mount)檔案系統
    檔案系統使用前必須經過掛載,就相當於作業系統給使用者開了個帳戶相似。掛載檔案系統最常用的命令是:
    #  mount –F VxFS /dev/vx/dsk/TestDG/TestVol /mnt
    因為掛載檔案系統相當於代理給使用者開設帳戶的過程,所有在這裡需要使用塊裝置檔案。除了最常用的方法,mount還支援一下其他常見選項:
    mount –r: 以只讀方式掛載,如果使用者只是想讀出資訊,那麼這樣可以增加檔案系統安全性;
    mount –v:顯示出已經掛載的檔案系統;
    mount –p:顯示檔案系統掛載表;
    mount a: 把檔案系統掛載表中所列的檔案系統一起掛載,方便使用者操作;

4. 解除安裝(umount)檔案系統:
    解除安裝檔案系統常見的命令是:
    #  umount –F VxFS /dev/vx/dsk/TestDG/TestVol  (注意這裡是塊裝置檔案)
    除此之外,還有幾個特殊選項:
    umount –a:把系統掛載表的所有檔案系統解除安裝;
    umount –o force: 強行解除安裝檔案系統。

    5. 顯示檔案系統型別:
    # fstyp -v /dev/vx/dsk/TestDG/TestVol
    這個也是代理就能做的,使用塊裝置檔案。

    6. 顯示檔案系統的使用情況,剩餘空間:
    # df -F vxfs /mnt

    7. 建立檔案系統並且直接掛載:
    # crfs -v vxfs -d /dev/vx/rdsk/TestDG/TestVol -m /mnt -A yes
    因為涉及到了建立檔案系統,所以需要使用裸裝置檔案。

    8. 磁碟整理(重要)
    隨著檔案系統的使用,增刪操作的增加,檔案系統將不可避免的出現空間碎片,碎片不僅僅浪費檔案系統的空間使用,它還會降低檔案系統的效能,所以我們必須在必要的時候進行磁碟整理操作。

    碎片一般有兩種:目錄碎片(Directory fragmentation)和擴充套件碎片(Extent fragmentation),他們的區別和整理的目的是不同的:
    a) 目錄碎片的整理能夠把目錄入口資訊放在檔案系統的開始位置,把檔案的入口放在目錄之後,將剩餘空間集中在檔案系統的中間,節省讀寫檔案的速度。其具體名利是:
    #  fsadm -d -D /mnt
    b) 擴充套件碎片的整理能夠將小檔案放在一起;將大檔案放在擴充套件區;將小的,經常需要訪問的檔案放在能被更快訪問到的地方;將大的、不常用的檔案放在檔案系統的末尾,然後將剩餘空間集中在檔案系統的中間。其具體的命令是:
    # fsadm -e -E -s /mnt

注意:
    上述所使用的命令,並不是系統自帶的命令,而是Storage Foundation給使用者提供的,只是為了使用者操作,所以才使用了與作業系統相同的命令,但是他們都存放在/opt/VRTS/bin/目錄下面,如果使用者使用上述命令確得不到所需資訊,請檢查是否使用了正確的命令”which command”;

    通過本文,使用者可以瞭解到如何建立一個更有效的檔案系統,使用檔案系統,檢查檔案的系統以及如何進行碎片整理。瞭解了這些之後,就可以輕鬆的管理您自己的檔案系統了。