2014年1月27日 星期一

7個最佳實踐 SQL Server 執行在 Hyper-V 的方法

7個最佳實踐 SQL Server 執行在 Hyper-V 的方法


本篇文章主要由 SQL Server Magazine 的網站中轉貼過來,原始文章可以參考下列的原始網址。

作者對於Virtualize SQL Server的建置快速的成長並沒有很驚訝,尤其是Microsoft Hyper-V在虛擬化市場上的快速成長。Hyper-V是包含在Windows Server2008和Windwos Server 2008 R2之中,如何快速建置SQL Server在Hyper-V之上,下列將介紹7個實踐上最佳的實例給大家參考。

1、支援新的Second Level Address Translation的架構
由於目前Windows 2008支援 Second Level Address Translation (SLAT),所以可以有效的提升CPU與I/O等硬體整體的效能,讓SQL Server Database 運作的更加有效率,因為SLAT可以允許硬體將VM的記憶體對照到實體的記憶體上,而Inter稱為 Extended Page Tables-EPT, AMD稱為Rapid Virtualization Indexing-RVI. 基本上硬體上的對應會比軟體式的對應來的快,而且可以減少載入到Hypervisor中,並提供更好的可攜性。

SLAT補充:
支援處理器最新的第二階定址轉譯(Second Level Address Translation-SLAT)技術,從而提昇虛擬機器的效能;透過處理器核心暫停(Core Parking)的支援能力,讓運作中的虛擬機器得以耗用更少的電源。

2、更新至Windows Server 2008 R2 SP1
Windows Server 2008 R2 SP1提供許多對於VMs重要的改善,而且更重要的是支援Dynamic Memory。Dynamic Memory可以讓Hyper-V的主機上VM啟動時,自動的增加或減少記憶體的配置,這將可以提高可攜性和SQL Server執行在Hyper-V VMs上更多的效能提升。

3、使用多重路徑(Multi-Path) I/O
Multi-Path I/O (MPIO)是一個在Windows Server 2008和Windows Server 2008 R2上支援的新功能。他可以讓你建立多個不同的路徑在Hyper-V Hosts和SAN Storage之間。MPIO同時支援Fibre Channel和iSCSI Storage,能夠增加VM的可用性和改善SQL Server VMs的最大化 I/O 處理的效能。

4、安裝 Integration Services 在SQL Server VM之中
Hyper-V支援兩種的驅動程式,分別為模擬真實(Emulated)和虛擬(Synthetic),而虛擬的驅動程式的效能會比模擬真實的效能還要好。不過,如果你使用虛擬的驅動程式時,你必須安裝Integration Services元件,藉以提供OS與驅動程式之間的整合。

Integration Services說明:
http://trycatch.be/blogs/roggenk/archive/2008/10/23/hyper-v-integration-services-amp-virtual-services-consumers-vsc.aspx

PS:此處的Integration Services並非SQL Server中的SSIS,請不要誤會。

5、保留1GB的記憶體給Parent Partition(Hypervisor)
當你要進行環境的整合並將多個工作負載(機器)在同一台主機上,你必須最少保留1GB的記憶體給Windows Server去執行Parent Partition。這可以確認主機有足夠的記憶體空間執行不同VM,藉以減少頁面的置換,因為Partent Partition如有進行頁面置換時,將會造成VM的效能下降。

6、使用固定配置的VHDs在VM Storage
當你在建立一個VM時,你可以有兩個選擇建立Virtual Hard Disk(VHD),分別是Dynamic和Fixed。Dynamic VHDs適合在測式與開發的情境下,因為無法預估大約所需的空間,但是在效能上卻會比Fixed VHDs差。所以Fixed VHDs適合在正式或出貨的環境中而Pass-Through Disks是另一種選擇,藉以讓SQL Server獲得最大的效能,不過 Pass-Through Disks 不如VHDs來的彈性,但是他必須將Storage與VM單獨的綁在一起但只有提高比VHDs一點點的效能。

Pass-Through Disks說明:
Pass-Through Disk Access 其實這個不是VHD 的一種, 這能夠令Hyper-V 沒有VHD 下利用直接存取Physical Hard Disk工作, 而且沒有2040GB 限制. 但首先在disk managment 裡offline hard disk 才可以給Hyper-v 使用。

7、在OS、Database和Log Storage上,使用不同的 LUNs/VHDs
在一台實體的主機上,當你配置一個SQL Server在VM時,將OS與SQL Server放置在不同的VHDs上,可以改善效能,同樣的你也可以將Data File與Log File放置在不同的VHDs上。但前提是VHDs是放置不同的LUNs上透過不同的Disk,才會有效。

轉載自《CaryHsu - 學無止盡》