紅帽子認證輔導教程(轉)

roninwei發表於2006-08-15
紅帽子認證輔導教程 V.2002.12.09
宣告:
本文的中文版權屬於譯者probing所有
你可以隨便使用和補充資料但請註明譯者,前提是不要用在商業用途上.如果用於商業請與我聯絡.

做為redhat的非官方的補充學習資料,透過以認證資料的學習為主線來貫串整個有關的知識.
原英文資料目前你可以從
本文不遵循任何條約,但在全部完成後可能會有改變.
特別注意:
如果你在閱讀本文件時發現所寫的內容與你所知不符或者你覺得錯處太多或者在該用專業術語的地方卻被不明確的詞語代替,請原涼,因為譯者的水平有限,但是任推薦你閱讀本文件,因為好的教科書好找,但是撰文讓你挑錯的文件難尋,但這也不是說譯者沒有認真的做這件事.^-^
別的論壇及網站請勿轉載 如要轉載請和linuxsir及我聯絡(方式是去linuxsir上發貼註明要求)
翻譯說明:
本人不保證這些翻譯是完全正確的,也不保證它對你有用,雖然我想保證.
由於本人水平有限,本文中必然存在許多錯誤和不當之處,本人歡迎你對此修改
文件約定:
本文件隨時更新,如要確定你拿到的是否是最新的版本請看標題旁的修改時間
類似(*注,....)的內容就是原英文資料沒有的,是譯者的補充
有些經驗參照了linuxsir上兄弟們的經驗,如果你按步就班的出了問題不要來問我,請到
本文件首先考慮的是基於理論上的完整性,但在適當的地方譯者會放上實際操作中可能出現的問題及解決的辦法,當然本人覺的這更象個大雜燴而不太象一個標準的文件,但這也沒有什麼關係,重要的是你知道了新的東西,你的知識又充足了一點.
基於譯者的機器配置如下
主機板 磐英EPOX BX3
處理器 intel celeron433超541
顯示卡 國產金鷹TNT2PRO版 32M
音效卡 國產青蘋果CMI8738
顯示器 三星550S
硬碟 IBM 桌面之星系列15.3G + 希捷ST32120A 2.1G
記憶體 KINGMAX64M + KINGMAX128M
光碟機 國產獅王50x
軟碟機 三星1.44M
滑鼠 普通雙飛燕3D
鍵盤 ACER
系統 redhat8.0硬碟完全安裝

紅帽子認證工程師輔導教程
(第二版) 翻譯:Probing
第二章 準備安裝分割槽

具體目標
2.01 安裝計劃
2.02 Intel CPU 的硬體選擇和配置

軟體包安裝
硬碟分割槽
硬體的相容性
記憶體設定調整和快取記憶體暫存器
驅動器系統 (IDE, EIDE, and SCSI)
IRQ 設定
IRQs 和標準埠序列表
標準的和其他的Mice介面
PC卡(PCMCIA)

紅帽子的一個優點就是它很容易安裝.它有若干種不同的安裝選項,每一種選項都最大限度的自動化了.然而,在實際的安裝之前,仍然需要要做一些準備.
(*注:為了能較好的理解以後將討論的內容有必要先了解linux的主要檔案目錄及作用:
  ( )中的內容基於REDHAT8.0完全安裝加了少數應用程式的系統,所以實際安裝應該小些.
/bin:存放著一百多個Linux下常用的命令、工具 (7.8M)
  /dev:存放著Linux下所有的裝置檔案! (416.1KB)
  /home:使用者主目錄,每建一個使用者,就會在這裡新建一個與使用者同名的目錄,給該使用者一個自己的空間 (根據你的實際情況來了)
  /lost+found:顧名思義,一些丟失的檔案可能可以在這裡找到
  /mnt:外部裝置的掛接點,通常用cdrom與floppy兩個子目錄!它的存在簡化了光碟與軟盤的使用。你只需在塞入光碟後,執行:mount /mnt/cdrom,就可以將光碟上的內容Mount到/mnt/cdrom上,你就可以訪問了。不過你使用完成後,應該離開該目錄,並執行umount /mnt/cdrom。同樣的,軟盤就是  mount /mnt/floppy和umount /mnt/floppy了。
  /proc:這其實是一個假的目錄,透過這裡你可以訪問到記憶體裡的內容。(191.9M,是偶的記憶體大小)
  /sbin:這裡存放著系統級的命令與工具 (16.8M)
  /usr:通常用來安裝各種軟體的地方 (3.7G)
  /usr/X11R6 X Window目錄 (140M)
  /usr/bin與/usr/sbin 一些後安裝的命令與工具 (268.8M 47.2M)
  /usr/include、/usr/lib及/usr/share 則是存放一些共享連結庫 (67.3M 1.5GB 1.2GB)
  /usr/local 常用來安裝新軟體 (301.5M)
  /usr/src Linux源程式 (116.9M)
  /boot:Linux就是從這裡啟動的 (12.8M)
  /etc:這裡存放Linux大部分的配置檔案 (12.4M)
  /lib:靜態連結庫 (126.4M)
  /root:root使用者的主目錄,這就是特權之一!
  /var:通常用來存放一些#變化中的東西! (131.5M)
  /var/log:存放系統日誌 (21M)
  /var/spool:存放一些郵件、新聞、列印佇列等 (1.2M)
  另外,要說明的是,在Linux下"當前目錄"、"路徑"等概念與Windows下是一樣的。
注 這部分的內容直接取自linuxsir的教程,偶的分割槽是/7.8G/home6.8G/swap 480M
由於在以下的討論中有些翻譯不準確,所以你應該先看看專業術語的解釋,這有助於你能正確的判斷文件的正確性.
1 儲存器
所有系統都有一個儲存器層次結構,在這個層次結構的不同層上有不同速度和大小的儲存器.速度最快的儲存器就是我們所知道的快取記憶體.就像聽起來的那樣,它是用來暫時保留或快取主儲存器內容的儲存器.這種儲存器速度很快但也很貴,所以大多數系統有少量的片上(on-chip)快取和稍多的系統級(板上)快取.有的處理器用一個快取儲存指令和資料,但其它的處理器有兩個快取,一個指令快取和一個資料快取.Alpha AXP處理器就有兩個內部快取:一個是資料的(D-Cache),一個是指令的(L-Cache).外部快取(B-Cache)將兩者結合在了一起.最後是主儲存器,相對外部快取來說是很慢的.相對於CPU片上快取,主存慢的就象爬一樣.
快取記憶體和主儲存器必須保持同步(一致).也就是說,如果主儲存器的一個字儲存在快取記憶體的一個或多個位置,則系統必須要保證快取記憶體和主儲存器的內容是相同的.快取記憶體一致性的工作一部分由硬體完成,一部分有作業系統完成,許多主要的系統任務也是這樣,要求硬體和軟體配合來達到目標.
你可以看看現在的關於英特爾CPU的規格介紹(去中關村線上上就可找到)有助於理解這些內容.
2 程式
一個程式可以被想象成一個執行的程式,每個程式都是一個執行特定程式的獨立實體.如果你察看一下linux系統上的程式,就會發現有許多程式.例如,開啟一個終端,鍵入$:ps 回車.
如果機器中有許多CPU,那麼每個程式就能(至少理論上能)在不同的cpu上執行.不幸的是只有一個cpu,所以作業系統又得使用技巧,把每個程式依次執行一段很短的時間.這一段時間就是我們所知的時間片(time-slice).這個技巧叫做多程式或排程,它騙使每個程式都以為自己是唯一的程式.程式相互之間受到保護,所以當一個程式崩潰或出錯時不會影響其它的程式.作業系統透過給每個程式一個獨立的,只有它自己能訪問的地址空間來達到這個目的.
所以,今天運用了多執行緒技術的Pentuim4可以讓你在一臺機器上看到兩個或多個CPU!COOL!

CERTIFICATION OBJECTIVE 2.01
安裝計劃
在安裝任何軟體之前,計算機應該有能被識別的可用的硬體.安裝程式將會向你詢問這些硬體的資訊,所以以下資料是你在開始之前要準備的.
如果你有以下的硬體你應該知道它們每一個的製造商,工作模式:
SCSI 控制器
網路卡 (NIC)
顯示卡
音效卡
你或許還需要其他的資訊,如基本的I/O地址和每個硬體用的中斷.在本章的結尾我們將討論linux的硬體相容問題.

Packages to Be Installed
軟體包的安裝
紅帽子可以很方便的管理編譯軟體包.很可能的是你將不需要安裝這些軟體包,即使是因為安全(或是官方說明)宣告這不是一個好主意.你的老闆可能不贊同安裝了阿帕奇網路伺服器的辦公室網路被用來為一個個人的網頁服務.同時,你的網路上的所有的計算機不需要執行innd網路新聞服務。

僅僅安裝你需要的那些軟體包.如果以後還需要安裝的話,rpm工具可以很方便的安裝.


硬碟分割槽

建議在安裝linux之前先在硬碟上劃分好分割槽.因為各種各樣的原因這是一個好主意.首先,紅帽子的執行要兩個檔案系統:一個是linux交換空間,一個是linux本地檔案系統.第二,如果你要在同一臺機器上安裝紅帽子和其它的作業系統你必須為它們分別建立不同的分割槽.

接下來的章節將討論這樣分割槽的優點.
穩定而安全
linux的本地檔案系統(nativefilesystem)通常是在硬碟的分割槽中分別劃分的.推薦配置是為這些目錄分別劃分不同的分割槽/,/usr,/tmp,/var,特別的/home和公司資料,資料庫服務,甚至網路和ftp站點,如果你希望它們佔有更多的空間就要為它們劃分不同的分割槽.
以這種方式分割槽來保持系統檔案,使用者檔案,應用程式相互獨立互不干擾.這些有助於保證linux核心和應用程式的檔案空間.檔案不能跨越分割槽.因此,一個應用程式佔據了巨大了磁碟空間,例如新聞組伺服器,那麼linux核心將沒有磁碟空間可用了.另外一個優點是如果硬碟上有壞點的時候,恢復一個單獨的分割槽比恢復整個系統要容易的多.
改進了安全性.給你的多個分割槽僅讓你能訪問一些檔案而已.例如,沒有理由讓任何一個使用者(甚至root)可以改寫/usr目錄,讓這些分割槽處於僅限訪問將有助於保護這些檔案不被串改.
這兒有許多種分割槽方案,但是卻不一定是你所希望的方案.對單使用者系統,或是磁碟空間緊張的,將要求一個簡單的檔案系統規劃.例如:給目錄/var劃分了300M的磁碟空間,但是可能它只使用了100M的空間,這就造成了200M的空間被浪費了.對於RH7.X,加上ftp和web目錄到/var內,將會另外需要磁碟空間.
目前沒有一個簡單直接的辦法來設定linux分割槽.所以當你想為硬碟分割槽時你必須要很小心謹慎的去做.

分割槽需要多少空間?

你應該按照你的需要和計算機的功能來劃分空間.例如,在目錄/var中設定一個郵件服務目錄為/var/spool/mail,那麼郵件服務將需要一些空間來執行.你或許想建立一個單獨的分割槽來容納/var/spool/mail.對於RH7.X檔案管理已經在/var中加入了ftp和web服務.對於/var這需要額外的磁碟空間.普遍的,跟分割槽是適度的大小,而別的則倚賴於系統的使用和功能來劃分.
例證:檔案伺服器
如果你要把你的linux裝成檔案伺服器,那你的檔案系統應該看起來像如Table 2-1.
檔案系統 大小 掛載點
Filesystem Size (MB) Mounted on
/dev/sda1 400 /
/dev/sda5 2000 /var
/dev/sda6 300 /usr
/dev/sda7 60 Swap space
/dev/sda8 1000 /home
/dev/sda9 3000 /home/shared
Table 1: Example Disk Partition Scheme for a Linux File Server
(*注,sd**等是指的scsi介面的硬碟)
/var檔案系統有足夠大來安裝各種服務.還有X11,當然如果你需要這玩意.大多數的磁碟空間分配給了/var,日誌檔案,FTP和HTTPD服務,對於/home,使用者自己的檔案,對/home/shared,共用的檔案.當然,這僅僅是一個例子.你劃分給共享檔案的磁碟空間的大小倚賴使用者的數目和使用的檔案型別.

linux交換分割槽
通常的,linux能支援最大4GB的交換分割槽.這4GB可以推廣到最多8個分割槽.注意:每個交換分割槽被限制最大2GB.
(*注:為什麼是4GB的限制呢?解讀微型計算機2002年NO.20Page92:bug現象:PowerVR KYRO 2 顯示卡在Abit KG7主機板上搭配4GB DDR記憶體使用時會出現開機即死的現象.BUG分析:記憶體容量若高達4GB時,系統所能使用的記憶體範圍將只能到3.5GB,這個限制是由於PC構架所造成的,而消失的0.5GB記憶體地址則是用來保留給PCI I/O空間,AGP材質對映空間以及其它裝置的I/O空間,也因此,即使AMD761的規格宣稱最大支援的記憶體容量有4GB,但實際上插上4根1GB的記憶體條,系統也只能夠使用3.5GB.換句話說,BIOS和作業系統會會報只有3.5GB記憶體.而這裡遇到的則是硬體相容性問題.已知解決辦法:在BIOS設定介面裡將AGP Aperture Size由原來的預設值64M改為256M即可解決此問題.儘管講的是實體記憶體,但交換分割槽就相當是LINUX模擬的記憶體,所有偶想存在的問題也就在這裡吧,有沒有兄弟知道的也請告之,偶將在修訂版內註明.:))

沒有權威的準則來判定應該使用多大的交換分割槽,但是你可以採取基於標準的UNIX的約定,交換分割槽應該是實際實體記憶體的2到3倍.硬碟空間相對RAM來說便宜呀:).
(*注:這個意思是否和上面的話有衝突呢?偶估計不是,這樣的計算機當然是用來做伺服器或超級微型機的了,靈活的來看問題,如果你堅持要用2-3倍的交換分割槽,那就帶著問題看完以後的章節吧,如果還不能解決你的困惑,可以去LINUX的相關網站諮詢:).)

系統所使用的最大記憶體數取決於你執行的所有程式所需要的記憶體的總和.你可能還拿不定主意你到底需要多大的記憶體.你可能需要買些你負擔的起的記憶體了.花在記憶體上的錢相對你花在除錯一個反應遲鈍的系統上的時間來說還是便宜呀.(*注:很著名的理論渥,時間就是金錢!)linux可以較好的執行在32M記憶體,64M記憶體會有很好的效果,128M記憶體,那太不可思議了.(*注:偶感到有點可笑,7.X系列在偶的機器上沒有飛起來,8.0讓偶感覺到一分錢一分貨,但分析一下,如果去掉不用的程式,關掉不用的服務,重新按照本機的配置編譯核心的話應該會有這個效果,裝完windows要最佳化,可是linux偶覺得應該是按需來裝,8.0完全安裝4.7G,功能齊全,如果要windows達到同樣的功能會怎樣?對7.x和8.0完全安裝使用Xwindows的使用者偶建議的記憶體為128M和256M會有較好的結果)
對於採用Pentium 1級別及其以下的處理器,linux支援1GB的記憶體定址.新的Pentium II和高版本的系統採用linux kernel 2.2可以支援4GB的記憶體(採用企業級核心).RED HAT 7.1採用新的2.4版核心,在 Pentium II和高版本的系統上記憶體已經擴充套件到可支援64GB!(*注:難以置信的64GB!偶看偶的8.0的核心是2.4.18版,目前最新的有2.5版了,不知道有多大的突破:).但是現在我們的問題是如上段文章說講的,這的問題是4GB的限制到底存在麼?還是在硬體上有不同,在超級計算機系統中不存在這個問題?有待正確的解答!另,選用Pentium4的朋友應該採用7.2版本以上,如想發揮Pentium4的超執行緒技術(好象是3.06GH以上的才有)強大威力就的選RED HAT 8.0了,看見自己的機器裡有兩顆Pentium4絕對的酷!)
任何要使用的程式使用的隨機可定址的記憶體的總數量是可使用的實體記憶體加上交換分割槽空間的和.通常的情況下linux的實用程式佔用的很小,但是除了象資料庫服務,讀取巨大的資料到記憶體中,在做某些事情的時候甚至使用全部的可使用記憶體.同樣的,影像處理和尖端圖形制表都會佔據系統大量的記憶體.(*注:這段翻譯的不太準確,但大概的意思也就是這些了,看不看原文都無所謂的了)
如前所建議的你必須有一些交換分割槽;兩到三個普通隨機儲存器(*注:也就是今天的記憶體條了:)).當實體記憶體充足的時候linux優先使用這些,僅當實體記憶體不夠是才把交換分割槽做為附加的記憶體來使用.記憶體的頁已經給當時最重要的使用了並且試圖優先使用實際的可用的實體記憶體以防止記憶體耗盡.Pages of memory that haven't been used for a significant amount of time will be swapped out in an attempt to utilize as much physical memory as possible.(*注:這段偶也只能照著感覺來了,放上原文大家一起來看看:(,根據整段話的意思偶覺得可以理解為,linux將記憶體的一部分分配給具有優先權的指令,並試圖把別的不重要的資料轉存在交換分割槽,這樣就可以防止實體記憶體耗盡,隨時可有可用的物理使用了).
實際上你不希望你的系統頻繁的使用交換分割槽.如果交換分割槽太頻繁的使用,你應該加些記憶體了.交換分割槽是在硬碟上,它比實體記憶體要慢5到6個指令級別,所以它有著很高的命中率.這就是說,你還是的為當出現一些預料不到的事情時系統需要更多的記憶體時準備一些交換空間.請留心,安裝程式將試圖把交換分割槽放置在硬碟的前面而不管它能的到什麼速度.(*注:不太明白這句話的意思.偶的交換分割槽是放在硬碟的最後的,偶在考慮下次是否該放到中間去?:)

另一個加速交換的辦法是採取策略.你沒有被限制在一個地方用交換分割槽.這很有用尤其當你擁有超過一塊以上的硬碟和超過一個以上的控制器(*注:控制器應該指的是SCSI卡),你可以將交換分割槽放在每個控制器上的硬碟上.這樣,如果一個控制器忙的話,那另外的控制器就可以用來處理交換.當然,交換分割槽放在硬碟的那裡的確對效能有影響.如果經常使用的資料放在硬碟開始的地方,而你的交換分割槽卻放在硬碟的末尾,那麼驅動器就的在兩頭來回的讀取資料,這增加了資料的定址時間.將你的交換分割槽放在你經常使用的資料旁邊,這可以提高你的硬碟的工作效率.(*注:鬧明白了偶的7200轉的硬碟為什麼慢了)

BIOS的限制

在1998年以前製造的計算機,或許有個BIOS(Basic Input/Output System即基本輸入輸出系統),它限制了系統不能從硬碟的1024柱面以後啟動.關於這個問題的普遍現象是你的計算機在啟動的時候不能看到過去所分的超過512M的分割槽.如果你不遵從這個限制,那麼你的linux將不能被BISO識別,也就是說你的系統不能被啟動.(*注:當然,在2002年的今天,RED HAT 8.0 和MANDRAKE9.0都已經解決了這個問題,方法方法是先將LILO裝在主盤的MBR上,修改LILO,指定核心的位置,具體的暫時先不在這裡討論,到了相關的章節在討論,如果你等不及的話,可先到LINUXSIR上檢視相關帖子.)

分割槽所用的軟體

有許多的分割槽工具可以給LINUX分割槽,即使一些工具不能在LINUX下執行,Red Hat 7.x帶有兩個小工具:fdisk/cfdisk
(僅在安裝的時候)和 Disk Druid.(注意:cfdisk和fdisk是相似的工具,但cfdisk帶有一個圖形介面).它們都工作在同樣的終端.但紅帽子推薦你使用Disk Druid來為你安裝分割槽.Disk Druid 提供了對你的硬碟的圖形化表示,這樣相對fdisk/cfdisk來說更安全些.一旦安裝了LINUX,fdisk/cfdisk就是可以使用的了.

分割槽的命名規定

Unix由於常給硬體創造怪異的檔名而臭名昭著:),所有的unix版本都沒有一個統一的標準.直到現在linux都一直在用一個簡單的標準來使用磁碟驅動器:磁碟裝置使用3個字母,接一個數字.第一個字母標明控制器的型別(h是IDE/EIDE,:)就是偶現在用的這種硬碟了,s是指scsi).第二個字母d是指disk,(*注:就是硬碟的意思了),第三個字母是用來指硬碟的位置了,也就是第一塊硬碟用a表示,然後依次是b.c.d.e..這意味著第一個硬碟就是hda,下一個是hdb,接著就是hdc,hdd..(*注:scsi的就是sda,sdb,sdc..了).磁碟上的分割槽數是從1開始的,但在DOS世界裡,它們可能不是連續的,這倚賴於它們是如何建立的.但是在我們的規則裡,對於第一個IDE硬碟這些分割槽將是/dev/hda1, /dev/hda2,/dev/hda3,.../dev/hda16.
而第二個IDE硬碟就是/dev/hdb1.../dev/hda16.同樣的運用在SCSI硬碟上:/dev/sda1, /dev/sda2... /dev/sda15
(SCSI硬碟只能建立15個分割槽,但IDE可以建立16個分割槽).在這個SCSI控制器上的第二個硬碟將是sdaa{1,2,..15}如此等等.第二個控制器上的第一個硬碟將是sdb{1-15},其上的第二個硬碟將是sdba{1-15},如此等等.在RH7.X中,可以構建2048個SCSI裝置.硬碟和分割槽的數目倚賴於linux的版本及其分配.

習題2-1 分割槽練習
Although you probably have never had to do this on a basic MS Windows-oriented computer, for a real server system, one that's Windows- or UNIX-oriented, you should pre-plan your disk usage and partitions very carefully.
1 On a piece of paper, draw a rectangle to represent each hard drive on your computer.
2 Label them in order just as Linux would (e.g., Hard Drive 1: /dev/hda, Hard Drive 2: /dev/sda, Hard Drive 3: /dev/sdb).
3 Use this diagram to plan your Linux partitions visually.
Using this method, you can organize your data, keeping system or users' files together, as well as strategically plan where to place your swap partition(s)
儘管你可能永遠都不用在一個基本的MS Windows機器上,或一個真正的伺服器系統,或者Windows或者UNIX系統上做這些,
但你應該十分仔細計劃你的硬碟的使用和分割槽.
1 在一片紙上,用矩形來表示你機器上的每一個硬碟.
2 象linux樣的為它們標示(e.g., 硬碟 1: /dev/hda,硬碟 2: /dev/sda, 硬碟 3: /dev/sdb).
3 用這個來規劃你的linux分割槽
用這種辦法你可以組織資料,儲存系統或者使用者的檔案,合理的放置你交換分割槽.

CERTIFICATION OBJECTIVE 2.02

Intel CPU Hardware Selection and Configuration
英特爾平臺硬體的選擇和配置
你不得不小心的選擇硬體,因為有些硬體linux還不支援.可惜的是,硬體製造商一直把目標放在Microsoft Windows上.
要想硬體能在linux下可用,這需要硬體製造商認可linux這個市場併為它開發驅動,或者第三方為它開發驅動.今天的linux已經強壯了.linux有著巨大的使用者群體,他們中有為linux開發驅動的,並在internet上自由的釋出.如果這個硬體是流行的,那麼你一定能在英特網的某個地方找到它的驅動,並且已經或者將要整合到諸如REDHAT的發行版中了.
請留心當你要購買新的計算機來使用linux.雖然最近幾年linux已經走過很長的路,你在用最新的PC安裝LINUX時任可能會出現些小問題.你不應該假定linux可在任何pc上執行,尤其是膝上型計算機或含最新尖端技術的機器.最新的或含很多新技術的可能還不能被linux支援(當然不是絕對的).這些硬體可能是針對或特意為某些作業系統製造配置.例如Winmodems和Winprinters就不能在linux下工作,因為它們是針對MS Windows製造.整合的硬體(e.g.影片卡和共享隨機儲存器)和並行串列埠裝置(除了印表機)及其它的是你應該擔心的.目前,開發驅動可能給他們帶來新的難題就象當初如何製造它們.一個好主意是選擇去年的模型硬體:它們便宜了並且很可能被支援.應用到膝上型計算機選擇,你的冒險就是選最好牌子的!
除非已經證明linux可以在一個新機器上執行,選擇一箇舊一點的機器是一個好的選擇.linux可以在低端的機器上執行的很好.這是linux比其它作業系統強的一點,如Microsoft's Windows NT.在32M記憶體的機器上linux可以執行.當然如果你需要執行更多的程式那就理所當然的需要更多的記憶體.

Hardware Compatibility
硬體的相容性
在為linux選擇正確的硬體時你可以得到幫助和找到資料.有許多地方你可以找到幫助,包括郵件列表和新聞組.或許最好的地方是去LDP(LINUX技術文件)或者紅帽子硬體列表查詢.LDP是為了LINUX而產生的全球性的文件,包括硬體相容性,在這裡你可以找到Hardware HOWTO.

Linux Hardware HOWTO
LINUX硬體howto
linux硬體howto是由大多數被linux支援的硬體組成的檔案列表,它隨著硬體規格的變換也不斷更新,因次它的資訊是新的.linux硬體howto的各個語言版本的PDF格式的檔案在red hat linux7.x的第三張cd-rom上有提供.當前更多的資訊可在red hat 的官方網站上找到. Microsystems' Sunsite (sun微系統)at 或者任何映象站點.

The Red Hat Hardware List
紅帽子硬體列表
紅帽子硬體列表列出了經過redhat linux測試的硬體廠商和硬體商標.紅帽子為這些列出的硬體提供安裝技術支援.那裡還有一個不支援列表.這張列表不一定意味這指定的硬體不能執行linux,它只是簡單的標明紅帽子不會為這些硬體提供安裝支援.有Intel, Alpha和Sparc architectures.(*注:不知道最後這個是什麼意思)
象LDP一樣,紅帽子的硬體列表是由自願者提供更新資訊,如果你想查詢任何最新的硬體(如usb)是否能在你的linux系統上執行,或許你最好先看看紅帽子支援列表,然後LDP的硬體HOW TO,如果你希望能肯定被紅帽子支援,那你就該好好看看紅帽子硬體支援列表了.
Exercise 2-2 Hardware Compatibility
習題2-2 硬體相容性
On the Web, visit Once there, find the Linux Hardware Compatibility HOWTO. Take note of its date (it should be posted near the top). How current is it?
Research the topology of the network you are on and try to find a mirror of the Linux Documentation Project closest to you on the Internet.
(可能在頂端),最近的是哪些?
搜尋離你較近的網路上試著找個linux文件的映象站點.

RAM Sizing and Cache Issues
隨機儲存器的容量和快取記憶體的問題


訪問硬碟相對與訪問記憶體來說慢.為了最佳化記憶體,linux核心始終保持追蹤曾被裝載過的檔案.如果萬一一個請求是在曾經訪問過的檔案中,那麼系統將使用高速緩衝儲存器而非去訪問硬碟.例如:當諸如ls的命令被執行時,那有關這個命令的二進位制資料映象就被複製到記憶體中.如果再度呼叫ls命令,那麼這個二進位制資料就從記憶體中呼叫出來,而不是用另一個"慢"的硬碟讀取.
Write-Through versus Write-Back Buffer Cache
高速緩衝儲存器快取的寫入和寫出
高速緩衝儲存器的快取有兩中型別.一種是寫入.有了寫入快取記憶體儲存器快取,快取記憶體中的資料塊的變化會立刻寫入到硬碟中.早期的ms-dos版本用這種型別的記憶體管理把資料直接寫入硬碟.第二種型別是寫出(*注:或可稱為回寫)快取記憶體儲存器快取,大多數的多使用者系統諸如linux,unix,nt,使用並命名為VMS(虛擬記憶體系統).這第二種型別也被稱為"lazy write."(*注:直譯是懶惰的寫,我們先暫且稱為隋寫吧,待我查到相關資料再為其正名好了).系統把檔案的變化保持在記憶體中直到CPU空閒時在把所有變化寫入到硬碟中.實際上的寫操作是在較晚的時候完成的,通常是在後臺執行,這樣不會讓其它的程式變慢.在CPU的迴圈時間週期裡如果寫入快取佔有較少的資源時,寫出快取對錯誤就更敏感.如果作業系統當機了,或者突然掉電,任何寫出快取緩衝區內的改變還沒有寫回到硬碟中,那麼快取記憶體緩衝區內的資料就會丟失.當這發生時,LINUX會在啟動的時候自動執行檔案系統的檢查.隨著LINUX在適當的時候中斷程式以允許同步儲存緩衝器快取中的資料到硬碟,LINUX會自動仔細處理高速緩衝儲存器內的資料.
Buffer Cache Size and Available Memory
高速緩衝儲存器的快取大小和可用記憶體
linux自動使用空閒的記憶體做為快取並且當記憶體中的程式開始或停止時動態的調整大小.系統的守護程式buffer不斷的將不用的資料寫回到硬碟.(The system daemon bdflush is used to flush any dirty buffers (buffers where data has changed) back to disk.*注:這句話偶沒有弄明白,先按照自己的理解翻譯,放上原文.)任何時候你可以強制使用同步命令(通常至少呼叫三次以確保緩衝器是清空的.典型的是在救援模式中當一個最小的linux在記憶體中並且你想確保任何你做的檔案的改動完全絕對寫入到硬碟,因此規定"三次".)將所有沒有回寫的資料寫入到硬碟.當linux啟動後,一個名為更新的守護程式開始在後臺執行.更新開始執行buffer並且沒30秒執行一個同步命令.

Disk Subsystems (IDE, EIDE, and SCSI)
磁碟子系統(IDE, EIDE, and SCSI)

這些系統是在作業系統裝載前建立和初始化的.在linux裝載後,磁碟子系統的設定可以透過軟體來修改設定.然而,linux首先應該被裝載,這樣計算機的bios才能識別出構成這些子系統的硬體.

IDE and EIDE
IDE是Integrated Drive Electronics(磁碟整合電子學)的縮寫.最初他是用在IBM pc上的16位ISA匯流排標準,1990年被ANSI美國國家標準協會採用做為高階技術配屬(ATA)標準.IDE的一個不足是它只能訪問504MB的磁碟空間.圍繞著這個問題,增強性IDE(EIDE)建立了.它不僅支援超過504MB的硬碟,還提高了硬碟的訪問速度.為了支援附加的硬碟,直接記憶體訪問(DMA),和ATA 介面裝置諸如CD-ROMS和磁帶機.1994年ANSI採用EIDE做為高階技術標準ATA-2或者說快速ATA.
另一個問題是英特爾系統的BIOS報告僅發現硬碟1024柱面而不管實際上存在多少柱面,這影響了IDE或SCSI.這是老版本的BIOS固有的限制.由於這個原因,你必須將你的/boot檔案放在1024柱面以內,否則將不能啟動你的系統因為BIOS不能正確讀取柱面數.大多數1995年以後製造的計算機內建了一個補丁叫邏輯定址,或者叫做LBA,一個系統可以識別LBA,調整柱面,磁碟最前部分,扇區數,使整個磁碟可以邏輯定址.簡言之這僅僅發生在比較舊的機器上.
如果你不知道這些那這些硬體限制問題造成的障礙是普遍和難以解決的.盡你所能去了解硬體限制,包括老機器固有的1024柱面限制.

SCSI
微型計算機介面(SCSI),由蘋果計算機發展而來,允許你的機器聯接硬碟,光碟機,磁帶機,印表機和掃描器.SCSI比EIDE更快更靈活,支援7,15,甚至32個驅動器,這倚賴於SCSI匯流排頻寬.在SCSI上資料的轉移可以達到每秒5-160MB或者320MB.由於SCSI硬碟太貴,所以在大部分的桌上型電腦上很難見到SCSI控制器.大的PC供應商仍然使用SCSI控制器在他們的尖端伺服器以應付巨大的資料交換和更多的匯流排頻寬要求.

Disk or Partition?
硬碟和分割槽?
一個硬碟需要一個分割槽表.分割槽是硬碟上的柱面的邏輯序列組合,而柱麵包含所以能被磁頭讀取的扇區.你可以建立一個分割槽包含所以的柱面,也可以在IDE上建立16個分割槽但只有15個可被使用.而SCSI可以建立15個並且這15個都可使用.IDE上的擴充套件分割槽不能象通常的分割槽一樣使用,因為它保持著邏輯分割槽的列表.

IDE的16個分割槽只有15可以使用,SCSI的是15個都可以使用.

主分割槽'擴充套件分割槽'邏輯分割槽
在每個硬碟上你被限制只能劃分四個主分割槽.(*:注:記得在windows下用fdisk分割槽,一個硬碟只能有一個主分割槽,如有疑問請看下面說明了.)所以發展了擴充套件分割槽.在一個擴充套件分割槽裡,可以建立邏輯分割槽.IDE硬碟可以最多劃分16個分割槽(3個主分割槽1個擴充套件分割槽,包含最多12個擴充套件分割槽),然而SCSI被限制15個.可惜的是在英特爾平臺上分割槽命名規定即不簡單也不直接.所有邏輯分割槽建立在擴充套件分割槽裡,裝置命名從5到16(或者15在SCSI上)沒有說明配置了多少個主分割槽.假設,例如你有一個IDE硬碟,你建立了一個單獨的主分割槽,它該命名為裝置hda1.如果你接著建立一個擴充套件分割槽,技術上它該是hda2,並且是不可用的.在這個擴充套件分割槽,hda2,你必須建立至少一個邏輯分割槽,它將被命名hda5.
更糟糕的是當你建立了一個主分割槽,然後建立一個擴充套件分割槽在你產生的邏輯分割槽.如果你接著從空閒空間建立第二個主分割槽,IDE硬碟將重編號分割槽,你的啟動程式將完全失敗,因為內部分割槽的名稱變化而指向錯誤的分割槽.
你應該知道裝置名稱,如起始名稱和任何基本硬碟上建立的任何邏輯分割槽.也該意識到在IDE型別的硬碟上建立分割槽的特性.
Cylinder/Head/Sector Geometry and Remapping
柱面/Head/Sector Geometry and Remapping
硬碟的大小取決於它的幾何劃分.在硬碟上包括可供使用的柱面,簇,扇區.所有這些構成了硬碟上的一個個地址.通常的,你的BIOS被限制在1024柱面,256簇,63扇區.所以現代的硬碟裝置用512位元組每扇區.於是1024乘上256乘上63乘上512後大約是8000MB,8GB.如果你有一個大於504MB的硬碟而你的BIOS卻報告說只有1024柱面,那你的機器將不支援大硬碟定址.今天大多數的機器用LBA的方法解決了這個問題.
SCSI驅動器有它們自己的BIOS,這些限制對SCSI硬碟沒有影響.

Logical Block Addressing (LBA)
如果你的計算機是在1994年以後製造的,那麼你可以幸運的在COMS中選擇LBA模式.LBA是一個包含了特殊方法來定址扇區.代替了硬碟上談及的柱面,簇,扇區的位置,每個扇區指定了獨一無二的數字從0到N-1,N就是硬碟上扇區數.透過LBA模式BIOS可識別出硬碟.

Example 例項
一臺機器上的硬碟有3045柱面,16簇和63扇區.不使用LBA,限制了不能超過1024柱面,所以基本磁碟作業系統不能訪問硬碟上1024柱面以後的空間.使用LBA模式,BIOS報告給系統硬碟有32簇(代替了原來的16簇).這個變化成了1024柱面32簇
63扇區,新的改變容量和原來的硬碟是相同的,但是透過LBA翻譯成可訪問.

Multiple Controllers
多個控制器
同時在同樣的個人電腦上使用超過一個以上的硬碟控制器是可能和理想的.這是普通的透過在你係統上增加容許能力來
減輕你瀆寫單一硬碟的瓶頸.
在同一臺機器上你可以同時使用SCSI和EIDE控制器,但是有些困難你該知道.在啟動的時候BIOS僅能訪問頭兩個EIDE硬碟.當然,如果安裝了EIDE硬碟SCSI硬碟或許不會被處理.BIOS可以設定你從SCSI硬碟啟動.確信你理解在啟動的時候哪個驅動器可以被BIOS訪問,因為如果你在硬碟中安裝了啟動扇區但是不能被訪問,linux將不會被啟動.
當你的機器啟動時,BIOS給每個裝置分配了一個數字.BIOS分配給它們的順序可能和LINUX的順序不一樣.這可以混淆LILO並
使它失效.

例項
你的計算機安裝了一個從SCSI硬碟啟動的linux,BIOS賦予0x80給/dev/sda(SCSI硬碟)和0x81給/dev/hda(第一個EIDE硬碟).然而linux賦予0x80給/dev/hda,0x81給/dev/hdb(第二個EIDE硬碟),和0x82給SCSI硬碟.這在BIOS和LILO之間就有個爭執.LILO將不能在/dev/sda上找到啟動扇區,因此將啟動不了linux.當你在LINUX裡執行/sbin/lilo,你將會得到資訊"BIOS-Drive 0x82 may not be accessible"(參看第四章配LILO)."Basic Configuration and Administration," 更多資訊,請看/etc/lilo.conf的bios= option

RAID and MD Systems

RAID(磁碟冗餘陣列)在linux中可以透過硬體或軟體來構建.它們之間的折衷方案是相對於價格和效能.硬體實現比軟體實現更昂貴,但是效能也是最好的.
用硬體構建RAID需要用一個RAID控制器來把幾個裝置聯接起來.這個控制器必須安裝驅動程式.linux當時提出一種解決辦法用md核心補丁用軟體來構建RAID.你因該使用linux核心2.0.36或者一個新的2.2.x版本.一旦RAID在你的系統裡建立了,linux可以使用它就象別的裝置一樣.
RAID有許多種不同的配置,接下來我們要討論幾個linux支援的基本的RAID配置.
(*注:相關資料 磁碟陣列其實也分為軟陣列 (Software Raid)和硬陣列 (Hardware Raid) 兩種. 軟陣列即透過軟體程式並由計算機的CPU提供執行能力所成.由於軟體程式不是一個完整系統故只能提供最基本的 RAID容錯功能. 其他如熱備用硬碟的設定, 遠端管理等功能均一一欠奉. 硬陣列是由獨立操作的硬體提供整個磁碟陣列的控制和計算功能. 不依靠系統的CPU資源. 由於硬陣列是一個完整的系統, 所有需要的功能均可以做進去. 所以硬陣列所提供的功能和效能均比軟陣列好. 而且, 如果你想把系統也做到磁碟陣列中, 硬陣列是唯一的選擇. 故 RAID 5 級的磁碟陣列均為硬陣列. 軟陣列只適用於 Raid 0 和 Raid 1. 對於做映象用的映象塔, 肯定不會用 Raid 0或 Raid 1。)

RAID0
將多個較小的磁碟合併成一個大的磁碟,不具有冗餘,並行I/O,速度最快。RAID 0亦稱為帶區集。它是將多個磁碟並列起來,成為一個大硬碟。在存放資料時,其將資料按磁碟的個數來進行分段,然後同時將這些資料寫進這些盤中。所以,在所有的級別中,RAID 0的速度是最快的。但是RAID 0沒有冗餘功能的,如果一個磁碟(物理)損壞,則所有的資料都無法使用.不可恢復.
RAID0還可稱為不帶奇偶校驗的磁碟陣列.

RAID1
兩組相同的磁碟系統互作映象,速度沒有提高,但是允許單個磁碟錯,可靠性最高。RAID 1就是映象。其原理為在主硬碟上存放資料的同時也在映象硬碟上寫一樣的資料。當主硬碟(物理)損壞時,映象硬碟則代替主硬碟的工作。因為有映象硬碟做資料備份,所以RAID 1的資料安全性在所有的RAID級別上來說是最好的。但是其磁碟的利用率卻只有50%,是所有RAID上磁碟利用率最低的一個級別。

RAID4
這個級別的需要三個或更多的硬碟.就象RAID0,在每個硬碟上資料的讀取和寫入是平行進行的.其中一個硬碟設定僅僅儲存所有資料的奇偶資訊.如果一個驅動器出錯,那麼奇偶資訊可以用來恢復所有資料.有較好的可信度,但是隨著每一次寫入操作奇偶資訊的更新,用來做奇偶校驗的硬碟可能會成為系統的瓶頸.

RAID5
RAID5 works on three or more disks, with optional spare disks. With this level, several disks can be combined with both performance and reliability increases. Unlike RAID4, parity information is striped across all the disks. Instead of dedicating one disk to store the parity information, it is distributed evenly across all disks. If one disk fails, the data can be reconstructed onto a spare disk or from the parity information. In either case, there is no stoppage of the RAID system, all data is still available even with one disk failed. RAID level 5 is the preferred choice in most cases: the performance is good, the recovery is high, and the cost is second best. You lose one disk out of the set essentially to parity, so with 5 disks in RAID level 5, you get 80 percent utilization for data, and 20 percent for parity (recovery) information. With 32 disks, you get 31 of 32 disks for about 96 percent utilization.
(*注:RAID 5:需要三個以上的硬碟.向陣列中的磁碟寫資料,奇偶校驗資料存放在陣列中的各個盤上,允許單個磁碟出錯。RAID 5也是以資料的校驗位來保證資料的安全,但它不是以單獨硬碟來存放資料的校驗位,而是將資料段的校驗位互動存放於各個硬碟上。這樣,任何一個硬碟損壞,都可以根據其它硬碟上的校驗位來重建損壞的資料。硬碟的利用率為n-1。這與原英文的意思是一樣的,只是沒有按照原文來翻譯.)

RAID系統支援"熱拔插".這意味著如果一個硬碟如果出錯,系統管理員可以在系統仍在執行時拔下這個壞的硬碟,放入一個新的驅動器.這是一個強大相對昂貴的效能.

(*注: 以下的內容都是有關這方面知識的,但有些例證是基於windows平臺的,請仔細區分!
作為高效能的儲存系統,巳經得到了越來越廣泛的應用。RAID的級別從RAID概念的提出到現在,巳經發展了六個級別,其級別分別是0、1、2、3、4、5等。但是最常用的是0、1、3、5四個級別。RAID其他各級別介紹:
RAID Level 3
RAID 3存放資料的原理和RAID0、RAID1不同。RAID 3是以一個硬碟來存放資料的奇偶校驗位,資料則分段儲存於其餘硬碟中。它象RAID 0一樣以並行的方式來存放數,但速度沒有RAID 0快。如果資料盤(物理)損壞,只要將壞硬碟換掉,RAID控制系統則會根據校驗盤的資料校驗位在新盤中重建壞盤上的資料。不過,如果校驗盤(物理)損壞的話,則全部資料都無法使用。利用單獨的校驗盤來保護資料雖然沒有映象的安全性高,但是硬碟利用率得到了很大的提高,為n-1。
RAID 0-1:同時具有RAID 0和RAID 1的優點。
冗餘:採用多個裝置同時工作,當其中一個裝置失效時,其它裝置能夠接替失效裝置繼續工作的體系。在PC伺服器上,通常在磁碟子系統、電源子系統採用冗餘技術。
此外,由這幾個RAID級別發展出來的系統對資料的保護更加出色,如0+1、00、30、50等。
RAID系統的應用範圍
區域網/廣域網 儲存區域網 叢集環境 新聞中心 Internet新聞伺服器 企業伺服器 高效能桌面系統 PC工作站 工作組/檔案伺服器 E-Mail伺服器 Intranet/Web伺服器 應用伺服器

SCSI

儲存技術在計算機技術中受到廣泛關注,伺服器儲存技術更是關心的熱點。一談到伺服器儲存技術,人們幾乎立刻與SCSI(Small Computer Systems Interface)技術聯絡在一起。儘管廉價的IDE硬碟在效能、容量等關鍵技術指標上已經大大地提高,可以滿足甚至超過原有的伺服器儲存裝置的需求。但由於Internet的普及與高速發展,網路伺服器的規模也變得越來越大。同時,Internet不僅對網路伺服器本身,也對伺服器儲存技術提出了苛刻要求。無止境的市場需求促使伺服器儲存技術飛速發展。而磁碟陣列是伺服器儲存技術中比較成熟的一種,也是在市場上比較多見的大容量外設之一。
在高階,傳統的儲存模式無論在規模上,還是安全上,或是效能上,都無法滿足特殊應用日益膨脹的儲存需求。諸如儲存區域網(SAN)等新的技術或應用方案不斷湧現,新的儲存體系結構和解決方案層出不窮,伺服器儲存技術由直接連線儲存(DAS)向儲存網路技術(NAS)方面擴充套件。在中低端,隨著硬體技術的不斷髮展,在強大市場需求的推動下,本地化的、基於直接連線的磁碟陣列儲存技術,在速度、效能、儲存能力等方面不斷地邁上新臺階。並且,為了滿足使用者對儲存資料的安全、存取速度和超大的儲存容量的需求,磁碟陣列儲存技術也從講求技術創新、重視系統最佳化,以技術方案為主導的技術推動期逐漸進入了強調工業標準、著眼市場規模,以成熟產品為主導的產品普及期。
回顧磁碟陣列的發展歷程,一直和SCSI技術的發展緊密關聯,一些廠商推出的專有技術,如IBM的SSA(Serial Storage Architecture)技術等,由於相容性和升級能力不盡如人意,在市場上的影響都遠不及SCSI技術廣泛。由於SCSI技術相容性好,市場需求旺盛,使得SCSI技術發展很快。從最原始5MB/s傳輸速度的SCSI-1,一直髮展到現在LVD介面的160MB/s傳輸速度的Ultra 160 SCSI,320MB/s傳輸速度的Ultra 320 SCSI介面也將在2001年出現。從當前市場看,Ultra 3 SCSI技術和RAID(Redundant Array of Inexpensive Disks)技術還應是磁碟陣列儲存的主流技術。
SCSI本身是為小型機(區別於微機而言)定製的儲存介面,SCSI協議的Version 1 版本也僅規定了5MB/s傳輸速度的SCSI-1的匯流排型別、介面定義、電纜規格等技術標準。隨著技術的發展,SCSI協議的Version 2版本作了較大修訂,遵循SCSI-2協議的16位資料頻寬,高主頻的SCSI儲存裝置陸續出現併成為市場的主流產品,也使得SCSI技術牢牢地佔據了伺服器的儲存市場。SCSI-3協議則增加了能滿足特殊裝置協議所需要的命令集,使得SCSI協議既適應傳統的並行傳輸裝置,又能適應最新出現的一些序列裝置的通訊需要,如光纖通道協議(FCP)、序列儲存協議(SSP)、序列匯流排協議等。漸漸地,"小型機"的概念開始弱化,"高效能運算機"和"伺服器"的概念在人們的心目中得到強化,SCSI一度成為使用者從硬體上來區分"伺服器"和PC機的一種標準。
通常情況下,使用者對SCSI匯流排的關心放在硬體上,不同的SCSI的工作模式意味著有不同的最大傳輸速度。如40MB/s的Ultra SCSI、160MB/s的Ultra 3 SCSI等等。但最大傳輸速度並不代表裝置正常工作時所能達到的平均訪問速度,也不意味著不同SCSI工作模式之間的訪問速度存在著必然的"倍數"關係。SCSI控制器的實際訪問速度與SCSI硬碟型號、技術引數,以及傳輸電纜長度、抗干擾能力等因素關係密切。提高SCSI匯流排效率必須關注SCSI裝置端的配置和傳輸線纜的規範和質量。
一般說來,選用高速的SCSI硬碟、適當增加SCSI通道上連線硬碟數、最佳化應用對磁碟資料的訪問方式等,可以大幅度提高SCSI匯流排的實際傳輸速度。尤其需要說明的是,在同樣條件下,不同的磁碟訪問方式下獲得的SCSI匯流排實際傳輸速度可以相差幾十倍,對應用的最佳化是獲得高速儲存訪問時必須關注的重點,而這卻常常被一些使用者所忽視。
隨著傳輸速度的提高,訊號傳輸過程中的訊號衰減和干擾問題顯得越來越突出,終結器在一定程度上可以起到降低訊號波反射,改善訊號質量的作用。同時,LVD(Low-Voltage Differential)技術的應用也越來越多。LVD工作模式是和SE(Single-Ended)模式相對應的,它可以很好地抵抗傳輸干擾,延長訊號的傳輸距離。同時,Ultra 2 SCSI和Ultra 3 SCSI模式也透過採用專用的雙絞型SCSI電纜來提高訊號傳輸的質量。LVD工作模式和SE工作模式的對比如圖5所示。

RAID

在磁碟陣列的概念中,大容量硬碟並不是指單個硬碟容量大,而是指將單個硬碟透過RAID技術,按RAID 級別組合成更大容量的硬碟。所以在磁碟陣列技術中,RAID技術是比較關鍵的,同時,根據所選用的RAID級別的不同,得到的"大硬碟"的功能也有不同。
RAID是一項非常成熟的技術,但由於其價格比較昂貴,配置也不方便,缺少相對專業的技術人員,所以應用並不十分普及。據統計,全世界75%的伺服器系統目前沒有配置RAID。由於伺服器儲存需求對資料安全性、擴充套件性等方面的要求越來越高,RAID市場的開發潛力巨大。RAID技術是一種工業標準,各廠商對RAID級別的定義也不盡相同。目前對RAID級別的定義可以獲得業界廣泛認同的只有4種,RAID 0、RAID 1、RAID 0+1和RAID 5。
RAID 0是無資料冗餘的儲存空間條帶化,具有低成本、極高讀寫效能、高儲存空間利用率的RAID級別,適用於Video / Audio訊號儲存、臨時檔案的轉儲等對速度要求極其嚴格的特殊應用。但由於沒有資料冗餘,其安全性大大降低,構成陣列的任何一塊硬碟損壞都將帶來資料災難性的損失。所以,在RAID 0中配置4塊以上的硬碟,對於一般應用來說是不明智的。
RAID 1是兩塊硬碟資料完全映象,安全性好,技術簡單,管理方便,讀寫效能均好。但其無法擴充套件(單塊硬碟容量),資料空間浪費大,嚴格意義上說,不應稱之為"陣列"。
RAID 0+1綜合了RAID 0和RAID 1的特點,獨立磁碟配置成RAID 0,兩套完整的RAID 0互相映象。它的讀寫效能出色,安全性高,但構建陣列的成本投入大,資料空間利用率低,不能稱之為經濟高效的方案。
RAID 5是目前應用最廣泛的RAID技術。各塊獨立硬碟進行條帶化分割,相同的條帶區進行奇偶校驗(異或運算),校驗資料平均分佈在每塊硬碟上。以n塊硬碟構建的RAID 5陣列可以有n-1塊硬碟的容量,儲存空間利用率非常高。任何一塊硬碟上資料丟失,均可以透過校驗資料推算出來。它和RAID 3最大的區別在於校驗資料是否平均分佈到各塊硬碟上。RAID 5具有資料安全、讀寫速度快,空間利用率高等優點,應用非常廣泛,但不足之處是1塊硬碟出現故障以後,整個系統的效能大大降低。
對於RAID 1、RAID 0+1、RAID 5陣列,配合熱插拔(也稱熱可替換)技術,可以實現資料的線上恢復,即當RAID陣列中的任何一塊硬碟損壞時,不需要使用者關機或停止應用服務,就可以更換故障硬碟,修復系統,恢復資料,對實現HA(High Availability)高可用系統具有重要意義。
此外,在系統的可用性方面,單一硬碟系統的可用性比沒有資料冗餘的磁碟陣列要好,而冗餘磁碟陣列的可用性比單個硬碟要好得多。這是因為冗餘磁碟陣列允許單個硬碟出錯,而繼續正常工作;一個硬碟故障後的系統恢復時間也大大縮短(與從磁帶恢復資料相比);冗餘磁碟陣列發生故障時,硬碟上的資料是故障當時的資料,替換後的硬碟也將包含故障時的資料。但是,要得到完全的容錯效能,計算機硬碟子系統的其它部件也必須有冗餘。
各廠商還在不斷推出各種RAID級別和標準。例如更高安全性的,從RAID控制器開始映象的RAID;更快讀寫速度的,為構成RAID的每塊硬碟配置CPU和Cache的RAID等等,但都不普及。用IDE硬碟構建RAID的技術是新出現的一個技術方向,對市場影響也較大,其突出優點就是構建RAID陣列非常廉價。目前IDE RAID可以支援RAID 0、RAID 1和RAID 0+1三個級別,最多支援4塊IDE硬碟。由於受IDE裝置擴充套件性的限制,同時,也由於IDE裝置也缺乏熱可替換的技術支援的原因,IDE RAID的應用還不多。
總之,發展是永恆的主題,在伺服器儲存技術領域也不例外。一方面,一些巨頭廠商嘗試推出新的概念或標準,來領導伺服器及儲存技術的發展方向,較有代表性的如Intel力推的IA-64架構及儲存概念;另一方面,致力於儲存的專業廠商以現有技術和工業標準為基礎,推動SCSI、RAID、Fibre Channel等基於現有儲存技術和方案快速更新和發展。在市場經濟條件下,檢驗技術發展的唯一標準是市場的認同。市場呼喚好的技術,而新的技術必須起到推動市場向前發展作用時才能被廣泛接受和承認。隨著高效能運算機市場的發展,高效能比、高可靠性、高安全性的儲存新技術也會不斷湧現。
*在Linux下用軟體實現RAID功能
在Linux環境下,採用Raidtools工具,不僅可以將兩個硬碟進行映象,還可以製作軟RAID0、RAID1、RAID5。說是軟RAID,是因為通常情況下,RAID盤是透過專用的RAID卡進行的,而在Linux環境下,可以利用Raidtools軟體實現RAID功能,所以稱為軟RAID。
一、較早的Linux版本
自行下載並編譯Raidtools軟體包,較早版本的Raidtools軟體包名為md,現在已正式更名為Raidtools。下載地址:中國自由軟體庫。
如果你已經從網上下載了Raidtools-0.41.tar.gz軟體包,解壓後,自行編譯,步驟如下:
$gunzip -d raidtools-0.41.tar.gz
$tar -xvf raidtools-0.4.1.tar
在使用Raidtools之前,首先要知道目前正在使用的核心是否支援md。如果你正在使用的核心是2.0.X,並且不是自己編譯過的話,大多數情況下是支援軟RAID的。如果不能確定,則應自己編譯核心。在配置時,應選擇對md的支援。確定了正在使用的核心支援RAID後,編譯Raidtools軟體包如下:
$cd raidtools-0.41
$./configure
$make
$make install ##make install在/dev下產生md0-md3共4個裝置。
單擊OK按鈕,完成安裝。
在使用Raidtools前,還需確定要使用的RAID的種類。目前使用Raidtools可以作RAID0、RAID1、RAID5.除了RAID5外,還可以選擇作Linear模式或RAID0。選擇作RAID0。以下為製作過程。
1.建立RAID盤
(1)關機,將兩塊小硬碟分別加到第一個IDE控制器的Slave介面上及第二個IDE控制器的Slave介面上(這臺機器上的CD-ROM接在第二個IDE控制器的Master上)。
(2)加電啟動系統,以Root登入,執行以下命令對硬碟進行分割槽:
#fdisk /dev/hdb
將全部硬碟劃分成一個主分割槽,建立一個/dev/hdb1分割槽。
#fdisk /dev/hdd
同樣,將全部硬碟劃分成一個主分割槽,建立一個/dev/hdd1分割槽。
(3)之後:
#/sbin/mdcreate raid0 -c4k /dev/md0 /dev/hdb1 /dev/hdd1
為了提高訪問速度,你可以將硬碟進行比較細緻的劃分,儘可能將分割槽合理分佈在不同的硬碟上。然後,再用Mdcreate將它們組合成一個mdx(x:1,2,3)。
2.使用RAID0盤
(1)啟動新建立的RAID盤:
#/sbin/mdadd -ar
(2)檢視/proc/mdstats檔案的內容,以檢查RAID0的狀態。
#cat /proc/mdstats
系統顯示:
personalities : [1 linear] [2 raid0]
read-ahead not 8092 sectors
md0 : active raid0 hdb1 hdd1 xxxx
blocks 8k chunks
md1 : inactive
md2 : inactive
md3 : inactive
這表示,新建的RAID0已經可以正常執行了。
為了使用新RAID盤,還應在新盤上建立新的檔案系統,建立過程如下:
#mke2fs /dev/md0 ##注:在新的儲存裝置上建立Ext2檔案系統
建立了新的檔案系統,再將它Mount到根目錄下的某個目錄上,就可以正式使用了。安裝方法如下:
#mount  /dev/md0  /opt ##注:/opt為筆者在根分割槽建的一個Mount點
若有必要,也可以用Raidtools建立RAID5,以提高資料的可靠性。
3.自動執行RAID0的設定
將RAID0的載入及檔案系統的加掛全加入到Init.sysinit檔案中,這樣,只要系統一啟動,首先就執行RAID,使用者就不必再手工安裝了。
使用者應將以下兩個命令加入到Init.sysinit檔案中。
/sbin/mdrun -ar
mount /dev/md0 /opt
當然,如果你不覺得麻煩,也可以手工執行以上命令,以手動方式啟動軟RAID盤。
二、較近的Linux版本
如果你安裝的Linux版本較新,其中已經帶有Raidtools工具,那麼,就不必再下載軟體並自己編譯了。使用時可以這樣處理:
1.建立一個檔案/etc/raidtab(以製作RAID0為例),檔案內容如下:
raiddev /dev/md0
raid-level   0
nr-raid-disks 2
persistent-superblock 1
chunk-size   4
device     /dev/hdb1
raid-disk    0
device     /dev/hdd1
raid-disk    1
2.執行以下命令:
#mkraid /dev/md0
這樣就可以生成一個新的裝置:
/dev/md0。
啟用軟RAID方法:
#raidstart /dev/md0
其餘操作同上。
如果你正在使用的Linux系統版本很新,可能以上兩種情況都不適合你,那麼,你可以採用第三種方法使用軟RAID。
三、Red Hat Linux 6.1
自行編譯Raidtools0.42、0.50beta2時,先是找不到所要的標頭檔案,將所需標頭檔案複製後,編譯仍然通不過。原來,由於新的版本採用了一系列新的函式,情況稍有一點不同。不過,新的版本中,提供了Raidtools,在/sbin目錄中,有Raidtools的一系列工具,其中有Mkraid、Raid0run、Raidstop、Raidstart等一組工具。如果你想自己編譯,可以從中國自由軟體庫中查詢到最新版為0.9的Raidtools,自行編譯0.9版的Raidtools,編譯正常透過。
新版的Raidtools稍有一點不同,筆者使用系統自帶的Raidtools,製作軟RAID方法如下:
1.建立檔案/etc/raidtab,檔案內容如下:
raiddev /dev/md0
raid-level       0
nr-raid-disks     2
persistent-superblock  0
chunk-size      8
device        /dev/hdb1
raid-disk       0
device       /dev/hdd1
raid-disk       1
2.生成軟RAID裝置,執行以下命令:
# mkraid -c /etc/raidtab /dev/md0
之後,執行以下命令,以檢視目前RAID的執行狀態:
[root@rh61 /proc]# cat mdstat
如果系統顯示如下:
Personalities : [raid0]
read-ahead 1024 sectors
md0 : active raid0 hdd1[1] hdb1[0] 2202416 blocks 8k chunks
unused devices:
表示你的RAID0已正常執行了。
3.建立新的檔案系統
現在,為了使用新生成的裝置,我們應在新的RAID盤上建立Ext2檔案系統,建立新的檔案系統的命令如下:
[root@rh61 /sbin]# mkfs.ext2 /dev/md0
經過大約兩三分鐘,新的檔案系統正確生成。現在就可以開始使用它了。使用方法如下:
[root@rh61 /sbin]# mount -t ext2 /dev/md0 /opt
將/dev/md0裝置加掛(mount)到/opt安裝點上。
如果你是linux新手,輕易不要嘗試,以免你的資料丟失,難免你又得重灌系統!)

Linear Mode
線性模式
線性模式聯合一個或多個硬碟如同一個大的磁碟裝置工作.線上性模式中沒有冗餘,硬碟簡單的按它們出現排列(e.g., disk 1, disk 2,如此等等).當多個使用者訪問不同硬碟上的資料時僅僅能獲得線性模式的效能.

考試可能選任何級別的RAID,包括一個整合不同的級別到一個方案中.(*注:如RAID0+1等)


IRQ Settings
中斷設定

一箇中斷請求(IRQ)是周邊裝置(NIC, Video, Mouse, Modem, Serial Port,或者別的)傳送給CPU的要求一些處理時間的訊號.你聯接到計算機的每個裝置可能需要它自己的IRQ值.這個值是獨一無二的對每個裝置(可能除了PCI裝置;以後再解釋)以免混淆計算機.在英特爾平臺上限制了僅16個IRQ值(0-15),在一個裸露的系統中通常用的IRQs是 5, 7, 9, 10, 11,12.典型的音效卡用5,印表機用7,顯示卡,匯流排鼠,和網路卡每個需要用到剩餘的一個值.(或許!)

Planning the IRQ Layout-Standard IRQs
IRQ的計劃和標準佈局的IRQs
主機板保留了一些IRQs設定如磁碟控制器和系統時鐘裝置.不要使用這些中斷,因為這會造成衝突!在linux裡你可以檢查
/proc/interrupts來看哪些中斷在使用.一個新的裝置應該使用任何一個沒有使用的中斷.下面是一個標準的IRQ佈局(如圖Table 2-2).

IRQ Assigned to
0 Nonmaskable interrupt (NMI)-detects parity errors不可遮蔽的中斷-發現奇偶校驗錯誤
1 System timer系統時鐘
2 Cascade for controller 2
3 Serial port 2, 4
4 Serial port 1, 3
5 Parallel port 2並行串列埠2
6 Floppy diskette controller軟碟機控制器
7 Parallel port 1並行串列埠1
8 Real-time clock 實時鐘
9 Redirected to IRQ2
10 Not assigned (usually used for a network card)沒有使用(通常用在網路卡上)
11 Not assigned 沒有使用的
12 PS/2 mouse, if installed如果安裝的話是滑鼠
13 Coprocessor處理器
14 Hard disk controller 1硬碟控制器1
15 Hard disk controller 2硬碟控制器2
Table 2: Standard IRQ Layout for PCs

IRQs and the PCI Architecture
IRQs和PCI結構

今天PC的一個普遍的問題是沒有多的中斷來使用裝置.圍繞著這個困境PCI可以透過共享IRQ來使用PCI匯流排.PCI匯流排是不受處理器約束的,所以PCI裝置可以有它們自己的內部中斷來決定那個裝置向處理器傳送中斷請求.然而,你的BIOS必須支援PCI匯流排.如果支援,你因該能透過CMOS來除錯.大部分1998年以後的現代計算機都支援PCI匯流排.

Plug-and-Play
即插即用

有了即插即用裝置,使用者不用告訴計算機裝置在那裡.作業系統因該能識別並自動安裝裝置.在蘋果的Macintosh機器上即插即用已經是通用的了,已經整和到Microsoft's Windows作業系統中了.linux在這項技術上有點落後了,儘管它可以同時配置好ISA PnP裝置(isapnp實用工具)和PCI PnP(即插即用).kudzu工具在啟動是尋找任何硬體改動並允許你配置它們.大多數的PnP技術運用在非UNIX系統上(Microsoft Windows and MacOS),linux也開始要同它們一樣.

Plug-and-Play Support in Linux
即插即用在linux裡

不幸的事實是linux操作即插即用不是很好.主要的問題來自於ISA匯流排上的即插即用裝置.ISA是來自IBM機器上的老的技術,建立的時候不支援即插即用,所以要支援它十分複雜.紅帽子包含一些工具有助於操作ISA即插即用裝置.這些工具(e.g., isapnp and pnpdump)儲存在一個軟體包名為isapnptools.在你的紅帽子安裝中你應該能發現以rpm形式的這個軟體包.
PCI是新的快速的匯流排技術.當linux裝載時,裝置驅動可以輕易的發現它們的裝置如果它們是PCI.這使得運用在PCI匯流排上的硬體即插即用十分容易,然而,它們也可能和ISA匯流排有衝突.隨著即插即用技術的不斷改進,它的前景光明.保持小心,比起PCI,你可能會有更多的麻煩在ISA裝置上.

Handling Jumperless Cards
處理板卡的跳線

有些板卡沒有跳線;替換,關於埠資訊,IRQ,I/Q地址,這些都存在板卡上的只讀儲存晶片裡(ROM).這種板卡允許你改變這些設定.Alas,它是一個Microsoft世界,這些工具通常需要執行在DOS下.如果你有一個類似這樣工作的板卡,那你需要一個DOS啟動盤或分割槽來配置它們.
如果你沒有得到許可使用MS-DOS或Windows,還有一些選擇.FreeDOS專案()是努力建立一個與MS-DOS可相容的磁碟作業系統的自由版本.在linux裡,有一個 MS Windows Emulator,稱為WINE,可以成功的執行一些windows程式.

總的來說,一種較好的解決方案就是不使用用這種方法來配置的硬體.

IRQs and Standard Serial Ports
IRQs和標準串型埠

在linux裡的標準串型埠是/dev/ttyS0, /dev/ttyS1, /dev/ttyS2,和/dev/ttyS3 (COM1到COM4各個埠).在你的BIOS設定裡,串型埠通常設定為ttyS0和ttyS2給IRQ4,ttyS1和ttyS3用IRQ3.在linux核心2.2或更高版本,可以分配這些中斷,版本低於2.2的,你需要指定獨一無二的IRQa給你要用的每個串型埠.這可以在啟動是使用服務設定工具或修改/etc/rc.d/rc.serial檔案類似的如下(assuming, of course, that all these interrupts are available):
/sbin/setserial /dev/ttyS0 irq 3 # dumb terminal
/sbin/setserial /dev/ttyS1 irq 4 # serial mouse
/sbin/setserial /dev/ttyS2 irq 5 # first modem
/sbin/setserial /dev/ttyS3 irq 9 # second modem

Serial and Other Interface Mice
其它介面的滑鼠

For your mouse to work, you will need to know what interface and protocol it uses. Serial mice interface to a serial port, while PS/2 mice have a port and IRQ set aside. There is also another type of interface called a busmouse. Linux supports three standard busmouse-oriented protocols: Inport (Microsoft), Logitech, and ATI-XL. In order for a PS/2 mouse to work, support has to be compiled into the Linux kernel or compiled as a module.
對於你使用的滑鼠,你需要知道它使用的介面和協議.串型滑鼠對應的串型埠,PS/2滑鼠有一個埠和IRQ.還有另一種介面型別的叫匯流排鼠.linux支援三種標準型別的匯流排鼠:Inport (Microsoft), Logitech, and ATI-XL.為了使用PS/2滑鼠,已經在核心中編譯支援或做成模組了.

Serial Mice
串列埠滑鼠

使用串列埠滑鼠,你或許需要指定一IRQ如果你使用了超過三個以上的串列埠裝置.另外就是給它選擇正確的協議使用了.
Common協議是Microsoft,對應Microsoft滑鼠,Logitech對應Logitech滑鼠.一個串列埠滑鼠需要一個矩形有9或25針的介面.裝置檔案是一個從/dev/mouse連結到使用埠(e.g., /dev/ttyS0).

PS/2滑鼠

一個PS/2滑鼠(用在新的機器上和大多數的膝上型)有它自己的埠和使用IRQ12.它使用6針的小型DIN聯結器,通訊使用PS/2協議.裝置檔案是/dev/psaux.

匯流排鼠

你可以透過它的9針連線口來識別匯流排鼠.這種滑鼠通常連線在一塊板卡上,或許可以跳線設定或軟體(對於DOS)設定IRQs和基本I/O地址.當前大多數匯流排鼠使用匯流排鼠協議,一些老的滑鼠使用別的協議,如MouseSystems或Logitech.
對應Inport, Logitech和ATI-XL 匯流排鼠的裝置檔案是/dev/inportbm, /dev/logibm,和/dev/atibm.

紅帽子安裝程式的過程將詢問你關於滑鼠的資訊.知道你有那種型別的滑鼠!最後你可以在控制檯模式下透過XF86Setup工具x11或mouseconfig來修改滑鼠設定,

Exercise 2-3 Your Computer's CMOS Settings

Look through your computer's CMOS settings. To get into the CMOS settings, you normally have to press a key soon after you power on your computer. This key is commonly the delete or f1 key on your keyboard. Browse through the menus and try to locate the areas where the following information is kept:
* Your hard drive information: Take note of the "translation mode" your hard drive is using (e.g., CHS, Large, or LBA).
* Locate the IRQ settings that your motherboard assigns to your serial and parallel ports, real-time clock, and hard disk controllers. Can you change any of these settings? (Be careful that you don't save your changes!)
* Find out if your CMOS supports PCI sharing (for IRQs). If it does, is it turned on or off on your computer?
習題2-3 你的計算機的CMOS設定
看完你計算機的CMOS設定.通常在你開電源後按鍵盤上的特殊鍵如Del或者F1進入CMOS設定,透過瀏覽選單來獲得如下硬體的資訊:
*你的硬碟資訊:注意translation mode,你的硬碟使用(e.g., CHS, Large, or LBA).
*你主機板的IRQ設定,串型埠和並行埠,實時鐘,和硬碟控制器.你能改變它們的設定麼?(小心不要儲存你的改變!)
*找到你的CMOS是否支援PCI匯流排,如果是,它在你的機器裡是開啟還是關閉


PC Card (PCMCIA)

linux有專門的軟體包來處理PC卡,稱為"Card Services.".這個軟體包包括所有你將需要的用來管理PCMCIA的核心模組和具體型號的驅動程式.也包括一個支援操作大多數卡的hot-swapping程式.
當Card Services軟體包正在發展時,對於新的技術經常有一段時間沒有支援,由於這個原因,選擇市場上最新的膝上型電腦來安裝linux並不是個好主意.linux支援大多數的名牌膝上型電腦,事實上一些品牌電腦和個人電腦製造商出於一種配置也提供預裝linux.

Supported Chip Sets 支援的晶片組
這張列表經常更新,你可以從LDP's PCMCIA-HOWTO得到最新的資料.

Supported Cards 支援的卡
你可以從LDP's PCMCIA-HOWTO或紅帽子相容列表得到最新的資料.
在你做為計算機專業人員的時候,有時候你被要求研究具體產品或者時代的先進技術.找個好主意,這到底多難或多容易.找
一個本地或國際的計算機經銷商,詢問它們最新的膝上型電腦是否支援linux,你會得到什麼樣的回答?問問他們較早的型號,得到什麼回答?檢視公司的網頁,它們是否提供英特網上的產品的資訊?做這些有助於你的成功性.

現在,對你計算機的設定你該有個好主意了,這些是一些你該考慮的:
SCENARIOS and Solutions劇本和解決方案
你用linux和阿帕奇做一個小型辦公室網路的WEB伺服器,辦公室的僱員負責更新網站的各個部分.然而,所以這些人都是windows使用者,並不是富有經驗的shell使用者.什麼軟體你能給這些僱員安裝以使能訪問伺服器上的檔案?

一個簡單直接的辦法就是安裝一個ftp程式,但是對於windows的連通性, Samba軟體將使僱員的工作更容易和更清晰.
使用者不用知道如何使用shell(或vi之類的編譯器)或者ftp客戶端.包含他們需要的檔案的目錄可以直接安裝在他們的
windows桌面上或者單獨的硬碟上.

你已經超出了/home目錄的空間!你該用什麼步驟把資料移動或安裝到新的硬碟上?

首先,你的準備新的硬碟來容納新的檔案系統/home.用fdisk為你目錄/home建立一個足夠大的分割槽,.用mke2fs來建立檔案系統,接著把分割槽安裝到臨時目錄(e.g., /mnt/tmp).從/home複製你所以的資料到新的分割槽(e.g., cp -a /home/* /mnt/tmp).

取消安裝(unmount)的所有檔案系統,接著把/home重新安裝(mount)到新的分割槽.編輯/etc/fstab對映新的/home位置.


Certification Summary證明總結

規劃你的linux安裝,使程式簡單.你能想象到開始安裝時會遇到的挫折,找到錯誤:例如,一個硬體不被支援,或你把LILO裝
在了錯誤的位置以致linux不能啟動.對這些做好準備可以幫助你減少煩惱.

你現在應該知道的足夠多以決定那種硬體適合你的需要.你能找到豐富的資料幫你建立哪些硬體可以工作在linux下.經驗表明有組織是成功的密匙.它會讓你看上去很棒.

Lab Question實驗問題

You are interested in further researching RAID on your new Linux server, but you cannot find any help in the man pages. You need to load up the Documentation CD-ROM and then find the HOWTO on RAID, as well as the RAID information in the Linux Reference Guide.
你對你的新的linux伺服器上的RAID有更多進一步的研究興趣,但是你在幫助文件中找不到任何資料.你需要安裝上文件光碟,找到RAID的HOWTO,還有linux參考指南上RAID資訊.

Lab Answer實驗回答

更多的幫助你需要文件光碟,如下:
# man raid
no manual entry for raid
(stick the Documentation CD into the drive, then)
# mount /dev/hdd /mnt/cdrom # assuming hdd is your CD Drive
# cd /mnt/cdrom/HOWTOs/
# ls *RAID*
Software-RAID-HOWTO
Root-RAID-HOWTO
# less Software-RAID-Howto
# xpdf /mnt/cdrom/docs/pdf-en/rhl71rg*.pdf
# xpdf /mnt/cdrom/docs/pdf-en/rhl71ig*.pdf[@more@]

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

相關文章