最近這段時(shí)間連續(xù)兩次處理同一客戶的Skype前端服務(wù)不能啟動(dòng)的問(wèn)題,客戶的環(huán)境總是會(huì)有前端服務(wù)器意外關(guān)機(jī)的情況出現(xiàn),每次處理都會(huì)浪費(fèi)大把時(shí)間。今天系統(tǒng)的梳理下Skype for business Server前端的工作原理,以及對(duì)應(yīng)的排錯(cuò)過(guò)程。
創(chuàng)新互聯(lián)專注于正陽(yáng)企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都商城網(wǎng)站開(kāi)發(fā)。正陽(yáng)網(wǎng)站建設(shè)公司,為正陽(yáng)等地區(qū)提供建站服務(wù)。全流程按需求定制設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)Skype for Business Server前端高可用是基于Windows Fabric進(jìn)行的,Windows Fabric不需要手動(dòng)安裝,在規(guī)劃拓?fù)浜桶惭bSkype for business Server組件的時(shí)候會(huì)自動(dòng)安裝這個(gè)Windows功能并進(jìn)行自動(dòng)配置??梢栽诿颗_(tái)FE服務(wù)器上打開(kāi)如下文件夾查看整個(gè)Fabric的配置。
ClusterManifest.current文件是在每次Windows系統(tǒng)重啟后會(huì)自動(dòng)生成一個(gè)且會(huì)覆蓋之前的文件,所以千萬(wàn)不要去手動(dòng)更改里面的配置,如果手動(dòng)更改配置會(huì)導(dǎo)致路由仲裁丟失嚴(yán)重會(huì)導(dǎo)致池仲裁丟失,最終導(dǎo)致整個(gè)池故障客戶端將無(wú)法登錄任何一臺(tái)FE服務(wù)器。
使用Get-CsUserPoolInfo可以清楚的查看到用戶當(dāng)前所在的池,以及池中主要的前端服務(wù)器是哪一臺(tái)
主要注冊(cè)服務(wù)器 是FE03
主要用戶服務(wù)服務(wù)器 是FE03
次要服務(wù)器是FE01
空閑服務(wù)器是FE02
從事件查看器中也看到主要的服務(wù)器從FE02轉(zhuǎn)到FE03,同時(shí)用戶屬性的msRTCSIP-UserRoutingGroupID值也是指向到FE03的路由組,這些路由組都是存放到FE前端服務(wù)器的SQL數(shù)據(jù)庫(kù)中,并不依賴后端SQL
所以可以看出來(lái)整個(gè)前端高可用基于Windows Fabric,而Fabric基于路由組來(lái)進(jìn)行主服務(wù)器的分發(fā),而這一切都是基于FE前端進(jìn)行的。
而根據(jù)微軟官方文檔的描述知道前端服務(wù)器有偶數(shù)臺(tái)或奇數(shù)臺(tái)服務(wù)器,如果是奇數(shù)臺(tái)前端服務(wù)器,F(xiàn)abric路由仲裁將在這幾臺(tái)前端服務(wù)器中進(jìn)行自我投票,如果是偶數(shù)臺(tái)前端服務(wù)器那么路由投票將會(huì)增加一個(gè)后端SQL成員,如果這時(shí)候后端數(shù)據(jù)庫(kù)使用的是SQL鏡像技術(shù),而這時(shí)候SQL服務(wù)器又要參與前端FE Fabric路由投票,而如果此時(shí)將主服務(wù)器故障轉(zhuǎn)移到鏡像服務(wù)器上那么投票將會(huì)失敗,進(jìn)而導(dǎo)致整個(gè)前端服務(wù)停掉。
所以如果最好可以選擇前端池中有奇數(shù)臺(tái)前端服務(wù)器。
前面講到了Fabric是基于前端服務(wù)器來(lái)進(jìn)行的,而后端數(shù)據(jù)庫(kù)是提供整個(gè)前端服務(wù)的基礎(chǔ),如果手動(dòng)關(guān)閉后端數(shù)據(jù)庫(kù)其實(shí)可以發(fā)現(xiàn)一個(gè)有意思的現(xiàn)象那就是Skype客戶端將繼續(xù)正常使用,當(dāng)達(dá)到一定時(shí)間后就再也無(wú)法使用了,通過(guò)Get-CsRegistrarConfiguration命令查詢其實(shí)可以發(fā)現(xiàn)在沒(méi)有后端SQL的情況下Skype前端依然可以存活30分鐘,當(dāng)然也可以通過(guò)Set-CsRegistrarConfiguration去修改這個(gè)存活時(shí)間,但是微軟官方并不建議這樣做。
以上就分析了Fabric的路由仲裁及投票,以及存在后端SQL的必然性。那么有些同學(xué)就要有疑問(wèn)了,是不是Skype前端高可用必須是3臺(tái)?這個(gè)答案我更想說(shuō):如果要實(shí)現(xiàn)前端的高可用那么前端服務(wù)器至少需要3臺(tái)服務(wù)器(當(dāng)然最多只能有12臺(tái)服務(wù)器)
但是更多的乙方工程師在項(xiàng)目實(shí)施的時(shí)候是在前端池中創(chuàng)建的兩臺(tái)服務(wù)器,這樣一來(lái)就不能滿足Windows Fabric的基本條件,無(wú)法實(shí)現(xiàn)主要服務(wù)器,次要服務(wù)器,空閑服務(wù)器。這時(shí)候相當(dāng)于每一臺(tái)前端都是直連后端數(shù)據(jù)庫(kù)了,而不會(huì)像我前面所說(shuō)的那樣后端數(shù)據(jù)庫(kù)宕機(jī)的情況下會(huì)有存活時(shí)間,而是Skype客戶端立刻進(jìn)入斷開(kāi)狀態(tài)導(dǎo)致無(wú)法使用。
接下來(lái)我跟大家分享一下最近接連兩次處理同一客戶三臺(tái)前端全部同時(shí)宕機(jī)導(dǎo)致整個(gè)Windows Fabric路由仲裁,池仲裁全部丟失的情況下怎么恢復(fù)前端服務(wù)運(yùn)行正常。
先描述下事情的經(jīng)過(guò):某天客戶的Vmware虛擬化平臺(tái)宿主機(jī)報(bào)警資源不足,需要將虛擬機(jī)遷移到另外的宿主機(jī)上,3臺(tái)前端服務(wù)器進(jìn)行同時(shí)遷移,這個(gè)并沒(méi)有什么問(wèn)題,悲劇的是Vmware在遷移過(guò)程中物理服務(wù)器壓力過(guò)大直接崩了,導(dǎo)致三臺(tái)前端服務(wù)器全部意外關(guān)機(jī),要知道這個(gè)是對(duì)Windows Fabric大的傷害,手動(dòng)遷移后重新啟動(dòng)Skype前端虛擬機(jī)預(yù)料中的情況出現(xiàn)了,Skype前端服務(wù)器上所有的服務(wù)都無(wú)法啟動(dòng),客戶慌了,項(xiàng)目經(jīng)理也慌了,客戶給出的處理時(shí)間是3個(gè)小時(shí),因?yàn)?小時(shí)后整個(gè)集團(tuán)領(lǐng)導(dǎo)將使用Skype進(jìn)行音視頻通話。
我剛得到這個(gè)消息的時(shí)候,其實(shí)壓力是非常大的,但是基于之前已經(jīng)處理過(guò)一次這種問(wèn)題,首先也找到客戶溝通,第一件絕對(duì)不能做的事情就是恢復(fù)虛擬機(jī)的快照,因?yàn)橐换謴?fù)快照整個(gè)前端的高可用架構(gòu)就全部亂套了,無(wú)形之中增加了解決問(wèn)題的難度。
接下來(lái)我的操作過(guò)程如下:
首先手動(dòng)啟動(dòng)整個(gè)前端服務(wù)器上的所有Skype服務(wù),發(fā)現(xiàn)沒(méi)有一個(gè)可以啟動(dòng),而事件查看器中一大堆報(bào)錯(cuò),都是因?yàn)闊o(wú)法連接到后端數(shù)據(jù)庫(kù),前端結(jié)構(gòu)池?zé)o法正常啟動(dòng)之類的。
接下來(lái)切到SQL服務(wù)器上(SQL做了鏡像高可用),解決所有SQL數(shù)據(jù)庫(kù)服務(wù)不能正常運(yùn)行。
然后肯定就是重置前端的結(jié)構(gòu)池了,通過(guò)Reset-CsPoolRegistrarState命令來(lái)進(jìn)行重置。而這條命令后面跟的-ResetType參數(shù)有以下類型:
ServiceReset:意思是停止并重新啟動(dòng)RtcSrv和FabricHostSvc服務(wù)
QuorumLo***ecovery:意思是為當(dāng)前處于仲裁丟失的任何路由組重新加載備份存儲(chǔ)中的用戶數(shù)據(jù)
FullReset:將會(huì)執(zhí)行與QuorumLo***ecovery相同類型的重置,但此外,還重建本地Skype for Business Server數(shù)據(jù)庫(kù)
MachineStateRemoved:從池中刪除指定的服務(wù)器。僅當(dāng)有問(wèn)題的服務(wù)器(或其數(shù)據(jù)庫(kù))已永久丟失時(shí),才應(yīng)使用此類型的重置。
其中FullReset參數(shù)我至今沒(méi)有使用過(guò),這算是一個(gè)大絕招,因?yàn)轱L(fēng)險(xiǎn)實(shí)在太大了,所以微軟官網(wǎng)都貼出了這樣一句話:在使用FullReset時(shí)最好先咨詢微軟技術(shù)工程師。
而我首先的嘗試是使用ServiceReset參數(shù),通過(guò)重啟Fabric服務(wù)來(lái)重新規(guī)整整個(gè)路由,然后重新啟動(dòng)整個(gè)前端服務(wù),在執(zhí)行完命令后驚喜的發(fā)現(xiàn)除了Skype for Business Server前端服務(wù)意外的所有服務(wù)都已經(jīng)啟動(dòng)了,業(yè)內(nèi)人士都知道前端服務(wù)如果沒(méi)有運(yùn)行起來(lái),那么所有的客戶端將無(wú)法登錄進(jìn)而無(wú)法使用Skype。
此時(shí)回到日志中查看依然顯示的錯(cuò)誤警告是結(jié)構(gòu)池沒(méi)有完成用戶初始化
意思就是雖然上面的ServiceReset參數(shù)重置了路由組,但是這個(gè)路由組并沒(méi)有加載到結(jié)構(gòu)池中去,那么接下來(lái)就進(jìn)行QuorumLo***ecovery命令,直接從備份的存儲(chǔ)中重新加載用戶數(shù)據(jù)。
在運(yùn)行完命令后會(huì)重置整個(gè)Windows Fabric和重建整個(gè)存儲(chǔ)服務(wù)。但是此時(shí)Skype for business Server前端服務(wù)并不見(jiàn)的會(huì)啟動(dòng),因?yàn)槲恼乱婚_(kāi)始就說(shuō)了Windows Fabric的配置是每次重啟機(jī)器后自動(dòng)會(huì)生成一個(gè)ClusterManifest.current的XML文件里面都是配置整個(gè)Windows Fabric的主要服務(wù)器次要服務(wù)器和空閑服務(wù)器以及整個(gè)路由和仲裁,而且手動(dòng)更改的文件是無(wú)效的,所以最好的也是最靠譜的解決方法是等待Skype前端服務(wù)器自動(dòng)停止后將所有前端服務(wù)器關(guān)機(jī),然后再依次開(kāi)機(jī),開(kāi)機(jī)后讓三臺(tái)前端自動(dòng)去進(jìn)行Windows Fabric的路由仲裁投票和結(jié)構(gòu)池仲裁重新設(shè)定(這個(gè)過(guò)程花費(fèi)的時(shí)間視前端服務(wù)器數(shù)量而定,我這里3臺(tái)前端總共等待了大約30分鐘)
最終將所有結(jié)構(gòu)池和路由仲裁全部自動(dòng)設(shè)定正常,Skype for Business Server前端服務(wù)正常運(yùn)行
最終還是在客戶規(guī)定的時(shí)間內(nèi)解決了這個(gè)問(wèn)題,總算是有驚無(wú)險(xiǎn)。
所以基于以上的實(shí)際案例,強(qiáng)烈建議以下幾點(diǎn):
1、 后端數(shù)據(jù)庫(kù)盡量使用SQL故障轉(zhuǎn)移群集或者Alwayson,SQL故障轉(zhuǎn)移群集和Alwayson可以參考我之前的文章
2、 不要把所有“雞蛋”放到一個(gè)“籃子”里面,建議將不同的前端服務(wù)器放到不同的數(shù)據(jù)中心或者最起碼放到不同的宿主機(jī)上
3、 關(guān)于前端池中前端服務(wù)器的數(shù)量:如果只有一個(gè)就直接做標(biāo)準(zhǔn)版把,強(qiáng)烈不建議使用兩臺(tái)前端服務(wù)器,至少3臺(tái)前端服務(wù)去,同時(shí)建議前端服務(wù)器的數(shù)量為奇數(shù)臺(tái)(3臺(tái)或者5臺(tái)是最佳配置,如果是7臺(tái)或者9臺(tái)就涉及到需要通過(guò)命令獲取前5臺(tái)服務(wù)器名稱,重啟必須按照前5臺(tái)的順序啟動(dòng),這種大型池故障處理起來(lái)更加麻煩)
4、 任何數(shù)量的前端池,如果需要更新補(bǔ)丁,一定要使用Invoke-CsComputerFailOver -ComputerName命令將服務(wù)器離線,然后再使用Invoke-CsComputerFailBack -ComputerName命令將服務(wù)器聯(lián)機(jī),最好是一臺(tái)更新完了再更新第二臺(tái),更新完所有前端服務(wù)去后一定記得升級(jí)下后端數(shù)據(jù)庫(kù)。
以上是我個(gè)人的一些知識(shí)分享,不代表微軟或者任何產(chǎn)品組,可能措辭不準(zhǔn)或描述不準(zhǔn),但希望能幫到各位在實(shí)際環(huán)境中解決Skype/Lync Server企業(yè)版前端服務(wù)不能啟動(dòng)的問(wèn)題,特別是由于結(jié)構(gòu)池異常導(dǎo)致的。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)頁(yè)名稱:SkypeforBusinessServer前端高可用原理分析-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://jinyejixie.com/article0/jedio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、網(wǎng)站制作、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容