解決SQL Server數(shù)據(jù)庫虛擬化挑戰(zhàn)
毫無疑問,虛擬化技術已經(jīng)成為目前我們關注最多的話題之一。它的出現(xiàn)對于IT運營以及企業(yè)業(yè)務運轉(zhuǎn)產(chǎn)生了巨大和深遠的影響,同時節(jié)省了人力與物力。但是對于數(shù)據(jù)庫虛擬化來說,比如SQL Server,分析師告誡我們還有一些潛在的風險。
O’Kelly Associates的首席分析師Peter O’Kelly告訴我們,在IT行業(yè)里總是有這樣那樣的浪潮或者說是趨勢,而現(xiàn)在的主流說法就是虛擬化應該能夠做所有的事,它對于各個方面都是有好處的。沒有一件事能做到這一點,虛擬化當然也不例外。現(xiàn)如今我們會發(fā)現(xiàn)虛擬化也是要具體問題具體分析,它并不一定適合所有的場景。
讓我們回到數(shù)據(jù)庫的話題上,虛擬化技術對于普通數(shù)據(jù)庫來說并不一定就合適,因為它可能會干擾到數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)訪問優(yōu)化功能,在虛擬化大規(guī)模部署之前,這一功能的最初設計是直接與數(shù)據(jù)存儲設備相聯(lián)系的。
“添加虛擬存儲之后,它可能會導致更多的磁盤訪問操作,磁盤訪問是以毫秒單位計算的,而內(nèi)存訪問是以納秒單位計算的,所以虛擬化導致的后果將會非常嚴重,” Peter O’Kelly說:“啟發(fā)式邏輯將被打破,優(yōu)化器將不會如期望的那樣工作,這肯定會引起一系列的問題。”
Gartner公司的分析師Chris Wolf認為,在數(shù)據(jù)庫虛擬化環(huán)境中,內(nèi)存將成為“阿基里斯之踵”,從歷史經(jīng)驗來看,在涉及到內(nèi)存管理的情況下,人們遇到問題的幾率將大大提升。例如,幾年前hypervisor是利用軟件來模擬物理內(nèi)存的,這勢必會導致性能瓶頸,最終的響應時間必然會延長。
然而在2009年的下半年,AMD開始在硬件上引入了AMD-V Rapid Virtualization Indexing技術,同時Intel在去年也發(fā)布了Extended Page Tables。根據(jù)Wolf的介紹,這些技術將使得虛擬機能夠在內(nèi)存中管理它們各自的物理頁面表。這就取代了軟件的形式,從而解決了性能瓶頸問題。因此,幾年前當人們說SQL Server虛擬化的時候,總是運行的不夠流暢,但是現(xiàn)在這已經(jīng)不是問題了,因為新的架構已經(jīng)到來了。
SQL Server虛擬化的另外一個問題就是內(nèi)存爭用,SQL的運行會占據(jù)大量的內(nèi)存,你分配多少它就占用多少,所以資源共享將出現(xiàn)問題。這也就是為什么在一個物理服務器上,人們必須進行相應的調(diào)整,分配需要的內(nèi)存資源而不是想要的內(nèi)存資源。
幸運的是,調(diào)優(yōu)是很直接的。因此Wolf建議基礎設施管理人員和SQL Server DBA團隊可以經(jīng)常碰頭,進行具體問題的討論以解決這一難題。
除內(nèi)存資源共享之外,同樣需要I/O優(yōu)化。舉個例子,Wolf提到vSphere 2.1,在這一產(chǎn)品中VMware引入了Paravirtual SCSI技術:“它是一個全新的存儲驅(qū)動器,能夠為存儲訪問提供加速的I/O,除此之外他們還推出了一個新功能——存儲I/O控制,它能夠為特定的應用排定存儲訪問順序,所以就不會出現(xiàn)一個應用占據(jù)所以I/O的情況。”
Concentrated Technology公司的IT分析師Greg Shields同樣非常關心調(diào)優(yōu)的問題,他表示目前盡管所有的設備都能夠?qū)崿F(xiàn)虛擬化,但是部署仍然是存在著不少的挑戰(zhàn)。他說:“在我的經(jīng)驗看來,大多數(shù)IT專業(yè)人士在容量管理方面都做得不夠好,當虛擬化還沒有誕生的時候,經(jīng)驗教會人們憑直覺來辦事,比如內(nèi)存的供應。在進行服務器優(yōu)化時,人們往往認為是網(wǎng)絡出現(xiàn)問題,但是其實這可能是進程資源缺乏導致的。”
根據(jù)Shields的說法,針對SQL Server這種高利用率的產(chǎn)品,特別需要的是幫助DBA將數(shù)據(jù)轉(zhuǎn)化成真正意義上智能的工具。這樣的工具能夠為DBA提供更好的洞察力,也就意味著你不需要再整合那么多的機器了,甚至某些情況下,一個物理機上只需要一個虛擬服務器。
Shields強調(diào),虛擬化的力量十分強大以至于現(xiàn)在進行虛擬化部署的成本已經(jīng)很低,所以這對于SQL Server來說是非常好的。他說:“目前,我們擁有正確的架構,所以沒有理由不能在虛擬機環(huán)境中運行SQL Server負載。我們的許多客戶在他們的大型數(shù)據(jù)庫上都進行了虛擬化的部署,我的理念就是在x86環(huán)境下,所有的應用都應該將虛擬化當做默認的平臺。”