因需要將 VMWare 的 VM 轉到 Hyper-V
祭出 MVMC 3.0 (Microsoft Virtual Machine Converter 3.0)
但因為一些原因只能從 DataStore 直接 Download .vmdk 出來, 不能讓他關機進行 Convert
而直接 Download 下來的 .vmdk 沒有簡單的小程式能直接轉檔
原本微軟有提供一個 Command Line 工具叫 vmdc.exe, 但現在也已經 404 了
查找了一陣子之後發現原來裝好 MVMC 後只要 Import 他的 Module 就能用 PowerShell 來處理了
2017-12-06
Compact VHD / VHDx
有時候你會發現, Dynamic 的 VHD / VHDx 怎麼 Compact 都還是一樣大
一個 100GB 的 VHD 裡面明明只有 20GB 卻無法縮小
在許多年前我就有發現這個問題並自己摸索找到方法解決
只要進行以下步驟就可以縮小了
一個 100GB 的 VHD 裡面明明只有 20GB 卻無法縮小
在許多年前我就有發現這個問題並自己摸索找到方法解決
只要進行以下步驟就可以縮小了
- 以唯讀模式將 vhd mount 起來
- Compact
- unmount
- 再 Compact 一次
2017-07-18
Windows 2000 實體機轉 Hyper-V 的虛擬化作業
有一台老掉牙的 Windows 2000 Server
由於上面的系統已經沒有人會維護了, 而該系統能轉的功能也都已經轉到別的系統上但仍有一些資料無法轉出, 需要在上面查詢, 故不能下線也不能壞掉
但是也無法移機, 因為那個系統早已沒有簽維護, 廠商也早已不支援那古代的版本
所以唯一避免他一步一步走上硬體損壞的絕路之前能做的僅有虛擬化一途
由於 Windows 2000 不支援 Volume Shadow Copy, 所以不能線上用 Disk2vhd 來轉
如果從光碟開機進一般的 WinPE 等工具系統, 也因為 RAID Card Driver 的關係沒辦法讀到磁碟
在這困難重重的情況下還好仍有一線生機
雖然自己常用的是 Hyper-V, 但對 VMWare 也是不排斥的
此時祭出 VMware vCenter Converter Standalone 來進行線上移轉是再適合不過了
畢竟在那個年代, VMWare 絕對是虛擬化技術的王者
果然一切順利地轉到 VMWare vSphere 免費板上面去一點問題也沒有
為了利用便宜的即時移轉、複寫等功能, 我們的虛擬化平台 95% 都是 Hyper-V
所以接下來的挑戰就是再從 VMWare 轉到 Hyper-V
在這裡吃足了苦頭, 以下是實戰說明:
2017-01-20
Nested Virtualization on Windows (Hyper-V) Server 2016
Windows Server 2016 的 Hyper-V 開始支援 Nested Virtualization (巢狀虛擬化)
據說以前不提供這個功能是因為微軟認為不需要
但 Windows Server 2016 要開始支援 Container, 所以不得不提供巢狀虛擬化的功能
要使用巢狀虛擬化, 必須滿足/留意以下條件:
據說以前不提供這個功能是因為微軟認為不需要
但 Windows Server 2016 要開始支援 Container, 所以不得不提供巢狀虛擬化的功能
要使用巢狀虛擬化, 必須滿足/留意以下條件:
- 實體 Virtualization Host 的 CPU 必須支援 VT-x 、EPT
- Guest Hypervisor VM 必須啟用 vCPU Virtualization Extensions
- Guest Hypervisor VM 提供給 Guest VM 的網卡必須啟用 MAC Address Spoofing
- Guest Hypervisor VM 必須為 Generational 2
- Guest Hypervisor VM Configuration Version 必須為 8.0
- Guest Hypervisor VM 不可使用 Dynamic Memory
- Guest Hypervisor VM 無法進行 Runtime Memory Resize
2014-09-22
Hyper-V VM Backup 方式, Replica 的替代方案 (自行撰寫 PowerShell 程式)
環境:
可達到的目標:
1. 可進行 VM 線上差異化備份, 不用每次備份都 Export, 佔用大量 I/O
2. 可以在允許 Down Time 較久的前提下手動做不停機 Migration
與 Export 後再 Import 是一樣的道理, 只是使用的是差異化磁碟
歷史:
2014.09.24 加入備份檔案檢查機制
2014.10.25 1. 程式開始時先檢查備份路徑如果不能存取就結束
(先嘗試建立, 不能建立就是失敗, 目標如果是網路磁碟機, 可能連線失敗)
2. 程式開始時先檢查指定的 VM 如果不存在就結束
1. 唯一一台 Hyper-V, 無法做複寫或叢集
2. 只有一座 Hyper-V 叢集, 沒有其他 Hyper-V 主機
描述:
上述狀況都無法進行 Hyper-V 複寫來作為備份策略
如果用 Export-VM 的話, 若 VM 的 vhd 很大則會佔用大量 Disk I/O
解決方式:
自行撰寫 PowerShell 程式, 利用 CheckPoint 功能土砲差異化備份 (與 Replica 雷同)
預設條件:
VM 本身除了備份 Powershell 所建立的 CheckPoint 外不可以有其他 CheckPoint
註: Production 環境的 VM 本來就不該有 CheckPoint, 會影響運作效率
程式運作邏輯:
1. 建立 CheckPoint 使 VM 原始 vhd 停止寫入, 新的變更都會寫在 CheckPoint 所建立的差異磁碟 avhd
且該 CheckPoint 會將當時的記憶體寫入成檔案, 等於 VM Pause
2. 將上述 CheckPoint 資料複製出來作為備份, 未來就還原該 CheckPoint, 達到備份還原目的
可達到的目標:
1. 可進行 VM 線上差異化備份, 不用每次備份都 Export, 佔用大量 I/O
2. 可以在允許 Down Time 較久的前提下手動做不停機 Migration
與 Export 後再 Import 是一樣的道理, 只是使用的是差異化磁碟
歷史:
2014.09.24 加入備份檔案檢查機制
2014.10.25 1. 程式開始時先檢查備份路徑如果不能存取就結束
(先嘗試建立, 不能建立就是失敗, 目標如果是網路磁碟機, 可能連線失敗)
2. 程式開始時先檢查指定的 VM 如果不存在就結束
2013-11-29
Hyper-V 3.0 的遠端控制與即時移轉 (Windows Server 2012)
前提:
1. Hyper-V 主機 Join AD Domain
2. 操作人員的 User Account 必須具有 Hyper-V 主機的 Hyper-V 管理權限
3. 操作人員的 User Account 必須要加入 Hyper-V 主機的 Local Administrators 群組
前置動作: 設定 Hyper-V 管理員群組
1. 在 AD 中建立一個群組命名為: HyperVAdmin (可任意命名)
2. 將要對 Hyper-V 進行管理人人員帳號加入 HyperVAdmin 群組
3. 將 HyperVAdmin 群組加入 Hyper-V 主機的 Local Administrators 群組
4. 在 Hyper-V 主機上以 Domain Admin 權限帳號將 HyperVAdmin 群組加入 Hyper-V 管理員
使用 Hyper-V Remote Management Configuration Utility
http://code.msdn.microsoft.com/HVRemote/Release/ProjectReleases.aspx?ReleaseId=1827
指令: cscript hvremote.wsf /add:Contoso\HyperVAdmin
設定成功後重開機才會生效
*. 如果 Hyper-V 主機是 Stand Alone Server, 在控制端可以進行以下設定:
1. 加入 Windows 管理認證:
a. GUI 介面操作: [控制台] -> [使用者帳戶] -> [認證管理員] -> [Windows認證]
b. 命令列操作: cmdkey /add:Hyper-V 主機名稱 /user:有權限存取 Hyper-V 主機的帳號 /pass:前述帳號的密碼
2. 使用 Hyper-V Remote Management Configuration Utility
指令: cscript hvremote.wsf /AnonDCOM:grant
設定成功後立即生效不用重開機
上述動作完畢後, 便可在 Client 端以 Hyper-V 管理員對 Hyper-V 主機進行各項管理作業
1. Hyper-V 主機 Join AD Domain
2. 操作人員的 User Account 必須具有 Hyper-V 主機的 Hyper-V 管理權限
3. 操作人員的 User Account 必須要加入 Hyper-V 主機的 Local Administrators 群組
前置動作: 設定 Hyper-V 管理員群組
1. 在 AD 中建立一個群組命名為: HyperVAdmin (可任意命名)
2. 將要對 Hyper-V 進行管理人人員帳號加入 HyperVAdmin 群組
3. 將 HyperVAdmin 群組加入 Hyper-V 主機的 Local Administrators 群組
4. 在 Hyper-V 主機上以 Domain Admin 權限帳號將 HyperVAdmin 群組加入 Hyper-V 管理員
使用 Hyper-V Remote Management Configuration Utility
http://code.msdn.microsoft.com/HVRemote/Release/ProjectReleases.aspx?ReleaseId=1827
指令: cscript hvremote.wsf /add:Contoso\HyperVAdmin
設定成功後重開機才會生效
*. 如果 Hyper-V 主機是 Stand Alone Server, 在控制端可以進行以下設定:
1. 加入 Windows 管理認證:
a. GUI 介面操作: [控制台] -> [使用者帳戶] -> [認證管理員] -> [Windows認證]
b. 命令列操作: cmdkey /add:Hyper-V 主機名稱 /user:有權限存取 Hyper-V 主機的帳號 /pass:前述帳號的密碼
2. 使用 Hyper-V Remote Management Configuration Utility
指令: cscript hvremote.wsf /AnonDCOM:grant
設定成功後立即生效不用重開機
上述動作完畢後, 便可在 Client 端以 Hyper-V 管理員對 Hyper-V 主機進行各項管理作業
訂閱:
文章 (Atom)