SQL Server AlwaysON从入门到进阶(1)——何为AlwaysON?
生活随笔
收集整理的這篇文章主要介紹了
SQL Server AlwaysON从入门到进阶(1)——何为AlwaysON?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文屬于SQL Server AlwaysON從入門到進階系列文章
本文原文出自Stairway to AlwaysOn系列文章。根據工作需要在學習過程中順帶翻譯以供參考。系列文章包含:
AlwaysOn是經常被誤解的一系列復雜技術的集合。本系列將介紹關于AlwaysOn的技術,并且如何把它用在高可用策略中,及如何用好AlwaysOn。在本節中,會先介紹一下幾個概念:AlwaysOn、Failover Cluster Instance(FCI)和Windows Server Failover Cluster(WSFC)。理解這些基礎概念能夠在日常運維過程中起到很大的作用。
WSFC(windows 故障轉移群集)是微軟高可用技術(HA)的核心組成部分。WSFC跟FCI、AlwaysOn相比,它更多的是Windows Server的一個功能,而后面兩個則是SQL Server的功能,同時,WSFC更加底層,在創建SQL Server?Failover Cluster Instance(FCI,SQL Server故障轉移群集實例)、SQL Server AlwaysOn 高可用組、其他如Exchange等高可用技術之前,都需要部署和配置WSFC。 WSFC可以把多臺計算機節點(純物理機、純虛擬機、物理機混合虛擬機)組合在一起并對外部應用程序提供高可用服務。服務器上的一個應用如SQL Server,可以運行在cluster的任何一個節點上,這種運行方式是通過cluster提供一個虛擬訪問點(由一個唯一IP地址和一個唯一機器名組成,或者“虛擬網絡名”)給客戶端程序作為鏈接方式。地址和虛擬名作為一個應用程序的“資源組”,在多個參與節點之間像令牌形式地被傳輸。當活動節點出現嚴重故障時,會使得活動節點停止對外服務。這時候集群服務會自動嘗試重啟當前節點或伙伴節點的資源組。 從高層次的角度來說,客戶端的訪問點是沿著故障轉移伙伴節點中的所有硬盤和服務起源傳輸的。一個已集群的實例在發生故障轉移時,會引發客戶端連接的斷開,然后在其他節點可用之后馬上重連。常見的引發故障轉移的故障有以下幾個:
對于FCI部署,計算機節點“必須”使用共享存儲,而對于常規的AlwaysOn可用組的部署,節點可以使用本地存儲,而不是必須使用共享存儲。雖然集群節點允許使用完全不同的硬件,但是最好還是統一配置,避免在故障轉移過程中發生負載不均衡從而無法承受故障節點的壓力使得轉移失敗。 但是,各節點必須使用相同的OS及補丁版本、網絡配置。另外對于集群最大節點數,根據不同的Windows Server版本不同而不同(2003 為8節點,2008為16節點,2012為64節點)。 穩定、健壯的Windows Server Failover Cluster需要嚴謹的設計、足夠的硬件支持和合適的操作系統版本。如果使用跨公網的集群也會增加集群設計、計劃和資源方面的開銷。 需要重點提醒的是,WSFC僅提供故障轉移功能,沒有提供負載均衡和橫向擴展功能,每個服務只能運行在一個節點上。 通常情況下,在大型多節點集群中,應用可能是跨子網的部署。在后續會看到,如果忽略了一些設置,會引起非必要的故障轉移,同時不要違反AlwaysOn可用組的限制策略。 WSFC需要某些形式的中介來控制集群資源所屬方。這個中介就是集群的仲裁。從Windows 2003 SP1開始,這個仲裁以節點投票并按多數服從少數的原則來維護。也可以使用如集群本地盤或多站點集群共享的遠程文件形式來添加額外的仲裁資源。從Windows Server 2012 開始,仲裁開始使用一個成為動態節點權重配置的功能來平衡集群在計劃內停機中避免不必要的故障切換過程,這部分在后續會繼續深入介紹。
上圖所示,一個兩節點的FCI中,SQL Server實例會使用WSFC節點都能可用的共享存儲作為SQL Server的存儲。通常這次存儲是在SAN中劃出來的LUNs,FCI的部署粗略分為兩步,后續將會深入介紹,這里只做簡介:在FCI的第一個節點上運行SQL Server安裝向導,并選擇“新的SQL Server 故障轉移群集安裝”。完成第一步之后,就可以開始第二步。 在WSFC的其他參與節點上運行SQL Server安裝向導并選擇“向SQL Server故障轉移群集添加節點”并完成安裝。 注意:雖然標準版限制了2節點的FCI,但是它不影響WSFC,僅在SQL Server層面限制。FCI有點像團隊接力過程。一個計算機節點運行這已群集的SQL Server應用程序及其配套資源,并向客戶端提供服務(持有接力棒)。一旦活動節點發生故障(接力棒掉了),伙伴節點會啟動并承接任務繼續(撿起接力棒)。
多年以來,故障轉移群集是SQL Server高可用的主要技術。當一個節點發生故障,其他節點會承接對客戶端的服務。AlwaysOn 繼承了WSFC技術,并提供更加彈性的高可用平臺。但是群集是在實例層面運作,而AlwaysOn是在庫層面運作。從SQL 2012開始引入的AlwaysOn可用組技術,通過預定義一組數據庫集合(可用組)并復制到只讀伙伴實例或副本中。每個節點都有AlwaysOn數據庫的同步副本,并且通過偵聽器進行訪問。 AlwaysOn可用組(下稱AG)需要1到多個次要副本來存放高可用數據庫的副本。這些次要數據庫要么是可讀的,要么是不可讀的。也可以同步或異步形式更新。異步副本僅支持手動強制故障轉移,而同步副本支持自動或手動故障轉移。 次要只讀副本可以配置成只支持只讀查詢,也可以使得次要副本成為成備份、維護操作的地方,從而減少主副本的壓力。 AlwaysOn依賴WSFC的核心功能來完成AO(AlwaysOn)的高可用功能,但是相對于FCI,它又在下面部分有所區別:
當配置了偵聽器之后,會在故障轉移群集中的應用程序\角色看到創建了一些資源:
本節介紹了三種SQL Server相關的核心高可用技術。我們使用WSFC作為基礎,并在此之上部署FCI或者AlwaysOn可用組。接下來會介紹使用FCI作為SQL Server的高可用技術演示,然后就是AlwaysOn可用組搭建。 下一節會介紹關于SQL Server高可用中存儲方面的內容。
本文原文出自Stairway to AlwaysOn系列文章。根據工作需要在學習過程中順帶翻譯以供參考。系列文章包含:
- SQL Server AlwaysON從入門到進階(1)——何為AlwaysON?
- SQL Server AlwaysON從入門到進階(2)——存儲
- SQL Server AlwaysON從入門到進階(3)——基礎架構
- SQL Server AlwaysON從入門到進階(4)——分析和部署Windows Server Failover Cluster
- SQL Server AlwaysON從入門到進階(5)——分析和部署Failover Cluster Instance
- SQL Server AlwaysON從入門到進階(6)——分析和部署AlwaysOn Availability Group
- SQL Server AlwaysON從入門到進階(7)——FCI和高可用組的組合使用
- SQL Server AlwaysON從入門到進階(8)——在AlwaysOn中隔離鏡像流量
前言:
AlwaysOn是經常被誤解的一系列復雜技術的集合。本系列將介紹關于AlwaysOn的技術,并且如何把它用在高可用策略中,及如何用好AlwaysOn。在本節中,會先介紹一下幾個概念:AlwaysOn、Failover Cluster Instance(FCI)和Windows Server Failover Cluster(WSFC)。理解這些基礎概念能夠在日常運維過程中起到很大的作用。
Windows Server Failover Cluster(WSFC):
WSFC(windows 故障轉移群集)是微軟高可用技術(HA)的核心組成部分。WSFC跟FCI、AlwaysOn相比,它更多的是Windows Server的一個功能,而后面兩個則是SQL Server的功能,同時,WSFC更加底層,在創建SQL Server?Failover Cluster Instance(FCI,SQL Server故障轉移群集實例)、SQL Server AlwaysOn 高可用組、其他如Exchange等高可用技術之前,都需要部署和配置WSFC。 WSFC可以把多臺計算機節點(純物理機、純虛擬機、物理機混合虛擬機)組合在一起并對外部應用程序提供高可用服務。服務器上的一個應用如SQL Server,可以運行在cluster的任何一個節點上,這種運行方式是通過cluster提供一個虛擬訪問點(由一個唯一IP地址和一個唯一機器名組成,或者“虛擬網絡名”)給客戶端程序作為鏈接方式。地址和虛擬名作為一個應用程序的“資源組”,在多個參與節點之間像令牌形式地被傳輸。當活動節點出現嚴重故障時,會使得活動節點停止對外服務。這時候集群服務會自動嘗試重啟當前節點或伙伴節點的資源組。 從高層次的角度來說,客戶端的訪問點是沿著故障轉移伙伴節點中的所有硬盤和服務起源傳輸的。一個已集群的實例在發生故障轉移時,會引發客戶端連接的斷開,然后在其他節點可用之后馬上重連。常見的引發故障轉移的故障有以下幾個:
- 公用網卡或網絡故障
- 電源故障
- 主板故障
- CPU故障
對于FCI部署,計算機節點“必須”使用共享存儲,而對于常規的AlwaysOn可用組的部署,節點可以使用本地存儲,而不是必須使用共享存儲。雖然集群節點允許使用完全不同的硬件,但是最好還是統一配置,避免在故障轉移過程中發生負載不均衡從而無法承受故障節點的壓力使得轉移失敗。 但是,各節點必須使用相同的OS及補丁版本、網絡配置。另外對于集群最大節點數,根據不同的Windows Server版本不同而不同(2003 為8節點,2008為16節點,2012為64節點)。 穩定、健壯的Windows Server Failover Cluster需要嚴謹的設計、足夠的硬件支持和合適的操作系統版本。如果使用跨公網的集群也會增加集群設計、計劃和資源方面的開銷。 需要重點提醒的是,WSFC僅提供故障轉移功能,沒有提供負載均衡和橫向擴展功能,每個服務只能運行在一個節點上。 通常情況下,在大型多節點集群中,應用可能是跨子網的部署。在后續會看到,如果忽略了一些設置,會引起非必要的故障轉移,同時不要違反AlwaysOn可用組的限制策略。 WSFC需要某些形式的中介來控制集群資源所屬方。這個中介就是集群的仲裁。從Windows 2003 SP1開始,這個仲裁以節點投票并按多數服從少數的原則來維護。也可以使用如集群本地盤或多站點集群共享的遠程文件形式來添加額外的仲裁資源。從Windows Server 2012 開始,仲裁開始使用一個成為動態節點權重配置的功能來平衡集群在計劃內停機中避免不必要的故障切換過程,這部分在后續會繼續深入介紹。
Failover Cluster Instances(故障轉移群集實例):
Failover Cluster Instance of SQL Server(FCI)在過去很長時間都是SQL Server的常用高可用技術。SQL Server FCI可以在集群的任何可用節點之間進行故障轉移。其唯一缺點就是存儲。由于需要使用共享存儲,所以存儲子系統就成了單點故障的風險點。 FCI是一個安裝在WSFC上的SQL Server 實例,不管是默認實例還是命名實例。這個實例最少需要下面的資源:- IP地址
- 網絡名
- 共享硬盤(N個)
- SQL Server 服務
- SQL Server 代理服務
上圖所示,一個兩節點的FCI中,SQL Server實例會使用WSFC節點都能可用的共享存儲作為SQL Server的存儲。通常這次存儲是在SAN中劃出來的LUNs,FCI的部署粗略分為兩步,后續將會深入介紹,這里只做簡介:
AlwaysOn Availability Groups(AlwaysOn可用組):
多年以來,故障轉移群集是SQL Server高可用的主要技術。當一個節點發生故障,其他節點會承接對客戶端的服務。AlwaysOn 繼承了WSFC技術,并提供更加彈性的高可用平臺。但是群集是在實例層面運作,而AlwaysOn是在庫層面運作。從SQL 2012開始引入的AlwaysOn可用組技術,通過預定義一組數據庫集合(可用組)并復制到只讀伙伴實例或副本中。每個節點都有AlwaysOn數據庫的同步副本,并且通過偵聽器進行訪問。 AlwaysOn可用組(下稱AG)需要1到多個次要副本來存放高可用數據庫的副本。這些次要數據庫要么是可讀的,要么是不可讀的。也可以同步或異步形式更新。異步副本僅支持手動強制故障轉移,而同步副本支持自動或手動故障轉移。 次要只讀副本可以配置成只支持只讀查詢,也可以使得次要副本成為成備份、維護操作的地方,從而減少主副本的壓力。 AlwaysOn依賴WSFC的核心功能來完成AO(AlwaysOn)的高可用功能,但是相對于FCI,它又在下面部分有所區別:
- 共享硬盤
- 共享IP地址
- 共享網絡名
- 共享的SQL Server和SQL Server代理資源
AlwaysOn Listener(AlwaysOn偵聽器):
當配置了偵聽器之后,會在故障轉移群集中的應用程序\角色看到創建了一些資源:
- 虛擬IP地址
- 虛擬網絡名
結論:
本節介紹了三種SQL Server相關的核心高可用技術。我們使用WSFC作為基礎,并在此之上部署FCI或者AlwaysOn可用組。接下來會介紹使用FCI作為SQL Server的高可用技術演示,然后就是AlwaysOn可用組搭建。 下一節會介紹關于SQL Server高可用中存儲方面的內容。
術語表:
AO(AlwaysOn availability group) | AlwaysOn 高可用組 |
FCI(Failover cluster instance of SQL Server) | SQL Server故障轉移集群實例 |
TCP/IP | 傳輸控制協議/因特網互聯協議。 |
OS/NOS | 網絡操作系統 |
WSFC(Windows Server failover cluster) | Windows故障轉移群集 |
LAN(Local area network) | 局域網 |
WAN(Wide area network) | 廣域網 |
DNS(Domain name system) | 域名系統 |
DHCP | 動態主機設定協定 |
IP Address | IP地址 |
AD(Active Directory) | Windows活動目錄 |
DR(Disaster recovery) | 災難恢復 |
SPF(Single point of failure) | 單點故障 |
SCSI(Small computer systems interface) | 小型計算機系統接口 |
iSCSI(Internet Small computer systems interface) | 互聯網小型計算機系統接口 |
FC(Fibre channel) | 光纖 |
Replica | 副本,SQL Server AlwaysOn可用組中,參與到AlwaysOn的SQL Server實例 |
總結
以上是生活随笔為你收集整理的SQL Server AlwaysON从入门到进阶(1)——何为AlwaysON?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AlwaysOn实现主从切换
- 下一篇: SQL Server关于AlwaysOn