0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

芯片設(shè)計(jì)公司如何設(shè)計(jì)自己的IT環(huán)境?

電子工程師 ? 來(lái)源:xx ? 2019-03-16 09:34 ? 次閱讀

從2004年開(kāi)始,我寫(xiě)過(guò)幾次小型IC設(shè)計(jì)中心的IT環(huán)境。比較多的論述了創(chuàng)業(yè)類型的芯片設(shè)計(jì)公司,應(yīng)該怎么去設(shè)計(jì)自己的IT環(huán)境。這10多年間,有不少初創(chuàng)型的公司來(lái)咨詢過(guò)如何更好的規(guī)劃IT系統(tǒng),我都盡力協(xié)助解決。

我本人也在這期間經(jīng)歷過(guò)各種類型的公司,包括提供EDA平臺(tái)的蘇州ICC,做交換機(jī)芯片的CentecNetworks,已經(jīng)被收購(gòu)的Broadcom,做嵌入式CPU的China-Core,以及過(guò)去兩年為其工作的初創(chuàng)大型CPU設(shè)計(jì)公司,IBM Power8在中國(guó)的落地項(xiàng)目中晟宏芯。以上工作經(jīng)歷,給了我很多鍛煉,讓我在面對(duì)各種大小類型的IC設(shè)計(jì)公司的時(shí)候,變得更加成熟。但是,在這個(gè)過(guò)程中,深感國(guó)內(nèi)的IC設(shè)計(jì)公司在IT環(huán)境的建設(shè)方面,跟國(guó)際大公司比較,差距依然非常大。

如何將自己的經(jīng)驗(yàn)分享出來(lái),以提高中國(guó)IC設(shè)計(jì)公司的IT水平,變得越來(lái)越重要,也越來(lái)越緊迫。希望本文有助于目前在中國(guó)逐漸興起的IC設(shè)計(jì)行業(yè),在國(guó)家的大基金項(xiàng)目下,少走彎路,縮小跟國(guó)外的大公司之間的差距。

全文分為11個(gè)章節(jié)論述:

1. 基礎(chǔ)設(shè)施建設(shè)(機(jī)房,弱電間,接入機(jī)房,實(shí)驗(yàn)室機(jī)房及實(shí)驗(yàn)室)

2.網(wǎng)絡(luò)結(jié)構(gòu)

3.系統(tǒng)及存儲(chǔ)布局

4.接入及登陸環(huán)境

5.設(shè)計(jì)Job的管理

6.數(shù)據(jù)管理

7.版本管理

8.郵件系統(tǒng)

9.EDA軟件管理

10.多site協(xié)同

11.安全

基礎(chǔ)設(shè)施建設(shè)

1.供電

2.制冷

3.布線(水、電、弱電)

4.環(huán)控

5.空間及位置考慮

6.交換機(jī)布局,ipmi布局

7.消防

基礎(chǔ)設(shè)施主要包含網(wǎng)絡(luò)、機(jī)房等方面,我這里主要介紹的是機(jī)房的建設(shè)。過(guò)去十多年,我建過(guò)幾臺(tái)服務(wù)器的小機(jī)房,也建過(guò)幾百臺(tái)服務(wù)器的小型數(shù)據(jù)中心??剂康臇|西很多,因?yàn)楸酒饕撌龃笮虸C設(shè)計(jì)中心的IT環(huán)境,所以主要講的是幾百臺(tái)服務(wù)器的機(jī)房。

首先,我們來(lái)看一張機(jī)房的示意圖:

我們可以看到這個(gè)數(shù)據(jù)中心分成了多個(gè)部分:接入機(jī)房,實(shí)驗(yàn)室機(jī)房,消防鋼瓶間,UPS配電間,電池間,主機(jī)房,值班室。

供電

建設(shè)機(jī)房的首要任務(wù)是計(jì)算出你到底需要多少功率的負(fù)荷,然后對(duì)接入電源

跟供電方核對(duì),是否有滿足需求的電力接入。然后可以確定UPS容量,最后通過(guò)設(shè)備的斷電后備時(shí)間要求,計(jì)算出需要多少電池。供電系統(tǒng)是一個(gè)很復(fù)雜的設(shè)計(jì),需要機(jī)房設(shè)計(jì)方認(rèn)真核對(duì),一旦錯(cuò)誤,后期很難補(bǔ)救。

作為用戶方:我們提供的信息主要有:總機(jī)房設(shè)備的最大負(fù)載、供電冗余要求、每機(jī)柜多少KW、電池的后備時(shí)間。

制冷

目前機(jī)房空調(diào)主要有兩種類型:一種是大型的精密空調(diào),通過(guò)上送風(fēng)或者下

送風(fēng)的方式,經(jīng)過(guò)機(jī)房地板形成一個(gè)冷熱回路。這種方式在很多地方使用,優(yōu)點(diǎn)是送風(fēng)集中,運(yùn)維方便。缺點(diǎn)就是噪音大,空調(diào)冷熱路徑長(zhǎng),能耗損失多。另外一種,就是行間空調(diào)。行間空調(diào)顧名思義,就是空調(diào)就位于機(jī)柜旁邊,空調(diào)出來(lái)的冷風(fēng)就被機(jī)柜上放置的服務(wù)器吸入,然后從服務(wù)器后端排出熱空調(diào),形成循環(huán)。

水冷還是風(fēng)冷?

這也是一個(gè)難以取舍的選擇。整體來(lái)說(shuō),風(fēng)冷技術(shù)成熟,能耗比水冷高。但是水冷風(fēng)險(xiǎn)高,因?yàn)楣苈返陌惭b和維護(hù)要求高,一旦漏水,對(duì)機(jī)房來(lái)說(shuō)都是大事故。但是,水冷真的可以很大程度降低能耗。

基于自己的條件,我們選擇了行間空調(diào)風(fēng)冷方式。

布線

機(jī)房布線的考慮,經(jīng)常受到環(huán)境的限制,經(jīng)常我們不得不取舍。主要需要考慮的是水管如何布置,包括加濕器的進(jìn)水管和冷凝水的排水管。強(qiáng)電線纜如何布局以及弱電(雙絞線及光纖線纜)布局。

水管的布局,需要考慮漏水的情況下,對(duì)機(jī)房的影響。機(jī)房漏水從來(lái)不是小問(wèn)題,任何處置不當(dāng),就可能導(dǎo)致機(jī)房停止運(yùn)行。主要有兩方面的水路需要處理,一邊為冷凝水的排出,另外就是加濕器的進(jìn)水。建設(shè)機(jī)房的時(shí)候,建設(shè)方提出想把頂樓的排水管在中間開(kāi)口,通過(guò)這個(gè)排水口去釋放空調(diào)的冷凝水,聽(tīng)起來(lái)不錯(cuò)吧?可如果大雨的情況下,排水管堵塞或者來(lái)不及排出去的時(shí)候,水就會(huì)從排水管的開(kāi)口處,直接往機(jī)房排放。加濕器進(jìn)水一定要前置閥門(mén),隨時(shí)將其管理。否則,自來(lái)水的突然高壓,可能會(huì)導(dǎo)致機(jī)房大面積過(guò)水。由于進(jìn)水管的安裝問(wèn)題,我甚至不得不將加濕器進(jìn)水管完全關(guān)閉,以免發(fā)生意外。水管一般都是從機(jī)房地板下走。

強(qiáng)電的安裝需要注意跟弱電分開(kāi),因?yàn)閺?qiáng)電會(huì)干擾弱電信號(hào)。這就提出了一個(gè)現(xiàn)實(shí)的問(wèn)題:強(qiáng)電到底應(yīng)該走頂部還是地下?因?yàn)轫敳客鶗?huì)走弱電線纜。弱電走頂部的一個(gè)好處是后期維護(hù)和排錯(cuò)更加方便。我這里設(shè)計(jì)方選擇了走地下,地板下有40cm,強(qiáng)電在架設(shè)的橋架上走。但是,因?yàn)榕潘苄枰幸欢ǜ叨?,不得不走了?qiáng)電橋架的上部,這應(yīng)該是一個(gè)失敗的設(shè)計(jì)。但是,如果強(qiáng)電走頂部,弱電怎么辦??jī)烧咧g需要隔離。整體的通道和機(jī)柜設(shè)計(jì)已經(jīng)解決這個(gè)問(wèn)題,所以建議選擇冷通道和機(jī)柜的時(shí)候,選擇好頂部可以分割強(qiáng)弱電布線的產(chǎn)品。這樣可以很好的解決強(qiáng)弱電分離的問(wèn)題,同時(shí)避免了強(qiáng)電跟水路一起走的尷尬。

環(huán)控

機(jī)房環(huán)控需要做到幾個(gè)方面:視頻監(jiān)控,溫濕度,漏水檢測(cè),電話報(bào)警,PUE

的實(shí)時(shí)顯示。

空間及位置考慮

為什么要將接入機(jī)房單獨(dú)出來(lái)

接入機(jī)房負(fù)責(zé)跟外界的溝通,包括各家運(yùn)營(yíng)商的接入線路:電信的互聯(lián)網(wǎng),電信的電話,聯(lián)通的互聯(lián)網(wǎng),專線等。這個(gè)地方經(jīng)常要開(kāi)放給電信聯(lián)通的維護(hù)人員,辦公網(wǎng)絡(luò)的核心設(shè)備也需要放在這里。外網(wǎng)防火墻,門(mén)禁系統(tǒng),OA服務(wù)器等都需要,類似一般公司的小機(jī)房。各辦公樓層的匯聚。這個(gè)機(jī)房設(shè)計(jì),一般可以考慮單獨(dú)的UPS,空調(diào)。

為什么要建一個(gè)單獨(dú)的實(shí)驗(yàn)室機(jī)房?

我們都知道,IC設(shè)計(jì)公司是要做出硬件產(chǎn)品的,而很多工作需要的服務(wù)器,不是IT人員去管理,而是設(shè)計(jì)人員自己做各種測(cè)試使用。如果沒(méi)有一個(gè)獨(dú)立的空間,是無(wú)法做好隔離的。這樣測(cè)試環(huán)境會(huì)讓整個(gè)IT系統(tǒng)不穩(wěn)定。仿真器等設(shè)備需要大功率的制冷和獨(dú)立空間,所以實(shí)驗(yàn)室機(jī)房采取傳統(tǒng)的精密空調(diào),采用下送風(fēng)的方式制冷。

主機(jī)房

我們主機(jī)房按照標(biāo)準(zhǔn)模式,設(shè)計(jì)了獨(dú)立的消防管網(wǎng)系統(tǒng),氣體滅火。UPS配電間跟電池間。UPS設(shè)備目前有模塊化的,可以考慮,避免機(jī)房設(shè)備不足的時(shí)候,UPS浪費(fèi)電力嚴(yán)重的情況發(fā)生。

機(jī)房的位置選擇

這個(gè)涉及的考量很多,很多時(shí)候我們不得不折中考量,這讓人感覺(jué)很無(wú)奈。比如,我們需要考慮樓層的承重,一旦我們考慮建設(shè)機(jī)房的地方,如果樓下是空的,就需要建筑設(shè)計(jì)單位拿出承重設(shè)計(jì)數(shù)據(jù),不能滿足我們需求的情況下,我們需要加固。一般情況下,都是不能滿足的,沒(méi)有哪家建筑設(shè)計(jì)院會(huì)將普通的辦公樓設(shè)計(jì)為承重達(dá)到機(jī)房的要求,除非是廠房設(shè)計(jì)。一般建筑的承重為250kg—500kg,而我們機(jī)房一般要求1000kg-2000kg之間。特別是UPS電池間,這個(gè)地方要求的承重非常高。

如果我們選擇地下沒(méi)有架空的一樓做機(jī)房,當(dāng)然就不需要重新加固建筑承重了,但是一樓往往會(huì)面臨另外一個(gè)問(wèn)題。機(jī)房空調(diào)的外機(jī)往哪兒放?現(xiàn)在的建筑一般都是空調(diào)放在頂樓,如果一樓的機(jī)房到頂樓的距離過(guò)長(zhǎng),會(huì)影響制冷效果,能耗也會(huì)損失更多。另外,一樓還需要防水,特別是暴雨來(lái)臨,如果地勢(shì)低洼,很可能導(dǎo)致倒灌,一旦進(jìn)入機(jī)房,整個(gè)機(jī)房就可能完全停止工作。

所以,機(jī)房的位置選擇起來(lái)非常難。建議一定要提前選擇好地方,且不可將就。

網(wǎng)絡(luò)布局

機(jī)房網(wǎng)絡(luò)設(shè)備主要是交換機(jī),目前主要采用的有集中式布局和分布式布局。

兩種各有優(yōu)缺點(diǎn)。

集中式布局,一般在一個(gè)冷通道采用一臺(tái)大型多插槽的交換機(jī),這樣的布局方式,機(jī)房布線是一個(gè)難點(diǎn),因?yàn)閹装俑W(wǎng)線要布局到核心交換機(jī)處,線纜的連接非常麻煩,好處是解決問(wèn)題的時(shí)候簡(jiǎn)單,且由于交換機(jī)多采用了個(gè)冗余部件,很少出現(xiàn)故障。各個(gè)機(jī)柜之間也基本是線速連接的。

分布式布局,多采用TOR交換機(jī)模式,即每個(gè)機(jī)柜頂部安裝一臺(tái)交換機(jī),然后各交換機(jī)通過(guò)上聯(lián)到核心交換機(jī)處實(shí)現(xiàn)連接。這樣的連接方式,交換機(jī)數(shù)量比較多,可能不得不浪費(fèi)很多端口,因?yàn)槲覀円粋€(gè)機(jī)柜里邊很難會(huì)完全用完交換機(jī)端口(現(xiàn)在一般交換機(jī)都是24口-48口)。這種方式的優(yōu)點(diǎn)是:布線非常簡(jiǎn)潔,只要每機(jī)柜到核心交換機(jī)機(jī)柜布置2根6芯的光纖+2根六類線即可。

建議新建的機(jī)房采用10G TOR交換機(jī)+40G上聯(lián),這是趨勢(shì),服務(wù)器之間采用10G連接的成本已經(jīng)降到足夠低了??梢詽M足一段時(shí)間的需求。

無(wú)論采用分布式還是集中式,都推薦在每個(gè)機(jī)柜上放一臺(tái)簡(jiǎn)單2層交換機(jī),用于設(shè)備的遠(yuǎn)程管理口,比如服務(wù)器的ipmi端口。這樣可以不用隨時(shí)進(jìn)出機(jī)房去開(kāi)啟關(guān)閉服務(wù)器。

消防

機(jī)房的消防,目前主要采取的是七氟丙烷氣體消防。主要考慮的是,提前在

消防部門(mén)審批方案和報(bào)備,必須是當(dāng)?shù)赜匈Y質(zhì)的建設(shè)方。另外,氣體釋放的方式最好是經(jīng)過(guò)監(jiān)控室人工確認(rèn),否則可能導(dǎo)致機(jī)房人員沒(méi)有按時(shí)撤離,窒息而死。

網(wǎng)絡(luò)結(jié)構(gòu)

首先讓我們來(lái)看一個(gè)網(wǎng)絡(luò)的結(jié)構(gòu)示意圖,因?yàn)檫@部分涉及到實(shí)際內(nèi)容,我只能通過(guò)示意圖的方式來(lái)簡(jiǎn)單講一下基本的要求。無(wú)法提供真實(shí)的網(wǎng)絡(luò)結(jié)構(gòu)圖給大家看了。

1.內(nèi)外網(wǎng)隔離

2.研發(fā)網(wǎng)絡(luò)跟辦公網(wǎng)絡(luò)隔離

3.研發(fā)網(wǎng)絡(luò)客戶端跟服務(wù)器隔離

4.MPLSVPN網(wǎng)絡(luò)

內(nèi)外網(wǎng)絡(luò)隔離

我們通過(guò)多層防火墻對(duì)網(wǎng)絡(luò)進(jìn)行了隔離,公司總出口有一個(gè)上網(wǎng)的防火墻,

用于隔離互聯(lián)網(wǎng)跟辦公網(wǎng)。我們對(duì)外提供的有限服務(wù)位于防火墻后面,這也是最容易被外部攻擊的區(qū)域。在這里,我們通過(guò)ACL等措施隔離辦公網(wǎng)絡(luò)流量,防火墻部署入侵檢測(cè)和殺毒等服務(wù)。

研發(fā)網(wǎng)絡(luò)跟辦公網(wǎng)絡(luò)隔離

研發(fā)網(wǎng)絡(luò)指的是我們?cè)O(shè)計(jì)芯片的網(wǎng)絡(luò)。這里一般采用兩種方式隔離,一種

是物理隔離,另一種是邏輯隔離,各有優(yōu)缺點(diǎn),按需采用即可。物理隔離的優(yōu)點(diǎn)是安全,任何通過(guò)網(wǎng)絡(luò)入侵的機(jī)會(huì)將為零。但是缺點(diǎn)是實(shí)用性和方便性遇到困難,無(wú)法做到多個(gè)異地site協(xié)同工作。邏輯隔離是采用各種安全規(guī)范,嚴(yán)格限制研發(fā)網(wǎng)絡(luò)跟辦公網(wǎng)絡(luò)的交互,實(shí)現(xiàn)即時(shí)辦公網(wǎng)絡(luò)被入侵,依然可以保證研發(fā)網(wǎng)絡(luò)安全的網(wǎng)絡(luò)設(shè)計(jì)。這種優(yōu)點(diǎn)是可以多site協(xié)助,跟外部交流容易。缺點(diǎn)就是存在安全錯(cuò)誤導(dǎo)致的安全風(fēng)險(xiǎn)存在可能。

研發(fā)網(wǎng)絡(luò)的客戶端跟服務(wù)器分離

研發(fā)網(wǎng)絡(luò)的服務(wù)器端一般位于機(jī)房?jī)?nèi),而客戶端位于工位。兩者之間如果不

能有效隔離,就會(huì)造成安全風(fēng)險(xiǎn)點(diǎn)大面積增加。同時(shí),對(duì)內(nèi)的安全防護(hù)就無(wú)從談起。使用,我們一般會(huì)在登陸客戶端跟設(shè)計(jì)服務(wù)器之間采用防火墻來(lái)隔離。同時(shí),登陸服務(wù)器也需要采取各種安全措施,避免被內(nèi)部用戶入侵控制。

MPLS VPN網(wǎng)絡(luò)

專線網(wǎng)絡(luò)有多種,常用的可能有MSTP/SDHMPLS。SDH專線主要用在國(guó)內(nèi)

點(diǎn)對(duì)點(diǎn)電路上,相當(dāng)于給提供物理鏈路給你。這種方式優(yōu)點(diǎn)是點(diǎn)對(duì)點(diǎn),只要電路不斷,你的網(wǎng)絡(luò)一定不會(huì)跟其他共享帶寬。MPLS VPN是用的更多的專線方式,其特點(diǎn)是環(huán)狀組網(wǎng),使用邏輯隔離,將數(shù)據(jù)從一個(gè)大的帶寬網(wǎng)絡(luò)中隔離出來(lái),運(yùn)營(yíng)商采用各種方式盡量保證你的帶寬符合你申請(qǐng)的帶寬。

如果只是兩點(diǎn),可以考慮SDH,如果是多點(diǎn),建議還是用MPLS VPN比較合適。專線方式可以提供比互聯(lián)網(wǎng)ipsec vpn更好的穩(wěn)定性,建議研發(fā)的工作環(huán)境采用。而對(duì)于穩(wěn)定性要求不高的應(yīng)用,建議還是采用傳統(tǒng)的ipsec vpn方式節(jié)省費(fèi)用,比較專線每月都需要付出一大筆錢。

額外提示一點(diǎn):目前研發(fā)設(shè)計(jì)網(wǎng)絡(luò),經(jīng)常需要使用google等搜索引擎查詢資料。國(guó)內(nèi)的網(wǎng)絡(luò)連接國(guó)外有防火墻封鎖,同時(shí)兩大運(yùn)營(yíng)商的問(wèn)題導(dǎo)致訪問(wèn)國(guó)外異常慢,丟包率非常高。解決這類問(wèn)題,目前有幾個(gè)辦法:方法一,購(gòu)買一些vpn服務(wù)賬號(hào),適合個(gè)人使用。方法二、公司拉一條專線到香港,通過(guò)香港本地上internet。適合公司一起使用的,但是這種方式成本很高,差不多1000元/M,一條10M的線路需要每個(gè)月一萬(wàn)了。方法三、通過(guò)上面所述的MPLS VPN,路由到國(guó)外再上internet,類似方法二,只是成本更高,如果剛好有上下線非對(duì)稱應(yīng)用,比如國(guó)外分部主要通過(guò)MPLS訪問(wèn)總部資源的時(shí)候,主要是下行帶寬,總部可以利用其上行帶寬。方法四、采用SDN的方式和云計(jì)算結(jié)合,通過(guò)公有云實(shí)現(xiàn)這類應(yīng)用,成本在100-300RMB/兆之間,非常適合小公司。

系統(tǒng)和存儲(chǔ)布局

1. CPU架構(gòu)及OS考慮

2.認(rèn)證(NIS AD LDAP及其他)

3.DNS/NTP

4.Email

5.存儲(chǔ):zfs/netapp

6.NFS v3/v4和AFS GPFS之間的優(yōu)缺點(diǎn)

CPU架構(gòu)及OS

看過(guò)我以前文章的朋友,一定會(huì)記得,2004年,我推薦Solaris8。2008年推薦的OS是RHEL3和RHEL4,到了2013年我寫(xiě)的文章,已經(jīng)推薦RHEL5了。今天(2015年底)我推薦的是RHEL6.7。推薦OS必須跟當(dāng)時(shí)所處的情況有關(guān),目前三大軟件商cadence synopsys mentor都已經(jīng)支持RHEL6,所以采用RHEL6毫無(wú)問(wèn)題。我們目前全部都采用的是RHEL6.7的OS。

CPU架構(gòu)方面,依然推薦Intel的E5-2600v3和v4雙路服務(wù)器,特殊情況可以考慮E7的4路服務(wù)器。作為一家主要引入IBM Power8處理器設(shè)計(jì)的公司來(lái)說(shuō),采用intel的CPU是不是有些特別的意味?一點(diǎn)也不奇怪,因?yàn)镋DA vendor的主要軟件都是支持x86的處理器,只有少量軟件會(huì)支持AIX+Power。而從性價(jià)比來(lái)說(shuō),顯然x86更有優(yōu)勢(shì)。

OS安裝需要采用kickstart實(shí)現(xiàn)一致性安裝,即所有服務(wù)器跑的系統(tǒng)和軟件包都一樣。實(shí)現(xiàn)本地的OS image和epel庫(kù),然后通過(guò)pssh等分布式管理工具實(shí)現(xiàn)軟件安裝的一致性要求。

認(rèn)證

用戶認(rèn)證,必須實(shí)現(xiàn)統(tǒng)一賬號(hào),在任何系統(tǒng)下,最好是同一個(gè)賬號(hào)和密碼。

目前能夠?qū)崿F(xiàn)這個(gè)條件,需要windows的Active Directory和NIS或者LDAP統(tǒng)一。

我這里采用了windows 2008R2 + NIS來(lái)實(shí)現(xiàn),使用NIS這么古老的認(rèn)證技術(shù)主要是考慮了其簡(jiǎn)單方便性,沒(méi)有過(guò)多考慮其他如安全等特性。

Windows 2008R2,集成可SFU的功能,可以為unix用戶設(shè)置一些特性,比如uid gid shell home,另外,還提供NIS服務(wù)器功能,可以實(shí)現(xiàn)windows賬號(hào)和unix賬號(hào)的統(tǒng)一。

采用NIS的原因是我們會(huì)在后面實(shí)現(xiàn)autofs功能,這樣PXE安裝的Linux服務(wù)器就不需要掛載很多文件系統(tǒng),而直接采用autofs的方式掛載。

在未來(lái),Unix下認(rèn)證應(yīng)該會(huì)跟逐步LDAP集成。

DNS/NTP

實(shí)現(xiàn)內(nèi)部DNS服務(wù)功能可以提供內(nèi)部服務(wù)器之間的便捷訪問(wèn),從而擺脫記憶

ip地址的麻煩。某些服務(wù)器在采用了內(nèi)部dns后,可以更容易使用。目前提供dns服務(wù)器的主要有兩個(gè)程序:bind和dnsmasq。前者是傳統(tǒng)的dns服務(wù)器,功能強(qiáng)大。后者是簡(jiǎn)單的dns+dhcp服務(wù),一般用于小型環(huán)境。優(yōu)點(diǎn)就是便捷,使用方便。具體服務(wù)器搭建,這里不再詳細(xì)介紹,提醒一點(diǎn)是dnsmasq默認(rèn)不提供跨vlan的dns服務(wù),需要綁定interface。

內(nèi)部ntp服務(wù)在這種環(huán)境下幾乎是必須的。Ntp可實(shí)現(xiàn)內(nèi)部時(shí)間的統(tǒng)一,避免認(rèn)證失敗或者文件時(shí)間沖突等問(wèn)題。Ntp服務(wù)器的實(shí)現(xiàn)非常簡(jiǎn)單,不做介紹,注意要周期性跟ntp服務(wù)器同步時(shí)間。

Email系統(tǒng)

Email依然是當(dāng)前企業(yè)通信的最主要方式,所以email系統(tǒng)的選擇也是一個(gè)重

要的工作。由于我們公司采用了內(nèi)外網(wǎng)隔離的方式,所以我們的平時(shí)跟外部聯(lián)系的郵件系統(tǒng)跟內(nèi)部郵件系統(tǒng)是完全獨(dú)立的兩套。

外部郵件系統(tǒng)主要考慮的是防病毒,防垃圾郵件,安全,可維護(hù)性及盡量少的中斷時(shí)間。基于以上考慮,我們最終選擇了托管出去的方式。以前在多家公司,都用了自己搭建的郵件系統(tǒng),包括exchange或者其他專業(yè)的郵件軟件,開(kāi)放25端口來(lái)跟外部通信。其中最麻煩的事情不是安全,而是垃圾郵件太多。如果公司自己購(gòu)買一臺(tái)垃圾郵件過(guò)濾系統(tǒng),費(fèi)用很高且可能一定程度誤報(bào)誤刪,這樣對(duì)公司來(lái)說(shuō)是無(wú)法接受的。由于新建公司沒(méi)有多少郵件遷移的任務(wù),我們最終采用了托管出去的方式,按用戶付費(fèi),這樣完全避免了垃圾郵件的困擾。

內(nèi)部郵件系統(tǒng),我們采用了postfix來(lái)自己搭建一套??紤]到有需求,我們采取措施,讓托管出去的郵件可以直接轉(zhuǎn)發(fā)到內(nèi)部郵件服務(wù)器上。這里涉及到了一個(gè)中轉(zhuǎn)服務(wù)器。

存儲(chǔ)

存儲(chǔ)系統(tǒng)的選擇非常重要,幾乎決定了后期整個(gè)系統(tǒng)性能的關(guān)鍵因素。在IC

設(shè)計(jì)行業(yè)中,有幾個(gè)重要因素需要考慮:實(shí)時(shí)壓縮、高速SSD做緩存、重復(fù)數(shù)據(jù)刪除、snapshot、NFS v4 ACL、Backup。

對(duì)于以上特點(diǎn),我這里簡(jiǎn)要介紹需要的原因:

實(shí)時(shí)壓縮,可以很大程度減少存儲(chǔ)容量的使用。在IC設(shè)計(jì)中,經(jīng)??梢宰龅?倍的壓縮率,即容量提升了一倍。同時(shí),還提升了IO能力,因?yàn)閴嚎s后的數(shù)據(jù)更小,有利于讀寫(xiě)。現(xiàn)代的CPU都很快,壓縮不會(huì)帶來(lái)太大的負(fù)擔(dān)。所以,可以放心使用。

高速SSD緩存,全閃存太貴,而采用SSD做緩存的方案,可以很大程度上將熱點(diǎn)數(shù)據(jù)放在高速SSD上,遇到調(diào)用的時(shí)候不再去磁盤(pán)中尋找,這樣可以很大程度上提供IOPS,是一種利用較低成本提供了較大效益的方案。

重復(fù)數(shù)據(jù)刪除,重復(fù)數(shù)據(jù)刪除功能可以在很大程度上減少磁盤(pán)空間的使用量,特別是針對(duì)某些應(yīng)用,比如虛擬化及多版本開(kāi)發(fā)環(huán)境。

Snapshot,這里的snapshot一定要跟SAN盤(pán)陣的區(qū)分開(kāi)來(lái),也跟LVM的不一樣?;趎etapp和zfs的snapshot功能,允許用戶自我管理不小心刪除的數(shù)據(jù),隨時(shí)自己去恢復(fù),減少管理員的麻煩。提高了用戶的滿意度。

NFSv4 ACL,由于其提供了很多高級(jí)特性,可以實(shí)現(xiàn)項(xiàng)目的管理方式,讓項(xiàng)目經(jīng)理去管理目錄的權(quán)限,將IT從權(quán)限管理的繁瑣中解脫,同時(shí),給項(xiàng)目經(jīng)理足夠大的自由度,讓他們更快捷的實(shí)現(xiàn)自己的要求。

備份,是一個(gè)重要的話題,數(shù)據(jù)備份可能永遠(yuǎn)都是在做后備,但是一旦需要恢復(fù),備份就顯得格外重要。目前主要考慮采用D2D的備份+磁帶歸檔的方式實(shí)現(xiàn)長(zhǎng)期的數(shù)據(jù)備份需求。

由于我們的環(huán)境主要是NAS存儲(chǔ)的NFS共享,滿足以上要求的主要有netapp的存儲(chǔ)及基于zfs的存儲(chǔ)系統(tǒng),如oracle ZS4nexentastor等。

目前在國(guó)內(nèi)做支持最好的依然是netapp存儲(chǔ),但是netapp的銷售策略要小心,存在銷售控制價(jià)格的行為特別嚴(yán)重,甚至可以做到價(jià)格差異30%-50%的情況。因?yàn)槭菂^(qū)域控價(jià),你如果選定了必須用它,幾乎無(wú)任何的議價(jià)能力,被迫接受高價(jià)。在大廠商面前,用戶很弱勢(shì)。唯一的反擊就是絕對(duì)不要選擇某一家廠商的產(chǎn)品作為采購(gòu)要求。

NFSv3/v4及AFS GPFS文件系統(tǒng)的優(yōu)缺點(diǎn)

NFS v3是過(guò)去和當(dāng)前依然在大量使用的協(xié)議,幾乎所有的系統(tǒng)都能支持,使

用和配置也很簡(jiǎn)單。但是,nfsv3缺乏一些特性,如安全性不足,缺乏更嚴(yán)格的acl支持,缺乏并行支持等。所以,后來(lái)開(kāi)發(fā)了nfs v4,提供了更加先進(jìn)的一些功能。我們主要會(huì)使用到nfs v4的功能就是nfs v4 acl支持。目前很多測(cè)試環(huán)境下,nfs v3的性能依然比nfs v4更快。所以,除了需要設(shè)置acl的時(shí)候,否則其他地方應(yīng)該掛載nfs v3為主。

AFS文件系統(tǒng)是另外一種主要的網(wǎng)絡(luò)文件系統(tǒng),其提供了很多優(yōu)秀的功能,比如本地cache,acl,quota,分布式等。但是,國(guó)內(nèi)很少用到,商業(yè)化支持也不足,所以不建議使用。

GPFS是IBM開(kāi)發(fā)的商業(yè)產(chǎn)品,可以實(shí)現(xiàn)分布式,如果不考慮費(fèi)用問(wèn)題,可以考慮在某些關(guān)鍵的應(yīng)用中采用。

--------------------------

網(wǎng)友提問(wèn):

IC行業(yè)中,存儲(chǔ)對(duì)IOPS的要求是非常高的(實(shí)際生產(chǎn)環(huán)境中的發(fā)現(xiàn)),對(duì)存儲(chǔ)容量要求相同的情況下,如果獲得更高的IOPS,除了存儲(chǔ)控制器的IOPS限制外,還要考慮單個(gè)硬盤(pán)的容量問(wèn)題。一般情況下單盤(pán)更小容量,更多的盤(pán),可以帶來(lái)更高的IOPS。另外可以提一下存儲(chǔ)的空間利用率,往往存儲(chǔ)的利用率超過(guò)85%(有說(shuō)90%),讀寫(xiě)效率將大幅下降。實(shí)際生產(chǎn)環(huán)境中,磁帶歸檔是否是一個(gè)效率(備份和恢復(fù))很低的辦法?

----------------------------------------

非常好的問(wèn)題,你肯定是業(yè)內(nèi)人士。-------------------------------------------------------------------------------------回復(fù)如下:要想獲得高的IOPS,機(jī)械硬盤(pán)已經(jīng)無(wú)法應(yīng)對(duì)了。以前的做法一般是raid卡帶cache(write back)+ 15000RPM的硬盤(pán)。cache的好處是寫(xiě)入小文件加速,因?yàn)橹苯臃祷?,但是讀取依然會(huì)很慢?,F(xiàn)在大量采用的10000轉(zhuǎn) 2.5 SAS盤(pán),已經(jīng)算是不錯(cuò)的了,但是IOPS依然不高。唯一能解決IOPS的只有SSD,nvme的SSD會(huì)更快。存儲(chǔ)超過(guò)85% 90%,讀寫(xiě)效率大量下降的根本原因是寫(xiě)入算法的改變。以zfs文件系統(tǒng)舉例,zfs文件系統(tǒng)在80%之前,是write anywhere,就是只要有空的地方就寫(xiě)。80%以后,馬上改變算法,需要找一個(gè)比較合適的位置寫(xiě),顯然速度一下就下降了。netapp的WALF也有一樣的問(wèn)題。我寫(xiě)的是磁帶歸檔,而不是主要用于備份。磁帶的缺點(diǎn)很多,比如速度慢,無(wú)法online方式查詢恢復(fù)。最大的問(wèn)題是:你需要找回?cái)?shù)據(jù)的時(shí)候,可能根本讀不出來(lái)!所以,它只適合歸檔,因?yàn)橐槐P(pán)一盤(pán)磁帶,拿出去放銀行保險(xiǎn)柜,依然是最方便的做法。當(dāng)然,如果你可以做到磁盤(pán)方式歸檔,更好。目前建議的是D2D2T(即磁盤(pán)到磁盤(pán)備份,然后從備份磁盤(pán)歸檔到磁帶)。因?yàn)槿W存太貴,建議大家設(shè)計(jì)系統(tǒng)的時(shí)候,以project的方式分流。將iops要求很高的項(xiàng)目才放入SSD,而普通項(xiàng)目,依然放入大容量的7200RPM或者10000RPM的磁盤(pán)系統(tǒng)。備份系統(tǒng)則毫無(wú)疑問(wèn),采用7200RPM 3.5寸的大容量磁盤(pán)。

--------------------------

接入及登陸環(huán)境

1. VPN是否可以?VPN至少要做到雙因素驗(yàn)證

2.如何避免設(shè)計(jì)人員copy&paste。

3.登陸軟件的選擇:VNC Xenapp NX Go-global EoD等

4.桌面系統(tǒng):GNOME KDE ICEWM FVWM XFCE

如何考慮移動(dòng)VPN接入

提供移動(dòng)VPN接入就相當(dāng)于在內(nèi)部網(wǎng)絡(luò)開(kāi)放了一個(gè)接口,讓外部的用戶可以

隨時(shí)隨地訪問(wèn)內(nèi)部網(wǎng)絡(luò)。所以,首先要評(píng)估是否可以做到足夠的安全級(jí)別,讓非法的用戶無(wú)法通過(guò)竊取賬號(hào)等方式登錄你的網(wǎng)絡(luò)。

VPN接入,需要至少做到雙因素的認(rèn)證。主流的做法包括RSA SecureID這種基于時(shí)間的雙因素或者USB Key基于證書(shū)的雙因素。當(dāng)前,還需要考慮VPN支持移動(dòng)客戶端和MAC OSX系統(tǒng)。因?yàn)?,這兩方面的用戶越來(lái)越多了,有更多的接入需求。

如何避免設(shè)計(jì)人員copy&Paste數(shù)據(jù)

IC設(shè)計(jì)中,一般都在服務(wù)器完成,但是也需要用戶從終端登錄服務(wù)器。如果用戶可以將服務(wù)器的文本copy到本地終端,那么就存在帶走的可能性。我對(duì)于數(shù)據(jù)安全的主要觀點(diǎn)是:數(shù)據(jù)需要位于服務(wù)器上,用戶無(wú)法物理接觸的數(shù)據(jù)才是安全的。數(shù)據(jù)分級(jí),防止一個(gè)用戶擁有所有數(shù)據(jù)的權(quán)限,可以防止被某人獲得全部數(shù)據(jù)。帶出數(shù)據(jù)需要審核及歸檔,這樣做到有據(jù)可查。

目前的登陸軟件,很多可以禁止用戶剪切板的數(shù)據(jù)copy到用戶端。同時(shí),采用防火墻,防止用戶直接從內(nèi)部服務(wù)器主動(dòng)連接客戶端獲取數(shù)據(jù)。

登陸軟件的選擇

目前小公司普遍采用的登錄軟件有Xmanager/Exceed/VNC/FreeNX,而大公司普遍采用的有Xenapp/NX/EoD/Go-Global等。對(duì)于以上軟件,我都有一定程度的接觸,所以在此做一個(gè)簡(jiǎn)單評(píng)價(jià)。

Xmanger和Exceed,屬于利用X協(xié)議,在windows平臺(tái)實(shí)現(xiàn)的X Server,優(yōu)點(diǎn)是使用方便,使用的人很多,性能在局域網(wǎng)也不錯(cuò)。缺點(diǎn)就是,一旦用戶端跟服務(wù)器之間的網(wǎng)絡(luò)意外終端,或者客戶端關(guān)機(jī),所有正在服務(wù)器上運(yùn)行的job丟失。

VNC免費(fèi)版使用非常廣泛,其實(shí)現(xiàn)了網(wǎng)絡(luò)斷開(kāi)也不會(huì)丟失正在運(yùn)行的工作。但是免費(fèi)版限制很多,比如需要用戶設(shè)置專用的vnc登陸密碼,無(wú)法禁止用戶Copy&Paste服務(wù)器數(shù)據(jù)到本地。另外,VNC協(xié)議實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)帶寬消耗很大,不適合于WAN網(wǎng)絡(luò)連接。

FreeNX是基于No-Machine免費(fèi)開(kāi)源的library實(shí)現(xiàn)的免費(fèi)遠(yuǎn)程登陸軟件。目前有另外一個(gè)如日中天的類似軟件,叫做X2Go。FreeNX基于SSH協(xié)議,實(shí)現(xiàn)了壓縮傳輸?shù)裙δ埽时萔NC提高很多。但是其基于SSH協(xié)議實(shí)現(xiàn),給系統(tǒng)安全留下了隱患。

VNC Enterprise,實(shí)現(xiàn)了更高級(jí)的功能,包括驗(yàn)證集成了系統(tǒng)驗(yàn)證,不需要額外設(shè)置vnc登陸密碼,也可以禁用剪切板等高級(jí)功能,還可以通過(guò)policy設(shè)置。對(duì)于小型設(shè)計(jì)環(huán)節(jié),目前是一個(gè)非常值得考慮的選擇。

Xenapp是citrix基于ICA協(xié)議實(shí)現(xiàn)的登陸方式,最新的基于Unix的是2008年前后發(fā)布的Unix 4.0 FP2版本。Citrix的中心已經(jīng)轉(zhuǎn)向了windows,及時(shí)是最新發(fā)布xendesktop linux版本,也并沒(méi)認(rèn)真去做,集成很困難。不過(guò),當(dāng)年Broadcom是基于solaris 10+ citrix for unix fp2實(shí)現(xiàn)的登陸環(huán)境,不知道五年過(guò)去了,是否已經(jīng)改變。

Nomachine公司發(fā)布的NX商業(yè)版本可以支持更多功能,國(guó)內(nèi)有幾個(gè)公司在使用,具體功能不了解,比如如何實(shí)現(xiàn)及時(shí)采用SSH協(xié)議,也不擔(dān)心被設(shè)置轉(zhuǎn)發(fā)隧道,從而解決安全問(wèn)題的。

EoD的全稱是Exceed On Demand。軟件費(fèi)用昂貴,國(guó)內(nèi)使用的人很少,目前我知道的是IBM基于EoD實(shí)現(xiàn)登陸。EoD軟件可以禁用Copy&Paste,同時(shí)gateway模式可以讓用戶無(wú)法直接在EoD服務(wù)器上工作,讓EoD服務(wù)器實(shí)現(xiàn)gateway轉(zhuǎn)發(fā)即可。EoD可實(shí)現(xiàn)share桌面,對(duì)于遠(yuǎn)程會(huì)議共享桌面和需要遠(yuǎn)程協(xié)助debug的時(shí)候非常有用。推薦不差錢的大公司選擇EoD,是我見(jiàn)過(guò)最佳的登陸軟件了。

Go-Global是另外一個(gè)登陸軟件,分為for windows和for unix版本。實(shí)現(xiàn)上比VNC要快,國(guó)內(nèi)也有商業(yè)支持,也比較成熟和穩(wěn)定。不過(guò)其客戶端目前只支持windows系統(tǒng),這點(diǎn)需要注意。如果是中小型公司,可以考慮采用。

桌面系統(tǒng)的選擇

我一直反對(duì)使用重型桌面環(huán)境,比如Gnome和KDE,畢竟幾百人的公司,登陸服務(wù)器就那么兩臺(tái),一旦使用GNOME和KDE,整個(gè)系統(tǒng)負(fù)載是非常高的。而我們的設(shè)計(jì)工程師,根本不需要那么復(fù)雜的桌面環(huán)境,最簡(jiǎn)單的才是最高效的。

在我的工作中,我推薦過(guò)使用fvwm,自定義過(guò)一個(gè)非常簡(jiǎn)潔的桌面環(huán)境,但是由于定制要求很高,用戶使用起來(lái)感覺(jué)不是很好。不過(guò)fvwm可定制性很高,可實(shí)現(xiàn)非常棒的一些效果。

后來(lái)我選擇使用過(guò)XFCE,另外一個(gè)比較其GNOME和KDE較輕量級(jí)的桌面。在2008年-2013年,我都認(rèn)為這是一個(gè)不錯(cuò)的桌面環(huán)境,在很多地方推薦使用過(guò)。但是,xfce的安裝包很多,最好通過(guò)yum自動(dòng)安裝。我們也逐漸在考慮一個(gè)更加合適的窗口管理器。

2015年,一個(gè)新的同事推薦了icewm。我認(rèn)為目前這個(gè)是最合適IC設(shè)計(jì)公司工程師的窗口管理器了。

可以實(shí)現(xiàn)多個(gè)桌面,添加需要的一些xterm和gnome-terminal firefox等工具。

推薦:大公司首選icewm,其次可以考慮xfce。小公司建議多考慮xfce。

設(shè)計(jì)Job的管理(SGE/LSF)

1. LSF

2. SGE

3. Openlava

LSF

LSF是目前主要采用的任務(wù)管理軟件,目前歸屬于IBM,最新的版本是9。幾乎所有大的IC設(shè)計(jì)公司都采用的是LSF的軟件來(lái)做負(fù)載均衡。不過(guò),這個(gè)軟件是商業(yè)軟件,授權(quán)費(fèi)比較貴,大約要1-2萬(wàn)一臺(tái)服務(wù)器(以core計(jì)費(fèi))。

下圖為lsload命令所顯示的結(jié)果,大家可以看到各臺(tái)服務(wù)器的負(fù)載,CPU利用率,剩余內(nèi)存等信息。

LSF會(huì)自動(dòng)去調(diào)度,找出最佳的后臺(tái)服務(wù)器,盡量做到負(fù)載均衡。所有的后臺(tái)服務(wù)器,用戶都不能直接登錄去run,這是由系統(tǒng)和網(wǎng)絡(luò)結(jié)構(gòu)限制的。但是,對(duì)于用戶,要讓所有的操作做到最簡(jiǎn)單,用戶不需要去了解復(fù)雜的后臺(tái)設(shè)計(jì)。

這里介紹一下LSF的一些使用

提交job

$bsub my_jobJob <1234> is submitted to default queue 上面輸出中1234是分配給my_job的ID, normal即系統(tǒng)默認(rèn)queue

提交并行job

$ bsub -n 8 myjobmyjob以并行JOB的方式執(zhí)行,且需要8個(gè)cpu cores。比如在腳本中,hspice使用了-mt 8的情況下。用上面的命令會(huì)讓lsf幫你找到空閑的8個(gè)cpu core之后才提交給具體執(zhí)行的主機(jī)。

查看當(dāng)前自己或者其他人的job

$bjobs(只查詢自己的) $bjobs –u all(所有人的)

然后可以得到j(luò)obID

$ bjobs -u allJOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAMESUBMIT_TIME1004 user1 RUN short hostA hostA job0 Dec 16 09:231235 user3 PEND priority hostM job1 Dec 11 13:551234 user2 SSUSP normal hostD hostM job3 Dec 11 10:091250 user1 PEND short hostA job4 Dec11 13:59

Kill掉自己的某個(gè)job

$ bkill 1234Job <1234> is being terminated

掛起和恢復(fù)job

$ bstop 3421Job <3421> is being stopped

$ bresume 3421Job <3421> is being resumed

查看job的輸出

$ bpeek 1234<< output from stdout >>

查看服務(wù)器負(fù)載

$lsload

查看服務(wù)器狀態(tài)

$bhosts

查看job的詳細(xì)信息

$bjobs –l 1234

SGE

目前SGE是免費(fèi)且開(kāi)源的,國(guó)內(nèi)也有不少公司在使用。但是使用起來(lái),感覺(jué)差異很大,可能是習(xí)慣問(wèn)題,我始終無(wú)法適應(yīng)SGE。我也不推薦使用sge。

Openlava

前面介紹了LSF是商業(yè)軟件,授權(quán)費(fèi)比較昂貴。這里推薦一個(gè)兼容LSF命令的軟件,Openlava,其基于LSF 4.2發(fā)布的開(kāi)源版本,目前最新的是3.3,由Teraproc公司主要開(kāi)發(fā)和支持。推薦國(guó)內(nèi)的大公司采用,只需要少量的支持費(fèi)即可。目前主要基于x86的linux環(huán)境,如果你有其他異構(gòu)系統(tǒng),需要聯(lián)系廠家獲取是否可以支持。如果大家對(duì)于采用openlava感興趣,可以聯(lián)系我,我可以協(xié)助測(cè)試。前面LSF的示例完全可以通過(guò)openlava實(shí)現(xiàn)。

設(shè)計(jì)Job的管理(SGE/LSF)

1. LSF

2. SGE

3. Openlava

LSF

LSF是目前主要采用的任務(wù)管理軟件,目前歸屬于IBM,最新的版本是9。幾乎所有大的IC設(shè)計(jì)公司都采用的是LSF的軟件來(lái)做負(fù)載均衡。不過(guò),這個(gè)軟件是商業(yè)軟件,授權(quán)費(fèi)比較貴,大約要1-2萬(wàn)一臺(tái)服務(wù)器(以core計(jì)費(fèi))。

下圖為lsload命令所顯示的結(jié)果,大家可以看到各臺(tái)服務(wù)器的負(fù)載,CPU利用率,剩余內(nèi)存等信息。

LSF會(huì)自動(dòng)去調(diào)度,找出最佳的后臺(tái)服務(wù)器,盡量做到負(fù)載均衡。所有的后臺(tái)服務(wù)器,用戶都不能直接登錄去run,這是由系統(tǒng)和網(wǎng)絡(luò)結(jié)構(gòu)限制的。但是,對(duì)于用戶,要讓所有的操作做到最簡(jiǎn)單,用戶不需要去了解復(fù)雜的后臺(tái)設(shè)計(jì)。

這里介紹一下LSF的一些使用

提交job

$bsub my_jobJob <1234> is submitted to default queue 上面輸出中1234是分配給my_job的ID, normal即系統(tǒng)默認(rèn)queue

提交并行job

$ bsub -n 8 myjobmyjob以并行JOB的方式執(zhí)行,且需要8個(gè)cpu cores。比如在腳本中,hspice使用了-mt 8的情況下。用上面的命令會(huì)讓lsf幫你找到空閑的8個(gè)cpu core之后才提交給具體執(zhí)行的主機(jī)。

查看當(dāng)前自己或者其他人的job

$bjobs(只查詢自己的) $bjobs –u all(所有人的)

然后可以得到j(luò)obID

$ bjobs -u allJOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAMESUBMIT_TIME1004 user1 RUN short hostA hostA job0 Dec 16 09:231235 user3 PEND priority hostM job1 Dec 11 13:551234 user2 SSUSP normal hostD hostM job3 Dec 11 10:091250 user1 PEND short hostA job4 Dec11 13:59

Kill掉自己的某個(gè)job

$ bkill 1234Job <1234> is being terminated

掛起和恢復(fù)job

$ bstop 3421Job <3421> is being stopped

$ bresume 3421Job <3421> is being resumed

查看job的輸出

$ bpeek 1234<< output from stdout >>

查看服務(wù)器負(fù)載

$lsload

查看服務(wù)器狀態(tài)

$bhosts

查看job的詳細(xì)信息

$bjobs –l 1234

SGE

目前SGE是免費(fèi)且開(kāi)源的,國(guó)內(nèi)也有不少公司在使用。但是使用起來(lái),感覺(jué)差異很大,可能是習(xí)慣問(wèn)題,我始終無(wú)法適應(yīng)SGE。我也不推薦使用sge。

Openlava

前面介紹了LSF是商業(yè)軟件,授權(quán)費(fèi)比較昂貴。這里推薦一個(gè)兼容LSF命令的軟件,Openlava,其基于LSF 4.2發(fā)布的開(kāi)源版本,目前最新的是3.3,由Teraproc公司主要開(kāi)發(fā)和支持。推薦國(guó)內(nèi)的大公司采用,只需要少量的支持費(fèi)即可。目前主要基于x86的linux環(huán)境,如果你有其他異構(gòu)系統(tǒng),需要聯(lián)系廠家獲取是否可以支持。如果大家對(duì)于采用openlava感興趣,可以聯(lián)系我,我可以協(xié)助測(cè)試。前面LSF的示例完全可以通過(guò)openlava實(shí)現(xiàn)。

數(shù)據(jù)管理

1.上傳數(shù)據(jù)考慮因素

2.下載數(shù)據(jù)如何審核及自動(dòng)備份歸檔數(shù)據(jù)

3.?dāng)?shù)據(jù)訪問(wèn)的Audit

4.數(shù)據(jù)分級(jí)及權(quán)限控制

數(shù)據(jù)上傳

在一個(gè)公司,內(nèi)外網(wǎng)隔離的情況下,必然有大量的數(shù)據(jù)上傳需求。如何實(shí)現(xiàn)

上傳呢?這是一個(gè)大問(wèn)題。我們?cè)O(shè)計(jì)了一個(gè)數(shù)據(jù)中轉(zhuǎn)站,允許公司內(nèi)的用戶登錄,將數(shù)據(jù)放入home目錄下,然后每隔一個(gè)小時(shí),內(nèi)網(wǎng)服務(wù)器通過(guò)rsync去獲取數(shù)據(jù),并sync到內(nèi)網(wǎng)。

這里主要的問(wèn)題是:防火墻一定要嚴(yán)格過(guò)濾,只允許內(nèi)網(wǎng)服務(wù)器sync中轉(zhuǎn)站的某個(gè)模塊數(shù)據(jù)。

Upload.sh

#!/bin/bash

ProcNumber=`ps aux |grep rsync|grep -v grep|wc -l`

if [ $ProcNumber -eq 0 ];then

/usr/bin/rsync -acvz --delete --password-file=/root/rsync.passroot@10.x.x.100::home/exchange/upload/ >> /root/rsync.log

Fi

下載數(shù)據(jù)如何審核及自動(dòng)歸檔

對(duì)于下載數(shù)據(jù),我們要求進(jìn)行人工任何。分多個(gè)層級(jí),每一步需要審核人寫(xiě)審核意見(jiàn),批準(zhǔn)還是拒絕。任何一步拒絕,都將無(wú)法完成。

主要實(shí)現(xiàn)是:用戶準(zhǔn)備數(shù)據(jù),發(fā)郵件給ithelp,然后ithelp會(huì)根據(jù)情況,分配審核數(shù)據(jù)的人員,其審核完成后,將數(shù)據(jù)放在第一級(jí)審核的目錄dirA,然后由第二級(jí)審核人進(jìn)行二次審核,完畢后將數(shù)據(jù)放入預(yù)備下載目錄dirB,最后程序自動(dòng)先備份數(shù)據(jù),然后sync到數(shù)據(jù)中轉(zhuǎn)站,并刪除本地?cái)?shù)據(jù)。DirA和dirB通過(guò)ACL設(shè)置了用戶的訪問(wèn)權(quán)限,只有審核人員可以進(jìn)入。

以上步驟,還可以插入數(shù)據(jù)檢查及核實(shí)的程序,比如查看是否下載了源代碼數(shù)據(jù)。

數(shù)據(jù)訪問(wèn)Audit實(shí)現(xiàn)

使用audit實(shí)現(xiàn)任何人訪問(wèn)源代碼都將被記錄,通過(guò)程序每天統(tǒng)計(jì)一次用戶的訪問(wèn)記錄,排序統(tǒng)計(jì)后自動(dòng)發(fā)送郵件給相關(guān)的人員。

目前測(cè)試環(huán)境實(shí)現(xiàn)了5萬(wàn)個(gè)源代碼的控制,但是只能在本地文件系統(tǒng)實(shí)現(xiàn)。否則會(huì)帶來(lái)性能的問(wèn)題。這樣可以實(shí)現(xiàn)某個(gè)人一直查看的記錄追蹤,以及一段時(shí)間內(nèi)比如離職前一周或者某一天將所有允許查看的文件都copy到其他目錄的行為,可以當(dāng)天晚上發(fā)送郵件給其安全部門(mén)的人員。

[root@dcs004 audit]# cat audit.rules |wc -l

51573

[root@dcs004 audit]# cat audit.rules|more

# This file contains the auditctl rulesthat are loaded

-w/test/test/linux-4.3/.get_maintainer.ignore -p r-k kernelfiles

-w /test/test/linux-4.3/security/inode.c -pr-k kernelfiles

-w /test/test/linux-4.3/security/Makefile-p r-k kernelfiles

-w /test/test/linux-4.3/security/selinux/Makefile-p r-k kernelfiles

-w/test/test/linux-4.3/security/selinux/netlink.c -p r-k kernelfiles

-w/test/test/linux-4.3/security/selinux/.gitignore -p r-k kernelfiles

-w /test/test/linux-4.3/security/selinux/hooks.c-p r-k kernelfiles

-w/test/test/linux-4.3/security/selinux/Kconfig -p r-k kernelfiles

-w/test/test/linux-4.3/security/selinux/selinuxfs.c -p r-k kernelfiles

-w/test/test/linux-4.3/security/selinux/nlmsgtab.c -p r-k kernelfiles

-w /test/test/linux-4.3/security/selinux/netnode.c-p r-k kernelfiles

-w/test/test/linux-4.3/security/selinux/netif.c -p r-k kernelfiles

-w/test/test/linux-4.3/security/selinux/netport.c -p r-k kernelfiles

-w/test/test/linux-4.3/security/selinux/netlabel.c -p r-k kernelfiles

-w/test/test/linux-4.3/security/selinux/exports.c -p r-k kernelfiles

-w/test/test/linux-4.3/security/selinux/xfrm.c -p r-k kernelfiles

Audit結(jié)果如下,通過(guò)分析處理后可以實(shí)現(xiàn)監(jiān)控的目的。

ype=PATH msg=audit(11/03/201510:43:13.610:198339) : item=0name=test/linux-4.3/drivers/infiniband/hw/cxgb4/t4fw_ri_api.hinode=73185587 dev=00:14 mode=file,664 ouid=root ogid=root rdev=00:00nametype=NORMAL

type=CWD msg=audit(11/03/201510:43:13.610:198339) :cwd=/tools

type=SYSCALL msg=audit(11/03/201510:43:13.610:198339) : arch=x86_64 syscall=open success=yes exit=3 a0=0x181ede0a1=O_RDONLY|O_NOFOLLOW a2=0x0 a3=0x666e692f73726576 items=1 ppid=39759pid=40352 auid=rootuid=rootgid=root euid=rootsuid=root fsuid=root egid=root sgid=root fsgid=root tty=pts2 ses=13728 comm=mvexe=/bin/mvkey=kernelfiles

----

type=PATH msg=audit(11/03/201510:43:13.617:198340) : item=0 name=(null) inode=73185587 dev=00:14mode=file,664 ouid=root ogid=root rdev=00:00 nametype=NORMAL

type=SYSCALL msg=audit(11/03/201510:43:13.617:198340) : arch=x86_64 syscall=flistxattr success=noexit=-95(Operation not supported) a0=0x3 a1=0x0 a2=0x0 a3=0x0 items=1ppid=39759 pid=40352 auid=root uid=root gid=root euid=root suid=root fsuid=rootegid=root sgid=root fsgid=root tty=pts2 ses=13728 comm=mv exe=/bin/mvkey=kernelfiles

數(shù)據(jù)分級(jí)及權(quán)限控制

主要是通過(guò)NFS ACLv4來(lái)實(shí)現(xiàn)項(xiàng)目的權(quán)限控制,通過(guò)將特定人員加入訪問(wèn)許

可,項(xiàng)目經(jīng)理可以自我控制任何公司的人員是否具有訪問(wèn)權(quán)限。但是,數(shù)據(jù)的分級(jí),需要數(shù)據(jù)擁有人員去判斷,IT只是提供一種手段,并不具有分級(jí)的能力。

IT提供合適的手段,讓用戶在系統(tǒng)內(nèi)部,知道如何申請(qǐng)和如何控制權(quán)限即可。

以下是通過(guò)nfs v4設(shè)置權(quán)限示例:

$nfs4_setfacl -e/proj/xuesen

## Editing NFSv4 ACL for directory:/proj/xuesen

A::OWNER@:rwaDxtTnNcCy

A:g:GROUP@:tncy

A::EVERYONE@:tncy

A::projectmanagerA@powercore.com.cn:rwaDxtTnNcCy

添加下面行即可

A::username@powercore.com.cn:rxtncy ###read only###

A::username@powercore.com.cn:rwaDxtTnNcy ###rwx###

這里的projectmanager是由管理員設(shè)置的某個(gè)項(xiàng)目經(jīng)理的賬號(hào),username是你期望設(shè)置的用戶名

版本管理

1. CVS

2. Subversion

3. Clisoft SOS

4. ICManage

5. Git

CVS用于代碼的管理

CVS作為unix系統(tǒng)下非常經(jīng)典的版本管理系統(tǒng),適合于代碼的簡(jiǎn)單管理。對(duì)權(quán)限控制很差,基本上只能按照group的方式來(lái)控制誰(shuí)可以check out,check in.CVS沒(méi)有二進(jìn)制管理能力,無(wú)法對(duì)各種非文本的文檔,比如word進(jìn)行管理,只能用于代碼。

CVS是一個(gè)C/S模式的版本控制系統(tǒng),用于在軟件開(kāi)發(fā)過(guò)程中記錄文件版本,協(xié)調(diào)開(kāi)發(fā)人員保證文件同步,從而保證項(xiàng)目正確的進(jìn)行并行開(kāi)發(fā),并支持版本回滾、bug 跟蹤和補(bǔ)丁生成。使用CVS可以有效地對(duì)軟件開(kāi)發(fā)的源代碼和開(kāi)發(fā)文檔進(jìn)行統(tǒng)一的管理和組織。

主要功能如下:

同步的最新修改

文件的版本回溯

多人同時(shí)修改同一個(gè)文件產(chǎn)生的沖突

項(xiàng)目的分支開(kāi)發(fā)

文件權(quán)限控制

Redhat Enterprise默認(rèn)安裝有cvs,如果沒(méi)有,請(qǐng)安裝cvs的rpm包。

CVS的基本使用:

創(chuàng)建一個(gè)倉(cāng)庫(kù)

#groupadd cvs

#useradd –d /data/cvsroot -gcvs cvs

#cvs –d /data/cvsroot init

配置環(huán)境

$vi ~/.cshrc

$setenv CVSROOT /data/cvsroot

項(xiàng)目的初始導(dǎo)入

進(jìn)入到你準(zhǔn)備到如的初始源代碼目錄

$cvs import -m "somecomments" project_name vendor_tag release_tag

執(zhí)行后:會(huì)將所有源文件及目錄導(dǎo)入到/data/cvsroot/project_name目錄下

vender_tag:開(kāi)發(fā)商標(biāo)記

release_tag:版本發(fā)布標(biāo)記

這個(gè)project可以給某個(gè)unix group授權(quán)chmod 775 root:asic/data/cvsroot/project_name,這樣所有asic group的人都可以check in和check out了。

項(xiàng)目的CheckOut

$cvs co project_name

同步到最新

$cvs update

修改文件后CheckIn

$ cvs ci -m "somecomments" file_name

添加新文件

創(chuàng)建好新文件后,比如:touch newfile

cvs add newfile

對(duì)于圖片,Word文檔等非純文本的項(xiàng)目,需要使用cvs add –kb 按二進(jìn)制文件方式導(dǎo)入(k表示擴(kuò)展選項(xiàng),b表示binary),否則有可能出現(xiàn)文件被破壞的情況

比如:

cvs add -kb newfile.gif

cvs add -kb readme.doc

查看修改歷史

cvs log file_name

cvs history file_name

其實(shí)CVS還有一種pserver的方式,可以使用客戶端來(lái)進(jìn)行管理。這樣,即時(shí)/data/cvsroot沒(méi)有被nfs 共享出來(lái)在其他服務(wù)器上也可以通過(guò)cvs進(jìn)行版本控制。

分兩步建立:

首先,建立xinetd啟動(dòng)服務(wù)

cat >>/etc/xinetd.d/cvspserver << "EOF"

service cvspserver

{

port= 2401

socket_type = stream

protocol= tcp

wait= no

user= root

passenv= PATH

server= /usr/bin/cvs

server_args = -f --allow-root=/data/cvsrootpserver

}

EOF

其次,客戶端設(shè)置.cshrc (csh forexample)

$vi ~/.cshrc

setenv CVSROOT:pserver:username@192.168.x.x:/data/cvsroot

這里的username請(qǐng)換成自己的,后面的ip地址和路徑,請(qǐng)換成符合實(shí)際服務(wù)器的路徑。

Subversion

以下文檔是很早的時(shí)候?qū)懙?,?a href="http://www.ttokpm.com/article/bbs/" target="_blank">最新版本可能存在一定差異,請(qǐng)注意。

subversion簡(jiǎn)介

多年來(lái),版本控制系統(tǒng)一直都是CVS(Concurrent Versions System)的天下。CVS作為基

于RCS上建立,可以實(shí)現(xiàn)多用戶協(xié)同工作的系統(tǒng),可以記錄文件的修改信息。這對(duì)于開(kāi)發(fā)人員是非常有用的。

然而,CVS經(jīng)過(guò)這么多年,也逐漸顯示出一些不足,這個(gè)時(shí)候出現(xiàn)了一些商業(yè)的版本控制軟件,比如Rational的ClearCase就是一個(gè)功能強(qiáng)大的商業(yè)軟件,但是其價(jià)格也是非常昂貴的。

Subversion就是一種設(shè)計(jì)來(lái)解決CVS的局限性的軟件。從2000年開(kāi)始,Subversion開(kāi)始開(kāi)發(fā),2001年8月開(kāi)始用Subversion來(lái)管理Subversion的開(kāi)發(fā)工作,到目前位置,subversion已經(jīng)發(fā)展到了1.9.3版。

Subverion的主要特點(diǎn)有:

a.保留大多數(shù)CVS 特性,很多命令的選項(xiàng)基本通用

b.目錄、重命名和文件meta-data都已經(jīng)版本化,以前的CVS只能對(duì)文件版本化。

c.不可分隔的原子化提交,版本的變化是每次提交所有的文件版本都變化。

d.可以選擇Apache作為網(wǎng)絡(luò)服務(wù)器,集成于現(xiàn)有Apache控制的權(quán)限管理等。

e.分支和標(biāo)簽是代價(jià)低廉(固定不變的)的操作

f.本地化的客戶端/服務(wù)器,分層的庫(kù)設(shè)計(jì)

g.消耗和修改部分的大小成比例,而不是數(shù)據(jù)的大小

h.Unix下的鏈接也可以實(shí)現(xiàn)版本化控制了

i.更加有效的處理二進(jìn)制文件

j.更加人性化的命令輸出

k.本地化提示信息。

Subversion的安裝

Subversion是建立在一個(gè)可移植的APR(Apacheportable Runtime)上,所以Subversion可以建立在Apache的支持上,但是不僅限于必須使用Apache。Subversion可以做為Apache 2.0的一個(gè)模塊,以WebDAV/DeltaV協(xié)議運(yùn)行,也可以采用其自帶的svnserver小型服務(wù)器運(yùn)行。我們這里將采用Apache下WebDAV/DeltaV方式運(yùn)行,所以需要檢查Apache2.0是否已經(jīng)安裝好。

# yum install subversion

RHEL6默認(rèn)安裝的是1.6.11版本的subversion

Subversion和CVS的比較

1.不同的修訂版本號(hào)。CVS將每個(gè)修改文件都賦予一個(gè)版本號(hào),因此在CVS中,所有的文件版本號(hào)是不同的。

2.Subversion將目錄版本化了。Subversion也開(kāi)始跟蹤目錄的結(jié)構(gòu),任何對(duì)目錄的svn操作都將會(huì)被記錄,但是任何操作都必須提交后才生效。

3.離線工作更加方便。Subversion的工作原始副本在本地也有保留,任何對(duì)本地文件的修改,不需要連接到服務(wù)器去,就可以對(duì)比知道自己做了哪些修改。并且,提交修改的時(shí)候Subversion只將差異部分提交給服務(wù)器。

4.二進(jìn)制文件和文本文件。CVS對(duì)二進(jìn)制文件的版本化做的非常差,對(duì)于每次修改的二進(jìn)制文件,CVS都會(huì)將更新的副本儲(chǔ)存下來(lái),大量占用了空間。而Subversion就不管是二進(jìn)制文件還是文本文件,它都采用差異比較算法來(lái)表示更新的部分。CVS提交二進(jìn)制文件需要帶-kb標(biāo)記,subversion不需要任何標(biāo)記就可以識(shí)別二進(jìn)制文件。

實(shí)例介紹

目前有一家公司,有兩個(gè)不同的Group在進(jìn)行開(kāi)發(fā),也就是說(shuō),兩個(gè)項(xiàng)目組的成員是不允許獲得另外一個(gè)項(xiàng)目組的開(kāi)發(fā)代碼的。當(dāng)時(shí),為了某些模塊的協(xié)同工作,兩個(gè)項(xiàng)目組的Project Manager又不得不互相取得對(duì)方的代碼。

現(xiàn)在我們?cè)O(shè)計(jì)一個(gè)Subversion來(lái)做版本控制的系統(tǒng),假設(shè)一共有6個(gè)用戶,group1有user1,user2,manager1;group2有user3,user4,manager2.項(xiàng)目組分別為project1,project2.

由于我們的權(quán)限方面控制比較復(fù)雜,而適合權(quán)限復(fù)雜控制以及更好授權(quán)選擇的方式,我認(rèn)為以Apache+mod_dav_svn比采用獨(dú)立的svnserve更加方便。

建立Apache+mod_dav_svn的subversion版本控制

(1).安裝mod_dav_svn

#yum install mod_dav_svn

(2).基本的Apache配置

#cd /etc/httpd/conf

#vi httpd.conf

找到LoadModule部分,在LoadModule dav_module后面加入兩行

LoadModule dav_module modules/mod_dav.so

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

在配置文件中,需要告訴Apache在什么地方保存的Subversion版本庫(kù),Location就是告訴Apache在特定的URL以及子URL下需要的特殊處理。

在文件的最后部分建立區(qū)塊

DAV svn

SVNParentPath/data/svn

注意,任何Apache的web目錄下不能存在svn這樣的目錄,否則會(huì)導(dǎo)致Apache不知道怎么解析。

(3).配置認(rèn)證部分

前面的配置會(huì)讓所有能訪問(wèn)你web的人都可以獲得你的文件,并且可以提交他的修改。所以,為了安全,也為了一個(gè)很好的秩序,我們必須添加認(rèn)證。

DAV svn

SVNParentPath/data/svn

# access control policy

AuthzSVNAccessFile/etc/httpd/conf/access-control-file

# Only authenticatedusers may access the repository

Require valid-user

# Howto authenticate a user

AuthType Basic

AuthName"Subversion repository"

AuthUserFile/etc/httpd/conf/svn-auth-file

其中的svn-auth-file是做用戶名和密碼認(rèn)證的,這個(gè)文件采用htpasswd來(lái)生成和修改。

$htpasswd –cm /etc/httpd/conf/svn-auth-file user1(第一次使用需要帶-c)

New passwd:*****

Re-type new password:*****

Adding password for user user1

$htpasswd –m /etc/httpd/conf/svn-auth-file user2

New passwd:*****

Re-type new password:*****

Adding password for user user2

…..

access-control-file文件的格式:

[groups]

project1 = user1 user2 manager1

project2 = user3 user4 manager2

[project1:/]

@project1 = rw

manager2 =rw

[/project2:/]

@project2 = rw

manager1 = rw

[/project2:/secret]

manager1 =

以上配置允許user1,user2,manager1,manager2訪問(wèn)project1的所有文件,并且都可以讀寫(xiě);user3,user4,manager2訪問(wèn)project2的所有文件可以讀寫(xiě),但是manager1只允許讀寫(xiě)除了secret目錄下的所有其他文件。

建立過(guò)程及基本使用

(1).CreatRepository

基本語(yǔ)法:

$svnadmin create/data/svn/project1

#chmod 755 /data/svn

$svnadmin create /data/svn/project1

$svnadmin create /data/svn/project2

建立兩個(gè)項(xiàng)目組的庫(kù),我們采用了默認(rèn)的FSFS存儲(chǔ)方式。

$ls /data/svn/project1

conf/ dav/ db/ format hooks/ locks/README.txt

(2).導(dǎo)入文件到Repository

我們已經(jīng)建立了庫(kù),所以該我們導(dǎo)入我們的源文件到庫(kù)里邊的時(shí)候了。我們首先來(lái)準(zhǔn)備一下兩個(gè)項(xiàng)目組的文件,然后導(dǎo)入到庫(kù)里。

A.準(zhǔn)備需要導(dǎo)入的文件

$cd /home/svn

建立project1的文件目錄結(jié)構(gòu),源文件在/somepath/source1/下面,是project1的項(xiàng)目源代碼。

$mkdir source1

$mkdir source1/trunk

$mkdir source/branches

$mkdir source/tags

$ls source1

$mv /somepath/source1/*source1/trunk/

project2的建立方法和上面類似

B.導(dǎo)入項(xiàng)目文件到庫(kù)里

$cd source1

$svn import --message “Intial files for Project1”file:///data/svn/source1

Addingconfig.txt

Addingxconnect_config.txt

AddingASIC_ADDR_SYNC

……

Project2的導(dǎo)入方法類似

導(dǎo)入完畢后,可以刪除剛才準(zhǔn)備的源文件了。

$rm –rf source1 source2

(3).獲取一份源文件的拷貝

以用戶user1的身份登陸系統(tǒng),在自己的Home目錄下,可以用命令svn checkout

的方式獲得一份subversion控制下的源文件。如果不特別指名,獲得的文件在本地目錄

和在subversion下面的目錄結(jié)構(gòu)一致。所以,我們?yōu)榱藚^(qū)分,應(yīng)該指定一個(gè)本地的目錄

名。

$svn checkouthttp://domain/project1/trunkproject1_trunk

[user1@server ~/test]$svn cohttp://domain/svn/project1/trunkproject1_trunk

Authentication realm: Subversionrepository

Password for 'user1':

Aproject1/trunk/config.txt

Aproject1/trunk/xconnect_config.txt

Aproject1/trunk/ASIC_ADDR_SYNC

Aproject1/trunk/ASIC_ADDR_SYNC/SW2ASIC_20051103

Aproject1/trunk/ASIC_ADDR_SYNC/SW2ASIC_20051103/addr.txt

(4).編輯和提交修改

編輯文的文件,可以用你喜歡的任何編輯器,我們現(xiàn)在添加一個(gè)文件.

$touch test.txt

Add a line for this file

$svn add test.txt添加一個(gè)文件到subversion,但是直到后面提交后才才庫(kù)中生效

$svn status查看哪些文件有變化

Atest.txt

$svn diff test.txt比較本地文件和庫(kù)中的不同

Index: test.txt

================================

--- test.txt(revision0)

+++ test.txt(revision0)

@@ -0,0 +1 @@

+Add a line for this file

$svn ci –m “add a line for test.txt”提交修改了的文件

Addingtest.txt

Transmitting file data .

Committed revision 3.

$svn log test.txt查看變化歷史

---------------------------------------------------------------------

r3 | admin | 2005-11-12 14:43:36+0800 (Sat, 12 Nov 2005) | 1 line

add a line

---------------------------------------------------------------------

$svn update獲得最新的版本,使用這個(gè)命令獲得他人的最新更改。

如果發(fā)生沖突,使用svn resolve解決

(5).Svn客戶端常用命令

svn add//添加一個(gè)文件

svn checkout(coi)//從苦衷獲取一個(gè)工作拷貝

svn cimmit(ci)//提交當(dāng)前工作拷貝的更改到代碼苦,如果出現(xiàn)沖突需要解決。

svn copy(cp)//做一個(gè)工作的拷貝

svn delete(del,remove,rm)//刪除本地或者svn庫(kù)中的文件或者目錄

svn diff(di)//比較某個(gè)文件和庫(kù)中對(duì)應(yīng)的文件的不同,和系統(tǒng)的diff命令類似

svn export//導(dǎo)出一個(gè)無(wú)版本控制的目錄樹(shù)拷貝,用于可以運(yùn)行的版本需要導(dǎo)出。

svn import//將當(dāng)前目錄下的文件導(dǎo)入到庫(kù)中

svn info//查看當(dāng)前目錄下的某個(gè)文件或者文件夾的信息

svn list(ls)//列出當(dāng)前拷貝的文件

svn mkdir//在本地或者庫(kù)中新建一個(gè)文件夾

svn move(mv,rename,ren)類似于系統(tǒng)的mv命令

svn status(stat,st)//svn工作拷貝的當(dāng)前狀態(tài),和上次提交或者update后的對(duì)比

svn update(up)//將svn庫(kù)中的文件同步到本地

(6).創(chuàng)建一個(gè)Tag和Branch

Subversion創(chuàng)建Tag和Branch和CVS不一樣,它采用的是copy方式。

A.創(chuàng)建一個(gè)Tags,只能這個(gè)項(xiàng)目的Project Manager負(fù)責(zé),下面以manager1用戶登陸操作。

$svn copy –m “Create Tag version1”[url=]file:///data/svn/project1/trunk/[/url][url=]file:///data/svn/project1/tags/version1[/url]

$svn list[url=]file:///data/svn/project1/tags[/url]

version1

B.創(chuàng)建一個(gè)Branch

$svncopy –m “createBranch a”[url=]file:///data/svn/project1/trunk/[/url][url=]file:///data/svn/project1/branches/brancha[/url]

以u(píng)ser1登陸

$svn switchhttp://domain/svn/project1/branches/brancha

這樣以后user1就以brancha作為工作的庫(kù)目錄,從這里開(kāi)始作為分支。

(7).Merging aBranch

(8).Windows客戶端的安裝和使用

下載TortoiseSVN-xxx.msi,安裝,然后CheckOut一個(gè)庫(kù)的拷貝。

Clisoft SOS介紹

a.業(yè)界最完整的版本控制工具. 具有動(dòng)態(tài)連結(jié)及智能快取等強(qiáng)大功能

完整得知所有使用者檔案修改, 增減, 開(kāi)啟等記錄...

節(jié)省硬件的支出, 讓系統(tǒng)管理員更有效控制數(shù)據(jù)的管理與儲(chǔ)存

對(duì)于硬件和軟件設(shè)計(jì)資源 (design resouce), 設(shè)計(jì)者可以更有效的取得及運(yùn)用

單鍵標(biāo)注(Tag)整個(gè)工作目錄下所使用的版本.

數(shù)據(jù)庫(kù)快照(Snapshot)及最完整的安全控管機(jī)制.

可任意任務(wù)分組? 控制組員可擦寫(xiě)之目錄及檔案

最簡(jiǎn)易的操作接口, 無(wú)需管理員. 工程師一小時(shí)上手

提供命令模式, 易于與EDA工具整合.

內(nèi)建 Bug Tracking 功能, 可通知同組伙伴所須修改之錯(cuò)誤.

提供豐富的管理工具及 Trigger 功能.

與 Cadence DFII 完整結(jié)合

提供工作交接及內(nèi)部教育訓(xùn)練一個(gè)最佳平臺(tái)環(huán)境.

提供最佳異地開(kāi)發(fā)功能

這個(gè)軟件主要是針對(duì)全定制IC設(shè)計(jì)的,可以嵌入:

Cadence Virtuoso

Custom IC

Agilent Advanced Design System(ADS)

Mentor Pyxis

Synopsys Laker

Synopsys Custom Designer

SOS是商業(yè)軟件,只要購(gòu)買了,安裝和配置完全由廠家支持,這里就不再做詳細(xì)的介紹了。

IC Manage

沒(méi)有接觸過(guò),據(jù)說(shuō)也是一個(gè)不錯(cuò)的IC公司喜歡用的版本管理軟件。

git

很好的一個(gè)分布式版本管理軟件,在開(kāi)源軟件開(kāi)發(fā)行業(yè)使用非常廣泛。不過(guò)目前在IC設(shè)計(jì)行業(yè)所見(jiàn)不多,也許我們IC行業(yè)太落后了,沒(méi)互聯(lián)網(wǎng)和開(kāi)源界對(duì)新技術(shù)的接受能力強(qiáng)。我們習(xí)慣用我們熟悉的東西。

搭建:

(1)yum install git

[root@eda ~]# git --version

git version 1.8.3.1

(2)創(chuàng)建git用戶

[root@eda ~]# git --version

git version 1.8.3.1

[root@eda ~]# cd

[root@eda ~]# pwd

/root

[root@eda ~]# useradd git

[root@eda ~]# passwd git

Changing password for usergit.

New password:

Retype new password:

passwd: all authenticationtokens updated successfully.

[root@eda ~]# su - git

[git@eda ~]$ mkdir srv

[git@eda ~]$ ls

srv

[git@eda ~]$ cd srv

(3)初始化項(xiàng)目

[git@eda srv]$ git init--bare proj.git

Initialized empty Gitrepository in /home/git/srv/proj.git/

[git@eda srv]$ ls

proj.git

(4)Clone

[git@eda work]$ git clonegit@localhost:srv/proj.git

Cloning into 'proj'...

git@localhost's password:

(5)添加文件

[git@eda work]$ ls

proj

[git@eda work]$ cd proj/

[git@eda proj]$ touch abc.txt

[git@eda proj]$ vi abc.txt

wgh

test

"abc.txt" 2L, 9Cwritten

[git@eda proj]$ ls

abc.txt

[git@eda proj]$ pwd

/home/git/work/proj

[git@eda proj]$ git addabc.txt

[git@eda proj]$ git commitabc.txt -m "test file"

*** Please tell me who youare.

Run

git config --global user.email"you@example.com"

git config --global user.name "YourName"

需要設(shè)置提交者的個(gè)人信息

[git@eda proj]$ git config--global user.name "Guanghui"

[git@eda proj]$ git config--global user.email "wanggh@gmail.com"

(6)提交文件

[git@eda proj]$ git commitabc.txt -m "test file"

[master (root-commit)0455f79] test file

1 file changed, 2 insertions(+)

create mode 100644 abc.txt

[git@eda proj]$ git pushorigin master

git@localhost's password:

Counting objects: 3, done.

Writing objects: 100% (3/3),215 bytes | 0 bytes/s, done.

Total 3 (delta 0), reused 0(delta 0)

To git@localhost:srv/proj.git

* [new branch]master -> master

[git@eda proj]$

(7)查看變化是否提交

我們需要重新git clone一份

[git@eda ~]$ git clonegit@localhost:srv/proj.git

[git@eda ~]$ cd proj/

[git@eda proj]$ ls

abc.txt

[git@eda proj]$ git log

commit0455f7997a895e5ffea3f016ec04bf2bdb7b25ad

Author: Guanghui

Date:Fri Apr 15 21:44:12 2016 +0800

test file

發(fā)現(xiàn)已經(jīng)存在我們剛才添加進(jìn)入的一個(gè)文件了。

權(quán)限管理

要方便管理公鑰,用Gitosis;

要像SVN那樣詳細(xì)地控制權(quán)限,用Gitolite

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • IC設(shè)計(jì)
    +關(guān)注

    關(guān)注

    37

    文章

    1287

    瀏覽量

    103434
  • IT
    IT
    +關(guān)注

    關(guān)注

    2

    文章

    835

    瀏覽量

    63313

原文標(biāo)題:精華 | 大型IC設(shè)計(jì)中心的IT環(huán)境該如何規(guī)劃?

文章出處:【微信號(hào):wc_ysj,微信公眾號(hào):旺材芯片】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于公司關(guān)于自己

    年12月,深圳市崧曄達(dá)科技有限公司正式成立。我們堅(jiān)持只做進(jìn)口原裝,價(jià)格優(yōu)惠,信譽(yù)為優(yōu),公司經(jīng)營(yíng)的范圍很廣,如電子元器件,偏冷門(mén)電子,想開(kāi)關(guān)連接器,品牌授權(quán)代理都是我們的品種。 關(guān)于自己在2015年3月
    發(fā)表于 04-20 09:47

    精通嵌入式Linux編程—構(gòu)造自己的GUI環(huán)境

    精通嵌入式Linux編程—構(gòu)造自己的GUI環(huán)境
    發(fā)表于 10-30 09:04 ?16次下載
    精通嵌入式Linux編程—構(gòu)造<b class='flag-5'>自己</b>的GUI<b class='flag-5'>環(huán)境</b>

    爆料!蘋(píng)果正在設(shè)計(jì)自己的電源芯片

    蘋(píng)果正在設(shè)計(jì)自己的電源芯片,這應(yīng)該由蘋(píng)果公司可信硅供應(yīng)商臺(tái)積電制造。控制iPhone的充電,電池管理和能耗的電源管理芯片是一個(gè)關(guān)鍵但無(wú)聊的組件。這幾乎沒(méi)有被提及的功能。但日經(jīng)指出,新內(nèi)
    的頭像 發(fā)表于 12-05 18:22 ?5048次閱讀

    Facebook自己芯片,用ai來(lái)管理暴力直播

    升級(jí)軟件已經(jīng)不能滿足 Facebook 的需求,更強(qiáng)大的算法需要定制化 AI 芯片來(lái)支撐。雖然有大量的公司(英特爾,三星,Nvidia 等)在開(kāi)發(fā)節(jié)能芯片,但 Facebook 決定自己
    發(fā)表于 06-01 09:08 ?509次閱讀

    Facebook正在組建一個(gè)團(tuán)隊(duì)來(lái)設(shè)計(jì)自己芯片

    之前已經(jīng)有多家科技公司開(kāi)始自主開(kāi)發(fā)芯片。2010年,蘋(píng)果開(kāi)始推出自己芯片,目前已經(jīng)在旗下很多重要產(chǎn)品線中使用自主開(kāi)發(fā)的芯片。谷歌也開(kāi)發(fā)了
    的頭像 發(fā)表于 04-21 09:10 ?4298次閱讀

    中國(guó)可以做出自己芯片嗎?

    郭臺(tái)銘: 中國(guó)可以做出自己芯片和操作系統(tǒng) 鴻海董事長(zhǎng)郭臺(tái)銘表示,中國(guó)可以做出自己芯片和操作系統(tǒng)。他認(rèn)為,今年富士康進(jìn)行園區(qū)改造,深圳龍華產(chǎn)業(yè)園區(qū)預(yù)計(jì)5年改造完成。中央社報(bào)道,人民網(wǎng)
    的頭像 發(fā)表于 06-30 08:36 ?2.8w次閱讀

    愛(ài)立信為環(huán)境保護(hù)貢獻(xiàn)自己的力量

    愛(ài)立信,一直身體力行,為環(huán)境保護(hù)貢獻(xiàn)自己的力量。
    的頭像 發(fā)表于 04-25 09:18 ?3202次閱讀

    大眾將為自動(dòng)駕駛汽車設(shè)計(jì)自己的高性能芯片

    大眾汽車不會(huì)滿足于其自動(dòng)駕駛汽車的現(xiàn)成計(jì)算能力。據(jù)報(bào)道,公司首席執(zhí)行官Herbert Diess在接受Handelsblatt采訪時(shí)表示,大眾將為自動(dòng)駕駛汽車設(shè)計(jì)自己的高性能芯片。Diess表示
    的頭像 發(fā)表于 05-13 15:08 ?1771次閱讀

    中國(guó)最大的芯片公司

    半導(dǎo)體公司,成立于2004年,公司總部在深圳。 現(xiàn)在華為大部分的手機(jī)、平板電腦都是使用的是自研芯片,海思還有別的系列芯片,如巴龍芯片、昇騰
    的頭像 發(fā)表于 01-05 10:51 ?7793次閱讀

    車企為什么自己芯片

    隨著新能源汽車的發(fā)展和造車新勢(shì)力競(jìng)爭(zhēng)的日趨激烈,車企自己下場(chǎng)做芯片的越來(lái)越多,筆者從自身的理解和半導(dǎo)體專業(yè)的思考出發(fā),給大家拋磚引玉,提出自己的建議。
    的頭像 發(fā)表于 01-29 15:51 ?780次閱讀

    Linux環(huán)境下查詢自己的ip和port教程

    寫(xiě)在前面:在Linux環(huán)境中,學(xué)習(xí)網(wǎng)絡(luò)協(xié)議之后,就需要經(jīng)常查看自己系統(tǒng)的ip和port是否正確,那么怎么快速查找它們呢? 我現(xiàn)在就把它們列出來(lái),以解我的心頭之恨?。?! 正文開(kāi)始... **1、顯示或配置網(wǎng)絡(luò)設(shè)備命令**
    的頭像 發(fā)表于 02-15 10:37 ?5317次閱讀
    Linux<b class='flag-5'>環(huán)境</b>下查詢<b class='flag-5'>自己</b>的ip和port教程

    LG利用Tenstorrent的AI芯片設(shè)計(jì)來(lái)開(kāi)發(fā)自己芯片

    tenstorent總經(jīng)理David Bennett表示:“初期將利用tenstorent ai芯片設(shè)計(jì)開(kāi)發(fā)自己芯片,但今后將進(jìn)行更大規(guī)模的戰(zhàn)略和合作?!?/div>
    的頭像 發(fā)表于 06-01 09:35 ?1137次閱讀

    使用C#創(chuàng)建自己的桌面環(huán)境

    電子發(fā)燒友網(wǎng)站提供《使用C#創(chuàng)建自己的桌面環(huán)境.zip》資料免費(fèi)下載
    發(fā)表于 06-19 11:02 ?0次下載
    使用C#創(chuàng)建<b class='flag-5'>自己</b>的桌面<b class='flag-5'>環(huán)境</b>

    蘋(píng)果15芯片是A16嗎 蘋(píng)果a15芯片自己設(shè)計(jì)的嗎

    蘋(píng)果15芯片是A16嗎 是的,蘋(píng)果15搭載的芯片是A16 Bionic芯片。這是蘋(píng)果公司自主研發(fā)的處理器芯片,采用了臺(tái)積電的N4P制程工藝。
    的頭像 發(fā)表于 10-08 11:08 ?3509次閱讀

    科技公司最終都是芯片公司?

    上一場(chǎng)芯片大戰(zhàn)后,幾家頭部公司牢牢控制著自己的位置。大多數(shù)時(shí)候,英特爾控制著超過(guò) 2/3 的市場(chǎng),決定著明年 CPU 計(jì)算能力提升 8% 還是 10%;英偉達(dá)是在虛擬世界里描繪畫(huà)面的首選,高通決定信號(hào)如何在空氣里傳播。
    的頭像 發(fā)表于 11-10 16:16 ?672次閱讀
    科技<b class='flag-5'>公司</b>最終都是<b class='flag-5'>芯片</b><b class='flag-5'>公司</b>?