Windows VDA定製/優化/版本選擇之我感

平時做桌面項目的時候,很多工程師都在問我一個問題,爲什麼有些項目的桌面那個啓動、登錄速度很快,他的PPT播放、3D的效果比我這個好?但對比下他的硬件配置還不如我。

這類很明顯帶有最終用戶使用體驗的問題,我相信無論是做哪家桌面的工程技術人員其實都有遇到,當然這裏面其實牽涉到的技術面有不少,從系統優化、鏈路優化、個人數據訪問、AD系統集成、認證等等不一而足,今天我主要想來說在虛擬桌面中每個用戶、工程師都會用到的Windows系統本身。今天討論的VDA或者我們叫做虛擬桌面/雲桌面,這裏主要是說交付給最終用戶使用的那個“東西”,不過多涉及到後臺的各種交付、策略配置組件、客戶端等等。

在現在的虛擬桌面市場中,大家用的最多的是Windows 7,其次是Windows Server 2008 R/2012 R2,以及現在慢慢開始被大家接受的Windows 10。

其實無論是哪個版本的操作系統,我們在交付給最終用戶之前一定要對這個VDA系統做一次定製/優化。否則在我看來這就是對於客戶的不尊重和不專業。

爲什麼這麼說呢?其實稍稍瞭解Windows系統的朋友都知道,微軟的Windows產品每一個大版本出來之後,RTM版基本沒太多人上生產環境,一般都要等到出SP1之後纔會逐步在市場中推廣開來。做微軟的圈子的人肯定都知道一句玩笑話:MS東西沒出SP1你敢用嗎?

這個也從一個側面Service Pack/hotfix這種東西對於系統穩定性提升有多重要。那我們就來看看我們常用的Windows 7的發佈歷程:

微軟於2009年10月22日正式發佈了Windows 7;2011年2月22日發佈了Windows 7 SP1


不查不知道,突然發覺Windows 7都已經發布8年了,SP1版本都6年半了。大家可以自己感受一下過去10年IT的變化之快速,如果今天拿着一個2011年出版的Windows 7 SP1上生產,您覺得這個符合時代的發展嗎?

就好比上個月發生的“WannCry”勒索病毒,病毒發生後其實最正確的方法就是按照MS的要求和建議安裝MS17-010的補丁(關於這個病毒和防護措施說明,請見MS MVP浩哥的說明,抵抗勒索病毒的正確姿勢)。不少非IT圈的朋友問我,爲啥這個最簡單有效的辦法,平時我們的IT都不去做。我當時的回覆就是:這個太low。

君不見現在做IT的公司如果說自己不是做雲計算、大數據、iot、ML真是都不好意思出門見人。但是IT系統維護這些最基礎的事情缺往往被人所忽視。其實微軟的補丁更新系統可以說獨步整個IT界,別的廠商在這個層面上基本不能望其項背。

#可能有人會說這是Windows系統寫的差,所以很多漏洞。其實無論是Linux,MAC,Android系統都有漏洞,而且數量一點都不少,千萬不要以爲用了MAC,用了iPhone就可以高枕無憂,該升級的時候一定要升級。

補丁對於系統到底能帶來哪些改變呢:

  1. 如上所述的安全漏洞。在這個IT安全越來越嚴峻的世界,這個可以說是最廉價而又十分有效的終端系統防護方案之一。

  2. 功能增強,這裏包含了很多我們普通用戶可能平時留意不到的內容。比如:網絡性能、根證書鏈、特定傳輸協議優化(比如SMB)等等,這些看着不明顯但卻對用戶最終使用會有明顯改觀的底層內容。

  3. 新功能、新版本,比如.net framework升級,以及現在MS還會推送硬件驅動。

    備註:目前Windows Update可以推送XenServer 7.x的Guest tools驅動

所以我們現在一臺Windows 7SP1安裝完成後如果使用Windows Update來更新補丁會發現得有差不多200個補丁需要去安裝。

這就是這麼多年曆史積累下的各種組件的增強,可以說今天安裝完成所有補丁的Windows 7 SP1和當年發佈的Windows 7 SP1簡直是天壤之別的兩個產品。


這個時候就有朋友會說了,我現在如果真的把一個乾淨的Windows 7 SP1進行補丁升級,可能幾天都不能完成,下載補丁過程很慢。其實這個原因很簡單,因爲你的系統太舊了、底層部分組件太老了。Windows 7 SP1中,系統自帶的Windows Updage Agent已經不匹配現在的Windows Update系統,導致其遍歷補丁速度非常慢(曾經我等過2天,說多了都是淚)所以爲了加速這個過程,我們需要先手動在的系統上安裝如下兩個補丁:

3020369

3172605 

#請先安裝3020369,3020369是3172605的前序補丁。

這兩補丁安裝好了以後,通過Windows Update就會非常快的檢索、遍歷出需要安裝的補丁,後續的下載速度就完全看網速了。

當然環境裏面如果有WSUS/SCCM之類的管理軟件就更爲簡單了,直接用其推送。所以在企業級環境中,強烈推薦管理員部署這類平臺。其中WUSU是MS一個免費組件,簡單好用。


那麼說完補丁,這個只是完成了一個基礎,那麼接下來就需要對Windows系統進行優化。其實說是優化(這裏不存在什麼加速這種事情),在我看來更準確的描述其實是對於Windows系統的“裁剪”,意思就是說把Windows系統在虛擬桌面體系中不需要的組件、服務、策略給刪除、停用、調整。

#這個動作其實沒有一個標準值,很多是基於不同用戶應用再來不斷調整優化。這裏只是列出個人一些經驗。


從我個人來說,我的基礎鏡像會做如下幾個操作:

  1. 添加刪除組件裏面,刪除除了: .net framework 3.5,Windows Media Player, IE 之外的所有其他組件

  2. 設定Pagefile大小(特別是在物理內存大於4G以上的場景中)

  3. 停用沒有必要使用的Service,

  4. 停用沒有必要使用的Schedule Task,

  5. 停用包括Aero、鼠標在內的特效等,


停用的Service、Schedule Task這個確實是個技術活,過去這個操作都是需要靠經驗或者參考一些KB來設定。我曾經也做個一個PSH腳本,來完成相應工作。現在Citrix提供了一個叫Citrix Optimizer的VDA鏡像優化工具,這樣可以極大的方便我們一線人員的使用。(期盼好久啊。。。)

https://support.citrix.com/article/CTX224676

wKioL1ldryvgukM3AAAgCjMib5U707.png-wh_50

wKiom1ldryyg5zpGAABZpwLsWoo832.png-wh_50

目前此工具支持Windows7,10, Server 2012, 2016。默認自帶了相關模板,後續相信會不斷完善給予更好的支持。

#Tools不是萬能的,請根據實際情況調整。


完成這個之後,對於常規使用來說,VDA的母鏡像就已經可以交付使用了。但是我們都知道一般情況下我們會給用戶都是Administrator即管理員權限。其實在任何系統中,當你擁有了系統管理員這個權限,控制就會變的很難做,爲什麼大家都說Linux系統穩定,其實有一個很重要原因是在Linux設計中,其管理體系在默認情況下,用戶是沒有Root即超管權限的,那麼其核心的系統就不會受到用戶側的各種操作的影響,進而減少系統的不穩定性。

可是在Windows體系中,無論是從系統的設計邏輯、用戶使用習慣和應用的特點,我們是很難不給予用戶Administrators的權限,那麼就導致由於用戶的誤操作、應用相互干擾導致虛擬桌面無法正常工作。比如說有用戶自己修改IP地址,自行刪除一些桌面Agent,胡亂修改系統變量等等不一而足。

而過去,爲了限制用戶的操作,一般都需要藉助GPO來完成這種操作,但是對於很多非MS背景的同學來說這個太複雜了。


所以Citrix通過一個叫WEM(Workspace Environment Management)來實現對於系統環境的設定。

比如,我通過設定限制用戶不能使用Windows Update,Help這些功能。

#補丁應該在交付給用戶前就安裝好,而不是讓用戶去安裝各種補丁。

wKioL1ldsHmh2nnAAAIZ78MnQb4373.png-wh_50

wKiom1ldsHmSmGQaAAAhZ7QRPW4889.png-wh_50


限制用戶不能使用控制面板或者面板中的一些特定組件。

wKioL1ldsHuCWUP6AADVgWjhbJg040.png-wh_50

wKiom1ldsHzDXW1aAAAVr4H9iWo553.png-wh_50


這樣來說,在給予用戶超級管理員權限情況下,也能合理控制用戶,可以使用整個桌面,以及定製化後的系統,這樣纔是最適合每個不同客戶的系統。

其實從我個人的角度來說,虛擬桌面這種產品他還是需要和用戶的管理體系對接,完全開放、完全不受控、不考慮標準化,也許初期使用沒問題,到了中後期,越多不受控的虛擬桌面,對於用戶方的運維壓力將是史無前例。太多的用戶跟我們反饋過,如果初期不受控,後面的運維工作真是一夜回到解放前。

#在這裏其實要澄清一個觀點,很多人說做標準化桌面一定要用標準/池化/Non-persistent桌面,其實我個人觀點倒是不一定。你可以通過技術手段來做這種重啓即還原的桌面,也可以給用戶完全自控的專有/Persistent桌面,但是配套上企業的管理體系,比如:運行安裝的軟件是公司統一規定好的,安裝非此清單中的軟件就是違規,通過管理體系來進行控制與管理。

從我個人來說,我非常推崇虛擬桌面對於IT前端運維的管理、控制特性。操作層面推崇的是一種技術+管理融通的方式,而不是死板的只使用技術來達到最終結果。


以上這些信息對於Windows 7 SP1, Windows Server 2012都是適用的,但是對於Windows 10卻不完全適用。這個主要的區別還是在Windows 10系統自身的版本更新的體系有關。

相信大家都知道,過去無論是Windows 客戶端系統,7,8/8.1還是服務器系統2008R2, 2012R2都是通過Service Pack+hotfix方式來更新系統。

但是到了Windows 10,基本上每半年到一年,都會有一個完整的版本分發出來。每次新的版本發佈都會帶來大量的新功能、新組件、新服務。其實這也是MS爲了規避過去那種Service Pack+hotfix的更新帶來對於新功能的不能快速迭代的一種新時代的新方法。畢竟當前的IT發展,敏捷開發、快速迭代是一個大趨勢。


wKioL1ldtfbjQnu3AAAlvfCsjIc353.png-wh_50

從這張圖我們可以看出目前發佈的3個主要的Windows 10版本,其Schedule Task,Service,Default App的數量都是會有一些不同,那麼進而導致其對於CPU/RAM等系統資源消耗量的不同。

wKioL1ldtnuysYsOAADfuPPBJnc774.png

wKioL1ldtnvA7yMqAAAssQIE5V4176.png


那麼問題來了,如果我們要使用Windows 10作爲VDA的時候,我們應該選擇哪個版本,RTM,Anniversary 或者Creator版本。(具體版本號請大家自行檢索)


其實MS在設計Windows 10體系的時候就有考慮過這個問題,所以除了過去我們熟識的專業版、企業版之外,他還引入新的Service options,

https://blogs.technet.microsoft.com/enterprisemobility/2016/01/06/navigating-the-windows-10-servicing-options/

wKioL1lduEqSz-dNAAAPrKLWM6g908.png-wh_50

其中Inside Program類似於BETA版,CB就是最新版本,CBB是一個穩定版本分支,LTSB則是以穩定爲主。

所以MS推薦在企業級場景中,是使用CBB和LTSB這兩種版本,個人用戶推薦Inside和CB版本。比如我個人電腦目前就是使用最新的CB版本1703。


那麼在當下,哪些版本是CBB和LTSB版本呢。在如下的MS網站,MS給出了每個版本的狀態,

https://technet.microsoft.com/en-us/windows/release-info.aspx

wKioL1lduLzgIuOgAABVlt3Jbsc423.png

#請注意,這裏Microsoft Recommend推薦的1703是其最新的版本,這個主要是對於個人用戶使用。但是在VDA/虛擬桌面場景中,我們需要參考MS推薦優先選擇CBB/LTSB版本。


所以個人建議在虛擬桌面場景中,目前比較合適的選擇是:1607,1511,1507這三個版本。


以上信息,僅代表個人觀點,供參考。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章