用Storage Foundation管好儲存系統-高階
【IT168 專稿】使用者使用檔案系統的時候,經常會發生兩類問題:一是由於硬碟容量有限,隨著使用者資料量的增加,檔案系統剩餘的空間也就越來越小,可能會導致系統越來越慢或者無法繼續使用;二是雖然硬碟容量足夠,但是由於使用者開始並不瞭解需求,導致某些分割槽容量過大而有些關鍵的分割槽空間不足,如果重新分割槽又會丟失現有的資料,停用現在的服務。當用戶遇到這些問題的時候,一般的做法就會是買一個新的更大的硬碟,把現有的資料儲存其中,然後繼續使用。然而,這個辦法首先會給影響使用者正常服務的使用,給使用者帶來不便。二來,資料的增加是無窮無盡的,多大的硬碟的都不能讓使用者一勞永逸,而不斷購買更大的硬碟也勢必會消耗使用者更多的金錢。
今天的主題是講述如何利用Storage Foundation來管理磁碟和檔案系統,使之能夠充分的利用使用者現有的資源。即使現有資源已經全部耗盡,使用者只要增加有效的資源即可,不需要一定增加更大更多的資源。畢竟,使用者需要的是價效比最好的東西,而不是那些最先進的。此外,動態的意思就是我們的操作不需要影響使用者的使用,一切工作都是對使用者透明的,這用處可是夠大的吧!
參考連結:
用Storage Foundation管好儲存系統-安裝
用Storage Foundation管好儲存系統-進階
用Storage Foundation管好儲存系統-高階
管理磁碟和檔案系統
在Storage Foundation中,是有一個依賴關係的。檔案系統依賴卷,卷依賴與磁碟組,如圖所示:
圖1,檔案系統、卷和磁碟組之間的依賴關係
有圖1可知,如果想要擴大一個檔案系統,必須先保證卷有足夠的空間,卷需要擴大也需要磁碟組有足夠的空間,如果磁碟組空間不足,那麼就需要新增硬碟,加入多大的硬碟就能擴充多大的空間;反過來說就是,如果需要從一個磁碟組刪除一個硬碟,不想保證該硬碟不屬於任何卷,而如果想讓卷不佔用該硬碟,必須保證卷上的檔案系統沒有佔用該硬碟,如果某個檔案系統已經佔用了這個硬碟,那麼就需要由Storage Foundation把其上的資料移到其他硬碟上面。閒話少述,現在開始實際演示如何動態擴大和縮小檔案系統。文中假設環境是由disk1、disk2和disk3組成的TestDG,其上建立了卷TestVol和掛載在/mnt下的檔案系統TestFS,需要移動的磁碟為disk4。
一, 擴大檔案系統
1, 擴大磁碟組空間
如前面所說,如果擴大一個檔案系統,首先需要保證磁碟組的空間足夠:
a) 檢查磁碟組空間大小:
# vxdg -g TestDG free
如果磁碟有足夠的剩餘空間,可以不用新增新硬體裝置。
(注;即使該命令顯示沒有磁碟空間剩餘,那麼可以先檢視一下卷的使用情況,因為有可能是卷已經佔用了所有磁碟空間,但是尚未被使用。具體命令見下文)。
b) 增加新硬碟到該磁碟組
# vxdg -g TestDG adddisk TestDG04=disk4;
這樣就可以把disk4加入到該磁碟組,之後可以用上文的命令檢視磁碟組的剩餘空間,此時能夠看見新的磁碟組的空間增大。
c) 如果磁碟用的是儲存陣列上的LUN,那麼不需要增加硬碟,僅僅需要擴大該磁碟組所包含的LUN的大小,然後讓Storage Foundation擴大disk的容量即可:
vxdisk -g TestDG resize TestDG01 length=2GB
這樣磁碟組的剩餘空間也會變大。
2, 擴大卷空間
a) 在擴大卷空間前,需要先檢視一下該卷支援的最大容量以及還能夠擴充套件多少空間:
1 檢視卷最大的容量大小:
# vxassist -g TestDG maxsize layout=raid5
Maximum volume size: 4096000 (2GB)
該命令說明該磁碟組如果做成raid5的卷,最大可以有2GB空間。
(注:Storage Foundation命令中的大小都是以512B為單位,所有需要乘以2換算成KB)
2 檢視卷能夠擴大多少:
# vxassist -g TestDG maxgrow TestVol
Volume TestVol can be extended by 366592 to
4096000 (2GB)
該命令說明TestVol原來的大小是179MB,最大可以擴容到2GB
b) 增大卷空間,(假設原來的卷是179MB)
1 將卷空間增加到900MB
# vxassist -g TestDG growto TestVol 900m
新的卷將會變成900M;
或者vxsize達到同樣效果:
# vxresize -g TestDG myvol 900m
2 將卷空間增加900M
# vxassist -g TestDG growby TestVol 900m
或者vxsize達到同樣效果:
# vxresize -g TestDG myvol +900m
這樣,新的卷大小為179+900=1079MB。
c) 增大卷空間的另一種方法
大家知道,如果磁碟做了映象,那麼會有一半的空間用以儲存資料映象,其實就犧牲了磁碟利用率來提高硬碟可靠性。但是如果硬碟空間真的不夠用的時候,我們還可以把映象卷刪除,把這部分空間拿出來使用。
# vxassist -g TestDG remove mirror TestVol TestDG03
這樣TestDG3就不再是映象盤了,而可以拿出來存放新的資料。
3, 擴大檔案系統
a) 檢視現有檔案系統的大小
# df –F vxfs -k /mnt
b) 擴大現有的檔案系統
# fsadm -F vxfs -b 1024000 –r dev/vx/rdsk/TestDG/TestVol /mnt
這樣,檔案系統就被擴充套件到了1GB。我們擴大檔案系統的工作也就完成了。
二、縮小檔案系統
縮小檔案系統的目的有很多,可能是因為現有的檔案系統佔用了太多的資源;也可能是因為別的檔案系統的優先順序更高,所以在有限的情況下,不得不把該盤現有的資源“暫借”給另外的檔案系統。不管怎樣,如何保證在檔案系統縮小的同時,不能丟失資料,這個才是縮小的核心意義所在。事實上,除了Storage Foundation的檔案系統以外,很少聽說有檔案系統能夠支援這個特性的,起碼AIX和HP自帶的檔案系統就不支援,而Red hat Linux和Suse也不支援這個特性。哈哈,這個就不多說了,現在來給大家介紹一下縮小檔案系統的詳細用法。
1. 縮小檔案系統
a) 確定如果移走硬碟後,檔案系統有足夠的空間存放所有資料。也就是說檔案系統的剩餘空間應該大於要移走硬碟的總容量。否則轉移資料會失敗。
# df –F vxfs -k /mnt
b) 縮小檔案系統
# fsadm -F vxfs -b 512000 –r dev/vx/rdsk/TestDG/TestVol /mnt
縮小檔案系統到512M,這是卷裡面會有500M空餘。
2. 縮小卷空間
a) 將卷空間減小到500MB
# vxassist -g TestDG shrinktoTestVol 500m
新的卷將會變成500M;
或者vxsize達到同樣效果:
# vxresize -g TestDG myvol 500m
b) 將卷空間減小500M
# vxassist -g TestDG shrinkbyTestVol 500m
或者vxsize達到同樣效果:
# vxresize -g TestDG myvol -500m
這樣,新的卷大小為1000-500=500MB
3. 把卷資料移出要刪除的盤(關鍵)
如果要把盤從一個卷中移走,必須保證該盤上面沒有卷的資訊,否則可能會造成資料丟失。命令如下:
# vxevac -g TestDG TestDG TestDG04
該命令可以將disk4的資料移到其他的盤。
4. 把盤從磁碟組刪除
a) 把盤從磁碟組刪除
# vxdg -g TestDG rmdisk disk4
b) 在Storage Foundation中登出該盤
# vxdiskunsetup -C Disk4
c) 檢查磁碟組狀態
# vxdisk list
小結
學習本文後,使用者可以隨心所欲的控制磁碟和卷的大小,完成使用者特殊的工作。這功能可不是什麼檔案系統都能有的呢。最後需要提醒的是,該過程並不是按部就班,一成不便的。使用者為了擴大空間,不一定非要從新增硬碟開始,也許卷裡就有空間呢;同理,刪除的時候不一定要騰出整個硬碟,騰出一點空間就可以分給其他的卷使用。現在已經是新社會了,我們要學會追求自由和自主了,幸運的是,Storage Foundation也是這樣想的。