Storage area networks(SANs)使大量存儲量連接到服務器變得毫不費力。SANs對于SQL Server安裝特別有用。企業數據庫不僅僅只需要做大量的存儲,它們還有一些不斷增長存儲的需要。也就是說,你在聚集的SQLServer環境里使用SANs時需要非常注意。在這一技巧里我給你的這些建議當你在SAN上創建SQL Server群集時要牢記的。
1、獲得廠商詳細的調整指導
SANs創建的不盡相同。在你創建它之前你需要了解你自己的SAN,然后開始在它上面置入數據。例如,你必須知道如何準備磁盤以及廠商提供的說明書,這樣它們才能在Windows Server環境集群里正常運行。檢查一下你是否真正在聚集的環境里進行檢測。
例如,你可能不得不使用DISKPART.EXE工具(包括在Windows 2003服務包1中)來調整磁盤軌跡。Hewlett-Packard公司是一家提供存儲設備附帶詳細文檔的公司,這些文檔是關于如何對Windows Server 2003進行調整的。(通常會提到SANs上的"LUN offset")
2、盡可能使用RAID-10
這不是一則有關群集的具體的建議,但是它很重要。如果數據的完整性比價格要更重要,那就對SAN使用RAID-10。雖然它的價格進比較高,RAID-10仍被廣泛認為是最佳數據庫存儲檔案。
對于那些對RAID-10不熟悉的人來說,它就是"嵌套RAID,"或者一個RAID-0列是從一系列的RAID-1列中產生出來的。它還被說成是一條鏡子。RAID-10的確是一種非常有效的設置,它不僅能高度容錯,而且還支持快速寫作,這在數據庫中是非常重要的。
當你創建RAID-10系統時,在多個不同的鏡像spindles上置入數據數據并且登陸文檔不僅提高了你的速度,而且還增加了你的選擇權。physical spindles將數據傳送得越多,冗余就越多,并且你獲得的parallelism就越好。
RAID-5通常是針對數據庫的,但是RAID-5嘴適合只讀卷。當磁盤寫這一活動超過10%時,RAID-10在任意scenario上是運行得最好的可能有那里有大量的數據庫。因為這么多數據庫要用TB來計算。這時你甚至可能會想到RAID-100,它又增加了另一級別的nesting 和striping(也叫plaid RAID)。
3、Active/active and active/passive需要考慮的事項
一個 active/active (a/a)群集有兩個節點或服務器,它們同時都很活躍、平分負荷,相互映射對方的數據更新。如果一臺服務器離線了,另外一臺服務器就會接著工作。一個a/p方案就是一臺服務器不停運作,另外一臺隨時待命。如果主要的那臺服務器不運轉了,只需要進行備份。
有了a/a群集,每臺數據庫服務器都應該有自己的一套磁盤鏡像,這兩臺服務器不能共享同一個數據庫邏輯驅動。這樣一來很明顯就要貴得多,但是如果你想要得到最好的運行時間,那么這里增加所需磁盤的價格還是值得的。一些數據庫管理員甚至給每個群集的節點都提供了SAN。然而如果在節點之間數據復制的數量超過了在用戶之間來回傳送的數據的數量,那在同一個SAN 上設置a/a群集可能就更加有意義了(雖然是在不同的物理磁盤)。
有了a/p群集,你能跟輕松地讓數據庫共享磁盤或者是SAN集合。既然一臺數據庫服務器在任何時候都能起到作用,就沒有什么可以爭論的了。
4、保持群集之間的驅動器名一致
這是有關群集最詳細的建議,需要牢記。所有在一個群集中的主機節點必須是有著相同驅動器名稱的驅動器,所以要廣泛策劃你的驅動器名稱。集合起來的軟件能夠掌握能夠訪問具體設備的用戶信息,因此你不必擔心這種事情會發生,但是每個節點都必須對存儲持一致的意見。
5、不要嘗試來回遷移臨時數據庫
SQL Server臨時數據庫是失效轉移過程的一部份,需要作為共享文件來利用。不要來回遷移臨時數據庫。你可能認為你正在通過本地寄宿數據庫獲取SAN的帶寬,但是為了基本功能所用的費用并不值得。
6、僅通過映射驅動器進行備份
如果你正使用SAN存儲SQL Server備份,這些備份就應該通過映射驅動器名而不是通過UNC名稱運行。SQL Server群集失效轉移只能通過用Cluster Service Cluster Administrator登記的存儲設備來操作。,如果你操作失敗并需要通過群集里的共享設備登錄SQL Server備份的話,這一點就尤其重要。同樣在為你的備份設置驅動的時候也要記的第四點建議。