- 論壇徽章:
- 0
|
1、關(guān)于HBA
HBA的全稱為Host Bus Adapter,即主機(jī)總線適配器。
a、總線適配器是個什么東西呢?
我們首先要了解一下主機(jī)的結(jié)構(gòu),一臺計算機(jī)內(nèi)部多半由兩條總線串在起來(當(dāng)然實(shí)際情況會有不同,這里只討論常見的,簡單的情況),一條總線叫系統(tǒng)總線,一條叫I/O總線。系統(tǒng)總線上接了CPU,MEmory,cache什么的,I/O總線上接的就是外圍設(shè)備,現(xiàn)如今最常見的就是PCI總線了。這兩條總線之間用橋接的芯片或者說電路連接起來。舉個形象的例子,就好比一個城市里,有兩條主干道,一條屬于行政區(qū),一條屬于商業(yè)區(qū),中間有個環(huán)島,將兩條主干道連接到了一起,系統(tǒng)總線就好比行政區(qū)里的主干道,而I/O總線就好比商業(yè)區(qū)的主干道。系統(tǒng)總線和I/O總線的帶寬的單位都是以Gbyte來記,但是顯而易見的是,行政區(qū)的主干道和商業(yè)區(qū)的主干道相比的話,前者肯定更“核心”,更寬,更順暢,設(shè)計的要求也高。
我們知道,在向公仆部門要求服務(wù)的時候,是要有一些接口的部門和程序的,而橋接芯片的作用就是連接和協(xié)調(diào)兩條總線的工作的。
雖然I/O總線的速度和系統(tǒng)總線的帶寬相比要低很多,但是好歹也是以G來計量的,而我們知道外圍設(shè)備的速度,往往只有幾百兆,甚至幾十k而已,怎么協(xié)調(diào)工作呢?好比賣煎餅果子攤子不能直接戳到城市主干道上,怎么辦?好辦,在主干道邊上開個2000平米的小吃城,把攤子都收進(jìn)去好了。那么主機(jī)總線適配器的作用也就是這個,我們就是要把外設(shè)組織起來,連接到I/O總線上去!HBA就是指Host和I/O BUS直接的一個適配器,也好比一個水管工常說的“雙通”。
b、常見的HBA有哪些呢?
比如顯卡,網(wǎng)卡,scsi卡,1394卡等等。我要拿出來說的就是FCHBA和ATA&IDE。我們通常說的什么Emulex的LP9002,什么Qlogic的QLA2340都是FCHBA卡,就是將Fibre Channel的設(shè)備和IO總線連接起來的適配器。ATA也是一種適配器技術(shù),我們PC主板上的ATA接口,就是一個磁盤適配器的對外接口,要強(qiáng)調(diào)的就是,ATA說的是適配器技術(shù),IDE是說得存儲外設(shè)技術(shù),比如我們可以說IDE硬盤,IDE光驅(qū),說ATA接口,但是說IDE接口,ATA硬盤就不時那么合適了,雖然很多情況下,大家都習(xí)慣把他們混在一起說。
描述HBA的時候,有幾個主要的規(guī)范要說一下
> 一個承上,就是說,HBA和IOBUS怎么連,我們經(jīng)常說的PCI接口卡,就是指這個HBA卡是要插在PCI BUS上的PCI slot上的,但是現(xiàn)在的計算機(jī)上,不僅僅只有PCI總線而已,大家碰到的時候留意。
>一個啟下,就是說HBA要和外設(shè)怎么連,這樣的規(guī)范就很多了。
>再說HBA本身,比如帶寬,比如運(yùn)行機(jī)制(protocol等),獨(dú)立處理能力等等
Tips:有時候我們看到的一塊卡,看到的實(shí)際是一個物理的卡,有的時候?qū)嶋H上是多個Adapter,好比一家機(jī)構(gòu),掛多個牌子,有的時候,一塊卡有兩條通道,好比一家公司,有兩套人馬。
2、關(guān)于lun
a、lun的概念
lun的全稱是logical unit number,也就是邏輯單元號。我們知道scsi總線上可掛接的設(shè)備數(shù)量是有限的,一般為6個或者15個,我們可以用target ID(也有稱為scsi id的)來描述這些設(shè)備,設(shè)備只要一加入系統(tǒng),就有一個代號,我們在區(qū)別設(shè)備的時候,只要說幾號幾號就ok了。
而實(shí)際上我們需要用來描述的對象,是遠(yuǎn)遠(yuǎn)超過該數(shù)字的,于是我們引進(jìn)了lun的概念,也就是說lun id的作用就是擴(kuò)充了target id。每個target下都可以有多個lun device,我們通常簡稱lun device為lun,這樣就可以說每個設(shè)備的描述就有原來的target x變成target x lun y了,那么顯而易見的,我們描述設(shè)備的能力增強(qiáng)了.就好比,以前你給別人郵寄東西,寫地址的時候,可以寫:
xx市人民大街54號 xxx(收)
但是自從高樓大廈越來越多,你不得不這么寫:
xx市人民大街54號xx大廈518室 xxx (收)
所以我們可以總結(jié)一下,lun就是我們?yōu)榱耸褂煤兔枋龈嘣O(shè)備及對象而引進(jìn)的一個方法而已,一點(diǎn)也沒什么特別的地方.
b、lun是什么東西?
lun id不等于某個設(shè)備,只是個號碼而已,不代表任何實(shí)體屬性,在我們的實(shí)際環(huán)境里,我們碰到的lun可能是磁盤空間,可能是磁帶機(jī),或者是media changer等等.
lun的神秘之處(相對于一些新手來說)在于,它很多時候不是什么可見的實(shí)體,而是一些虛擬的對象。比如一個陣列柜,主機(jī)那邊看作是一個target device,那為了某些特殊需要,我們要將磁盤陣列柜的磁盤空間劃分成若干個小的單元給主機(jī)來用,于是就產(chǎn)生了一些什么邏輯驅(qū)動器的說法,也就是比target device級別更低的邏輯對象,我們習(xí)慣于把這些更小的磁盤資源稱之為lun0,lun1,lun2....什么的。而操作系統(tǒng)的機(jī)制使然,操作系統(tǒng)識別的最小存儲對象級別就是lun device,這是一個邏輯對象,所以很多時候被稱之為logical device。
有人說,我的windows里,就認(rèn)到一個磁盤呀,沒看到什么lun的說法,是不是lun=physical disk呢?回答是否定的,只要你注意,磁盤的屬性里就可以看到有一個lun的值,只是因?yàn)槟愕膁isk沒有被劃分為多個存儲資源對象,而將整個磁盤當(dāng)作一個lun來用,lun id默認(rèn)為零,如此而已。
我們曾經(jīng)碰到過這樣的問題,比如有人問,我們有一個磁盤陣列,連到了兩個主機(jī)上,我們劃分了一個lun給兩個主機(jī)認(rèn)到,然后我們想,先在操作系統(tǒng)將磁盤分為兩個區(qū),讓兩個主機(jī)分別使用兩個分區(qū),然后再出現(xiàn)某一臺主機(jī)宕機(jī)之后,使用集群軟件將該分區(qū)切換到另外一個主機(jī)上去,這樣可行嗎?答案也是否定的,集群軟件操作的磁盤單元是lun,而不是分區(qū),所以該操作是不可行的。當(dāng)然,在一些環(huán)境,一般也是一些要求比較低的環(huán)境,可以在多個主機(jī)上掛載不同的磁盤分區(qū),但是這種情況下,實(shí)際上是沒有涉及到磁盤的切換的,所以在一些高要求的環(huán)境里,這種情況根本就不允許存在。
還要說明的地方是,在有些廠商和有些產(chǎn)品的概念里,lun id被綁定到了具體的device上,比如ibm的一些帶庫,整個帶庫只有一個target id,然后changer,tape drive被分別分配為lun0,lun1,lun2.....,但是我們要注意到,這只是產(chǎn)品做了特別設(shè)計,也是少數(shù)情況。
c、存儲和主機(jī)的電氣獨(dú)立時代的lun的概念
還有很多新手總是把陣列里面的磁盤和主機(jī)的內(nèi)部磁盤的一些概念搞混淆了。
在磁盤陣列和磁帶庫大行其道的時代,存儲越來越智能化,越來越像一個獨(dú)立的機(jī)器,實(shí)際上存儲和主機(jī)的電氣獨(dú)立本來就是一個必然趨勢,俗話說得好,兒大要分家嘛。在存儲越來越重要的時代,存儲要自立門戶是必然的事。
如果我們把存儲當(dāng)作一個獨(dú)立的主機(jī)來看,理解起來就很簡單了。我們說到lun的概念的時候,我們就要將分為兩個層面。一個層面就是在陣列這個機(jī)器的os識別到的范圍,一個層面就是服務(wù)器的os識別到的范圍。這兩個層面是相對獨(dú)立的,因?yàn)槿绻覀儼汛鎯Ξ?dāng)作一個主機(jī)來看,那么它自然有自己的device,target,lun之說,而服務(wù)器也有自己的device,target,lun之說;另外一方面,這兩個層面又是相互關(guān)聯(lián)的,一個陣列的控制系統(tǒng),大多都有虛擬化的功能,陣列想讓主機(jī)看到什么樣的東西,主機(jī)才能看到相應(yīng)的東西。當(dāng)然,服務(wù)器識別到的最小的存儲資源,就是lun級別的。那么主機(jī)的HBA卡看到的存儲上的存儲資源就靠主要兩個東西來定位,一個就是存儲系統(tǒng)的控制器(target),一個就是lun id,這個lun是由存儲的控制系統(tǒng)給定的,是存儲系統(tǒng)的某部分存儲資源。
d、lun masking,lun mapping
我們有了獨(dú)立的磁盤陣列用了之后,服務(wù)器只要看到存儲的控制系統(tǒng),就有可能使用磁盤陣列的磁盤資源,但是磁盤陣列不可能只為某一個服務(wù)器來使用,所以他必須管制主機(jī)使用某部分磁盤資源。這個管制分為兩個部分:一部分就是lun mapping,類似于綠色通道,就是保證服務(wù)器能看到某部分存儲資源,一部分就是lun masking,類似于警戒線,就是保證服務(wù)器只可訪問給它分配的存儲資源,而沒分配給服務(wù)器的資源,就不要染指了。
實(shí)現(xiàn)lun masking和lun mapping有三種方法:一個是基于存儲控制系統(tǒng)來設(shè)置,一個是基于存儲交換系統(tǒng)來設(shè)置,一個是基于服務(wù)器os來設(shè)置。
基于存儲控制系統(tǒng)得設(shè)置,是比較常見的設(shè)置,比如很多磁盤陣列的控制系統(tǒng),本身就能設(shè)置lun被某服務(wù)器看到。比如FastT的partition功能。
基于存儲交換系統(tǒng)的設(shè)置,也是一種常用的方法,比如常說的zoning。
基于服務(wù)器os的設(shè)置,比較少采用,一般采用安裝某些操作系統(tǒng)上安裝某些軟件來實(shí)現(xiàn),因?yàn)檫@個方法全靠服務(wù)器自覺,所以比較少用,呵呵。
e、lun的multi-path
現(xiàn)在,存儲網(wǎng)絡(luò)越來越發(fā)達(dá)了,一個lun有多條通路可以訪問也不是新鮮事了。
服務(wù)器使用多個HBA連接到存儲網(wǎng)絡(luò),存儲網(wǎng)絡(luò)又可能是由多個交換設(shè)備組成,而存儲系統(tǒng)又可能有多個控制器和鏈路,lun到服務(wù)器的存儲網(wǎng)絡(luò)鏈路又可能存在著多條不同的邏輯鏈路。那么,必然的,同一個physical lun在服務(wù)器上必然被識別為多個設(shè)備。因?yàn)閛s區(qū)別設(shè)備無非用的是總線,target id,lun id來,只要號碼不同,就認(rèn)為是不同的設(shè)備。
由于上面的情況,多路徑管理軟件應(yīng)運(yùn)而生了,比如emc的powerpath,這個軟件的作用就是讓操作系統(tǒng)知道那些操作系統(tǒng)識別到lun實(shí)際上是一個真正的physical lun,具體的做法,就是生成一個特別的設(shè)備文件,操作系統(tǒng)操作這個特殊的設(shè)備文件。而我們知道,設(shè)備文件+driver+firmware的一個作用,就是告訴操作系統(tǒng)該怎么使用這個設(shè)備。那么就是說,多路徑管理軟件從driver和設(shè)備文件著手,告訴了操作系統(tǒng)怎么來處理這些身份復(fù)雜的lun。
3、關(guān)于備份(Backup)和高可用性(High availability)
備份,從字面的意思來理解,其實(shí)就是現(xiàn)時存在和應(yīng)用的一個實(shí)體的后備實(shí)體;
高可用性,即是指我們硬件的環(huán)境、設(shè)施、數(shù)據(jù)、應(yīng)用系統(tǒng)等,在復(fù)雜環(huán)境下可用的能力和可能性達(dá)到一個較高的值;
在現(xiàn)實(shí)世界里,我們都講究有一個穩(wěn)定,可靠,所以我們經(jīng)常在計算機(jī)環(huán)境設(shè)計里,涉及到高可用性和備份等等元素。
我首先把這兩個詞拿出來說,就是不想讓新手們在什么雙機(jī)熱備,數(shù)據(jù)備份亞,集群等等概念里暈的不也樂乎。
對于備份我主要說說以下幾個方面:
a、設(shè)備的備份
設(shè)備的備份,也就是我們在現(xiàn)時使用的設(shè)備之外,采取相同或者類似的設(shè)備做后備。
比如我們在服務(wù)器上采用冗余電源,也叫后備電源,我們使用單獨(dú)的硬盤來做RAID的備用盤,也叫熱備盤。
如果我們采取單獨(dú)的一臺服務(wù)器來做后備,這就成了主機(jī)的備份,主機(jī)的備份有很多種方式,比較著名的就是所謂的cluster,所謂的雙機(jī)熱備和雙機(jī)容錯,我很不喜歡鼓搗這些概念,我一概稱他們?yōu)橹鳈C(jī)熱備,因?yàn)樗麄冇幸粋共同的特點(diǎn),就是都是為了實(shí)現(xiàn)主機(jī)的備份,即某一個主機(jī)失效了,有另外一個主機(jī)頂替它來運(yùn)行。實(shí)現(xiàn)主機(jī)熱備的軟件有很多,比如IBM的HACMP,HP的MCSG,SUN的sun cluster,Compaq的Ture Cluster,Veritas的VCS,EMC的autostart,ROSE HA等等
b、數(shù)據(jù)的備份
數(shù)據(jù)的備份,就是我們在現(xiàn)時使用的數(shù)據(jù)之外,實(shí)現(xiàn)或設(shè)置另外一份不同物理體現(xiàn)的、內(nèi)容相同的的有效數(shù)據(jù)拷貝
比如我們將生產(chǎn)數(shù)據(jù)拷貝到磁帶上,就是一種數(shù)據(jù)備份方式。
比如我們將生產(chǎn)數(shù)據(jù)復(fù)制到磁盤的另一個分區(qū),另一個文件系統(tǒng),或者拷貝到別的主機(jī)的磁盤上,等等,都是一種數(shù)據(jù)備份的方式。
實(shí)現(xiàn)數(shù)據(jù)備份的軟件有很多,比如一些磁帶操作的小工具,tar,cpio等,大的工具軟件有什么EMC Networker, Symantec Netbackup,CommVault,tapeware等等,數(shù)據(jù)復(fù)制的工具就更多了,操作系統(tǒng)的復(fù)制命令呀,emc replicator呀,srdf等等
c、應(yīng)用系統(tǒng)的備份
應(yīng)該說應(yīng)用系統(tǒng)的備份,包含了以上兩種備份,因?yàn)橐粋完善的應(yīng)用系統(tǒng),其設(shè)備和數(shù)據(jù)都是要求有備份的,那么初次之外,做為一個應(yīng)用系統(tǒng),除了設(shè)備和數(shù)據(jù),他還包含了業(yè)務(wù)程序,人員,業(yè)務(wù)邏輯,外部環(huán)境等等一系列讓應(yīng)用跑起來的東西。
在這個層面,就有一個比較熱火的東西,那就是常說的遠(yuǎn)程容災(zāi)。遠(yuǎn)程容災(zāi),就是在生產(chǎn)系統(tǒng)環(huán)境之外,在相隔較遠(yuǎn)的物理空間,構(gòu)建相同或類似的一個應(yīng)用系統(tǒng),以達(dá)到在必要的時候頂替原生產(chǎn)系統(tǒng)工作的目標(biāo)。
要實(shí)現(xiàn)遠(yuǎn)程容災(zāi)的目的,除了我們說的外部環(huán)境,比如機(jī)房,電力,后勤保障,人員配備,業(yè)務(wù)程序之外,我們比較著重的一個環(huán)節(jié),就是數(shù)據(jù)的問題,也就是我們在兩個系統(tǒng)之間要保證數(shù)據(jù)的相對一致,實(shí)現(xiàn)這個目標(biāo)的方法有很多,比如磁盤陣列之間的卷復(fù)制,比如兩個主機(jī)之間文件系統(tǒng)上的復(fù)制,等等。當(dāng)然,在一個系統(tǒng)里,把數(shù)據(jù)用磁帶導(dǎo)出來,快遞到另外一個系統(tǒng)地點(diǎn),在用磁帶把數(shù)據(jù)導(dǎo)進(jìn)取,也不能說不是一個辦法,但是這樣操作,經(jīng)常會和業(yè)務(wù)的邏輯相違背(呵呵,這么麻煩又耽誤時間,估計一般很難接受)。
對于高可用性,我要說的是:
可用性,即是指在各種復(fù)雜環(huán)境下,我們的數(shù)據(jù),應(yīng)用等計算資源都可以保持使用的能力和可能性。比如服務(wù)器配備冗余電源,就提高了服務(wù)器的可用性,好理解,一個電源工作不正;蛘吣芰Σ粔虻氖呛,服務(wù)器不受影響嘛。再比如,我們的磁盤陣列采用雙控制器,當(dāng)某個控制器和鏈路工作不正常的時候,數(shù)據(jù)的訪問能平滑的過渡到另外一個控制器上和鏈路上,這也是提高了數(shù)據(jù)和存儲設(shè)備的可用性。
那么什么是高可用性呢,我們就是一切為了提高系統(tǒng)可用性的實(shí)現(xiàn)方法和結(jié)果。
要拿出來說的就是cluster,或者雙機(jī)什么的。我們?yōu)榱藢?shí)現(xiàn)生產(chǎn)的應(yīng)用系統(tǒng)的高可用性,其中一個環(huán)節(jié)就是實(shí)現(xiàn)服務(wù)器的高可用性,就是某服務(wù)器失效或者能力不足時,應(yīng)用能平滑的過渡到另外的主機(jī)上,也就是說對于應(yīng)用系統(tǒng)來說,服務(wù)器保證了相對的可用
那備份和高可用性有什么區(qū)別呢?
那我要說,這根本沒有可比性!因?yàn)檫@是兩個不同的概念,他們的著眼點(diǎn)是不同的。備份只是保證了有后備,而高可用性則是為了保證應(yīng)用的盡快恢復(fù)。
打個比方,我們說備份就好比買保險,買保險不能保證你平安無事,但是肯定能減輕損失。我們說搞可用性,就是安全氣囊,ABS,能讓你快速的重新開始或者說將危險消弭于萌芽時刻。
所以說我們做備份和提高可用性,兩手都不可放松,也不互相矛盾。就好比買了好車,你就不買保險,或者你買了保險,就可以飆車,都是愚蠢的。
本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u/19994/showart_207875.html |
|