大型主機既守成又創新 雲端架構樂勝x86機海

大型主機(Mainframe)問市至今已五十年,歷經不同世代變遷與挑戰,至今仍持續不斷地進化中。在IBM任職逾二十年並擁有「IBM傑出工程師」頭銜的IBM全球主機技術研究院院長傅毓勤博士說,有些人一聽到大型主機就會直覺想到昂貴,而不想深入了解,可是真正應用後才會發現,將許多主機系統整合到單一大型主機,像是電力、空間、管理等方面,其實往往更能節省開支。

對於市場上不時傳出「大型主機將死」的論調,在IBM任職逾二十年並擁有「IBM傑出工程師」頭銜的IBM全球主機技術研究院院長傅毓勤博士,認為正是由於多數人對大型主機的陌生所導致,當然也是IBM跟市場溝通方面可以努力的空間。

「溝通確實不容易,多數人聽到大型主機就會直覺想到昂貴,而不想深入了解,可是真正應用後才會發現,將許多主機系統整合到單一大型主機,像是電力、空間、管理等方面,其實往往更能節省開支。」傅毓勤強調。

回顧主機系統的歷史,早在五十年前,多數企業還沒有自動化概念的年代,第一台商用電腦System 360,就已具備處理線上交易(On-line Transaction Process,OLTP)的能力,因此直到現今的銀行核心業務系統、航空公司訂票系統、火車訂票系統、證券交易等,都是仰賴OLTP技術運行,可說是影響深遠。

Hypervisor技術開始萌芽

當時的商用電腦開始上線應用後,企業端應用又產生新的需求,考量因素是主機價格不斐,每一種應用都要獨立一台運行,成本過高;或是在單台主機上架設多種應用系統,運行後卻發現,每一種應用,像是個人銀行(Retail Banking)業務亦提供貸款服務,其實是分屬於不同部門負責,若應用系統皆架設在單一台伺服器上運行,一旦應用服務的高峰期重疊,運算效能將不堪負荷。雖然共享資源效益較高,但是無法保證每筆交易完成時間下,於是出現了虛擬化(Hypervisor)技術,也就是現在所謂雲端運算的底層機制。

▲ IBM全球主機技術研究院院長傅毓勤博士指出,大型主機可以分割成幾百個虛擬主機,硬體運算能力較快確實有幫助,更重要的價值是穩定性,也就是System Z當運算使用率高達95%至98%時,仍可確保系統正常運行。
大型主機發展虛擬化技術必須建構在幾個條件下,才得以完整獨立運行互不影響。傅毓勤說明,由於虛擬化的目的是為了共享資源、提高效益,但潛在的問題是對於ELA(Enterprise License Agreement)中提及的服務品質、回應速度皆無法保證,因此除了共享資源以外,必須還要讓不同應用同時在單一主機系統上執行時,能夠定義優先執行順序的控管機制,才得以依照政策配置自動化調整。

傅毓勤解釋,從技術層面來看,多核心處理器、記憶體、儲存容量要能夠被切割,也就是從硬體層定義主機,處理器可選擇共用或單獨配置,並且主機之上各自獨立運行不同作業系統,其實就是現在所謂的虛擬主機,當時的技術名稱為LPAR(Logical Partition)。 在控管平台方面具有Workload Manager,可藉此定義資源優先使用政策,以免互搶,讓資源不僅得以有效運用,且可根據控管政策定義調整配置。例如線上交易系統正需要運算資源以加快回應速度時,卻遇到批次寫入的應用系統也開始執行,即可自動讓線上交易先處理,或是只配置少量運算資源給批次處理即可。「此機制經過四十年後至今,仍舊是備受關注與討論的話題。」

資料庫系統的興起

在硬體與系統平台皆進步、穩定之後,緊接著即是應用軟體(或中介軟體)的變化,其中最重要的莫過於資料庫系統的興起。由於線上交易系統後端資料存取皆是仰賴資料庫,以IBM的發展而言,剛開始提供處理資料方式是以非結構化為主的IMS(Information Management System),之後才發展可處理結構化資料的DB2,兩者皆為資料庫,發展目的是用來簡化應用開發繁瑣的程序,處理、儲存、管理資料的行為,都交由資料庫系統來執行,尤其是可透過權限管理來保護重要資料不被隨意查看。

傅毓勤回想,DB2真正商品化是在1981年左右,其核心技術正是當初來自IBM研究院的專案原型(Prototype)稱為System R,可說為全球的關聯式資料庫系統(RDBMS)奠定了基礎。「有點年紀的IT人或許在學校也學過。」他笑著說。

如今市場上所見的資料庫技術大多源起於System R,後來IBM把此原型商業化,即成為DB2。而IMS是比DB2先被提出的資料庫系統,但屬於階層式(Hierarchical)處理,則是現在的No-SQL、XML模式,主要描述的是資料之間的關係,以階層方式表達,所以尋找資料也是根據資料模式(Data model)的設計運行。


▲ IBM zEnterprise增加zBX,亦可混合運行Power處理器架構與Intel技術的Blade。(資料來源:IBM)

「坦白說,階層式資料庫仍然是運行速度最快的系統,可惜不利於開發,因為資料結構較原始,要掌握細節過多;相對的,當知道的細節愈多,撰寫實作的程式碼自然愈有效率。」傅毓勤說明。而關聯式資料庫的好處是,不需要明白細節。其採用的SQL語法,最基本常用的查詢語法不外乎「Select…From…Where…」,細看可發現該語法類似於英文描述法,跟一般的程式語言撰寫方式完全不同。

程式碼執行著重程序(Procedure),開發者必須撰寫每個步驟執行方法、自訂資料結構,若程式開發技術能力夠強,將有助於整體運行效率;但SQL陳述式則不同,其實是在說明「What」,而非「How」,也就是直接跟資料庫系統拿資料即可,因此較為簡單、容易理解,才得以演變成為主流。除非對於需要很快速、變化不多的作業模式,才會沿用階層式實作。

當資訊科技走入人們生活,逐漸促使企業營運日漸仰賴應用系統,例如銀行業的ATM服務,攸關金錢交易,於是產業之間的競爭項目開始出現核心系統穩定性的比較,當機、斷線的次數必須設法降到最低,確保系統運行具高可用性。此階段,IBM又專注於硬體層研發,提出Parallel Sysplex,也就是後來的叢集(Cluster)概念,來降低無法預期的事件造成的影響。

硬體實作高可用性 減緩效能負擔

「軟體沒有Bug其實都是騙人的,」傅毓勤不諱言,只是程度上不同。就是基於這種「一定會出事」的概念,才衍生出冗餘(Redundancy)的作法,當問題發生時得以轉移(Failover)至另一端繼續運行。但冗餘最大的缺點是浪費,所以IBM才會提出Parallel Sysplex,不只是單純叢集,讓多台主機整合運行,而是Data Sharing,意思是多台主機整合運行是為了服務共同的資料庫,較偏向Share Everything技術,資料一致性可說是其中關鍵。只是如此一來,即無法避免遭遇到效能問題,因此IBM設計以硬體方式來實作,解決效能上的負擔。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!