很神奇的電腦公司,能配合安裝esxi、proxmox ve(pve)

有一次要幫朋友的朋友弄一組新電腦,配置為pve 8(SSD)+3顆2T HDD,3顆HDD我打算做RAIDZ,沒想到他們配合的廠商能代為安裝pve 8且不額外收費 ,這樣我就能省去遠端教他們一步一步製作、安裝pve 8。

過了幾天,主機送來了,果真安裝好pve 8 , 我遠端連線過去一台筆電,再連線設定該台pve主機,沒想到要劃分zfs時候,卻發現電腦廠商已經很好心把3顆hdd主動用主機板內建的磁碟陣列功能設定成raid 5,這樣反而造成我的困擾,pve系統提示已有硬體raid(isw_raid_member),無法做zfs

好險後來發現,pve重新wipe 那三顆hdd,電腦重開機之後,isw_raid_member(硬體raid5) 就自動不見了,真是幸運,否則還要跑去朋友的朋友那邊「遠得不要不要公司」處理,實在勞民傷財。


Promox VE神救援的故事, workflow GP 3.1

在這虛擬化盛行的年代, 偏偏就有很多軟體開發商, 還在抗拒虛擬化, 害怕一旦虛擬化後,將更容易被盜用,造成損失.

他們的做法主要有二,
一是綁定usb key , 讓你虛擬化後,還是得依賴usb key;
另一是軟體自行偵測是否處在虛擬環境, 若是就拒絕運行,有些則是偵測後,最後還是綁定一台實體主機, 進行授權檢查.

其實在我看來, 他們就是打著反盜版侵權的旗幟, 實際上強力控制客戶.

以台灣最有名的ERP廠商為例子 , 朋友10年前購買workflow GP 3.1 , 當時並沒有告知會鎖定實體主機, 直到朋友公司因為主機老舊,需要重新安裝, 卻出現安裝到虛擬伺服器上, 無法使用的情形, 詢問後, 才知道必須另外在一台實體主機上安裝授權程式, 並且支付ERP廠商”產生“授權序號的費用, 才能使用.

ERP廠商說得好聽就是請記得購買維護, 這些都可以免費協助, 說難聽就是要綁架,要控制這家公司的, 強力取得維護.

其實老實說, 大部分的公司都願意購買維護, 大可不需要用這種手段, 讓IT難為.

萬一實體主機壞了, 系統就停擺, 要等他們處理, 但他們卻沒有想過, 萬一產品停產, 不再維護, 或公司倒了怎麼辦?

後來我跟朋友在一個場合遇到, 才聊到他的問題, 於是我就幫忙檢視一下, 朋友公司使用ESXi 6.5 , 真的無法運行, 仿間小技巧都無法騙過ERP軟體的偵測.

我左思右想,居然橫空出現一個想法, 2010那個年代, 大部分的IT只知道vmware出的虛擬伺服器, 因此我猜測ERP廠商大概也就只會偵測vmware, 並不會偵測qemu , promox ve.

嘿嘿, 於是我立馬安裝了promox ve這個虛擬伺服器系統, 再重建workflow erp系統, 果然成功了, erp軟體一點都沒發現身處虛擬環境, 運行正常.

後話, 我還是建議朋友購買維護, 畢竟他們的ERP專業很夠, 但系統建置這方面就小鼻子小眼睛, 就讓人非常不認同.

會用到這類軟體的公司, 營收都是億來億去, 豈會虛擬化後, 還複製到別處使用, 況且這樣的軟體,一般還要經過上課, 顧問輔導, 系統開帳才有辦法使用, 會願意這樣做的公司, 還會盜用?

系統移轉在驚喜中完成,有promox ve真好!又推坑一家公司了.

製作客製esxi安裝檔出現WinError 10054

先前曾寫過 (ESXi)如何自製加上客製驅動程式之iso檔案 一直都沒有問題
直到最近因需要重做esxi安裝檔, 出現 winerror 10054錯誤, https://twitter.com/vfrontde/status/998868087586934785 上面說明是PWOER SHELL 改用 TLS1.2 造成的
可改用離線版的製作方式, 把相關檔案先下載到本地端, 就可以避開線上製作造成WinError 10054的問題

  1. 先準備好製作環境 ( windows powershell 3.0 or above )
    # 安裝 vmware powercli ( powershell 需以管理者身分執行 ) 
    set-executionpolicy unrestricted
    Install-Module -Name VMware.PowerCLI
    Import-Module VMware.ImageBuilder
    Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $true
  2. 製作客製iso檔
    以下最新版 ESXi-6.7.0-20211104001-standard 版本, 可至 https://esxi-patches.v-front.de/ 查詢
#設定變數
$StandardImageProfileName="ESXi-6.7.0-20200604001-standard"
$CustImageProfileName="ESXi-6.7.0-20200604001-william-20200729"
$CustVendorName="kafeiou.pw"
#匯出原版esxi
Add-EsxSoftwareDepot https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
Export-ESXImageProfile -ImageProfile $StandardImageProfileName -ExportToBundle -filepath "$StandardImageProfileName.zip"
Remove-EsxSoftwareDepot https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
#加入相關檔案
Add-EsxSoftwareDepot "$StandardImageProfileName.zip"
# 支援6.5,6.7
Add-EsxSoftwareDepot .\vibs\net55-r8168-8.045a-napi-offline_bundle.zip
Add-EsxSoftwareDepot .\vibs\net-igb-5.3.2-99-offline_bundle.zip
Add-EsxSoftwareDepot .\vibs\sata-xahci-1.42-1-offline_bundle.zip
#設定(權限)
New-EsxImageProfile -CloneProfile $StandardImageProfileName -name $CustImageProfileName -Vendor $CustVendorName
Set-EsxImageProfile -Name $CustImageProfileName -ImageProfile $CustImageProfileName -AcceptanceLevel CommunitySupported
#啟用額外功能 , 支援6.5,6.7
Add-EsxSoftwarePackage -ImageProfile $CustImageProfileName -SoftwarePackage "net55-r8168"
Add-EsxSoftwarePackage -ImageProfile $CustImageProfileName -SoftwarePackage "net-igb"
Add-EsxSoftwarePackage -ImageProfile $CustImageProfileName -SoftwarePackage "sata-xahci"
#匯出客製esxi
Export-ESXImageProfile -ImageProfile $CustImageProfileName -ExportToIso -filepath "$CustImageProfileName.iso"

3. 第三方來源
https://vibsdepot.v-front.de/wiki/index.php/List_of_currently_available_ESXi_packages

ps. 相關patch檔案下載
https://customerconnect.vmware.com/patch#search

ESXi 使用ssh手動備份vm

最簡的的方式就是ssh登入到主機後, 將整個目錄備份到另一個掛載好的目錄

若需要備份的時候順便進行檔案瘦身(使用thin方式將用不到的資料剔除) , 可以透過以下指令達成

vmkfstools -i $Source/$VM/$VM.vmdk $Backup/$VM/$VM.vmdk -d thin

點選這裡可以下載做好的單一vm備份scripts , 只要編輯幾個變數就好了

若要做到窮人的自動備份, 可以參考 ghettoVCB ( https://github.com/lamw/ghettoVCB ) , 非常方便,還會寄發email報告備份結果.

ps . 為何我要手動備份, 因為小公司資源不足, 有時後vm的D槽掛載一個超大的資料目錄,但是我們只想備份c槽系統碟, 此時就可以針對c槽vmdk進行備份以及瘦身, 大資料的d槽部分, 就交給其他日常備份機制, 不需要整個vmdk備份起來.

windows 2003 從esxi轉到pve出現藍屏(0x000007B)錯誤

esxi轉到pve的時候, 通常只要把硬碟類型改成ide , 就能開機成功了

但是windows 2003實在是太老舊了, 改ide居然失敗, 出現藍屏0x000007B的錯誤.

偶試過很多方式, 除了更新硬碟類型 scsi , sata , ide 外 , 還使用台灣之光再生龍( clonezilla ) 將esxi端vm備份起來, 還原到pve上, 可惜還是失敗.

找了一陣子, proxmox論壇找到此篇文章, 裡面提到使用 mergeide 把esxi的windows 2003開機後執行mergeide, 將硬碟相關驅動程式幹掉, 隨即立即關機, 之後再轉換到pve上面, 設定成ide類型, 開機後就能重新抓取硬碟,正常啟動了.

mergeide的方式, 與微軟為了解決大量佈署作業系統建立 sysprep 架構有關, 把底層一些驅動資料清空, 讓系統保留原本的軟體, 又能重新抓取新的硬體資訊, 來達到異機安裝的目的.

哈!成功開機, 偶想說一切非常美好, 世界和平了,

但是問題又冒出來, windows 2003開機後, 需要重新啟用, 可惜無論如何修改啟用方式, 包括用原版序號都啟用失敗,

後來參考蘇老碎碎念-Windows Server 2003 OEM隨機版系統轉大量授權版本

使用蘇老建議的方法2, 把 windows 2003 升級成為大量授權版, 很神奇的就能正常啟用了.

哈!成功啟用, 偶想說和平又再一次降臨, 

但是問題又又冒出來了, 正常啟用後, 居然還遇到裡面的 MS SQL server 2005 無法使用的情況, 查了一下最後發現原因是 .net framework 2.0 sp2失效了, 這應該跟mergeide清除底層有關, 本來想移除重新安裝, 但無論如何都無法移除失效的.net framework 2.0 , 更不用說直接重裝.

好險微軟官網出了.Net Framework移除工具可以移除到目前為止所有出過的版本(4.7).

下載移除工具之後, 可以只選擇移除 .net framework 2.0 , 等待移除完畢, 就可以重新安裝.

最後最後, 終於完成移轉這個該死的windows 2003 server, 真正的世界和平到來.

 

 

安裝Proxmox VE 5.3 注意事項

這陣子積極將vmware esx 轉成 pve 5.3 , 以後遇到安裝注意事項就寫在這裡.安裝

額外安裝套件

1. 查看iscsi設備

  apt-get install  lsscsi

可使用 lsscsi 查看目前iscsi 設備

2. 安裝multipath-tools

 apt-get install multipath-tools

這方式原本是想要讓系統使用iscsi MPIO 的功能,能夠自動切換線路,但似乎設定上很麻煩, 不過還是先安裝起來.
因為這作法可以解決pve若有兩個不同網段網卡連接到Nas的兩個網卡, 造成pve出現兩個相同device的錯誤,

WARNING: PV Lk4DU4-4HO7-of10-g9cR-tsK4-f9Ka-s2FqfC on /dev/sdd was already found on /dev/sdc.

安裝 multipath-tools 之前 , 執行 pvscan 會出現

PV /dev/sdd    VG LVM-FreeNasVM   lvm2

但是安裝之後, 會出現

PV /dev/mapper/36589cfc000000e54a909f483d8485fb6   VG LVM-FreeNasVM

掛載NFS可考慮使用soft的方式掛載,以免因斷線或是線路不穩造成災難:

編輯 /etc/pve/storage.cfg , 在NFS區塊找出 options vers=3 最後面加上 soft 參數, 變成 options vers=3,soft
# 2022/07/27 後來升級改用 nfs vers=4.2 似乎就不用加上soft選項了

列出/刪除cluster的node

1. 列出 pvecm nodes 
2. 刪除 pvecm delnode "Node Name" , 最後記得刪除相關檔案(也可以備份) rm /etc/pve/nodes/"Node Name"

移轉esxi vm至pve

1.  esxi匯出 ova 檔案或是ovf檔案, 並且注意該vm的硬體配置

2. 將ova檔案移至pve能存取的storage 上

3. ssh 登入pve, 使用tar vfx 方式解開ova檔案

4. ssh 登入pve, 將解開的檔案裡面的vmdk轉成qcow2

qemu-img convert -f vmdk xxx.vmdk -O qcow2 xxx.qcow2
#2023/9/15
#若vmdk有 xxx.vmdk xxx-flat.vmdk 而且xxx-flat.vmdk檔案最大,轉換時只需輸入xxx.vmdk,qemu-img會自動認出xxx-flat然後轉換

5. 到pve新增vm, 並且確認esxi vm的硬碟, 使用sata或是ide(這部份弄錯會導致無驅動程式,而無法開機)

等到vm新增完畢, 再將步驟4的qcow2檔案覆蓋過去pve上新的vm檔案

1 2