SIOS SANless clusters

SIOS SANless clusters High-availability Machine Learning monitoring

  • Home
  • 產品
    • SIOS DataKeeper for Windows
    • SIOS Protection Suite for Linux
  • 新闻与活动
  • 伺服器集群简单化
  • 成功案例
    • 台灣成功案例
  • 聯繫我們
  • English
  • 中文 (中国)
  • 中文 (台灣)
  • 한국어
  • Bahasa Indonesia
  • ไทย

Google雲平台中的Sanless SQL Server故障轉移群集實例

7 9 月, 2018 by Jason Aw Leave a Comment

如何在谷歌云平台上構建一個sanless sql server故障轉移群集實例

如何在Google Cloud Platform中構建Sanless SQL Server故障轉移群集實例

如果您要在Google Cloud Platform(GCP)上託管SQL Server,您需要確保它具有高可用性。最好和最經濟的方法之一是在Google Cloud Platform中構建一個Sanless SQL Server故障轉移群集實例。

成本效益

由於SQL Server Standard Edition支持故障轉移群集,因此我們可以避免與永遠在線可用性組所需的SQL Server Enterprise Edition相關的成本。此外,SQL Server故障轉移群集是一種更強大的解決方案,因為它可以保護整個SQL Server實例。它在DTC(分佈式事務處理協調器)支持方面沒有限制,並且更易於管理。此外,它支持您可能仍然擁有的早期版本的SQL Server,例如SQL 2012到最新的SQL 2017。遺憾的是,由於缺乏對跨子網故障轉移的支持,因此不支持SQL 2008 R2。

與SIOS Datakeeper有何不同?

傳統上,SQL Server FCI要求您擁有SAN或某種類型的共享存儲設備。在雲中,沒有群集感知共享存儲。代替SAN,我們將使用SIOS DataKeeper Cluster Edition(DKCE)構建SANless集群。DKCE使用塊級複製來確保每個實例上的本地連接存儲保持彼此同步。它還通過稱為DataKeeper Volume的自己的存儲類資源與Windows Server Failover Clustering集成,後者取代了物理磁盤資源。就集群而言,SIOS DataKeeper卷看起來像物理磁盤,而不是控制SCSI保留。它控製鏡像方向,確保只有活動服務器寫入磁盤,並且被動服務器同步或異步接收所有更改。

Google雲平台中的Sanless SQL Server故障轉移群集實例入門

在本指南中,我們將介紹在同一區域中的兩個實例之間構建雙節點故障轉移群集的步驟,但是在GCP內的不同區域中,如圖1所示。Google雲平台中的Sanless SQL Server故障轉移群集實例 要了解有關Sanless SQL Server故障轉移群集實例的更多信息,請訪問https://us.sios.com/sios-resources/white-paper-build-sql-server-failover-cluster-gcp/了解有關SIOS DataKeeper的更多信息經Clusteringformeremortals.com許可轉載

Filed Under: Datakeeper, 伺服器集群简单化

在Azure中部署2節點文件服務器故障轉移群集

22 8 月, 2018 by Jason Aw Leave a Comment

使用SIOS Datakeeper在Azure IAAS中部署高可用性文件服務器

使用SIOS DataKeeper在Azure IAAS(ARM)中部署高可用性文件服務器

在本文中,我們將詳細介紹使用Azure Resource Manager在Azure的單個區域中在Azure中部署雙節點文件服務器故障轉移群集所需的特定步驟。我將假設您熟悉基本的Azure概念以及基本的故障轉移群集概念。在本文中,我們將介紹在Azure中部署文件服務器故障轉移群集的獨特之處。使用DataKeeper Cluster Edition,您可以獲取本地連接的存儲,無論是高級存儲還是標準磁盤,並在兩個或多個集群節點之間同步,異步或混合或同時復制這些磁盤。此外,DataKeeper Volume資源在Windows Server故障轉移群集中註冊,該資源取代了物理磁盤資源。DataKeeper Volume不是像物理磁盤資源那樣控制SCSI-3保留,而是控製鏡像方向,確保活動節點始終是鏡像源。就故障轉移群集而言,它的外觀,感覺和氣味就像物理磁盤一樣,其使用方式與物理磁盤資源的使用方式相同。

在Azure中部署雙節點文件服務器故障轉移群集的先決條件

  • 您之前使用過Azure Portal,並且很樂意在Azure IaaS中部署虛擬機。
  • 已獲得SIOS DataKeeper的許可證或eval許可證

使用Azure門戶部署文件服務器故障轉移群集實例

要在Azure中部署雙節點文件服務器故障轉移群集,我們假設您擁有基於Azure資源管理器的基本虛擬網絡,並且至少有一個虛擬機已啟動並運行並配置為域控制器。配置虛擬網絡和域後,您將配置兩個新虛擬機,它們將充當群集中的兩個節點。我們的環境將如下所示:DC1 – 我們的域控制器和文件共享見證SQL1和SQL2 – 我們的文件服務器群集的兩個節點

配置兩個群集節點(SQL1和SQL2)

使用Azure門戶,我們將以完全相同的方式配置SQL1和SQL2。有多種選擇可供選擇,包括實例大小,存儲選項等。本指南並不是在Azure中部署服務器的詳盡指南,因為有一些非常好的資源,每天都有更多的資源發布。但是,在創建實例時要記住幾個關鍵事項,尤其是在群集環境中。可用性集 – SQL1,SQL2和DC1都位於同一可用性集中非常重要。通過將它們放在相同的可用性集中,我們確保每個群集節點和文件共享見證駐留在不同的故障域和更新域中。這有助於確保在計劃維護和計劃外維護期間,群集將繼續能夠維持法定人數並避免停機。在Azure中部署2節點文件服務器故障轉移群集 圖3 – 確保將群集節點和文件共享見證添加到同一可用性集

靜態IP地址

配置每個VM後,您將需要進入設置並更改設置,以使IP地址為靜態。我們不希望更改群集節點的IP地址。在Azure中部署2節點文件服務器故障轉移群集 圖4 – 確保每個群集節點都使用靜態IP

存儲

就存儲而言,您將需要參考Azure虛擬機中SQL Server的性能最佳實踐。在任何情況下,您至少需要為每個群集節點添加至少一個額外的磁盤。DataKeeper可以使用基本磁盤,高級存儲甚至是存儲池中包含多個磁盤的存儲池。只需確保為每個群集節點添加相同數量的存儲並以相同方式對其進行配置。此外,請確保為每個虛擬機使用不同的存儲帳戶,以確保一個存儲帳戶的問題不會同時影響兩個虛擬機。在Azure中部署2節點文件服務器故障轉移群集 圖5 – 確保為每個群集節點添加額外的存儲

創建群集

假設已按上述方式配置了兩個群集節點(SQL1和SQL2)並將其添加到現有域中,我們就可以創建群集了。在創建群集之前,需要啟用一些功能。這些功能是.Net Framework 3.5和故障轉移群集。需要在兩個群集節點上啟用這些功能。您還需要啟用FIle服務器角色。在Azure中部署2節點文件服務器故障轉移群集 圖6 – 在兩個群集節點上啟用.Net Framework 3.5和故障轉移群集功能以及文件服務器一旦啟用了該角色和這些功能,您就可以構建群集了。我要向您展示的大多數步驟都可以通過PowerShell和GUI執行。但是,我將建議您在第一步中使用PowerShell創建群集。如果您選擇使用故障轉移群集管理器GUI來創建群集,您會發現群集正在發出重複的IP地址。

要注意的細節

在不詳細介紹的情況下,您會發現Azure VM必須使用DHCP。通過在Azure門戶中創建VM時指定“靜態IP”,我們所做的就是創建一種DHCP預留。它不完全是DHCP保留,因為真正的DHCP保留會從DHCP池中刪除該IP地址。相反,在Azure門戶中指定靜態IP只是意味著如果VM請求它時該IP地址仍然可用,Azure將向其發出該IP。但是,如果您的VM處於脫機狀態且另一台主機在同一子網中聯機,則可能會發出相同的IP地址。Azure實施DHCP的方式還有另一個奇怪的副作用。在主機使用DHCP(必須使用DHCP)時使用Windows Server Failover Cluster GUI創建群集時,無法指定群集IP地址。相反,它依靠DHCP來獲取地址。奇怪的是,DHCP將發出重複的IP地址,通常與請求新IP地址的主機具有相同的IP地址。群集通常會完成,但您可能會遇到一些奇怪的錯誤,您可能需要從其他節點運行Windows Server Failover Cluster GUI才能運行它。一旦運行它,您將需要將群集IP地址更改為網絡上當前未使用的地址。

避免混亂

只需通過Powershell創建集群並指定集群IP地址作為PowerShell命令的一部分來創建集群,就可以避免這種混亂。您可以使用New-Cluster命令創建集群,如下所示:

New-Cluster -Name cluster1 -Node sql1,sql2 -StaticAddress 10.0.0.101 -NoStorage

群集創建完成後,您還需要運行以下命令來運行群集驗證:

測試群集

在Azure中部署2節點文件服務器故障轉移群集 圖7 – 集群創建的輸出和集群驗證命令

創建文件共享見證

由於沒有共享存儲,因此您需要在與兩個群集節點相同的可用性集中的另一台服務器上創建文件共享見證。通過將其置於相同的可用性集中,您可以確保在任何給定時間僅從您的法定人數中失去一票。如果您不確定如何創建文件共享見證,可以查看本文http://www.howtonetworking.com/server/cluster12.htm。在我的演示中,我將文件共享見證放在域控制器上。我已經在https://blogs.msdn.microsoft.com/microsoft_press/2014/04/28/from-the-mvps-understanding-the-windows-server-failover-cluster-quorum-上發布了對群集仲裁的詳盡解釋。在窗口服務器-2012-R2 /

安裝DataKeeper

創建集群後,就可以安裝DataKeeper了。在創建初始群集後安裝DataKeeper非常重要,這樣可以向群集註冊自定義群集資源類型。如果在創建群集之前安裝了DataKeeper,則只需再次運行安裝並執行修復安裝。在Azure中部署2節點文件服務器故障轉移群集 圖8 – 創建集群後安裝DataKeeper在安裝過程中,您可以使用所有默認選項。 您使用的服務帳戶必須是域帳戶,並且位於群集中每個節點上的本地管理員組中。在Azure中部署2節點文件服務器故障轉移群集 圖9 – 服務帳戶必須是每個節點上Local Admins組中的域帳戶一旦在每個節點上安裝DataKeeper並獲得許可,您將需要重新啟動服務器。

創建DataKeeper卷資源

要創建DataKeeper Volume Resource,您需要啟動DataKeeper UI並連接到這兩個服務器。在Azure中部署2節點文件服務器故障轉移群集 連接到SQ在Azure中部署2節點文件服務器故障轉移群集L1連接到S在Azure中部署2節點文件服務器故障轉移群集QL2連接到每個服務器後,您就可以創建DataKeeper捲了。右鍵單擊Jobs並選擇“Creat在Azure中部署2節點文件服務器故障轉移群集e Job”為作業命名和描述。在Azure中部署2節點文件服務器故障轉移群集 選擇源服務器,IP和卷。IP地址是複制流量是否會傳播。在Azure中部署2節點文件服務器故障轉移群集 選擇目標服務器。在Azure中部署2節點文件服務器故障轉移群集 選擇你的選擇。對於兩個VM位於同一地理區域的目的,我們將選擇同步複製。對於更長距離的複制,您將需要使用異步並啟用一些壓縮。在Azure中部署2節點文件服務器故障轉移群集 通過在上次彈出窗口中單擊“是”,您將在故障轉移群集中的可用存儲中註冊新的DataKeeper卷資源。您將在可用存儲中看到新的DataKeeper卷資源。在Azure中部署2節點文件服務器故障轉移群集

創建文件服務器群集資源

要創建文件服務器群集資源,我們將再次使用Powershell而不是故障轉移群集接口。原因在於,再次因為虛擬機配置為使用DHCP,基於GUI的嚮導不會提示我們輸入群集IP地址,而是發出重複的IP地址。為避免這種情況,我們將使用簡單的powershell命令創建FIle Server群集資源並指定IP地址

Add-ClusterFileServerRole -Storage“DataKeeper Volume E” 
-Name FS2 -StaticAddress 10.0.0.201

記下您在此處指定的IP地址。它必須是網絡上唯一的IP地址。我們稍後在創建內部負載均衡器時將使用相同的IP地址。

創建內部負載均衡器

以下是Azure中的故障轉移群集與傳統基礎結構的不同之處。Azure網絡堆棧不支持免費ARPS。 客戶端無法直接連接到群集IP地址。相反,客戶端連接到內部負載平衡器並重定向到活動群集節點。我們需要做的是創建一個內部負載均衡器。這可以通過Azure門戶完成,如下所示。首先,創建一個新的Load 在Azure中部署2節點文件服務器故障轉移群集Balancer如果您的客戶端通過公共Internet連接,您可以使用公共負載均衡器,但假設您的客戶端位於同一個vNet中,我們將創建一個內部負載均衡器。需要注意的重要一點是,虛擬網絡與群集節點所在的網絡相同。此外,您指定的專用IP地址將與用於創建SQL群集資源的地址完全相同。在Azure中部署2節點文件服務器故障轉移群集 創建內部負載均衡器(ILB)後,您需要對其進行編輯。我們要做的第一件事就是添加一個後端池。通過此過程,您將選擇SQL Cluster VM所在的可用性集。但是,當您選擇要添加到後端池的實際VM時,請確保不要選擇文件共享見證。我們不希望將SQL流量重定向到您的文件共享見證。在Azure中部署2節點文件服務器故障轉移群集 在Azure中部署2節點文件服務器故障轉移群集 接下來我們要做的就是添加一個Probe。我們添加的探針將探測端口59999。此探針確定群集中哪個節點處於活動狀態。在Azure中部署2節點文件服務器故障轉移群集 最後,我們需要一個負載平衡規則來重定向SMB流量,TCP端口445。在下面的屏幕截圖中需要注意的重要事項是直接服務器返回已啟用。確保你做出改變。在Azure中部署2節點文件服務器故障轉移群集

修復文件服務器IP資源

幾乎可以在Azure中部署2節點文件服務器故障轉移群集!配置的最後一步是在其中一個群集節點上運行以下PowerShell腳本。這將允許群集IP地址響應ILB探測並確保群集IP地址和ILB之間不存在IP地址衝突。請注意;您需要編輯此腳本以適合您的環境。子網掩碼設置為255.255.255.255,這不是錯誤,保持原樣。這將創建一個特定於主機的路由,以避免與ILB發生IP地址衝突。

#定義變量
$ ClusterNetworkName =“” 
#群集網絡名稱 
(在更高版本的Windows Server 2012上使用Get-ClusterNetwork查找名稱)
$ IPResourceName =“” 
#IP地址資源名稱 
$ ILBIP =“” 
#內部負載均衡器的IP地址(ILB)
導入模塊FailoverClusters
#如果您使用的是Windows Server 2012或更高版本:
Get-ClusterResource $ IPResourceName | SET-ClusterParameter 
-Multiple @ {Address = $ ILBIP; ProbePort = 59999; SubnetMask =“255.255.255.255”;
網絡= $ ClusterNetworkName; EnableDHCP時= 0}
#如果您使用的是Windows Server 2008 R2,請使用以下命令: 
#cluster res $ IPResourceName / priv enabledhcp = 0 address = $ ILBIP probeport = 59999  
子網掩碼= 255.255.255.255

創建文件共享

您會發現在故障轉移群集管理器中使用文件共享嚮導不起作用。相反,您只需在活動節點上的Windows資源管理器中創建文件共享。故障轉移群集會自動獲取這些共享並將其放入群集中。請注意,此配置不支持文件共享的“連續可用性”選項。

結論

您已設法在Azure中部署雙節點文件服務器故障轉移群集。  如果您有任何問題,請通過Twitter @daveberm聯繫我,我很樂意提供幫助。如果您需要DataKeeper評估密鑰,請填寫http://us.sios.com/clustersyourway/cta/14-day-trial上的表格,SIOS將發送一份發送給您的評估密鑰。經Clusteringformeremortals.com許可轉載

Filed Under: Datakeeper, 伺服器集群简单化

SQL Server標準版的災難恢復

12 8 月, 2018 by Jason Aw Leave a Comment

SQL Server Standard Edition的災難恢復

將雙節點SQL Server 2012/2014標準版群集複製到第三台服務器以進行災難恢復

使用SIOS DataKeeper Cluster Edition可以對SQL Server Standard Edition進行災難恢復。就是這樣。由於SQL Server Enterprise Edition的成本,許多人發現自己已經開始使用SQL Server Standard Edition。SQL Server標準版具有許多相同的功能,但它有一些限制。一個限制是它不支持AlwaysOn可用性組。此外,它僅支持群集中的兩個節點。由於數據庫鏡像已被棄用且僅支持標準版中的同步複製,因此您實際上具有有限的災難恢復選項。

SQL Server Standard Edition的災難恢復

其中一個選項是SIOS DataKeeper Cluster Edition。DataKeeper將與您現有的共享存儲群集配合使用。該軟件允許您使用同步或異步複製將其擴展到第3個節點。如果您使用的是SQL Server Enterprise,只需將該第3個節點添加為真正的多站點群集的另一個群集成員即可。但是,由於我們討論的是SQL Server Standard Edition,因此無法將第3個節點直接添加到群集中。好消息是DataKeeper將允許您將數據複製到第三個節點,以便您的數據受到保護。SQL Server Standard Edition的災難恢復意味著您將使用DataKeeper將第3個節點作為鏡像源聯機。接下來,使用SQL Server Management Studio裝載複製卷上的數據庫。您的客戶還需要重定向到第3個節點。但它是一種非常具有成本效益的解決方案,具有出色的RPO和合理的RTO。SIOS文檔討論瞭如何為SQL Server Standard Edition執行災難恢復。在這裡,我總結了一些客戶最近的步驟。

組態

  • 停止SQL資源
  • 從SQL群集資源中刪除物理磁盤資源
  • 從可用存儲中刪除物理磁盤
  • SECONDARY服務器上的在線物理磁盤。添加驅動器號(如果沒有)
  • 運行emcmd。setconfiguration <驅動器號> 256並重新引導輔助服務器。這將導致SECONDARY服務器阻止訪問E驅動程序。這是一個重要的步驟,因為您不希望兩台服務器同時訪問E驅動器,如果您可以避免它。
  • 在PRIMARY服務器上聯機磁盤
  • 如果需要,添加驅動器號
  • 創建從主服務器到DR的DataKeeper鏡像您可能需要等待一分鐘才能在所有服務器上的DataKeeper服務器概述報告中顯示E驅動器,然後才能正確創建鏡像。如果操作正確,您將創建一個從PRIMARY到DR的鏡像。 作為該過程的一部分,DataKeeper將詢問您共享您正在復制的捲的SECONDARY服務器。

在災難中……

在DR NODE上

  • 運行EMCMD。switchovervolume <驅動器號>
  • 第一次確保SQL Service帳戶具有對所有數據和日誌文件的讀/寫訪問權限。您第一次嘗試裝入數據庫時必須明確授予此訪問權限。
  • 使用SQL Management Studio裝入數據庫
  • 將所有客戶端重定向到DR站點中的服務器。更好的是,預先配置駐留在DR站點中的應用程序指向DR站點中的SQL Server實例。

災難結束後

  • 重新啟動主站點中的服務器(PRIMAY,SECONDARY)
  • 等待鏡像達到鏡像狀態
  • 確定哪個節點是以前的源(以管理員身份運行PowerShell)get-clusterresource -Name“<DataKeeper Volume Resource name>”|得到-clusterparameter
  • 確保群集中沒有DataKeeper卷資源在線
  • 在一個群集節點上啟動DataKeeper GUI。解決任何裂腦情況(很可能沒有),確保在任何裂腦恢復過程中選擇DR節點作為源
  • 在報告為上一個源的節點上運行EMCMD。switchovervolume <驅動器號>
  • 在故障轉移群集管理器中使SQL Server聯機

上述步驟假設您在所有三台服務器(PRIMARY,SECONDARY,DR)上安裝了SIOS DataKeeper Cluster Edition。PRIMARY和SECONDARY是一個雙節點共享存儲集群。您正在將數據複製到DR,這只是一個獨立的SQL Server實例(不是群集的一部分),只有本地附加存儲。災難恢復服務器將具有與共享群集卷大小和驅動器號相同的捲。這項工作相當不錯,如果您沒有配置自己的災難恢復站點,甚至可以讓您複製到雲中的目標。如果要完全消除SAN,還可以使用所有復制存儲構建相同的配置。這是一個很好的短視頻,演示了SQL Server Standard Edition的災難恢復的一些可能配置。 http://videos.us.sios.com/medias/aula05u2fl經Clusteringformeremortals.com許可轉載

Filed Under: Datakeeper, 伺服器集群简单化 Tagged With:  

使用DataKeeper配置Sanless Hyper-V故障轉移群集

19 2 月, 2018 by Jason Aw Leave a Comment

使用DataKeeper配置Sanless Hyper-V故障轉移群集

關於SANLess的問題

問:什麼是SANLess集群?
答:它是一個使用本地存儲而不是SAN的集群。

問:為什麼我要配置Sanless Hyper-V故障轉移群集?
答:有幾個原因:

  • 消除SAN的成本
  • 消除SAN作為單點故障
  • 利用高速存儲選項,例如Fusion-io ioDrives和其他本地插入的高速存儲設備
  • 跨地理位置拉伸集群以進行災難恢復
  • 簡化管理
  • 無需SAN管理員

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集非常簡單

如果您知道有關Windows Server故障轉移群集的任何信息,那麼您已經知道99%的解決方案。如果您之前從未構建過Windows Server故障轉移群集,則無需擔心。微軟已經輕鬆無痛。對於初學者,我已經寫了一篇分步文章,告訴您如何在我的博客文章中構建Windows Server 2012 #SANLess集群。

製作高可用虛擬機的兩個選項

如果您已按照我的文章中的步驟操作,則可以開始創建第一個高度可用的虛擬機。第一個選項假定您有一個現有的虛擬機,您想使其具有高可用性。 第二個選項假設您正在構建高度可用的虛擬機。

配置DataKeeper卷群集資源

SANLess Hyper-V群集每卷需要一個VM。因此,您需要確保對存儲進行分區,以便為每個VM分配足夠的捲。每個群集節點上的存儲應該按照驅動器號和分區大小進行相同的配置。正確配置分區,並且VM駐留在要復制的分區上。然後,打開DataKeeper接口並完成三步嚮導以創建DataKeeper Volume Resources,如下所示。

首先,打開DataKeeper界面並點擊連接到服務器。這樣做兩次以連接到兩台服務器。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

連接完成後,單擊“創建作業”以創建包含要高度可用的虛擬機的捲的鏡像,如下所示。在這個例子中,我們將鏡像E驅動器。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

只要有可能,請在專用網絡上保留複製流量。在這種情況下,我們將10.0.0.0/8網絡用於復制流量。這可以是一個簡單的修補程序電纜,通過兩個未使用的NIC連接兩台服務器。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

最後的屏幕顯示可用於鏡像的選項。對於局域網,同步鏡像是首選。在廣域網上進行複制時,您需要使用異步複製並可能啟用壓縮。我不會限制最大帶寬。因為如果您的更改速率(磁盤右字節/秒)超過指定的最大帶寬,可能會導致鏡像不同步。但是,您可能希望在初始鏡像創建過程中暫時啟用最大帶寬。否則,DataKeeper可能會使用初始復制流量氾濫網絡,因為它會盡可能快地同步。創建鏡像後,可以調整最大帶寬和壓縮設置。但是,一旦創建鏡像而不刪除鏡像並重新創建鏡像,就不能在同步鏡像和異步鏡像之間切換。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

在鏡像創建過程結束時,您會看到一個彈出窗口,詢問您是否要將此卷自動註冊為群集卷。選擇是,這將在故障轉移群集可用存儲中創建一個DataKeeper卷資源。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

您現在已準備好創建高度可用的虛擬機。

選項1 – 對現有VM進行群集

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

再次,此過程假定您有一個現有的虛擬機,您想使其具有高可用性。如果您沒有現有的虛擬機,則需要按照選項2 – 創建高可用性虛擬機中的過程進行操作。否則,如下所示,查看Hyper-V管理器時應該有一個虛擬機。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

所有虛擬機文件應該已經位於復製卷上,如下所示。如果沒有,則在嘗試群集VM之前,您將不得不重新定位文件。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

要開始群集過程,請打開故障轉移群集管理器。右鍵單擊Configure Roles並選擇虛擬機作為您想要創建的角色。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

這將啟動高可用性嚮導。此時,您應該選擇要群集的虛擬機,然後逐步執行嚮導,如下所示。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

您會看到虛擬機資源將被創建,但會有一些警告。警告表明E驅動器當前不是VM群集資源組的一部分。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

要使DataKeeper Volume E成為VM Cluster Resource Group的一部分,請右鍵單擊該角色並選擇Add Storage。添加您將看到的可用磁盤中列出的DataKeeper卷。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

最後一部分是選擇虛擬機配置(而不是虛擬機)資源的屬性,並使其依賴於剛添加到資源組的存儲。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

您現在應該能夠啟動虛擬機。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

選項2-從頭開始創建高可用性虛擬機

假設您想從頭開始創建高可用性虛擬機,則可以從Hyper-V虛擬機管理器完成整個過程,如下所示。此步驟假定您已經使用DataKeeper創建了E驅動器的鏡像,如配置DataKeeper卷資源部分中所述。

要開始,請打開故障轉移群集管理器並右鍵單擊角色並選擇虛擬機 – 新建虛擬機。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

按照嚮導的步驟進行操作,並選擇要用於VM的選項。選擇放置VM的位置時,請選擇當前是可用存儲的所有者的群集節點。它也將成為鏡子的來源。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

確保在指定VM的名稱和位置時,選擇複製卷的位置。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

其餘選項取決於你。只要確保VHD文件位於復製卷上。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

您將看到創建了高可用性虛擬機,但存在有關存儲的警告。您需要將DataKeeper卷資源添加到VM群集資源組,如下所示。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

將DataKeeper卷添加到VM群集資源組後,添加DataKeeper卷作為虛擬機配置資源的依賴項。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

您現在擁有高度可用的虛擬機。

使用DataKeeper Cluster Edition配置Sanless Hyper-V故障轉移群集

概要

在這篇博客文章中,我們討論了構成#SANLess集群的內容。我們選擇了SIOS DataKeeper來配置Sanless Hyper-V故障轉移群集。一旦構建完成,群集的行為與基於SAN的群集完全相同,這包括在發生意外故障時能夠進行實時遷移,快速遷移和自動故障轉移。

#SANLess集群消除了SAN的開支以及SAN的單點故障。DataKeeper Cluster Edition支持SAN中的多個節點。因此,延伸局域網和廣域網的配置都是Hyper-V高可用性和災難恢復的可能解決方案。DataKeeper支持任何本地存儲。這為使用高速本地連接的SSD或NAND Flash存儲提供了高性能而不放棄高可用性的可能性。

如果您喜歡閱讀配置Sanless Hyper-V故障轉移群集的技巧,請在此處閱讀有關群集的更多信息

經https://clusteringformeremortals.com/2014/03/04/configuring-a-sanless-hyper-v-failover-cluster-with-datakeeper-cluster-edition/許可報告

Filed Under: Datakeeper, 伺服器集群简单化 Tagged With: Microsoft Windows Server故障轉移群集

使用DataKeeper創建SQL Server 2014故障轉移群集實例

15 2 月, 2018 by Jason Aw Leave a Comment

使用DataKeeper創建SQL Server 2014故障轉移群集實例

更新 – 由於引入了新功能,我已經更新了關於在Azure上部署SQL Server群集的指導。最新文章可以在這裡找到:https://clusteringformeremortals.com/2015/01/01/step-by-step-how-to-configure-a-sql-server-failover-cluster-instance-fci-in-微軟天青-的IaaS-SQLSERVER-天青-sanless /

這是Windows Azure中高可用性和災難恢復系列的第3篇文章。本文包含在不同故障域中的兩個群集節點之間的Windows Azure IaaS雲中實施Windows Server故障轉移群集的分步說明。雖然本文重點介紹如何構建SQL Server 2014故障轉移群集實例,但您只需對以下步驟進行一些小的調整即可保護任何群集感知應用程序。在下一篇文章中,我將向您展示如何將此群集擴展到不同數據中心中的第三個節點,以實現非常強大的災難恢復計劃。由於Azure沒有集群存儲選項,因此我們將使用名為DataKeeper Cluster Edition的第三方解決方案來實現集群存儲。

本文假設您已經在Azure中創建了一個虛擬網絡,並且您已經在Azure中配置了第一個DC。如果你還沒有這樣做,你會想繼續前進,看看這個主題的前兩個帖子。

如何創建Windows Azure雲的站點到站點VPN通道

http://www.sios-apac.com/2018/02/extending-datacenter-azure-cloud/

雖然創建與主數據中心的VPN連接不是先決條件,但我強烈建議您考慮這樣做。通過這種方式,您可以為我們的混合災難恢復配置做好準備,這將在下一篇文章中討論。

我們將在這篇文章中闡述的高層次的步驟如下:

  • 配置兩台Windows Server 2012 R2服務器
  • 將服務器添加到域
  • 啟用故障轉移群集功能
  • 創建群集
  • 使用DataKeeper Cluster Edition創建複製卷群集資源
  • 安裝SQL 2014故障轉移群集實例

配置兩台Windows Server 2012 R2服務器

點擊左欄中的虛擬機標籤,然後點擊左下角的新建按鈕。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

從圖庫中選擇新建虛擬機

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

對於我們的集群,我們將選擇Windows 2012 R2 Datacenter

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

選擇最新的版本發布日期,命名虛擬機和大小。用戶名和密碼將是您將用於登錄到VM以完成配置的本地管理員帳戶。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

在下一頁上,您將選擇以下內容:

雲服務:我選擇了在配置第一台虛擬機時創建的相同Cloud Service。Cloud Service文檔說它用於負載平衡,但我認為將所有群集VM和DC放在同一個Cloud Service中以便於管理沒有任何壞處。通過選擇現有的Cloud Service,我的虛擬網絡和子網會自動選中。

存儲帳戶:我選擇現有的存儲帳戶

可用性集:這非常重要。你想確保所有的虛擬機都駐留在同一個可用性集合中。通過將所有VM放在同一可用性集中,可以保證VM都運行在不同的Fault Domain中。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

最後一頁顯示了可以訪問此虛擬機的端口。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

虛擬機一旦創建,您就會將其視為Azure門戶中的新虛擬機

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

下一步是向VM添加額外的存儲。Azure最佳實踐可讓您將數據庫和日誌文件放在同一個卷上,否則必須禁用默認啟用的地理複製功能。以下文章更詳細地描述了此問題:http://msdn.microsoft.com/en-us/library/jj870962.aspx#BKMK_GEO

要將額外的存儲添加到虛擬機,請單擊虛擬機,然後單擊儀表板以轉到虛擬機儀表板。一旦那裡,點擊附加。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

在考慮SQL Server的存儲選項時,需要考慮很多事情。最安全和最簡單的方法是我們將在這篇文章中使用的方法。我們將為我們的數據和日誌文件使用單個卷並禁用緩存。您需要閱讀本文以獲取有關SQL Server性能注意事項和Azure最佳做法的最新信息。

http://msdn.microsoft.com/en-us/library/windowsazure/dn133149.aspx

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

添加此額外卷後,您需要打開每個VM並使用“磁盤管理”來初始化和格式化卷。為了演示的目的,我們將把這個卷格式化為“F:”驅動器。

您現在有一個稱為SQL1的VM。您需要完成與配置另一個VM並將其稱為SQL2相同的過程,確保將其放入同一個Cloud Service,Availability Set和Storage Account中。還要確保將另一個卷附加到SQL2,就像您為SQL1所做的一樣,並將其格式化為F:驅動器。

當您完成配置這兩個虛擬機時,我們將前進到下一步,將它們添加到域中。

將其添加到域

將SQL1和SQL2添加到域是一個簡單的過程。假設您一直關注以前的帖子,您已經創建了域,並且在與SQ1和SQL2相同的Cloud Service中配置了一個名為DC2的DC。將它們添加到域中與連接到VM並將VM添加到域一樣簡單,就像在常規內部部署網絡中一樣。如果您正確配置了虛擬網絡,則新VM應該使用由DHCP指定的IP地址進行引導,該地址指定本地DC2和域控制器。

單擊連接打開一個到SQL1和SQL2的RDP會話

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

IPconfig / all顯示當前的IP配置。Windows Azure要求您保留設置為使用DHCP服務器的地址,但IP地址在VM的生命週期內不會更改。您應該注意到您的DNS服務器已設置為您在前一篇文章中創建的本地DNS服務器。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

將SQL1和SQL2添加到域中並繼續執行下一步。

啟用故障轉移群集功能

在SQL1和SQL2上,您都將啟用故障轉移群集功能

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建群集

如果您熟悉集群,那麼除了少數例外情況外,以下步驟應該非常熟悉,因此請密切注意避免特定於在Windows Azure中部署集群的問題。

我們將首先創建一個節點集群,這將允許我們在將第二個節點添加到集群之前對集群名稱資源進行必要的調整。使用故障轉移群集管理器並從選擇創建群集開始。將SQL1添加到選定的服務器,然後單擊下一步。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

 

為了讓我們在後面的步驟中將SQL Server 2014安裝到集群中,我們需要完成集群驗證

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

逐步完成群集創建過程的其餘部分,如下所示。我們將調用這個集群SQLCLUSTER,它只是我們用來管理集群的名稱。這不是客戶端應用程序最終連接到的名稱。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

群集創建過程完成後,您會注意到群集名稱資源無法聯機,這是預期的。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

由於IP資源無法聯機,名稱資源無法聯機。由於DHCP服務器發出的地址與服務器的物理地址相同,因此IP地址無法聯機,在本例中為10.10.11.5,所以存在重複的IP地址衝突。

為了解決這個問題,我們需要進入IP地址資源的屬性,並將地址更改為當前未使用的同一子網中的另一個地址。我會選擇位於子網範圍較高端的地址,以減少未來可能部署新VM的可能性,Azure將分發該群集IP地址,從而導致IP地址衝突。為了消除這種可能性,微軟將不得不允許我們更多地控制DHCP地址池。目前,完全消除這種可能性的唯一方法是在虛擬專用網絡中為稍後可能部署的任何新虛擬機創建一個新子網,以便只有此群集駐留在此子網中。如果您打算在此子網中部署更多虛擬機,則可以同時部署所有虛擬機,以便知道它們將使用哪些IP地址,這樣您就可以使用群集的剩餘IP地址,。

要更改IP地址,請選擇IP地址群集資源的屬性並指定新地址。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

地址更改後,右鍵單擊“群集名稱”資源並使其聯機。

 

我們現在準備將第二個節點添加到集群。在故障轉移群集管理器中,選擇“添加節點”

 

瀏覽到第二個節點,然後單擊“添加”。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

再次運行所有驗證測試。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

當您單擊完成時,您會看到該節點已成功添加,但由於Azure中沒有共享存儲,因此無法創建用於仲裁的磁盤目擊者。我們將在下一步修復。

 

我們現在需要將文件共享見證添加到我們的群集,以確保滿足兩個節點群集的仲裁需求。文件共享見證將在DC2服務器上配置,該服務器也是在Azure雲中運行的域控制器。

打開Azure私有云中的域控制器的RDP會話

連接到您的域控制器並創建名為“Quorum”的文件共享。您需要在共享級別和安全性(NTFS)級別提供群集計算機名稱對象(本例中稱為SQLCluster)讀取/寫入權限。如果您不熟悉創建文件共享見證,您可能需要查看我以前的帖子以獲取更多詳細信息。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

一旦在域控制器上創建了文件共享見證文件夾,我們需要使用SQL1上的故障轉移群集管理器在群集配置中添加見證

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

現在應該如下所示配置文件共享見證。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

使用DataKeeper Cluster Edition創建複製卷群集資源

傳統的故障轉移群集需要共享存儲設備,如SAN。Azure IaaS云不提供能夠用作群集磁盤的存儲解決方案,因此我們將使用名為DataKeeper Cluster Edition的第三方數據複製解決方案,這將允許我們創建可用於的複製卷資源共享磁盤的位置。14天試用許可證通常可根據要求進行測試。

一旦你下載DataKeeper,安裝它並在SQL1和SQL2上都許可它並重啟服務器。一旦服務器重新啟動,連接到SQL1,啟動DataKeeper UI並完成以下步驟。

“連接”到SQL1和SQL2

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

現在單擊“創建作業”並按照以下步驟創建鏡像和DataKeeper卷群集資源。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

選擇鏡子的來源。當您為源和目標選擇IP地址時,請務必選擇服務器本身的IP地址,請勿選擇群集IP地址!

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

對於兩個節點均位於Azure雲中的此實現,請選擇不壓縮的同步複製,如下所示。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

單擊完成,系統會詢問您是否要在Windows Server故障轉移群集中註冊此鏡像。單擊是。

當您打開Windows Server故障轉移群集GUI時,現在您會看到DataKeeper卷資源位於可用存儲中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

您現在已準備好將SQL Server安裝到群集中。

安裝SQL Server 2014故障轉移群集實例

要啟動SQL Server 2014群集安裝,您必須將SQL 2014 ISO下載到SQL1和SQL2。您可以將SQL Server 2014 Standard Edition用於簡單的雙節點群集。如果您想將此群集擴展到第三個站點進行災難恢復,我們將在下一篇文章中討論,那麼您將需要企業版,因為標準版僅支持雙節點群集。如果您只是在尋找一個簡單的雙節點解決方案,那麼SQL Server Standard Edition可能是一個更經濟的解決方案。

一旦將SQL Server 2014下載到服務器,安裝ISO並運行安裝程序。我們想要打開的選項位於“高級”選項卡中。打開高級選項卡並運行“高級群集準備”。我的好朋友和Cluster MVP同事Robert Smit告訴我有關使用高級選項的信息。基本上,高級選項可讓您將安裝分成兩個不同的進程,即準備和完成。群集安裝可能會出現許多問題,通常與活動目錄和權限有關。如果使用標準安裝方法,則可能需要等待20分鐘或更長時間才能完成安裝,但只有在最後一刻才發現群集無法在活動目錄中註冊CNO,並且整個安裝失敗。整個安裝過程不僅失敗,現在您可能已經安裝了部分安裝的SQL Server集群,並且清理起來很麻煩。通過使用高級方法,您可以通過在群集完成期間將風險部分放在最後來將風險降至最低。如果群集完成失敗,則只需要診斷問題並再次僅重新運行群集完成過程。

如果您真的想節省一些時間,請查看Robert關於使用配置文件安裝SQL Cluster的文章,如果您正在進行多次安裝,這很容易做到並節省了大量時間。但是,就我們的目的而言,我們將通過GUI執行SQL安裝,如下所示。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

為了演示目的,我只使用了每個服務的管理員帳戶。在生產中,您需要為每項服務創建單獨的帳戶,作為最佳做法。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

一旦安裝完成,它看起來像這樣。

現在我們準備繼續進行第二部分安裝,即高級群集完成。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

給這個SQL實例一個名字。這是客戶將連接到的名稱。在這種情況下,我稱之為SQLINSTANCE1。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

這是魔術發生的地方。如果您按前面所述在DataKeeper中配置了鏡像,那麼您將在此處列出的DataKeeper卷為可用共享磁盤,實際上它只是一個複製卷對。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

在“群集網絡配置”頁面中,選擇IPv4並指定子網中未使用的地址很重要。如前所述,此地址應位於DHCP範圍的較高端,以幫助將Azure將來將該地址分配給其他虛擬機的風險降至最低。我強烈建議你有一個專用於你的集群的子網,以避免可能的衝突,直到Windows Azure為我們提供更好的IP地址和DHCP範圍控制。稍後,在創建群集後,您將需要刪除此客戶端訪問點並添加客戶端訪問點,如http://blogs.msdn.com/b/sqlalwayson/archive/2013/08/06/availability-中所述 – 組偵聽器的窗口,蔚現在支持-和腳本換雲的唯一-configuration.aspx。我將在未來發布一篇博客文章,詳細描述這一過程。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

在此頁面上確保您單擊添加當前用戶,或者指定您希望用於管理SQL Server的帳戶。

從SQL Server 2012開始,tempdb不再需要成為SQL Server集群的一部分。如果將tempdb移動到非複製卷,則需要確保每個節點上都存在目錄結構。要更改tempdb的位置,請單擊“數據目錄”選項卡並更改tempdb所在的位置。

在SQL1上安裝完成時,是時候在SQL2上運行SQL安裝程序並將第二個節點添加到群集。在SQL2上運行安裝程序並選擇將節點添加到SQL Server故障轉移群集。

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

創建SQL Server 2014 Alwayson FCI在具有DataKeeper的Windows Azure IAAS中

安裝完成後,您現在可以在Azure雲上運行功能齊全的SQL Server 2014故障轉移群集實例。每個實例都位於不同的故障域中,提供高級別的彈性。請務必按照我的文章中所述,使用客戶端訪問點替換客戶端訪問點…

在本系列的下一篇文章中,我將向您展示如何將這兩個節點群集擴展到多站點群集的第三個節點。這個第三節點將位於我的內部數據中心,這將為我們提供高可用性和災難恢復的終極解決方案。

有關SQL Server 2014故障轉移群集實例的詳細信息,請閱讀此處

經https://clusteringformeremortals.com/2014/01/10/creating-a-sql-server-2014-alwayson-failover-cluster-fci-instance-in-windows-azure-iaas-azure-cloud/許可轉載

Filed Under: Datakeeper, 伺服器集群简单化 Tagged With: Windows Server 2012

  • « Previous Page
  • 1
  • 2
  • 3
  • 4
  • 5
  • …
  • 8
  • Next Page »

最近的帖子

  • 如何評估我的網路卡是否需要更換
  • 與高可用性相關的應用程式智能
  • 在 Nutanix 環境中選擇高可用性解決方案的 10 個注意事項
  • 我的伺服器是一次性的嗎?高可用性軟體如何適應雲端最佳實踐
  • 災難頻傳世界的資料復原策略

最熱門的帖子

加入我們的郵件列表

Copyright © 2025 · Enterprise Pro Theme on Genesis Framework · WordPress · Log in