熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Linux 磁盤與硬件管理

2013-11-13 16:06:59  來源: Oracle 

  認識硬盤
  讓我們再來復習一下 硬盤 裡面有什麼東西值得我們來討論的!
  
  · 物理組成
  就物理組成來說硬盤是由多個硬盤盤所組成的而每一個硬盤盤上面都有個磁頭( Head )在進行該硬盤盤上面的讀寫工作而當磁頭固定不動硬盤盤轉一圈所畫出來的圓就是所謂的磁道( Track )全部硬盤盤上面同一個磁道組成了磁柱( Cylinder )這個磁柱也是磁盤分割( partition )時最小的單位了!另外由圓心向半徑方向劃直線而每個 Track 上面細分成一個一個的扇區( Sector )那就是最小的磁盤儲存物理量了一個 Sector 通常為 Bytes 這就是整個硬盤的構造啰那麼如果以硬盤的 filesystem 來做為檢視呢?你可以簡單的這樣想啦一個 Partition 當中就具有一個 filesystem ( 檔案系統 ) 啰!那麼一個 partition 當中能不能具有兩個 filesystem 呢?理論上應該是不行的!因為每個檔案系統都有其獨特的支持方式例如 Linux 的 ext 就無法被 Windows 系統所讀取!而你將一個 partition 格式化的時候總不能格式化為 ext 也同時格式化為 fat 吧?!那是不可能的啊!底下來談一談關於檔案系統的相關功能吧!
  
  
  · Filesystem
  在進行磁盤格式化或者是分割的時候都會需要知道磁盤的一些基本的名詞定義主要有
  
  o 主要開機扇區( Master Boot Recorder MBR )主要開機扇區可以說是一顆硬盤裡面最重要的地方了怎麼說呢?因為他記錄了所有硬盤的分割信息以及開機的時候可以進行開機管理程序的寫入等等如果一顆硬盤的 MBR 死掉了那麼這顆硬盤幾乎就可以說是壽終正寢了~那麼 MBR 有什麼限制呢?他最大的限制來自於他的大小不夠大到儲存所有的信息因此他僅提供最多四個 partition 的記憶這就是所謂的 Primary (P)與 Extended (E)扇區最多相加只能有四個的原因了所以說如果你預計分割超過 個 partition 的話那麼勢必需要使用 P + E 並且將所有的剩余空間都撥給 Extended 才行( 記得呦! Extended 最多只能有一個 )否則只要 P + E 之後還有剩下的空間那麼那些容量將成為廢物而浪費了?所以結論就是『如果您要分割硬盤時並且已經預計規劃使用掉 MBR 所提供的 個 partition ( P + E 或 P )那麼磁盤的全部容量需要使用光否則剩下的容量也不能再被使用』不過如果您僅是分割出 P + E 的話那麼剩下的空間就還能再分割兩個 partition !
  
  o 區塊( Block )檔案在磁盤當中會被儲存在一個固定的大小區塊中那就是 Block 而 Block 的大小通常為 的次方其中由於磁盤的扇區物理量通常為 K ( Bytes )所以 Block 通常規劃為 K 的倍數例如 EXT 預設 Block 為 K 即是一例!其中需要特別留意的地方是一個 Block 最多僅能容納一個檔案所以當一個檔案不足 K 時例如大小僅為 K 那麼剩下的 K 容量將會被浪費掉這與 inode 也有一定的相關性!因此在規劃您的磁盤時需要留意到您主機的用途來進行規劃較佳!與此同時若 Block 規劃的太小則磁盤的 Block 數目會大增而造成 inode 在指向 block 時候的一些搜尋時間的增加又會造成大檔案讀寫方面的效率較差這也與 inode 有一定程度的相關性呢!需要特別留意的是『當系統讀取了某一個檔案則該檔案所在的區塊資料會被加載到內存當中所以該磁盤區塊就會被放置在主存儲器的緩沖快取區中若這些區塊的資料被改變時剛開始資料僅有主存儲器的區塊資料會被改變而且在緩沖區當中的區塊資料會被標記為 Dirty 這個時候磁盤實體區塊尚未被修正!所以亦即表示這些 Dirty 區塊的數據必需寫到磁盤當中以維持磁盤實體區塊上的數據與主存儲器中的區塊資料的一致性』這也是為什麼當 Linux 系統不正常關機或者是突發性的跳電時總是會造成系統在磁盤檢驗上面大花時間的原因了!
  
  o Superblock當我們在進行磁盤分割( partition )時每個磁盤分割槽( partition )就是一個檔案系統( filesystem )而每個檔案系統開始的位置的那個 block 就稱為 superblock superblock的作用是儲存像是檔案系統的大小空的和填滿的區塊以及他各自的總數和其它諸如此類的信息等等這也就是說當您要使用這一個磁盤分割槽( 或者說是檔案系統 )來進行資料存取的時候第一個要經過的就是 superblock 這個區塊了所以啰 superblock 壞了您的這個磁盤槽大概也就回天乏術了!
  
  o Inode: 在 Linux 檔案與目錄管理 當中我們提到了很多的 inode 概念這裡在加重補強一下說明對於檔案系統而言一個inode是在inode tables 中的一個項目Inode包含了所有檔案有關的信息例如名稱大小連接的數量資料建立之日期修改及存取的時間它也包含了磁盤區塊的檔案指向(pointer)pointer是用來記錄檔案被儲存在何處對於 inode 的規劃方面我們可以使用 mkefs 來進行
  
  大致上硬盤就有這些東西您還得了解每一個 filesystem 就是一個磁盤分割槽免得到時候底下講的東西太混亂時造成您的困擾那就不好意思啦!
  
  查看硬盤或目錄的容量
  好了!那麼在文字接口底下有什麼方法可以查看目前的磁盤最大容許容量已經使用掉的容量目前所在目錄的已使用容量?還有還有怎麼知道目前目錄底下使用掉的硬盤容量呢?以及如何查詢目前的 inodes 數目?呵呵!底下我們就來談一談主要的兩個指令
  df 查看以掛載磁盤的總容量使用容量與 inode 等等
  du 查看檔案使用掉的容量有多少?
  
  · df
  語法
  [root @tsai /root ]# df [ikm] 參數說明 i: 使用 inodes 顯示結果 k: 使用 KBytes 顯示結果 m: 使用 MBytes 顯示結果 范例 [root @test /root ]# df k    <==以 KB 顯示磁盤空間 Filesystem      1k-blocks   Used Available Use% Mounted on /dev/hda1       2118832  904600  1106600 45% / /dev/hda3        497861   37525  434632  8% /disk1 none           31220     0   31220  0% /dev/shm /dev/hda5        101089   4127   91743  5% /proxy1 /dev/hda6        101089   4127   91743  5% /proxy2 /dev/hda2       1004052   38360  914688  5% /var /dev/fd0         1423   1405    19 99% /mnt/floppy
  說明:
  這是用來顯示目前磁盤空間的指令!需要注意的是,由於我們的檔案或者是外掛的磁盤都是加在『 / 』底下,所以當根目錄沒有空間的時後,嘿嘿!你的 Linux 系統大概就是掛了吧~(說個笑話!當初我們系上有個研究生在管理 Sun 的工作站,是別研究室的,他的硬盤明明有好幾 GB ,但是就是沒有辦法將幾 MB 的資料 copy 進去,他就去跟老板講說機器壞了!嘿!明明才來維護過幾天而已為何會壞了!結果老板將維護商叫來罵了 2 小時左右吧!後來,維護商發現原來硬盤的『總空間』還有很多,只是某個扇區填滿了,偏偏該研究生就是要將資料 copy 去那個扇區!呵呵!後來那個研究生就被命令『再也不許碰 Sun 主機』了~~)當然啰!你可以將你的資料放置在加掛的硬盤中,那麼如何知道目前哪一個磁盤還有多少空間呢?!
  
  這裡要請大家再復習一下,我們的硬盤扇區規劃中, primary 扇區每一顆硬盤只允許 4 個,其它的就放置在 Extended 扇區中了!而,硬盤的代號與 IDE 的插槽是有關系的!如果忘記了,那就回去安裝 Linux 那一章復習一下吧!好了!假設我只有一棵硬盤,且放在 IDE 的 mater ,那麼我的硬盤就是 /dev/hda 啰!而在這顆硬盤中的分割扇區就可以由 /dev/hda1 開始向上加!
  
  OK,那麼使用 df -k 之後,出現的上面的資料中,可以知道我的硬盤更分為 /dev/hda1, /dev/hda2, /dev/hda3, /dev/hda5 與 /dev/hda6 ,咦! /dev/hda4 跑去哪裡了!呵呵!其實 /dev/hda4 通常就是 Extended 扇區啦!而後面的 /dev/hda5, /dev/hda6 等扇區就是由 /dev/hda4 所切出來的!所以 /dev/hda5 + /dev/hda6 = /dev/hda4 !當然,如果還有沒有顯示出來的,例如 Swap ,則 /dev/hda4 還有可能更大呦!
  那麼來解釋一下上面的資料吧!
  · Filesystem:說的是扇區啦!另外,如果你有加掛軟盤的話,那麼就會出現如上表中最後一行啰!
  · 1k-blocks:說明底下的數字單位是 1KB 呦!如果你使用 df -m 則這一欄會出現 1M-blocks 啰!
  · Used :顧名思義,就是使用掉的硬盤空間啦!
  · Available :也就是剩下的磁盤空間大小;
  · Use% :就是磁盤的使用率啦!如果使用率高達 90% 以上時,最好需要注意一下了,免得容量不足造成系統問題(例如最容易被灌爆的 /var/spool/mail 這個放置郵件的磁盤!)。TW.WiNgwIt.COM
  · Mounted on :就是磁盤掛載的目錄所在啦!例如 /dev/hda5 是掛載在 /proxy1 底下,而 /var 是 /dev/hda2 這個扇區啰!
  另外,需要注意的是,有的時後某些系統會出現 /proc 這個扇區,但是裡面的東西都是 0 ,不要緊張! /proc 的東西都是 Linux 系統所需要加載的系統資料,而且是掛載在『內存當中』的,有點像是以前 DOS 年代的虛擬硬盤啦!所以當然沒有占任何的硬盤空間啰!
  
  
  · du
  語法:
  [root @test /root ]# du [-abckms] [目錄名稱] 參數說明: [目錄名稱] 可以省略,如果省略的話,表示要統計目前所在目錄的檔案容量 -a  :全部的檔案與目錄都列出來!默認值是指列出目錄的值! -b  :列出的值以 bytes 輸出 -c  :最後加總 total ! -k  :列出的值以 KB 輸出 -m :列出的值以 MB 輸出 -s  :只列出最後加總的值! 范例: [root
From:http://tw.wingwit.com/Article/program/Oracle/201311/17831.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.