SQL Server數(shù)據(jù)庫(kù):虛擬化 VS 多實(shí)例
今天的IT界,虛擬化可謂是發(fā)展最迅速的技術(shù)之一。推動(dòng)其快速發(fā)展的動(dòng)力在于虛擬化技術(shù)能夠消除服務(wù)器和基礎(chǔ)硬件設(shè)備之間的相互依賴,使我們能夠在單個(gè)硬件平臺(tái)上運(yùn)行多個(gè)虛擬機(jī),并且能夠很輕松地將虛擬機(jī)(機(jī)器附帶的基礎(chǔ)客戶操作系統(tǒng)和服務(wù)器)轉(zhuǎn)移到不同的硬件平臺(tái)。很多企業(yè)都已經(jīng)將這種技術(shù)作為服務(wù)器整合的方法。但是虛擬化技術(shù)并不是整合服務(wù)器的唯一途徑。與微軟的其他服務(wù)器產(chǎn)品不同,SQL Server 自2000以后的版本,都能夠在同一系統(tǒng)下支持多SQL Server實(shí)例。SQL Server對(duì)多服務(wù)器實(shí)例的支持使我們能夠在同一個(gè)服務(wù)器上運(yùn)行多個(gè)SQL Server數(shù)據(jù)庫(kù)引擎。SQL Server 2005的企業(yè)版支持多達(dá)50個(gè)服務(wù)器實(shí)例。互聯(lián)網(wǎng)服務(wù)器供應(yīng)商和其他需要有主機(jī)提供服務(wù)的情況下,往往會(huì)用采用多SQL serve實(shí)例,以便大量的客戶都能夠自己控制自己的SQL Server數(shù)據(jù)庫(kù)服務(wù)器而不要專門的硬件平臺(tái)支持。那么虛擬化和多SQL server實(shí)例之間有什么異同,孰優(yōu)孰劣,我們又該如何選擇呢? 這兩種服務(wù)器整合方案的主要一個(gè)主要區(qū)別在于,虛擬化是服務(wù)器水平的技術(shù),而多實(shí)例是操作系統(tǒng)水平的技術(shù)。如果你運(yùn)行的是多SQL Server實(shí)例,所有的實(shí)例都不虛運(yùn)行在相同的Windows Server操作系統(tǒng)上。虛擬化則實(shí)現(xiàn)了更細(xì)粒度的操控,因?yàn)槊恳慌_(tái)虛擬機(jī)都需要有自己的操作系統(tǒng)。例如,一臺(tái)虛擬機(jī)運(yùn)行在裝有SQL Server 2005的Windows Server 2003系統(tǒng)下,而在同一個(gè)服務(wù)器下的另一臺(tái)虛擬機(jī)則可能運(yùn)行在裝有SQL Server 2000的Windows 2000系統(tǒng)下。 在選擇過(guò)程中,首先要考慮的因素,而且在大多數(shù)情況下也是最重要的因素就是性能。由于本身的屬性決定了虛擬化服務(wù)器不會(huì)提供與物理服務(wù)器水平相當(dāng)?shù)男阅埽驗(yàn)樘摂M環(huán)境造成的額外開銷要從性能來(lái)抵消。大多數(shù)情況下,估計(jì)虛擬機(jī)造成的額外開銷約為10%-15%。在服務(wù)器整合環(huán)境下,由于其他虛擬機(jī)所支持的工作負(fù)荷的關(guān)系,這種對(duì)性能造成的沖擊可能更為嚴(yán)重。相比之下,運(yùn)行在物理硬件上的服務(wù)器實(shí)例,除了在服務(wù)器實(shí)例上運(yùn)行查詢所產(chǎn)生的工作負(fù)荷之外,不會(huì)產(chǎn)生任何額外的開銷。 在管理方面,虛擬化和服務(wù)器實(shí)例很相似,但是運(yùn)行多SQL Server有幾個(gè)優(yōu)勢(shì),比管理虛擬機(jī)要更為輕松。因?yàn)橹恍璋惭b一套操作系統(tǒng)和服務(wù)器軟件,所以服務(wù)器實(shí)例需要打補(bǔ)丁的機(jī)會(huì)更少。而對(duì)于虛擬化服務(wù)器而言,每個(gè)虛擬機(jī)都擁有自己的客戶操作系統(tǒng)和服務(wù)器產(chǎn)品,都需要獨(dú)立的管理和打補(bǔ)丁。這兩種解決方案中,都要用到企業(yè)管理器和SQL Server Management Studio來(lái)執(zhí)行服務(wù)器管理任務(wù)。 而在部署和恢復(fù)方面,虛擬化技術(shù)則更有競(jìng)爭(zhēng)優(yōu)勢(shì)。通過(guò)虛擬化,構(gòu)建可以部署到新的服務(wù)器的基礎(chǔ)映像只需要短短幾分鐘的時(shí)間;而且,可以對(duì)虛擬鏡像進(jìn)行備份,或?qū)⑵鋸?fù)制到遠(yuǎn)程站點(diǎn),這樣在發(fā)生故障時(shí)能夠在幾分鐘甚至數(shù)秒中之內(nèi)恢復(fù)連線。 考慮到虛擬機(jī)的多操作系統(tǒng)和多SQL Server安裝問(wèn)題,另外還有一個(gè)需要衡量的因素就是使用許可。多 SQL server實(shí)例并不需要額外的 SQL server許可。SQL Server 2005企業(yè)版提供了多達(dá)50個(gè)實(shí)例,而不需要額外的許可費(fèi)用。在這種情況下,對(duì)于單個(gè)服務(wù)器,你只需要支付購(gòu)買一個(gè)Windows Server 操作系統(tǒng)、一個(gè)SQL Server以及客戶端訪問(wèn)許可的費(fèi)用即可。而對(duì)于虛擬化來(lái)說(shuō),你需要為各個(gè)虛擬機(jī)上的每個(gè) Windows Server操作系統(tǒng),以及每個(gè)安裝的SQL Server都分別支付許可費(fèi)用。也就是說(shuō),如果你運(yùn)行了5臺(tái)虛擬機(jī),而且每一個(gè)都包含了一套Windows Server和SQL Server的拷貝,那么你就要支付5個(gè)Windows Server許可、5個(gè) SQL Server許可以及相應(yīng)的客戶端訪問(wèn)許可費(fèi)用。不過(guò),Windows 2003 R2和Windows 2003企業(yè)版都支持4個(gè)Windows實(shí)例而不加收額外費(fèi)用。賣價(jià)最為昂貴的Windows 2003數(shù)據(jù)中心版則支持無(wú)限制的虛擬Windows實(shí)例。同樣的,SQL Server 2005以及2008企業(yè)版,提供了無(wú)限制的虛擬機(jī)使用許可。 所有權(quán)和責(zé)任也是值得三思的重要因素。運(yùn)行多SQL Server實(shí)例的責(zé)任通常會(huì)落在持有SQL Server系統(tǒng)的團(tuán)隊(duì)身上。而對(duì)于虛擬化,每個(gè)安裝了自己的操作系統(tǒng)和SQL Server的團(tuán)隊(duì)或部門都保留了自身的責(zé)任。
對(duì)于服務(wù)器整合計(jì)劃來(lái)說(shuō),這兩種都可能都是有效的解決方案,并不是非此即彼的選擇。你可以將SQL Server和虛擬化結(jié)合起來(lái),在一個(gè)虛擬機(jī)里運(yùn)行多SQL Server實(shí)例。不過(guò)請(qǐng)記住,即便虛擬化是當(dāng)今炙手可熱的技術(shù)也不意味著你就要單戀這一枝花。
