發表文章

目前顯示的是 3月, 2017的文章

ESXI虛擬機記憶體配置方法

圖片
記憶體配置是ESXI非常重要的課題,為什麼虛擬機可以overcommitted(超額配置),明明一台8G記憶體的ESXI我可以開到24G虛擬機的記憶體,難道記憶體會無中生有嗎?當然不可能,所以我們必須了解虛擬機使用的節省資源的方法。 (此圖表示虛擬機在一個產生資源競爭的環境下,所以Ballooned、Compressed和Swapped皆不為0) Shared: 比方說你在同一台ESXI上開了三台Win2008R2,開機時跑的程式差不多,有可能這三台虛擬機部分記憶體會相同,這時候ESXI就會進行shared,反正都一樣就不用配置三塊了,節省的記憶體空間就是shared。 shared為0有可能此台ESXI只有開一台虛擬機,或是開太多不同類型的作業系統所以沒有shared產生。 Ballooned: 這個機制會發生在ESXI資源有競爭的時候,所以資源沒有競爭的話也不會發生,比方說這台虛擬機我最多給你4G記憶體,資料庫系統有個壞習慣就是會先拿走配置記憶體,平常只用到1G,那多的3G呢?其實他也不會歸還,所以Ballooned就是在有裝Vmware-tools上的機器強制進行記憶體調節,把多拿走的沒用到的部分還來。 Compressed: 如果說進行Ballooned記憶體還是不夠的話,就會開始記憶體壓縮,記憶體壓縮就是用CPU換取記憶體,所以會多消耗CPU資源,但是會擠壓出實體記憶體出來。 Swapped: 你開虛擬機的時候一定會產生一個和記憶體大小一樣的.vswp檔案,這個檔案就是swapped檔,如果說連以上方式記憶體都還不夠的話,那就只能把記憶體丟到硬碟了,這時候效能就會非常差,畢竟是硬碟和記憶體的速度還是天差地遠,新版本ESXI也有支援swapped到SSD裡速度會快一點。 (此圖表是虛擬機在一個沒有資源競爭的環境下,所以Ballooned、Compressed和Swapped都為0) 結論: 在資源沒有發生競爭的情況下,像是Ballooned、Compressed和Swapped最好皆為0,如果數字不為0的話,表示虛擬機效能會受到影響,這時候要去要查明原因,因為使用者可能已經要抱怨虛擬機變慢了。

DRS裡面的虛擬機相依性規則

圖片
我們這個叢集裡面有四台ESXI,也有六台虛擬機,在沒有設定規則之前,因為DRS全自動的關係,Vcenter要保持每一台ESXI不會過於忙碌或閒置,所以把負載平均分散在所有ESXI上。 但是有時候我們又需要設定一些規則,比方說讓兩台虛擬機在同一台ESXI上,或不能在同一台,或只能在某一台ESXI上。 首先我們先將ESXI分成SiteA_Host和SiteB_Host,意思就是兩個機房所在地理位置不同,然後再把虛擬機分成也分成SiteA和SiteB,因為SiteA_VM和SiteB_VM有做叢集,所以我們並不希望SiteA機房掛了,服務就中斷了,至少SiteB還可以提供服務。 剛剛只是分群組,真正設定要寫在規則裡面。 另外因為AP是直接存取DB的,我們不希望中間再透過實體網路存取,如果能在同一台ESXI上的話就可以直接記憶體交換,所以我們強制AP和DB要在同一台ESXI上。 由於WEB和AP負載是不同的,所以我們希望這兩個服務能不在同一台ESXI上,我們設定這兩個虛擬機一定要分開在不同的ESXI。 最後我們會得到這六條規則,設定完之後如果違反規則他就會開始做移轉了。 驗證來看AP和DB都在同一台,WEB和AP又都不同台,01虛擬機所在的ESXI都是SiteA_Host,02虛擬機所在的ESXI都是SiteB_Host。 結論: 由於使用全自動DRS的關係,所以我們不清楚虛擬機跑在哪台ESXI上,這時候可以設定規則手動介入,但也要小心是說會不會因為規則導致虛擬機無法被HA開起來,比方說我們希望DB01在SiteA_Host都無訊號的時候下可以被SiteB_Host開起來,但是你又設定規則DB01只能在SiteA_Host上,這樣的設定就是矛盾的,這時候就要去檢查實際需求和規則設定了。

Vsphere常見問題

圖片
問題:改虛擬機顯示名稱的時候,虛擬機所在的目的地的資料夾名稱沒有對應一起改,導致兩邊不同,該怎麼辦? 答案: 把這台虛擬機隨便搬到另一個datastore中,搬完之後這樣資料夾名稱就會和虛擬機名稱相同了。 問題:原本這台虛擬機磁碟格式是用thick provisioning建立,想改成thin provisioning要如何修改? 答案: 在把虛擬機搬到其他datastore中的時候,有可以改變virtual disk format的選項,這樣搬完之後就會順便轉完了。