Code Section

Sunday, June 17, 2018

VMware 新知 - vSphere 6.7 帶來哪些新功能亮點

VMware vSphere 6.7 悄悄的在今年 4 月中旬釋出,這次的版本號碼有點特別,前幾代版本的小更新累計有 x.0、x.1、x.5,但從來沒用過 x.7 這種奇妙的版本號碼,大概是不想太早出 7.0 的拖台花招。

此次更為分為四大主要面向:簡單及有效管理、更完整的安全性、增強效能應用平台、與雲端的無縫連結。我會從這四大主題裡,挑出一些較特別的亮點功能或更新加強,來與大家分享。(四大面向的原文為 SIMPLE & EFFICIENT MGMT AT SCALE, COMPREHENSIVE BUILT-IN SECURITY, UNIVERSAL APP PLATFORM, SEAMLESS HYBRID CLOUD EXPERIENCE)

每次的大小更新都一定會有的支援上限擴增 (Scale Enhancements),這種固定劇情就跳過不提了,畢竟那些 configuration maximums 很多數值不是一般環境碰得到的天花板,數字的提升對一般人來說也只是”喔~上限又增加了啊!”這種感覺,不過還是列出幾項從 6.5 U1 → 6.7 值得注意的 configuration maximums 項目:

【vCenter Server Appliance 大爆發】
vCenter Server Appliance (vCSA) Linked Mode
依照 vCSA 6.5 的官方 KB,Linked Mode支援架構設計有兩種做法:
(1)多台以上的 vCSA 不含 PSC,加上一台外部的 PSC (Platform Services Controllers)。
(2)多台以上的 vCSA 含 PCS,加上一台 third-party load balancer。
所以一種選擇是麻煩的佈署、要多一台 PCS、考慮備份多台 vCenter Server 時的資料一致性問題;另一種是花錢多加台 SLB,不過還是得要面對升級時的麻煩手續。所以在 vCSA 6.7 改進了 Linked Mode,可以串起多台 vCSA 含 PCS,不需額外的 Load balancer,並簡化了安裝及升級步驟。

vCenter Server Appliance Back Up Scheduler
vCSA 6.7 強化自訂備份排程,可控制保留份數,並且可以使用 REST API 來備份還原。注意!這邊指的是 vCSA 自身的資料備份,與備份各個 VM 的功能無關。

Cross-vCenter Encrypted vMotion
在 vSphere 6.5 首次出現的 Encrypted vMotion,可針對單個 VM 啟動加密 vMotion,在 vMotion 時會將兩個 Host 間傳輸加密,以保障 VM 經過網路傳輸時的資料安全。在 vSphere 6.7 將此功能從跨 Host 延伸到跨 vCenter,可讓 VM 在跨 vCenter 作 vMotion 時中間保持資料加密,因為跨 vCenter 有很大的可能是跨 internet 或 VPN 線路,但中間還是會經過許多網路節點,此時加密的安全保護就更為重要。

Hybrid Linked Mode
VMware 與 AWS 合作推出 VMware Cloud on AWS,在地端 (自建機房)的 vCenter Server 可與雲端 (AWS)的 vCenter Server 透過 Hybrid Linked Mode 連接,讓管理者在管理兩端的 vCenter Server 更方便。

【vCenter Server 6.7 升級小提醒】
(1)不提供 vCenter 5.5 升級方式,若是 5.5 必須先升級至 6.0,再來才能升上 6.7。
(2)vCenter Server 6.7 是最後一版 vCenter Server for Windows,下個版本就只會有 vCenter Server Appliance (雖然有時候 VMware 會看情況說話不算話),不過看來 VMware 想要徹底斬斷產品對微軟的依賴性,從 4.x 的 vCenter Server 採用的 SQL Server Express 開始,到 5.x 改用 PostgreSQL,而現在要完全拋棄 Windows Server OS。

【ESXi/Virtual Machines】
Single Reboot
減少升級時所需要的 Host 重開機次數,及加上 vSphere Quick Boot 降低重開機時間,讓 VUM 升級 ESXi Cluster 時的 host downtime 減少。

NVIDIA GRID vGPU Enhancements
以往 VM 在 VDI 環境要加入或移除 vGPU 時,需要將這個 VM shutdown (關機),動作完成後再 power on (開機)。在 vSphere 6.7 可以加速這個過程,只需要將 VM Suspend (暫停),處理 vGPU 後再 Resume (繼續)就可以。

vSphere Persistent Memory
支援 Intel 提出的新一代媒體 Persistent Memory (持久型記憶體),速度、容量、成本均在 DRAM 和 SSD 之間,作業系統必須要能偵測此類型記憶體的存在,才能決定 Memory、Persistenet Memory、SSD 之間的資料交換作業,把資料適當的放在不同層,才能夠達到存取速度最佳化。

Per-VM Enhanced vMotion Compatibility (EVC)
以往的 EVC (Enhanced vMotion Compatibility) 是針對 Cluster 啟動,因為跨新舊 Host 之間的 CPU 功能有差距,可以透過 EVC 來讓 VM 在跨新舊 Host 的 vMotion 提高成功率。在 vSphere 6.7 增強為可將 EVC 針對單個 VM 啟動,會讓使用上更加彈性,在 Cross-cluster/datacenter/vCenter 作 vMotion 時會更有機動性。

【小功能更新集錦】
Improved HTML 5 based vSphere Client
在 6.5 亮相的 vSphere HTML5 Client,跟以往 vSphere Client (C#) 要轉到 Web Client 的陣痛狀況類似,初登場的新 Client 很多功能還不完整,所以兩種 Client 會並行一段時間,後來才會慢慢完善新 Client 的功能。此次主要是增加 vSphere Update Manager (VUM)、vSAN、NSX 的操作功能,其他較細部或進階功能就先略過不細談。
vSphere HTML5 Client 官方的功能新增有:Distributed Switch、Storage and SPBM features、Host Profiles (Phase 1)、VM Configuration、VMcrypt、HW version 14, additional devices、Migrate / vMotion、Guest OS Customization、vApp Create/Clone/Edit、Licensing、Administration: Users, Groups, Config & Cert Mgmt、Create Basic Alarm definitions、Plugins: VUM (Phase 1), VSAN。
〔不負責推測〕也許 vSphere 7.0 官方會宣佈廢除 Web Client (Flash),希望大家全面改用 vSphere HTML5 Client,到時候又是另一場苦難的開始,真心覺得 VMware 不要再這樣惡搞這些虛擬化管理員了。

Support for 4K Native Storage
這幾年在伺服器市場才開始出現的 512e 和 4K Native 硬碟,也是新的硬碟規格趨勢,但在 vSphere 6.0 兩者都不支援;到了 vSphere 6.5 才開始支援 ESXi 安裝在 512e HDD,但 4K Native 還是不支援;新的 vSphere 6.7 終於兩者都支援,不會再經歷連 ESXi 都安裝不成功的慘況。《注意還是有部分功能有限制,詳情可點參考資料連結》
〔小故事分享〕之前在某客戶遇到別家廠商,要拿 Dell Server 去做功能測試,結果工程師安裝 ESXi 裝了一天還搞不定,回去查才發現原來機器裡的是 4K Native hard drive,隔兩天緊急更換硬碟才順利完成,所以做事不管大事小事,千萬不要矇著眼睛蠻幹啊!

Support for Trusted Platform Module (TPM) 2.0 and Virtual TPM
在 vSphere 6.5 開始採用的 secure boot 技術,驗證 host 內的所有 process 是被 VMware 簽章未被竄改過的,以確認 host 的作業系統安全性,再搭配上 TPM 2.0 可以保證 secure boot 的檢驗工作能正確完成。在 vSphere 6.7 更進一步增加 Virtual TPM 功能 (依照 TPM 2.0 標準),可以很容易的在 VM 上啟動,就像增加一個 Virtual Device 一樣簡單,用來保護重要的機器金鑰 (machine key)及私密憑證 (private certificate),以確保只有這個 VM 擁有者能存取,以避免被其他管理者或從 Guest 的內部作非法存取。


<<參考資料>>
FAQ: Support statement for 512e and 4K Native drives for VMware vSphere and vSAN (2091600)

Supported and deprecated topologies for VMware vSphere 6.5 (2147672)

DRAM 與 SSD 的速度容量差距如何解?Intel 推出新階層 Optane DC Persistent Memory | T客邦

vSphere 6.7 – Let’s break it down! - VirtuallyInclined

What's New in vSphere 6.7? Should I Upgrade?

What's New in vSphere 6.7 Whitepaper - VMware


〈本文同步刊載於痞客邦部落格〉
VMware 新知 - vSphere 6.7 帶來哪些新功能亮點 @ 狸貓先生愛廢話講堂 :: 痞客邦 ::

Friday, June 15, 2018

Fortinet FGT 進階應用 - 用 FortiClient 安全管控企業防火牆 VPN 連線

從遙遠批踢踢傳來 Mr. Jay 的任務。

<<任務要求>>
公司最近要求研究VPN可以推薦的設備,
主要也是跟客戶端需求有關,希望VPN的功能可以看到:
Client端連線進入VPN Server 的真實IP/MAC。

在我研究完OpenVPN之後,要我找尋國內或是國外,
有沒有設備具有這種功能(主管的經驗是覺得沒有,但還是要我找看看)
曾詢問過高層客戶端所要用到的VPN設備是哪種,它們也說不清楚....
只知道說希望能以 Palo Alto 為主,不然我就是找看看有沒有符合他們需求的設備。
有大大對於VPN設備有熟悉的嗎?  想問有此功能能推薦的VPN設備?

<<提出疑點>>
要能看到 Client 端連線的真實 IP/MAC,應用用途為何?

關於連線的真實 IP,若是要看目前連線的即時資訊,要看 VPN Server 的管理功能是否有提供;若是要將每個 VPN 連線歷史記錄的來源 IP 留存下來,一般 VPN Server 產生的 Log 應該都會有,只是在 VPN Server 上能夠保留多久,是否需要另行匯出作歷史記錄保留,這就需要自行斟酌。
一般需要連線 VPN 的使用者,通常以在外出差的居多,使用場所大致是使用店家、旅館提供的 free wifi 服務,或是透過自己手機 3G/4G 分享,這些環境的 Public IP 通常都不固定,如果是要考慮限制連線的來源 IP,這應該不是個有效的管理方法。

至於如果要看到 Client 的 MAC Address,除了 Client 軟體本身能撈取資訊並回傳之外,可能沒有其他方式。

<<進行推理>>
企業需要讓在外出差的員工同樣能連線存取公司資源,會考慮開放可由 internet 直接存取,但開放連線的同時,等於是將某些內部伺服器直接暴露於 internet 上,會讓除了公司員工以外的有心人士,或是不特定的惡意攻擊有機可乘。

因此企業會考慮採用 VPN 功能,提供給在外的員工使用,讓他們在開放的 internet 環境,在建立 VPN 通道連線後,在安全加密的通道中存取公司內部資源,以保障公司重要資產的安全。

但是在提供員工使用在外使用 VPN 功能時,資訊部門通常會擔心兩個問題:
(1)使用者帳號、密碼外流,遭不明人士連入公司,竊取營業機密。
(2)員工使用私人或不合規裝置連線,裝置內的病毒或蠕蟲,藉由此跳板入侵公司內部。

Fortinet 針對這些問題,推出解決方案來防範:
(1)FortiToken Two-Factor (OTP) Authentication (雙因子認證/動態密碼認證)
(2)FortiClient Device Identification (連線裝置辨識管理)

FortiClient 是 Fortinet 公司開發的免費終端裝置 VPN 連線軟體,支援 IPSec VPN 和 SSL VPN 連線,可安裝在 PC、Laptop、Phone、Tablet…等,涵蓋市面上 90% 以上裝置;中心端設備採用 FortiGate 多功能防火牆作為 VPN Server 角色,使用 VPN 功能不需額外授權費用

首先來談談 FortiToken,外觀照片如下,本體構造簡潔,提供 IP54 防水防塵防護,長效電池壽命可達 3 年以上。
順道一提:
(1)FortiToken 也有行動裝置的 FortiToken Mobile App,可安裝於 Android/iOS 行動裝置上。(FortiGate 需加購 FTK Mobile 授權)
(2)FortiGate Two-Factor (OTP)認證機制也可與 3rd Party 認證設備整合,如 RSA SecurID, SafeNet, Celestix HOTPin…等。

FortiToken 功能說明:
(1)提供第二道動態密碼保護,每 60 秒產生一次,防護性高。
(2)使用者先輸入自己的密碼後,再輸入第二道動態密碼。
(3)FortiToken 免軟體授權費,不需每年硬體維護費用
(4)對 FortiGate 來說,Token 可以給防火牆管理者使用,也可以給 VPN 用戶使用。
(5)FortiToken 設定流程線上影片展示:
IPsec VPN Two-Factor Auth. with FortiToken (5.4) - YouTube

使用 FortiToken 的好處:
(1)防火牆管理免限制來源 IP
-管理者帳號用 FortiToken 進行雙重保護。
-不需要再管理眾多的來源 IP。
(2)外部可安全連至公司內部伺服器
-網路管理者只需設定 SSL VPN 的使用帳號。
-使用者帳號用 FortiToken 進行雙重保護。
-可由防火牆規則限制使用者連通 SSL VPN 後,允許存取的伺服器IP或網段。
-免去設定 Virtual IP、防火牆 Policy、連線來源 IP…等繁瑣手續。

再來談到連線裝置辨識管理 (Device Identification),公司一般會希望員工使用配發的筆電平板裝置,因為權限管控及防護軟體可以套用到配發裝置,以確保符合公司安全政策。現在 VPN 軟體在官網或 Store/Market 都可自行下載,員工的帳號密碼也拿在手上,很容易可以安裝到員工的私人電腦,所以 Device Identification 是『如何防範合法使用者使用未授權裝置』連線到公司內部的方法。

FortiClient+Device Identification 說明:
(1)僅允許公司核准的終端設備進行 VPN 連線,維護公司內資訊系統安全。
(2)避免員工使用私人設備進行 VPN 連線,衍生可能的資安風險。
[註] 此功能 FortiGate 免費提供 10 個裝置授權,若要用更多裝置需加購軟體授權。

對了,上面說了這麼多,這兩種安全機制皆能單獨運作,也可以結合應用喔!
如下圖就是 FortiGate+RSA Authentication Manager+RSA SecurID Token+Device Verification 的機制整合應用。

善用「動態密碼認證+連線裝置管理」機制,可以達到企業 VPN 連線更安全的防護。
如果有興趣再深入了解的朋友,可於文章的底下留言。


〈本文同步刊載於痞客邦部落格〉

Thursday, June 14, 2018

VMware 大哉問 - Datastore 儲存空間剩多少容量算是不夠用?

〈本文同步刊載於痞客邦部落格〉

今天來回覆聽眾 Miss G 的點播。

在開始之前做個簡單快問快答,大家通常都怎麼用 Datastore 的?
切出一大塊儲存空間,然後就拼命一直塞進去,直到塞滿再找下一塊儲存空間?
還是切出多塊儲存空間,將 VM 平均分散放在各塊儲存空間內?
或是有其他更好的使用方法?

<小提醒>此篇字數較多且內容較硬,大家可斟酌觀看,或是中間自行休息片刻。

<<前情提要>>
((因為內容牽涉到環境資訊,會出現小小馬賽克,請放心觀賞。)
在備份軟體看到一個錯誤訊息:Disk space usage on datastore MGMT (95%) has grown beyond the critical threshold 95%。

實際到 MGMT datastore 查看,總容量 2.00 TB、剩餘空間 101.06 MB,換算磁碟使用率的確如告警訊息所示超過 95% [(2048-101.06)/2048 = 0.9506]。

<<推眼鏡解說>>
我們來看一下 MGMT Datastore 裡的 VM 有哪些呢?哇哩勒~不看則已,一看嚇出一身冷汗。
從上往下加,將每台 VM "佈建的空間"加總,加到紅框下一台 VM 的時候早就 2 TB 爆掉了,我沒有膽量繼續往下算。如果說這是線上環境,那我只能說當初的規劃者(或是說執行者)真是太有種,難道不擔心 Datastore 100% full 發生,所有的 VM 全部凍結停止運作的慘況?

為什麼說像這樣的作法是很不恰當的規劃,簡單說明幾個名詞及觀念:
佈建的空間 (Provisioned Space):建立 Virtual Disk 所指定的容量,例如 120 GB。
已使用空間 (Used Space):Guest OS 在 Virtual Disk 實際存放的資料,所佔掉的真實容量。

為什麼 Provisioned Spaced 會和 Used Space 不一致呢?
在建立 Virtual Disk 時,Disk Provioning 的選項:
(1) Thin Provision 格式,會讓兩個數值不一致,佈建空間為輸入的容量大小、已使用空間趨近於零
(2) Thick Provision Lazy Zeroed 格式,佈建空間、已使用空間應該都會是輸入的容量大小,兩者會是相同的。

先撇去效能的事情不考慮,通常是在實驗或測試環境中,我們才會使用 Thin Provision 格式來建立 Virtual Disk,因為需要的 VM 數量多,而實體儲存的容量少,而且在這種環境下,就算 Datastore 塞滿了,頂多也是測試 VM 群一起動不了而已,不會有什麼天大的事發生。

而在線上環境中,強烈建議要採用 Thick Provision 格式來建立 Virtual Disk,因為這樣會容易掌握 Datastore 的剩餘量,才不會有某個 VM 的存放資料突然爆量,而造成 Datastore 實際剩餘量不足。這邊所說的是針對 Guest OS 給定的範圍內爆增,例如說某個 VM 的 Virtual Disk 有 100 GB,原先資料量 20 GB,突然在半小時內新增 60 GB,這屬於合理範圍的使用,但如果因 Datastore 規劃或執行不當,很可能會因為單一 VM 內的資料量增加,影響到全體 VM 的運作情況。

要知道 Virtual Machine 的各個組成元件,以及有些會佔較多空間的檔案需多加注意,詳細可看這篇:狸貓先生愛廢話講堂: VMware 豆知識 - 虛擬世界中的 Virtual Machine 是什麼?

回到主題 Datastore 儲存空間的使用率,如果是在規劃階段,謹記『不能只計算 Virtual Disk 容量的總和』,必須還要考慮上面提到的幾種會大量消耗容量的檔案,否則到時候會讓 Datastore 剩餘空間進退兩難;如果是在使用階段,那就要隨時注意 Datastore 的剩餘空間 (或是說剩餘率),尤其是在進行 backup、snapshot、Guest OS 檔案增加時,更要隨時關心 Datastore 是否趨近滿載。

再來讓我們看看 vCenter Server 預設告警的臨界值:
Web Client >>> vCenter Server >>> Alarm Definitions >>> Datastore usage on disk >>> Triggers
Warning Condition: 75%、Critical Condition: 85%,預設 Actions 無任何動作。

依據 VMware vCenter Server 的預設值,剩下 25% 的時候就需要注意,開始要計劃擴充 datastore 或是刪除用不到的 VM;在剩下 15% 就要拉緊急警報,再低就有可能會影響整個系統運作。預設 Actions 無動作,在超過臨界值時,只有在使用 Web Client、vSphere Client 連上 vCenter Server 時才會看到警告訊息,強烈建議在 Actions 需要自行新增 email 或其他告警方式,需確實通知到管理員的手段才有用,不然 Datastore 爆掉就悲劇了。

在 VMware Commnities 也有討論過這個問題,Datastore 最少可用空間需要保留多少,在官方文件其實沒有特別提到建議值,但大家討論出來大約是剩下 13% - 15% 是最低限度,再低就有可能會危害系統的穩定性,這也與 vCenter Server 預設的 Critical Condition 85% 大致符合。

當然 Datastore 需保留的剩餘趴數不是絕對值,它只是個參考值,依據每個環境在不同的 Datastore 放置的 VM 數量、VM Memory 配置、backup job 備份排程執行、concurrent backup tasks executing 同時執行的備份工作數量…等各種因素影響,需考量更多的保留比例,當然建議最好是不要超過 Warning Condition 75%。

管理 IT 時斷捨離的工夫很重要,尤其是在虛擬環境!以前要新加一台機器有多困難,需要經過預算爭取的拼搏,現在建立一個 VM 卻只需要點幾下,常常很多 VM 都已經不需要,但卻還一直留著,就連 VM snapshot 也是一樣留著,放任 VM 繼續運作,但不知道這對系統會帶來多大的危害。

有空會再來談談 VM Snapshot 到底是什麼東西,不當的使用快照可能會對系統或資料造成傷害,敬請期待。


<<參考資料>>
Understanding VM snapshots in ESXi / ESX (1015180)

Virtual machine becomes unresponsive or inactive when taking a snapshot (1013163)

What Files Make Up a Virtual Machine?

Best Practice Minimum Free Space on Datastore |VMware Communities

Wednesday, June 13, 2018

VMware 妙妙妙 - Migrate VM Storage vMotion 發生無法理解的錯誤

今天來回覆聽眾 Mr. K 的點播。
本篇字數較多,覺得硬的話可分次閱讀。

<<前情提要>>
新機器安裝 ESXi 6.7,舊機器原先安裝 ESXi 6.5,新環境佈署 VCSA 6.7,並將所有 ESXi Host 加入管理。在 vSphere HTML5 Client 下操作,所有的 VM 都是放在 Local Datastore 下,將原先在 6.5 的開機的 VM Migrate 到 6.7 沒問題,但要從 6.7 將開機的 VM Migrate 到 6.5 無法成功。
在執行 vMotion+Storage vMotion 時,過程的結尾會發生奇妙的錯誤:The backing path name is invalid. (中文版 Web Client 看到的訊息是:支援路徑名稱無效)

題外話:VMware vSphere 6.7 在 17 APR 2018 低調現身,殺個讓人措手不及,後續有空再來分享 What's new in vSphere 6.7。

<<解題無腦版>>
一般用關鍵字呼叫咕狗,通常第一頁就會有 VMware KB (Knowledge Base) 出來解危,當然 KB 不是一定有用,但至少會有些解謎方向,但這次卻完全沒有相關資料。

嘗試了幾個...沒啥用的方法,像是:
(1)檢查 Virtual Machine Hardware Version,是否不小心按到升級為 ESXi 6.5 不支援的更高版本。
(2)檢查是否有隱藏未刪除乾淨的 snapshot。
(3)將這個 VM → Remove from inventory → Add to inventory。
(4)...
大概還有十八招,不過既然沒用就不用全部寫出來了,以免誤人子弟。

<<解題認真版>>
VM 在 power on 的時候作 vMotion+Storage vMotion,會牽涉到兩端 Host 的 CPU 相容性 (如果主機型號不同,造成 CPU 世代差異,而且又沒有開啟 EVC 的話),所以先問 VM 能否 shutdown,關機後再做 VM Storage vMotion (或是應該說 change host+datastore),這樣子就只牽涉到純資料搬移,去除硬體相容性的影響。

不過 VM shutdown 之後做 Migrate 還是老樣子,一樣失敗,一樣的錯誤訊息~沒關係只好開始土法煉鋼,開始翻各種地方的 log file,查看該個 VM 的 Events 也沒有什麼幫助,只好開始繼續往 ESXi Host 挖。

小提示:可以透過 Export System Logs (Export the Support Bundle) 功能,把 ESXi Host 的各種 Log 資訊打包後下載回來,這也是開 Support Ticket 時,Support Engineer 很常叫客戶做的事情之一。將下載的壓縮檔解開後,在外面使用文字編輯器 (Notepad++, MadEdit, UltraEdit, ...) 會比較容易查看及搜尋,如果對 vi 的用法很熟悉的話,在 ESXi SSH Shell 下直接來也是可以。

順便抱怨分享另一件奇妙的事,我在 vCSA 6.7 的環境,不管是透過 Web Client 還是 vSphere HTML5 Client,都找不到 Export System Logs 的功能,不知道是位置換了還是新版本的霸格,VMware KB 的適用版本 6.7 還沒加上去,山不轉路轉,改成直接連到 ESXi Host Client 就順利的打包 Support Bundle。

關於在每台 ESXi 上 VM 的操作及詳細 log 都會儲存在每台 ESXi Host 的檔案 /var/log/hostd.log,打包出來的 support bundle 目錄結構會有些許改變,變成 /var/run/log/hostd.log。Log files 每天系統會自動 rotate,歷史檔案會壓縮起來,所以往前的歷史天數依序是:hostd.0.gz, hostd.1.gz, ... hostd.8.gz。

在轉移來源端的 hostd.log 內找不到明顯的錯誤,再來往轉移目的端的 ESXi 尋找。
(轉移目的端)節錄 esxi-target-hostd.log 一段,包含可能有問題的訊息:

2018-06-06T08:32:38.932Z info hostd[2105829] [Originator@6876 sub=Vimsvc.ha-eventmgr opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator] Event 295 : Creating ucspe-3 on host localhost.localdomain in ha-datacenter
2018-06-06T08:32:38.934Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator] FILE: FileCreateDirectoryEx: Failed to create /vmfs. Error = 17
2018-06-06T08:32:38.934Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator] FILE: FileCreateDirectoryEx: Failed to create /vmfs/volumes. Error = 17
2018-06-06T08:32:38.934Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator] FILE: FileCreateDirectoryEx: Failed to create /vmfs/volumes/5b1735f8-10a8490f-6eae-ac162d6f9948. Error = 17
2018-06-06T08:32:38.934Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator] FILE: FileCreateDirectoryEx: Failed to create /vmfs/volumes/5b1735f8-10a8490f-6eae-ac162d6f9948/ucspe-3. Error = 17
2018-06-06T08:32:38.944Z info hostd[2105829] [Originator@6876 sub=Vmsvc.vm:/vmfs/volumes/5b1735f8-10a8490f-6eae-ac162d6f9948/ucspe-3/ucspe-3.vmx opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator] SetVmxVersion: switching environment browser to vmx version 'vmx-13'
2018-06-06T08:32:38.952Z info hostd[2098843] [Originator@6876 sub=Snmpsvc] VmConfigListener: vm state change received, queueing reload request
2018-06-06T08:32:38.964Z info hostd[2105829] [Originator@6876 sub=Vmsvc.vm:/vmfs/volumes/5b1735f8-10a8490f-6eae-ac162d6f9948/ucspe-3/ucspe-3.vmx opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator] Reconfigure failed: N3Vim5Fault20GenericVmConfigFault9ExceptionE(Fault cause: vim.fault.GenericVmConfigFault
--> )
--> [context]zKq7AVICAgAAAMKpfAAcaG9zdGQAAHyZNWxpYnZtYWNvcmUuc28AAADAGwBgsBcBv1v9bGlidmltLXR5cGVzLnNvAIFiMhYBgY6HFgGBmnUSAQK1O9hob3N0ZAAC6h3WAu0l1gLcP9YCWwixAlILsQLldLECAYquAta7tQLaxrUCiuq5AkDtuQJCb2WBomQBAQL148EC7ezBACUwKAADNCgAOw82A2uAAGxpYnB0aHJlYWQuc28uMAAE7ZoObGliYy5zby42AA==[/context]
2018-06-06T08:32:38.984Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator] CopyFromDisk: Hostlog_Dump: Hostlog /vmfs/volumes/5b1735f8-10a8490f-6eae-ac162d6f9948/ucspe-3/ucspe-3-757d692b.hlog
2018-06-06T08:32:38.984Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator]    UUID: 39363436-3230-4e43-3732-34323033324c
2018-06-06T08:32:38.984Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator]    MigID: 7034122878062430581
2018-06-06T08:32:38.984Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator]    HLState: none
2018-06-06T08:32:38.984Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator]    ToFrom: none
2018-06-06T08:32:38.984Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator]    MigType: invalid
2018-06-06T08:32:38.984Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator]    OpType: nfc
2018-06-06T08:32:38.984Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator]    WorldID: 0
2018-06-06T08:32:38.984Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator]    Item Dir F "/vmfs/volumes/5b1735f8-10a8490f-6eae-ac162d6f9948/ucspe-3"
2018-06-06T08:32:38.984Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator]    Item Disk F "/vmfs/volumes/5b1735f8-10a8490f-6eae-ac162d6f9948/ucspe-3/ucspe-3.vmdk"
2018-06-06T08:32:38.984Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator]    Item File F "/vmfs/volumes/5b1735f8-10a8490f-6eae-ac162d6f9948/ucspe-3/ucspe-3.nvram"
2018-06-06T08:32:38.984Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator]    Item File F "/vmfs/volumes/5b1735f8-10a8490f-6eae-ac162d6f9948/ucspe-3/vmware-1.log"
2018-06-06T08:32:38.984Z info hostd[2105829] [Originator@6876 sub=Libs opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator]    Item File F "/vmfs/volumes/5b1735f8-10a8490f-6eae-ac162d6f9948/ucspe-3/vmware.log"
2018-06-06T08:32:38.984Z info hostd[2105829] [Originator@6876 sub=vm opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator]    Item Vm F "/vmfs/volumes/5b1735f8-10a8490f-6eae-ac162d6f9948/ucspe-3/ucspe-3.vmx"
2018-06-06T08:32:38.984Z info hostd[2105829] [Originator@6876 sub=Vmsvc.vm:/vmfs/volumes/5b1735f8-10a8490f-6eae-ac162d6f9948/ucspe-3/ucspe-3.vmx opID=5572f059-d0d4-471b-8fe6-2674b614e9f4-192755-auto-192756-h5c:70026332-44-01-7b-7e27 user=vpxuser:VSPHERE.LOCAL\Administrator] Create failed with given spec: /vmfs/volumes/5b1735f8-10a8490f-6eae-ac162d6f9948/ucspe-3/ucspe-3.vmx

這一看就覺得事情並不單純,ucspe-03.vmx 裡面的內容肯定有鬼,到底是什麼鬼我也不知道,明明七月還沒到就跨丟。
把 ucspe-03.vmx 打開來看,我用火眼金睛看過三次之後,還是看不出哪裡有問題,去咕狗找 vmx format checker 之類的東西,也沒找到這種工具。

繼續來土法煉鋼,如果確定方向是 vmx 的內容有問題,那用 Create Virtual Machine 產生出來的 .vmx 就絕對沒問題。為了以防萬一,原先的 VMDK (Virtual Disk) 先留著,以免發生不測。
假設原先的 VM 是 ucspe-03,新的 VM 取名 ucspe-03-new,請自行依環境修改參數,大致步驟如下:
(vmkfstools 為 ESXi Shell 下指令,請自行小心使用)
(1) 複製 ucspe-03.vmdk,新的檔案 ucspe-03-new.vmdk。
vmkfstools -i ucspe-03.vmdk ucspe-03-new.vmdk
(2) 建立新的虛擬機 (Create a Virtual Machine),名稱為 ucspe-03-new,建立 Virtual Disk 步驟請跳過暫時不要建立,其他參考原先 VM 的 Virtual Hardware 需一致。
請自行操作 Web Client 或 vSphere HTML5 Client。
(3) 將複製出來的 ucspe-03-new.vmdk,搬移到新建 VM 的目錄下 (此步驟是為了往後管理方便)。
vmkfstools -E ucspe-03-new.vmdk ../ucspe-03-new/ucspe-03-new.vmdk
(4) 將新 VM ucspe-03-new 掛上複製的 ucspe-03-new.vmdk。
請自行操作 Web Client 或 vSphere HTML5 Client。
(5) Power On 新 VM ucspe-03-new,看是否運作正常;若正常可將此 VM 關機。
(6) 對新 VM 再做一次 Migrate VM,看 Storage vMotion 搬移過程是否還有錯誤。
(7) 如果一切正常的話,可以把原先無法搬移的舊 VM 完全刪除。

打完收工!


<<參考資料>>
vSphere 6.7 Release Notes

Collecting diagnostic information for VMware ESX/ESXi (653)

vmkfstools - vSphere CLI for managing VMFS volumes.

Validating the .vmx settings of a virtual machine (1003748)

<<附檔收錄>>
這邊是 Migrate VM 的事件完整 log 檔、ucspe-03.vmx,有興趣的可以下載回去研究:
(轉移來源端) esxi-source-hostd.log
(轉移目的端) esxi-target-hostd.log
(VM設定檔) ucspe-3.vmx


〈本文同步刊載於痞客邦部落格〉