01
本來想寫完“系統(tǒng)運維篇”后著手寫“應(yīng)用系統(tǒng)建設(shè)篇”的,畢竟應(yīng)用系統(tǒng)建設(shè)一直伴隨分公司十年信息化發(fā)展的步伐。但依舊是那句話“馬虎啃天,無處下口”——十年來分公司應(yīng)用系統(tǒng)建設(shè)迅猛推進,大大小小的應(yīng)用系統(tǒng)建了數(shù)十個,要從中提煉出共性的方面,可借鑒的東西實屬不易。只能先放一放,把這個想法交給潛意識,讓它自己在頭腦中慢慢醞釀、生根發(fā)芽吧。
02
虛擬化
而分公司虛擬化平臺建設(shè)則是一個較為獨立的過程,并且發(fā)展較晚,是這兩年才開展的事情。所以在這里先把虛擬化這一塊剝離出來,給大腦騰出一部分硬盤空間,免得擠得難受,運行不暢。
有一點要說明的是,這里說的虛擬化,指的是企業(yè)版虛擬化平臺的建設(shè)部署,而不是個人版虛擬機的安裝使用,二者不在同一層級上。
在我看來,虛擬化(機)的確是一種高級發(fā)明,它把服務(wù)器及主板、網(wǎng)卡、顯卡等完全虛擬化,完全脫離硬件而存在,不需要單獨安裝各類驅(qū)動。其安裝部署使用,簡單、快捷,省時省力。
03
航母
沒有虛擬化平臺以前,要部署應(yīng)用系統(tǒng),數(shù)據(jù)庫等就必須真刀實槍去安裝一臺物理機服務(wù)器。
如果說物理機安裝部署相當(dāng)于在大海中獨立造船的話,那么虛擬平臺的搭建,則相當(dāng)于先在海上建造一艘航空母艦,然后在其上分門別類按需求建造功能各異的房間。
一旦航母建造完畢,則在上面搭建房屋建筑,顯然比在直接在大海中造小船要容易的多。畢竟少了底層基礎(chǔ)架構(gòu)的施工,方便省事兒多了。
——有了虛擬平臺以后,再部署虛擬機,就相當(dāng)于在航母上利用各種已有設(shè)施裝備,搭建一個個功能室。
當(dāng)然,虛擬化平臺有很多與物理機不一樣的特點:
04
快照
虛擬化有一個重要的技術(shù)“快照”。所謂的快照就是忠實地記錄某臺虛擬機某時刻運行狀態(tài)的。如果在某時刻對虛擬機做了快照,那么一旦將來該虛擬機出現(xiàn)問題,就可以迅速恢復(fù)到此快照上來,避免更大損失。其最常見的應(yīng)用就是當(dāng)要對虛擬機做某項可能有風(fēng)險的配置操作前,先給它執(zhí)行一個快照,以備不測。
在我看來,快照技術(shù)有點像孫悟空的猴毛。孫悟空調(diào)皮好動,他每做一個動作,就在脖子上揪下一根毫毛變成小猴子,然后把它定在那里記住孫悟空當(dāng)時的動作。一旦孫悟空想查找自己在某個時刻做的動作時,只需要找到那只定住的小猴子即可。然后可以根據(jù)小猴的動作,快速切換到當(dāng)時這個動作角色里去。
05
克隆與模板
克隆相當(dāng)于復(fù)制,可以把一臺虛擬機服務(wù)器進行克隆備份防止出現(xiàn)問題;
而模板,則是把某一臺服務(wù)器拿出來,標準化其配置,變成樣板兒。這樣再有類似配置的服務(wù)器需要部署的時候,可以直接拿來用。
克隆、模板與快照的區(qū)別:
克隆是相當(dāng)于復(fù)制,即新復(fù)制出一臺一摸一樣的虛擬機,與原來的沒有關(guān)系了;
模板:只能當(dāng)模板,本身不能當(dāng)做虛擬機;
快照:是某一臺具體虛擬機在某個特定時刻狀態(tài)的記錄。快照是不連續(xù)的,離散的。虛擬機只能穿越到做快照的某個時刻,不能隨意穿越,有條件限制。
以工業(yè)化生產(chǎn)線作比喻:
模板相當(dāng)于生產(chǎn)產(chǎn)品的模子;
克隆相當(dāng)于利用模子生產(chǎn)出多個一模一樣的產(chǎn)品;
而快照則相當(dāng)于把生產(chǎn)線過程中某一個半成品拿走存檔,記錄半成品的質(zhì)量狀態(tài),留作以后過程檢驗使用。
06
隔離與封裝
隔離:虛擬化服務(wù)器可以使每個虛擬機互相隔離,數(shù)據(jù)不會在虛擬機之間泄露。
封裝:虛擬單元的所有環(huán)境被存放在一個單獨文件中; 整個磁盤分區(qū)被存儲為一個文件,易于備份、轉(zhuǎn)移和拷貝。而為應(yīng)用展現(xiàn)的是標準化的虛擬硬件。
這兩個特點在應(yīng)用上有一個很大的方便。比如對于一個新手,如果要學(xué)習(xí)某一方面的技能,或者學(xué)習(xí)一個新的系統(tǒng)或數(shù)據(jù)庫,只需要迅速搭建一個虛擬機作為應(yīng)用服務(wù)器,進行與正式服務(wù)器相同的配置即可。當(dāng)然如果正式服務(wù)器也是部署在虛擬平臺的話,可以利用上文中的“ 克隆”功能,快速完成一個復(fù)制克隆。
然后,就可以在自己獨立虛擬機的一畝三分地上,隨意地翻跟頭,盡情地打滾折騰,可勁造吧。反正你再怎么捅咕也不會影響到別人的應(yīng)用。當(dāng)然,進行病毒復(fù)制測試除外。
07
故障遷移
隔離與封裝特點,使得各虛擬機在虛擬化平臺中就像一個個彼此互相獨立運行的格子間,工作室,或者形象地稱之為電影院的放映室。
觀眾在放映室里看電影,就相當(dāng)于虛擬機在正常運行著一些進程。
VMotion 是 VMware 開發(fā)的一項獨特技術(shù),它可使得正在運行的整個虛擬機能夠在瞬間從一臺物理服務(wù)器移到另一臺上。
比如,當(dāng)某臺虛擬機所在物理服務(wù)器出現(xiàn)故障,就像放映室出現(xiàn)問題,比如停電時,坐在座位上看電影的人,會像時空轉(zhuǎn)換一樣,瞬間轉(zhuǎn)移到另一間放映室看電影,不會有任何的感覺,并且電影的內(nèi)容與進度完全不變,絲毫不影響你看電影的興致。
但這種技術(shù)還有一個問題需要完善,那就是不支持USB設(shè)備,比如硬件狗的實時遷移。因此,一旦某臺虛擬機出問題而遷移到別的服務(wù)器上了,在它上面配置的USB設(shè)備,并不會跟著過去,在程序調(diào)用的時候就會出現(xiàn)問題——據(jù)說這個問題可以通過Usbserver來來解決,以后可以嘗試一下。
——就像你進電影院看電影前,把隨身帶的傘掛在電影院某個放映室外面。如果該放映室由于故障,而把你時空轉(zhuǎn)換遷移到別的放映室,等你看完電影出來找傘的時候,卻發(fā)現(xiàn)傘并不在這個放映室門口,而是在原來那個門口外面,不免有點突兀與驚愕。
08
P2V
P2V,Physical to Virtual,物理到虛擬,顧名思義,就是把物理機遷移到虛擬機,這是虛擬機一個很重要的應(yīng)用。
如果某一臺物理機身體狀況不太好,硬件配置比較落后,應(yīng)用經(jīng)常出錯,為保險起見就可以把它遷移到虛擬機。順便給它增加硬盤空間,加大內(nèi)存容量,非常方便。
P2V可以把物理機的配置原封不動地納入到虛擬機中來,完成物理到虛擬的完美吸收與遷移。這一點非常像《天龍八部》中的絕世武功北冥神功,把別人的內(nèi)力悉數(shù)吸收過來,為我所用。
但與北冥神功不同的是,P2V遷移后,原物理機配置依舊存在,生龍活虎,不像北冥神功那樣利己需損人。
正是基于P2V這個特點,我經(jīng)常用這種方法給一些年代比較久遠的物理機做遷移備份。這樣以后一旦物理機壞了,可以直接切換到虛擬機,不至于到時候手忙腳亂,六神無主。
09
大范圍應(yīng)用
虛擬機部署安裝有一個最大的特點,就是添加硬件配置像吃自助餐一樣,可以按照應(yīng)用的性能要求,自行搭配葷素,絕不會造成浪費,少拿多取,一次不夠,繼續(xù)添加。
不像物理機那樣,購買時一般是標配,如果安裝一個不咋占資源的應(yīng)用,則會造成浪費;反之,則需要繼續(xù)擴硬盤,加內(nèi)存,很難你情我愿,對上眼。
虛擬機添加配置非常簡單:關(guān)機,改配置,重啟,配置生效。
但是有一個問題,就是一臺虛擬機的的硬盤只能從小增到大,不能從大回到小。即一旦某臺虛擬機的硬盤空間設(shè)置過大,你想把多余的硬盤刪除掉,那是沒有辦法的。即使你從修改配置里刪除掉,表面看不見了,但是被刪除的這部分硬盤空間依舊不能被釋放,供其他虛擬機調(diào)用。不太清楚這方面的機理。
現(xiàn)在分公司再部署應(yīng)用系統(tǒng),數(shù)據(jù)庫或者專業(yè)軟件的時候,如果對顯卡類沒有特殊需求的話,我們一般會部署在虛擬機上,方便快捷,按需分配。
到現(xiàn)在為止,大大小小的虛擬機應(yīng)用已經(jīng)安裝了幾十個了,從管理平臺上瞅一瞅那一排虛擬機,心中也有小小的成就感,就像自己養(yǎng)的孩子,一點點看他長大,走向成熟。
記憶中最大的一次事故是一次機房完全停電,連UPS也出現(xiàn)了問題,直接導(dǎo)致幾臺虛擬機藍屏無法啟動。所幸,這幾臺虛擬機都不咋重要,抑或是測試用的,損失不大。
但這次事故也給我們敲響了“使用虛擬機也不能一勞永逸”的警鐘,自家的孩子是不會自己長大成人的 ,必須付出精心的呵護與守候,生而不養(yǎng)是要不得的。
從那以后,我們對虛擬機的關(guān)注更加殷勤起來,按時監(jiān)控,定期對重要的系統(tǒng)做快照,甚至備份克隆。
10
備份
理財界有一句經(jīng)典金句:雞蛋不能放在一個籃子里。其實對于虛擬機及數(shù)據(jù)庫、應(yīng)用系統(tǒng)的部署使用來說,也是同樣的道理。
各種各樣的虛擬機小船,化成身材龐大的航空母艦,為信息化數(shù)據(jù)的安全保駕護航。
但是,你應(yīng)該也看出來了,航母這樣一個龐然大物,固然沉穩(wěn)、踏實,令人放心,可以容納比小舟小船多得多的東西,并且功能眾多,操控方便。但是,它畢竟是孤零零漂在大海里的,沒有與之呼應(yīng)的救援航母群。
大海風(fēng)景雖美,卻也暗藏風(fēng)險。一旦它發(fā)起怒來,咆哮起來,那可不是鬧著玩的。大海畢竟是無情的,就算是你做好了各種安全防護措施,船板足夠硬,足夠厚,但是一旦遇到冰山觸礁也是無能為力的。當(dāng)年號稱不沉之船的“泰坦尼克號”,不也是發(fā)生險情而最終傾覆,死傷無數(shù)嗎?
所以,平常就要注重做好航母的安全防控工作。不僅要做好它本身的檢查與修繕,更重要的是要定時觀測大海的狀況,一旦有風(fēng)吹草動,就需要馬上采取應(yīng)急措施。
對于一個大型磁盤陣列存儲而言,盡管可以利用RAID技術(shù)進行鏡像備份恢復(fù),但也只限于一些小的內(nèi)部故障,一旦發(fā)生重大災(zāi)難依然難以招架。
所以你應(yīng)該也想到解決方案了:即再造一艘一模一樣的航空母艦,并且航行在不同的海域。在新航母上進行與第一艘完全一樣的裝修、配置,并且還要定期進行同步對照更改。這樣一旦首選的航母發(fā)生故障,可以第一時間啟用備用航母,不至于艦沉船毀,全軍覆沒。
不過根據(jù)這種方案,復(fù)制建造航母需要大量的財力物力,只有財大氣粗的土豪們才有這個能力,對于一般的小老百姓,真的是望洋興嘆,無能為力。所以只有一些資金豐厚的巨無霸公司,才有能力在全國或者全球不同地點設(shè)立災(zāi)備中心。
11
vGPU技術(shù)
虛擬機可以在很多方面把物理機模仿得惟妙惟肖,以假亂真,除了顯卡驅(qū)動這一塊。
由于虛擬機用的是虛擬化驅(qū)動,對付一般的正常應(yīng)用來說是綽綽有余,但是對于有特殊需求的一些應(yīng)用則顯得力不從心,比如一些專業(yè)軟件需要進行3D渲染展示。
這時候就需要vGPU排上用場了。vGPU能夠同時在多個虛擬機之間共享一個GPU,可以像虛擬化其他服務(wù)器組件那樣對硬件GPU進行虛擬化,然后利用直通或者共享的模式實現(xiàn)顯卡的共享共有,按需分配,從而滿足一些高端軟件3D調(diào)用的需要。
在這方面可以嘗試Nvidia的Grid K2顯卡與Vmware虛擬平臺組合使用。
12
虛擬化與云計算
由于虛擬機的自由組合搭配、可隨時調(diào)度、對資源再分配利用等特點與“云”有些相似,所以很多人容易把虛擬化與云計算混淆。其實二者不盡相同:
云計算和虛擬化并非捆綁技術(shù),虛擬化是云計算中主要支撐技術(shù)之一,是云計算中最關(guān)鍵、最核心的技術(shù)源動力。云計算把計算當(dāng)做公用資源,但不是一個具體的產(chǎn)品或者是技術(shù)。
云計算將各種IT資源以服務(wù)的方式通過互聯(lián)網(wǎng)交付給用戶,給用戶提供服務(wù)。而虛擬化本身并不能給用戶提供自服務(wù)層。
因此說,虛擬化絕不是云計算,而云計算則遠遠超出了虛擬化的范疇。
——如果把云計算看作一桌招待客人的酒席,那么虛擬化便是這桌酒席上極其重要的招牌菜,離了招牌菜固然可以成席,但會遜色不少。
在云時代下,云計算搭臺,虛擬機唱戲,這一趨勢已經(jīng)十分顯著,云計算與虛擬機之間的關(guān)系可以用相互促進,密不可分來形容,兩者之間相互配合才能產(chǎn)生巨大合力。
13
虛擬化意義
與物理機相比,虛擬化最大的優(yōu)點就是實現(xiàn)了資源的整合與再配置。它打破了原來物理機一城一池的桎梏,可以把閑置不用的資源浮動出來,供其他急需的進程調(diào)用。防止出現(xiàn)澇的澇死,旱的旱死,旱澇不均,實現(xiàn)資源的均衡分配。
就像現(xiàn)在流行的部委合并,部門、機構(gòu)合并,其本質(zhì)上也是資源整合與再分配。
合并后,對外展示的就是一個優(yōu)化后的資源池,只要外界有需求,資源池就會集中最佳資源提供最優(yōu)的服務(wù),防止以前小部門之間存在的扯皮推諉及部門交叉處空白地帶的出現(xiàn)。
14
虛擬機思想
比特幣首富李笑來利用虛擬機思想發(fā)展出一套為人處世的方法論。他說在這個世界上有很多人信星座、信血型、信中醫(yī),如果你什么都不信,走高冷范兒,人至察則無徒,容易沒朋友的。
因此他利用虛擬機獨立互不影響,不用時就關(guān)閉的思想,發(fā)展出一套方法論。即平常在腦子里劃分出一塊空間專門學(xué)習(xí)一下星座、血型、中醫(yī)之類的知識,遇到相信這方面的女性、老人或者朋友,就打開虛擬機,這樣就可以跟對方有共同的話題,不至于冷場。不需要的場合則馬上把虛擬機關(guān)閉,不占內(nèi)存,不耗資源,一舉兩得。