劉春 李淑芝
摘要:磁盤配額技術(shù)是linux操作系統(tǒng)具有的限制用戶或組文件數(shù)量與磁盤容量的的特性,也支持網(wǎng)頁(yè)空間、每個(gè)用戶郵件空間、每個(gè)用戶最大的可用網(wǎng)絡(luò)硬盤限制,從而實(shí)現(xiàn)維護(hù)所有用戶對(duì)硬盤空間的合理使用。該文闡述了文件系統(tǒng)創(chuàng)建,磁盤分區(qū),掛載以及磁盤配額技術(shù)配置、使用。
關(guān)鍵詞:文件系統(tǒng);掛載;內(nèi)存交換空間;磁盤配額
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)36-8808-02
1 文件系統(tǒng)介紹
1.1 linux文件系統(tǒng)種類
文件系統(tǒng)是指文件在硬盤上的存儲(chǔ)方法和排列順序。Linux 系統(tǒng)最重要的特征之一是支持多種文件系統(tǒng),可以和多種文件系統(tǒng)并存。在Linux文件系統(tǒng)中,ext2/ext3文件系統(tǒng)、虛擬文件系統(tǒng)、/proc文件系統(tǒng)是三個(gè)具有代表性的文件系統(tǒng)。
ext2文件系統(tǒng)是二級(jí)擴(kuò)展文件系統(tǒng),是使用最多的格式。存取文件性能很好,對(duì)中小型文件進(jìn)行存取時(shí)尤為突出優(yōu)點(diǎn)??梢灾С?56字節(jié)的長(zhǎng)文件名。但是EXT2文件系統(tǒng)在寫(xiě)入文件內(nèi)容同時(shí),并沒(méi)有寫(xiě)入文件的mete-date與文件相關(guān)的權(quán)限、所有者、創(chuàng)建和訪問(wèn)時(shí)間。先寫(xiě)入文件的內(nèi)容,等到空閑時(shí)間才會(huì)寫(xiě)入文件的mete-date,但是如果在未寫(xiě)入mete-date前系統(tǒng)突然斷電,就有可能造成文件系統(tǒng)處于不一致的狀態(tài),生產(chǎn)文件的缺失。
Ext3是日志文件系統(tǒng),由于通過(guò)日志解決任何改變的數(shù)據(jù)的記錄工作。具有可伸縮性和健壯性。記錄元數(shù)據(jù)的任何改變,當(dāng)系統(tǒng)運(yùn)行過(guò)程中在某個(gè)階段被中斷時(shí),Ext3文件系統(tǒng)可以根據(jù)歷史記錄直接回溯到并重整被中斷的部分,回復(fù)工作速度相當(dāng)快。
虛擬文件系統(tǒng)VFS并不是一種實(shí)際的文件系統(tǒng)。它只存在于內(nèi)存中,不存在于任何外存空間。VFS在系統(tǒng)啟動(dòng)時(shí)建立,在系統(tǒng)關(guān)閉時(shí)消亡。VFS可以支持linux多個(gè)不同的文件系統(tǒng),允許用戶同時(shí)能透明地使用。
/proc是虛擬文件系統(tǒng),它只存在內(nèi)存當(dāng)中,而不占用外存空間。它以文件系統(tǒng)的方式為訪問(wèn)系統(tǒng)內(nèi)核數(shù)據(jù)的操作提供接口。用戶或應(yīng)用程序讀取proc文件時(shí),proc文件系統(tǒng)是動(dòng)態(tài)從系統(tǒng)內(nèi)核讀出所需信息并提交的。
1.2 linux文件系統(tǒng)運(yùn)行
與操作系統(tǒng)密切相關(guān),linux操作系統(tǒng)的文件權(quán)限與文件屬性,權(quán)限與屬性放到inode中,其中一個(gè)文件占用一個(gè)inode,并記錄該文件的數(shù)據(jù)存放的block號(hào),block的大小數(shù)量在格式化時(shí)就固定了,文件的數(shù)據(jù)存入block中,每個(gè)block內(nèi)最多只能放一個(gè)文件的數(shù)據(jù),如果文件過(guò)大,就會(huì)占用多個(gè)block,若文件小于block,那么block剩余空間就不能使用,產(chǎn)生浪費(fèi)。而文件的整體信息存放到superblock超級(jí)塊,包括數(shù)據(jù)塊的總量、使用量、剩余量等信息。
linux文件系統(tǒng)為索引式文件系統(tǒng),數(shù)據(jù)訪問(wèn)的方式為索引式,系統(tǒng)一開(kāi)始就規(guī)劃好inode與block,每個(gè)inode與datablock都有編號(hào),每一個(gè)文件的inode里先存放的文件數(shù)據(jù)存放放的block號(hào),系統(tǒng)在讀取文件時(shí)需要先找到inode,并分析inode所記錄的權(quán)限與用戶是否相符,若符合在根據(jù)inode編號(hào)讀取block,那么就能夠讀出該文件的實(shí)際數(shù)據(jù),可以再短時(shí)間內(nèi)讀取文件的全部數(shù)據(jù)。由于ext2/ ext3是索引式文件系統(tǒng),具有不需要整理碎片的優(yōu)點(diǎn)。
2 磁盤配額技術(shù)的實(shí)現(xiàn)
2.1 磁盤分區(qū)
硬盤由磁道、扇區(qū)、柱面、簇等構(gòu)成物理結(jié)構(gòu),硬盤分區(qū)就是指定分區(qū)的起始與結(jié)束柱面,可以訪問(wèn)的區(qū)域是由A柱面到B柱面之間的塊。主要分為主分區(qū)、擴(kuò)展分區(qū)、邏輯分區(qū)三種。由于主引導(dǎo)扇區(qū)只有64bytes,最多只能記錄四條分區(qū)信息,因此這四條記錄成為主分區(qū),每個(gè)主分區(qū)的記錄在主分區(qū)表里占14bytes;如果要建多于四個(gè)的分區(qū),就要拿出一個(gè)主分區(qū)做為擴(kuò)展分區(qū),再在擴(kuò)展分區(qū)里面進(jìn)行其它的分區(qū)操作。在建擴(kuò)展分區(qū)的時(shí)候需要建立一張對(duì)應(yīng)的擴(kuò)展分區(qū)表,它記錄了在這個(gè)擴(kuò)展分區(qū)里的分區(qū)的相關(guān)信息;理論上沒(méi)有分區(qū)數(shù)量的限制,在擴(kuò)展分區(qū)內(nèi)部的分區(qū)叫做邏輯分區(qū),如/dev/hda5,/dev/hda6/等;分好區(qū)后,分區(qū)沒(méi)有任何文件。只用向分區(qū)里寫(xiě)入相應(yīng)格式的數(shù)據(jù),操作系統(tǒng)才能夠識(shí)別,比如,NTFS,ext2,ext3等文件系統(tǒng)。
2.2 掛載點(diǎn)
文件系統(tǒng)由inode與block,superblock構(gòu)成,但是文件系統(tǒng)必須鏈接到目錄樹(shù),與目錄樹(shù)結(jié)合起來(lái),用戶才可以使用,這個(gè)操作過(guò)程就是文件系統(tǒng)掛載過(guò)程。如下所示查看掛載目錄/、/home, 可得到對(duì)應(yīng)系統(tǒng)的設(shè)備文件名為/dev/hda2,/dev/hda1,系統(tǒng)顯示的每一行的文件屬性不相同,而且這二個(gè)目錄的掛載點(diǎn)也不相同,其inode也不相同,所以/、/home為二個(gè)不同的文件系統(tǒng)。
[root@localhost ~]# li —lid / boot /home
2 drwrx-xr-x 23 root root 4096 oct 20 07:32 /
2 drwrx-xr-x 4 root root 1024 oct 15 09:04 /boot
195649 drwrx-xr-x 3 root root 4096 oct 15 09:10 /home
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda2 7827412 1947036 5476344 27% /
/dev/hda1 256661 16074 264227 6% /boot
2.3 掛載與卸載endprint
掛載點(diǎn)是進(jìn)入磁盤分區(qū)的入口,單一的文件系統(tǒng)不能被重復(fù)掛載在不同的目錄上,同樣單一的目錄不能重復(fù)掛載多個(gè)文件系統(tǒng),掛載點(diǎn)的目錄若原先不是空目錄,那掛載了文件系統(tǒng)后,原來(lái)的目錄下的文件就會(huì)暫時(shí)被掩藏,并不是覆蓋,等到新分區(qū)被卸載后,隱藏的目錄就再次顯示出來(lái)。
根目錄是整個(gè)目錄是重要目錄,無(wú)法卸載。但是當(dāng)進(jìn)入單用戶維護(hù)模式時(shí)當(dāng)根目錄顯示“只讀”狀態(tài)需要重新掛載時(shí),就需要重新啟動(dòng)。
可以掛載文件系統(tǒng)到某一目錄下,也可以利用mount實(shí)現(xiàn)某個(gè)目錄掛載到另外一個(gè)目錄,也可以掛載光盤、軟盤、U盤。
[root@localhost ~]#mkdir /mnt/wenjian
[root@localhost ~]#mount /dev/hda5 /mnt/wenjian
[root@localhost ~]#mkdir /mnt/upan
[root@localhost ~]#mount —t vfat —o iocharset=cp950 /dev/hda6 /mnt/upan
2.4 內(nèi)存交換空間構(gòu)建
安裝linux時(shí),必須具備的兩個(gè)分區(qū),一是根分區(qū),一是內(nèi)存交換分區(qū)swap,swap解決在物理內(nèi)存不足的情況下所造成的內(nèi)存擴(kuò)展功能。swap不會(huì)使用到目錄樹(shù)的掛載,不需要指定掛載點(diǎn)。當(dāng)內(nèi)存不足時(shí), 為了讓后臺(tái)程序繼續(xù)工作,暫時(shí)將不用的內(nèi)存數(shù)據(jù)存放到swap中,內(nèi)存把空出來(lái)的空間加載需要執(zhí)行的程序,提高內(nèi)存運(yùn)行速度。
構(gòu)建swap分區(qū)的可以采用物理分區(qū)方法構(gòu)建,也可以使用文件構(gòu)建,運(yùn)用物理分區(qū)構(gòu)建方法:
1) 運(yùn)用fdiskh劃分分區(qū)給 swap,需要設(shè)置system ID。
2) 利用新建swap格式的“mkswap 設(shè)備文件名”格式化成swap分區(qū)格式。
3) 運(yùn)行“swapon 設(shè)備文件名”將swap分區(qū)設(shè)備啟動(dòng)。 盡管閃回完成,刪除的原表已經(jīng)復(fù)原,但它在回收站站用的空間數(shù)據(jù)庫(kù)沒(méi)有立即收回,必須使用PURGE RECYCLEBI命令來(lái)清空。在恢復(fù)一個(gè)表時(shí),Oracle將恢復(fù)依賴對(duì)象,比如索引等,但依賴對(duì)象保留隱晦的系統(tǒng)生成名,需要對(duì)它們進(jìn)行重新命名。
2.5 quota分配磁盤配額
quota 配置文件首先分析整個(gè)文件系統(tǒng)中每個(gè)用戶或組的文件總數(shù)與總?cè)萘?,再將?shù)據(jù)記錄在文件系統(tǒng)中,在配置文件中使用戶或組賬號(hào)的限制值規(guī)定容量限制或文件數(shù)量限制,分別都有2個(gè)限制值,分別是soft與hard,,其中hard表示用戶的用量絕對(duì)不會(huì)超過(guò)這個(gè)限制值,soft表示用戶在低于soft值時(shí),可以正常使用磁盤,若超過(guò)soft,x系統(tǒng)給用戶警告,并給出寬限時(shí)間,具體步驟為:
1) 查看系統(tǒng)是否裝了quota軟件包;
2) 使用userquota選項(xiàng)將要做磁盤配額的分區(qū)掛載到某個(gè)目錄上;
3) 創(chuàng)建磁盤配額管理的數(shù)據(jù)庫(kù)文件;
4) 激活要做磁盤配額的分區(qū);
5) 根據(jù)用戶需求來(lái)設(shè)置配置文件,設(shè)定磁盤配額限制;
3 結(jié)束語(yǔ)
由于多用戶、多任務(wù)的Linux系統(tǒng)中,為了維護(hù)所有用戶對(duì)硬盤空間的合理使用,避免少數(shù)用戶大量占用磁盤空間,影響其他用戶的使用權(quán)限,因此系統(tǒng)需要限制磁盤空間給用戶,妥善分配資源,運(yùn)用文件系統(tǒng)建立、磁盤配額技術(shù)可以實(shí)現(xiàn)限制某一用戶組或用戶所能使用的最大磁盤容量,實(shí)現(xiàn)維護(hù)硬盤空間的合理使用。
參考文獻(xiàn):
[1] 譚子軍,何連躍.分布式存儲(chǔ)系統(tǒng)中用戶磁盤空間分配策略[J].計(jì)算機(jī)工程,2010(9).
[2] 李國(guó)峰. Linux ext3文件系統(tǒng)磁盤配額[J].廊坊師范學(xué)院學(xué)報(bào),2004(4).
[3] 曲廣平,郭迎遞.利用quota在RHEL6系統(tǒng)中實(shí)現(xiàn)磁盤配額管理[J].濰坊學(xué)院學(xué)報(bào),2013(4).
[4] 劉剛.Linux系統(tǒng)移植[M].機(jī)械工業(yè)出版社,2011.
[5] 郝偉.淺談管理服務(wù)器磁盤的方法[J].電子技術(shù)與軟件工程,2013(23).endprint