天天看點

拆伺服器

原文轉自:http://www.cnblogs.com/killkill/archive/2010/07/15/1775433.html

 近日新進一台 DELL PowerEdge R810 伺服器,趁還在測試階段趕緊拆開看看,順便說說X86伺服器的那些事。

R810 是台2U4路的機架式伺服器,其他的邊上圖邊說:

拆伺服器

樣子還是挺帥的,去掉鬼面罩後:

拆伺服器

從正面看,該伺服器有6個2.5寸硬碟槽位,同時也有DELL标志性的液晶面闆,從第11代伺服器開始,DELL全線伺服器(除了刀片)都使用了該液晶面闆,相對于以往該液晶面闆有所增強,在原來顯示故障資訊的基礎上多了一些功能,使用者可以簡單設定一些東西如:注釋、IP等,迅速定位問題這一點足以秒殺僅有一盞故障燈的某些品牌伺服器了。但是該液晶面闆的藍色背光燈的壽命是一大問題,想當年DELL第6代伺服器如:2650、6650,液晶面闆的背光燈在6年後的今天依然光輝依舊,而從第三代2950之後(當然也包括第11代伺服器如:R710、R810)的液晶面闆燈壽命都超不過2年。而該部件的更換是需要停機的,對于某些場合來說,停機是很大的一件事,真是“成也蕭何,敗也蕭何”。下圖是兩台上架時間相差3個月的伺服器的液晶面闆:

拆伺服器

接下來再看看屁股:

拆伺服器

兩個互備的1100瓦電源子產品,很容易就可以抽出來線上更換,由于條件限制一些朋友的電源隻能插一根,液晶面闆老是報PS1/2 Status Fail,處理的方很簡單,把沒有插電的電源子產品拔出來約3~4寸,伺服器就檢測不到該電源子產品,該錯誤就不會報了。

內建4個broadcom的千兆網口,有6個擴充槽位(2個半高,4個全高),DELL 伺服器後面的這個拉手很好用,開箱的時候利用它很友善地取出伺服器,在機櫃後利用它可友善抽拉抽拉,有時有可以綁些标簽紮帶,很簡單但是很實用的設計。

在最左下角有個黑色膠闆擋住一個缺口,該缺口是用來放置DRAC卡的,它其實一個小型的嵌入式作業系統,可以通過它來管理伺服器,包括遠端安裝、啟動和關閉等,通常作業系統挂死後可以通過DRAC卡進行重新開機系統。HP對應的技術是iLO.

先看上蓋闆的背面:

拆伺服器

這是一幅簡要的安裝、拆卸說明書和各個部件的說明,還是很容易看明白的。

從前面看過去:

拆伺服器

先是硬碟托架(當然還包括裡面的硬碟),然後是導風闆,CPU散熱器,風扇子產品,然後IO闆卡和電源子產品。

從後面看上去:

拆伺服器

從這個角度可以看到CPU幾乎緊貼着風扇子產品,通常機架式伺服器采用側吸/吹的方式進行散熱。

拆伺服器

整台伺服器就靠這6把風扇散熱了,壞了其中一把問題不大,我這邊有台6年前的2650伺服器,風扇壞了近3年,照樣跑得好好的。

通常伺服器啟動之後有個除塵模式,表現為風扇狂轉,現在有些PC機也會這樣做了,此時,千萬不要在伺服器後面看熱鬧,此時吹出來的風飽含小顆粒,有些比較髒的伺服器直接就噴黑煙了,這些粉塵對肺部損害很大。

我們拿走導風闆,此時可以看到記憶體了,但還不是全貌,要将前端I/O子產品像抽屜那樣拉出來,才能看到全貌:

拆伺服器
拆伺服器

從這兩張圖檔可以看到完全就是子產品化的設計,拉看這個前端IO子產品後就可以看到記憶體的全貌:

拆伺服器

16條DDR3記憶體, 每條4GB,共計64GB,中間黑色的是膠片,估計是防止灰塵落入記憶體槽中,從這個角度可以看到幾樣有趣的事情:

1。CPU的散熱方式不是采取自上而下的風冷方式,采用的是側風的方式,冷空氣從前端吸入,首先冷卻硬碟,再到記憶體,再到CPU,再到後端的IO闆卡,要結合“從前面看過”那張圖比較容易了解,這種方式的冷卻順序是很合理的,通常來說硬碟是一個發熱大戶,同時也對溫度比較敏感,為了友善線上更換是以排在最前排;其次是記憶體條,記憶體的發熱量不大,硬碟的工作溫度對于記憶體記憶體來說是很舒服的溫度,而且空氣的溫度比硬碟的溫度要低;再來就是另一個發熱大戶CPU了,CPU可容忍溫度還能高一些,經過CPU加熱的風最終就吹到了對熱量不太敏感的IO闆卡上,從整個過程來看伺服器的散熱設計是一個整體的散熱方案,将一個空氣流用到最足。

2。有人可能會問,為什麼要設計這個“抽屜”呢,這是由于該伺服器可以安裝最多4個CPU,這導緻主機闆的面積很難降下來,而且還有32個記憶體槽位,主機闆面積更加降不下來了,而且這是台2U高的伺服器,很難做到通過“豎闆”擴充記憶體,唯有借助“抽屜”結構來降低機身的長度,下圖是記憶體擴充豎闆:

拆伺服器

DELL

R910(4U4路)的記憶體擴充闆

3。連接配接硬碟架是兩條SAS線,這是為什麼呢,由于這台伺服器支援6Gb/s(注意是b不是B)的SAS2通道,通過兩條3Gb/s的SAS通道疊加而成6Gb。雖然就那幾塊硬碟的速度更不上,但已經是“時刻準備着”。

這裡說說現在幾種常見的硬碟接口:

SATA:這個大家應該比較熟悉,現時家用PC機的硬碟大多數都是這種接口,還記得IDE接口嗎,IDE走的是ATA協定,看看如此多的針腳就知道IDE接口是并行傳輸,随着帶寬的提高,終于搭上了串行的快車變成了SATA。

拆伺服器

IDE接口的硬碟

SAS:說SAS之前先說說SCSI,SCSI是一種協定,使用專用的SCSI接口方式,大家可以看看SCSI接口也是有寬寬的排線,也是并行傳輸的,乘着串行的春風變身成SAS接口,不過依然跑着SCSI協定。

拆伺服器

一種SCSI接口的硬碟

SAS接口相容SATA接口,SATA接口卻不相容SAS接口,通常RAID卡都會同時支援SAS硬碟的話也會支援SATA硬碟。

拆伺服器

SAS和SATA接口的差別和相容性

除了接口不同,這兩種硬碟更多的差異表現在轉速和容量上,SATA一般是7200 RPM,不過現在有10000 RPM的SATA盤了,三年前的SAS盤已經是10000 RPM,而現在的SAS盤幾乎都是15000 RPM;SATA的容量較高,SATA流行500G的時候,SAS正在從160G過渡到300G,SATA流行750G的時候,SAS的300G大行其道,SATA開始流行1T的時候,450G才剛出道,前不久Seagate釋出600G SAS盤,家用機市場已經可以買到2T SATA盤了。

拆伺服器

同時SAS和SATA盤面向的應用不同,SAS盤的IOPS比SATA盤要好,得益于其高高在上的轉速,SAS的吞吐比SATA盤要高,但是不明顯,通常SAS盤适合IOPS較高的場合,例如繁忙的資料系統,郵件系統,使用靜态化技術的大行網站等。而SATA的價錢比SAS低廉,有個兄弟機關的聯想伺服器壞了塊300G SAS硬碟,比較郁悶的是機器剛過保修兩個月,聯想要價 6000,上個月我買了塊1TB的SATA硬碟(家用機)不到500塊錢,擠擠聯想SAS盤報價的水分,擡擡SATA盤的價格,大家可以算一算每G容量的差價還是相當相當大的,是以,SATA盤更多用于備份系統,大流量的視訊網站,FTP站點(網際網路上越來越少了)等,在按順序存取檔案的應用,從性能上說SAS比SATA領先不了多少。

再仔細看看記憶體,這是其中一條記憶體:

拆伺服器

三星的DDR3記憶體,帶ECC校驗順便多穿了件“馬甲”。

通常來說,伺服器的記憶體帶有ECC校驗和ChipKill技術,這是單條記憶體内的技術,而記憶體之間還支援Mirroring和Hot-Spare技術。不過相對來說記憶體故障的幾率還是挺小的,是以這些技術遠沒有RAID這個名詞出名。

拆伺服器

密密麻麻的散熱片由幾條銅管穿在一起,比起DIY玩家巨碩的散熱器,伺服器的散熱器低調得太多了,散熱器下面就是4顆Intel XEON E7520 CPU。

以下是CPU的拆卸圖,其實不難,我曾經有一次在DELL工程師的電話“指導”下完成兩顆CPU的互換。

拆伺服器

從官方文檔了解到 Intel XEON 7500系列單顆CPU最多可有8個核,再加上超線程技術可達16線程(即16顆虛拟CPU),而擴充性更是驚人256顆CPU并行工作,以下是從該文檔摘錄的部分7500系列的CPU參數,從參數可以可以看到其實頻率并不是很高,并行性卻越來越被重視,想想4顆Intel XEON E7560在Windows的任務管理器中可以看到64顆虛拟CPU的情景吧,同時跑63個Super PI再玩掃雷應該是不會卡的。

在伺服器領域很看重并行性,當然如果并行能力和單核處理能力都強那是最好的啦,例如IBM的Power 7 CPU,這是由于伺服器相當于一個資源競争點,能同時處理處理多個任務比起更快地處理完單個任務更重要。

拆伺服器

Intel XEON 7300系列的CPU依靠IBM的X4晶片隻能做到16路,可以看一下我寫的《16 路的PC伺服器》,而Intel自己的晶片隻能做到4路,是以在那個時候再高端的X86伺服器也很難對高端小型機那幾十路CPU産生沖擊,是以長年以來X86伺服器和高端小型機是河水不犯井水,但是依靠7500系列CPU良好的擴充性,高端X86伺服器終于擁有了沖擊高端小型機的資本了。估計首當其沖的将會是Intel自家的Itanium系列,可以參考我寫的《不祥的CPU——Alpha》這篇文章,我從另一個角度分析Itanium衰亡的必然性。

話說回來,現在有這樣的産品了嗎?仔細搜尋一下,還真有,以下來自Intel的網站資訊,找到一台稱為 SGI Altix UV 1000 的機器:

拆伺服器

同時在SGI的網站上得到印證:

拆伺服器

SGI 可能大家并不熟悉,但是搞圖形領域的朋友對他一定不陌生,不過據說是一套刀片叢集不是單機系統。

扯遠了,由于該台伺服器已經安裝了VMware ESX 4,是以就沒有安裝Windows,當然也不會有大家熟悉的任務管理器了,我在VCenter中截了一張圖,可以看到邏輯CPU達到了32個(4個CPU,每個4核,支援超線程,4*4*2):

拆伺服器

最後看看伺服器的後端,R810比較奇特的是把RAID卡放在後端,以往的型号都是放在前端部分,估計也是由于空間的制約所作出的舉動,同時我這台伺服器也帶了塊QLogic的光纖HBA卡:

拆伺服器

上面那張是HBA卡,下面那張是RAID卡,那條顯眼的黑線可不是“飛線”,他是連接配接RAID卡和電池的。卸下HBA卡後RAID卡露出原形,RAID卡的散熱片裝得有點歪-_- :

拆伺服器

通常來說,RAID卡都會有一個記憶體子產品,稱為RAID卡的緩存,作用和硬碟的緩存是一樣的,由于該緩存比較大,通常都有256MB,裡面儲存了RAID的中繼資料和硬碟的I/O資料,一旦意外斷電在沒有電池的保護下該部分資訊就會丢失。很早以前,RAID的中繼資料隻會儲存在RAID卡緩存中,一旦電池損壞,那就得想辦法重建RAID了,而比較新的RAID卡會把RAID的中繼資料儲存在RAID卡緩存中和每塊硬碟中,這就抵禦RAID電池失效後的災難情況了。

是電池都會有電池的毛病,RAID卡電池也不例外,每隔一段時間RAID卡電池的都會做一次放-充電的動作,以保證電池的可用性,通常是3周~30天,如果長期對伺服器的I/O性能進行監控并且有足夠的I/O壓力就會發現伺服器的I/O總有“一段時間”特别差,這是因為在電池放-充電期間,RAID卡的寫入模式會被強制設定為Write-Through,說到這裡必須提一下,RAID卡通常的寫入模式有兩種:

1。Write-Back :上層系統的寫入指令到達RAID卡後,RAID卡完成寫入緩存的操作後馬上傳回一個成功信号,那個緩存其實就是個記憶體條,寫記憶體多快啊,是以這種模式的性能很好,但如果沒有電池保護該緩存的話将會出現丢資料的風險,而且還丢很多。

2。Write-Through: 上層系統寫入指令到達RAID卡後,RAID卡直接将資訊按照RAID的級别進行處理,然後寫入各個硬碟,如果是四塊硬碟做RAID0的話,就要等四塊硬碟都傳回成功信号後才會向上層傳回成功的信号,這種方式對資料有最大的保護性,但是性能很差,畢竟要等待n塊硬碟完成後才能傳回。

拆伺服器

當電池損壞後,DELL的伺服器就拒絕啟動作業系統,更換電池後就好了。

由于RAID的原資料在硬碟中也有一份,如果伺服器損壞無法啟動,但是硬碟都是完好無缺的,可以将硬碟更換到另一台擁有同樣型号RAID卡的伺服器上,然後開機,RAID卡會檢測到硬碟的RAID中繼資料和緩存中的不一樣,然後會讓你确認是否導入新的RAID中繼資料,然後就可以啟動作業系統了,這是PECT教育訓練(DELLPowerEdgeConfiguartion and

Troubleshooting)的老師教的,不過很不幸,我遇到唯一一次嘗試的機會沒有成功。

通常來說,伺服器壞硬碟是很正常的事,換就是了,伺服器的設計也想到了這點,幾乎都設計成可線上更換的方式,也就是常說的硬碟熱插拔方式,建議大家用熱插拔的方式更換硬碟,我曾經在兄弟機關看到兩個這樣案例,當時管理者為了保險,關機換硬碟,但啟動的時候就發生了找不到RAID的杯具了,由于資料不重要,也沒有仔細追查原因了,而我為了偷懶前前後後線上更換了不下10塊硬碟無一出問題,莫非這就是人品 ^_^。

有“備”無患,DELL上門更換硬碟的時候都會先讓你在服務單右上角“是否備份資料”一欄簽名确認,如果換其他部件例如液晶面闆、網卡等是不會讓你簽這欄,估計DELL也不是對“RAID保護”有100%信心,是以建議大家能備的就備吧。

建議大家保留伺服器的引導CD光牒,通常來說某些作業系統認不出RAID卡,自然裝不成作業系統,引導CD光牒可以幫忙Load進合适的驅動,解決不少問題。05年的時候搞到一台IBM X255伺服器,打算裝個Windows Server 2003,但是竟然認不出RAID卡,好不容易從一位朋友處接得一張3.5寸軟碟Load進驅動才成功把系統裝起來,别說現在,即使在05年的時候要找一張軟碟太難了,找一張能用的軟碟難上加難。通常來說引導CD光牒其實是另一個操作,類似Windows

PE,IBM的引導CD光牒是基于Linux,而DELL的引導CD光牒是基于Windows Vista的。

該伺服器一共6個擴充槽,有兩個是半高槽:

拆伺服器

仔細觀開可以發現其實後端擴充是一塊獨立的電路闆,通過一個插座連接配接,借用pconline的一張圖更好說明這點:

拆伺服器

pconline拍的照片就是好看啊 ^_^

這個子產品比較特别,我一直找不到這塊晶片,它也是一個嵌入式的作業系統,它将對外的IP挂接在第一塊網卡上,BMC負責收集伺服器内各個探頭(Sensor)的資料,并具有一定的管理電源管理能力,相對于DRAC和iLO而言,BMC顯得更加簡單,它使用的IPMI 2.0協定,DELL有一款管理軟體叫 IT Assistant 可以通過IPMI協定從伺服器的BMC獲得各個探頭的資料,進而通過網絡監控一堆伺服器,這個想法很好,但是,正式使用的時候發現這個軟體有很多不如人意的地方。

通過BMC,我們也可以實作遠端的開機和關機,Linux的RHCS叢集軟體可以利用該技術實作叢集節點的隔離(Fencing),所謂隔離,簡單來說就是當叢集軟體發現一個節點出現問題後,完好首先發送指令到該節點叢集軟體讓其釋放資源,但是可能該問題節點已經傻傻的,不對該指令響應,到達一定閥值後,完好的節點會使用IPMI協定發送一個重新開機指令給該問題節點,強行使其重新開機,大家知道,一旦重新開機一切歸于混沌,該問題節點所占用的資源就自然釋放了,整個過程就好像将這個問題節點與資源“隔離”一樣。

某些作業系統或者裝了相應的管理軟體後就可以從BMC讀取到各個探頭的資料,以下是從VMware ESX 4的VCenter中的截圖:

拆伺服器

遠端控制器、BMC晶片,記憶體的Mirror和Hot-Spare,子產品化的設計還有CPU的擴充能力幾乎都是借鑒小型機的技術,有些高端的PC伺服器,例如:IBM 3850/3950支援記憶體和部分I/O闆卡的熱插拔,在小型機和大型機上更是屢見不鮮,不過前提是作業系統得支援-_-

前段時間富士通的大忽悠來推銷小型機,吹他們的SPARC晶片借鑒了大型機的技術,買一台小型機相當于買半台大型機的技術,對于大忽悠說的話不必全信,但是可以知道互相借鑒學習是進步的一種方式。

上一篇blog我就給baidu說了一句好話,竟然有一些朋友懷疑我是baidu/漢王的托-_- ,實在冤枉,特此聲明,在本篇文章發表之前,我沒有收到以上任何廠商的任何好處,也不是他們的托,發表後如果能收到就最好啦 ^_^

上一篇: SLA 簡介

繼續閱讀