■ 河南 劉景云
編者按:使用RDS(Remote Desktop Service,遠(yuǎn)程桌面服務(wù))服務(wù),可以讓用戶實(shí)現(xiàn)遠(yuǎn)程管理和控制。實(shí)際上,在Windows Server 2012中,RDS服務(wù)屬于微軟桌面虛擬化的基礎(chǔ)技術(shù),并由此實(shí)現(xiàn)了桌面虛擬化和應(yīng)用程序虛擬化,對(duì)于一些企業(yè)來(lái)說(shuō),對(duì)遠(yuǎn)程桌面服務(wù)的使用有著嚴(yán)格的規(guī)范,所以就需要實(shí)現(xiàn)RDS的高可用性。
在Windows Server 2012中,RDS服務(wù)是由RD Web訪問(wèn)、RD網(wǎng)關(guān)、RD授權(quán)、RD連接代理、RD虛擬化主機(jī)和RD會(huì)話主機(jī)等組件構(gòu)成。利用RDS的高可用功能,即使某個(gè)環(huán)節(jié)出現(xiàn)問(wèn)題,也可以保證RDS順利為客戶提供服務(wù)。在眾多的RDS組件中,會(huì)話主機(jī)、連接代理和Web訪問(wèn)等組件是很常用的,對(duì)其實(shí)現(xiàn)高可用性就顯得很有意義。
例如,在某企業(yè)中,在域環(huán)境中的DC服務(wù)器上配置了活動(dòng)目錄證書服務(wù),為了便于管理數(shù)據(jù),在后臺(tái)配置了SQL Server 2012數(shù)據(jù)庫(kù)服務(wù)器,將RdsServer1和RdsServer4服務(wù)器分別配置為會(huì)話主機(jī),將RdsServer2和RdsServer4服務(wù)器分別配置為連接代理主機(jī),將RdsServer3和RdsServer6服務(wù)器分別配置為Web訪問(wèn)主機(jī),來(lái)構(gòu)建RDS高可用框架結(jié)構(gòu)。
首先在RdsServer1服務(wù)器上將RdsServer1、RdsServer2、RdsServer3、RdsServer4、RdsServer5和RdsServer6等所有服務(wù)器添加到一個(gè)服務(wù)器組中,之后分別在RdsServer1、RdsServer2、RdsServer3上安裝會(huì)話主機(jī),連接代理,RDWeb組件。并在會(huì)話主機(jī)上創(chuàng)建集合(例如名為“jihe”),發(fā)布相關(guān)的RemoteAPP程序。以下操作全部在RdsServer1上實(shí)現(xiàn)。
在其服務(wù)器管理器左側(cè)選擇“遠(yuǎn)程桌面服務(wù)”→“概述”項(xiàng)(如圖1),在右側(cè)的“部署概述”欄中的“RD會(huì)話主機(jī)”項(xiàng)的右鍵菜單上點(diǎn)擊“添加RD會(huì)話主機(jī)服務(wù)器”項(xiàng),在選擇服務(wù)器窗口中選擇RdsServer4主機(jī),將其添加到“已選擇”列表中。點(diǎn)擊“下一步”按鈕,選擇“需要時(shí)重新啟動(dòng)遠(yuǎn)程計(jì)算機(jī)”項(xiàng),點(diǎn)擊“添加”按鈕,在RdsServer4主機(jī)上安裝RD會(huì)話主機(jī)角色服務(wù)。
選擇“服務(wù)器管理器”→“遠(yuǎn)程桌面服務(wù)”→“集合”→“jihe”項(xiàng),在右側(cè)的“主機(jī)服務(wù)器”列表中點(diǎn)擊菜單“任務(wù)”→“添加RD會(huì)話主機(jī)服務(wù)器”項(xiàng),將RdsServer4主機(jī)添加進(jìn)來(lái)。
注意:因?yàn)镽dsServer1和RdsServer4主機(jī)共同為外界提供會(huì)話主機(jī)服務(wù),所以不僅需要在RdsServer1上安裝并發(fā)布程序,在RdsServer4主機(jī)上也必須安裝和發(fā)布同樣的RemoteAPP。這樣,就實(shí)現(xiàn)了RD會(huì)話主機(jī)的高可用性。
圖1 遠(yuǎn)程桌面拓?fù)浣Y(jié)構(gòu)
圖2 集合屬性窗口
當(dāng)RdsServer1和RdsServer4主機(jī)其中任意一臺(tái)主機(jī)出現(xiàn)問(wèn)題的話,另外一臺(tái)照樣可以為外界用戶提供服務(wù)。實(shí)際上,在上述集合管理窗口中的“屬性”列表中點(diǎn)擊“任務(wù)”→“編輯屬性”項(xiàng),在其屬性窗口(如圖2)左側(cè)選擇“負(fù)載平衡”項(xiàng),在右側(cè)顯示會(huì)話主機(jī)的負(fù)載平衡信息,包括RD會(huì)話主機(jī)服務(wù)器,內(nèi)存,相對(duì)權(quán)限,會(huì)話限制等內(nèi)容。
在“相對(duì)權(quán)限”列中默認(rèn)顯示的值為100,即按照平均分配的方法,來(lái)處理連接請(qǐng)求。如果將某臺(tái)主機(jī)的相對(duì)權(quán)重設(shè)置的比較大,那么其就會(huì)處理更多的連接任務(wù)。
對(duì)于會(huì)話主機(jī)高可用來(lái)說(shuō),之所以需要在概述RDS拓?fù)鋱D中添加會(huì)話主機(jī),又需要在集合中添加會(huì)話主機(jī),原因在于對(duì)于某臺(tái)會(huì)話主機(jī)來(lái)說(shuō),可能包含多個(gè)集合。
每個(gè)集合又包含不同的應(yīng)用程序,不同的集合對(duì)應(yīng)不同的應(yīng)用類別。對(duì)于第一個(gè)步驟來(lái)說(shuō),是將RdsServer4添加到RDS高可用環(huán)境中,在其中安裝會(huì)話主機(jī)服務(wù)。而第二個(gè)步驟主要是將其分配給某一個(gè)存在的集合。這樣的話,可以提高RemoteAPP的管理效率。
對(duì)于RDS服務(wù)來(lái)說(shuō),RD連接代理可以將連接信息保存在后臺(tái)數(shù)據(jù)庫(kù)中。例如,在本例中的RDS高可用環(huán)境中,多臺(tái)RD連接代理服務(wù)會(huì)共用同一個(gè)SQL Server數(shù)據(jù)庫(kù)。因此,首先需要將RdsServer2和RdsServer5連接到后臺(tái)數(shù)據(jù)庫(kù)上。在其上分別安裝SQL Native Client。
注意:其版本需要和SQL Server保持一致,該工具需要.Net FrameWork3.5組件的支持。
為了讓連接順利進(jìn)行,需要為這些服務(wù)器配置訪問(wèn)權(quán)限。在域控上打開Active Directory用戶和計(jì)算機(jī)窗口,在其中新建一個(gè)容器(例如“RDSOU”),在該容器中創(chuàng)建一個(gè)名為“RDproxy”的安全組,將RdsServer2和RdsServer5添加進(jìn)來(lái)。當(dāng)然,也需要將訪問(wèn)RDS服務(wù)的客戶端域賬戶也添加到上述容器中。
在SQL Server 2012服務(wù)器上登錄到Microsoft SQL Server Management Studio管理界面,在左側(cè)選擇“安全性”→“登錄名”項(xiàng),在其右鍵菜單上點(diǎn)擊“新建登錄名”項(xiàng),在彈出窗口(如圖3)中點(diǎn)擊“搜索”按鈕,在選擇窗口中的“選擇此對(duì)象類型”欄中選擇“組”,在“查找位置”欄中選擇“整個(gè)目錄”項(xiàng),之后查找并導(dǎo)入上述“RDproxy”組。
圖3 建立所需的登錄名
圖4 配置RD連接代理向?qū)Ы缑?/p>
在左側(cè)選擇“服務(wù)器角色”項(xiàng),在右側(cè)的“服務(wù)器角色”列表中選擇“dbcreator”與“sysadmin”項(xiàng),確保在這些主機(jī)上可以執(zhí)行創(chuàng)建數(shù)據(jù)庫(kù)的權(quán)限。點(diǎn)擊“確定”按鈕,保存配置信息。配置完成 后,重 啟RdsServer2和RdsServer5主機(jī),目的是重新提交計(jì)算機(jī)賬戶密碼,來(lái)獲得連接SQL Server服務(wù)器和創(chuàng)建相關(guān)數(shù)據(jù)庫(kù)的權(quán)限。因?yàn)橛?jì)算機(jī)賬戶同樣是一個(gè)賬戶,其賬戶名為計(jì)算機(jī)名,并擁有隨機(jī)生成的密碼。當(dāng)然,該密碼在默認(rèn)狀態(tài)下是無(wú)法直接查看的。
在服務(wù)器管理器中打開“遠(yuǎn)程桌面服務(wù)”→“概述”項(xiàng),在“部署概述”欄中的“RD連接代理”項(xiàng)的右鍵菜單上點(diǎn)擊“配置高可用性”。
在向?qū)Ы缑妫ㄈ鐖D4)中的“數(shù)據(jù)庫(kù)連接字符串”欄中輸入連接字符串,用來(lái)設(shè)定連接的路徑,方式以及創(chuàng)建的數(shù)據(jù)庫(kù)的名稱等內(nèi)容。例如,輸入“DRIVER=SQL Server Native Client 11.0;Ser ver=sqlserver
=Remote Desktop Ser vices Connection Broke r;DATABASE=Proxydb”,其中的“11.0”為SQL Server Native Client的版本號(hào),打開其安裝路徑,從目錄名中即可顯示其版本號(hào)?!皊qlserver1”為 后 臺(tái)SQL Server 2012服務(wù)器的名稱,“Proxydb”為所創(chuàng)建的數(shù)據(jù)庫(kù)名稱。在“存儲(chǔ)數(shù)據(jù)庫(kù)文件的文件夾”欄中設(shè)置保存數(shù)據(jù)庫(kù)文件的目錄,該目錄存在于SQL Server 2012服務(wù)器上。
因?yàn)镽D代理服務(wù)高可用是基于DNS輪循機(jī)制運(yùn)作的,所以需要在域控上打開DNS管理器,在左側(cè)選擇“正向查找區(qū)域”-“域名”項(xiàng),在右側(cè)新建兩條A記錄,其名稱均相同,例 如“Rdproxyloop”,但是IP分別指向RdsServer2和RdsServer5主機(jī)的地址。
這樣,就實(shí)現(xiàn)了DNS的輪循機(jī)制。在“DNS輪詢機(jī)制名稱”欄中輸入“Rdproxyloop”,在下一步窗口中點(diǎn)擊“配置”按鈕,完成所需的配置操作。
然后,在“部署概述”欄中的“RD連接代理”圖標(biāo)下會(huì)顯示“高可用性模式”字樣,說(shuō)明已經(jīng)配置成功。在SQL Server 2012服務(wù)器上打開管理界面,執(zhí)行刷新操作后,在“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)下顯示已經(jīng)創(chuàng)建的名為“Proxydb”的數(shù)據(jù)庫(kù)。
選擇“數(shù)據(jù)庫(kù)”→“安全性”→“登錄名”項(xiàng),在其中選擇上述“RDproxy”組。
在其屬性窗口左側(cè)選擇“用戶映射”項(xiàng),在右側(cè)的“映射到此登錄名的用戶”列表中選擇“Proxydb”數(shù)據(jù)庫(kù)。
在“數(shù)據(jù)庫(kù)角色成員身份”列表中選擇“db_owner”項(xiàng),點(diǎn)擊確定按鈕保存配置,這樣可以讓RD代理服務(wù)主機(jī)可以正常的編輯數(shù)據(jù)庫(kù)內(nèi)容。
接下來(lái)需要將RdsServer5添加進(jìn)來(lái),在“部署概述”欄中的“RD連接代理”項(xiàng)的右鍵菜單上點(diǎn)擊“添加RD連接代理服務(wù)器”項(xiàng),在向?qū)Ы缑嬷械摹胺?wù)器池”列表中選擇RdsServer5主機(jī),將其添加到“已選擇”列表中。
之后點(diǎn)擊“添加”按鈕,完成所需的操作。
為了保證訪問(wèn)的可靠性,就需要設(shè)置RDWeb的高可用性,這需要基于NLB負(fù)載均衡群集來(lái)實(shí)現(xiàn)。在“部署概述”欄中的“RD Web訪問(wèn)”項(xiàng)的右鍵菜單上點(diǎn)擊“添加RD Web訪問(wèn)服務(wù)器”項(xiàng),在向?qū)Ы缑嬷械摹胺?wù)器池”列表中選擇“RdsServer6”主機(jī),將其添加進(jìn)來(lái)。為了保證連接的安全性,就涉及到證書的配置和使用。
因?yàn)樵赗dsServer3上已經(jīng)安裝了RDWeb組件,所以在該機(jī)上打開IIS管理器,打開服務(wù)器證書管理窗口,點(diǎn)擊“創(chuàng)建域證書”鏈接,按照上述方法申請(qǐng)證書。假設(shè)證書名為“RDWebZS”。之后將該證書綁定到默認(rèn)的網(wǎng)站上。在客戶端打開瀏覽器,輸入“https://RdsServer3.xxx.com/rdweb”網(wǎng)址,可以順利進(jìn)行訪問(wèn)。
對(duì)于RdsServer6主機(jī)來(lái)說(shuō),同樣需要配置證書,所不同的是不需要重新申請(qǐng)證書,而是需要和RdsServer3使用同一張證書。因?yàn)榛贜LB群集的話,必須使用相同的域名進(jìn)行訪問(wèn),因此證書必須一致。在上述服務(wù)器證書管理窗口中選擇“RDWebZS”證書項(xiàng),在其右鍵菜單中選擇“導(dǎo)出”項(xiàng),在導(dǎo)出證書窗口中設(shè)置導(dǎo)出路徑,例如名為“rdzs.pfx”。輸入密碼后,點(diǎn)擊“確定”按鈕將其導(dǎo)出。
在RdsServer6打開IIS管理器,打開服務(wù)器證書管理窗口,在右側(cè)點(diǎn)擊“導(dǎo)入”鏈接,在彈出窗口中選擇上述文件,輸入對(duì)應(yīng)的密碼,在“選擇證書存儲(chǔ)”列表中選擇“Web宿主”項(xiàng),點(diǎn)擊確定按鈕,完成導(dǎo)入操作。之后將該證書綁定到默認(rèn)網(wǎng)站上。前面已經(jīng)說(shuō)道,RDWeb高可用性是基于NLB群集實(shí)現(xiàn)的。因此接下來(lái)需要配置NLB群集,在RdsServer3和RdsServer6上打開分別服務(wù)器管理器。點(diǎn)擊“添加角色和功能”項(xiàng),在向?qū)Ы缑嬷械墓δ芰斜碇羞x擇“網(wǎng)絡(luò)負(fù)載平衡”項(xiàng),點(diǎn)擊“安裝”按鈕安裝該組件。
因?yàn)镹LB群集使用同一個(gè)域名,需要在域控上打開DNS管理器,在其中創(chuàng)建一條A記錄,名稱為“RDfw”,為其設(shè)置新的IP,例如192.168.1.60。在RdsServer3或RdsServer6上打開網(wǎng)絡(luò)負(fù)載平衡管理器,在左側(cè)的“網(wǎng)絡(luò)負(fù)載平衡管理器”節(jié)點(diǎn)的右鍵菜單上點(diǎn)擊“新建群集”項(xiàng),在向?qū)Ы缑嬷械摹爸鳈C(jī)”欄中輸入本機(jī)IP,點(diǎn)擊“連接”和“下一步”按鈕,在“新群集:群集IP地址”窗口點(diǎn)擊“添加”按鈕,輸入群集的地址,例如192.168.1.60。
在下一步窗口中選擇群集操作模式,在端口規(guī)則窗口中的“端口范圍”欄中設(shè)置端口范圍從443到443,來(lái)實(shí)現(xiàn)SSL加密傳輸功能。點(diǎn)擊完成按鈕,等到本主機(jī)的狀態(tài)從掛起變成聚合之后,在左側(cè)的群集節(jié)點(diǎn)的右鍵菜單上點(diǎn)擊“添加主機(jī)到群集”項(xiàng),在向?qū)Ы缑孑斎肓硪慌_(tái)主機(jī)的IP,點(diǎn)擊“連接”按鈕,之后依次點(diǎn)擊下一步按鈕,將其加入群集即可。在客戶端打開瀏覽器,輸入“https://rdfw.xxx.com/rdweb”網(wǎng)址,可以順利進(jìn)行訪問(wèn)。