Proxmox VE 是一款集合眾多優秀開源軟體的虛擬化平台,虛擬機器採用的是知名開源技術與套件 KVM、QEMU。
我在過去的 Proxmox VE 經驗分享中提到,如果使用 Proxmox VE 後想要轉換其它平台,不用擔心虛擬機器會無法移轉,因為採用了開源軟體,反而讓移轉的相容性問題不再。
除了 Proxmox VE 以外,同樣採用 KVM、QEMU 技術的開源軟體,有 oVirt、OpenStack、OpenNebula...等,選擇非常眾多,依據需求與喜好可以慢慢挑選。
在同樣 KVM 的情況下,要直接以原生 CLI 執行虛擬機器時,需要知道系統是用什麼參數把虛擬機給帶起來的。
在 Proxmox VE 環境裡,可以怎麼得知這些資訊呢?
查看設定
最簡單的方式,是到 WebUI 上查看虛擬機器的 [Hardware 硬體]、[Options 選項] 這兩個頁籤。
查看虛擬機的硬體頁籤
查看虛擬機的選項頁籤
接著,我們到命令列直接用文字編輯器開啟 /etc/pve/qemu-server/xxx.conf 來看看,是否有更詳盡的資訊。
查看虛擬機器設定檔
嗯...好像也差不了多少。
若我們想要更明確的知道虛擬機器運作時的完整參數,需要其它辦法。
查看程序
使用指令來找出執行這個虛擬機器的 KVM 程序完整資訊。
查看 KVM 程序完整參數
ps aux | grep kvm | grep 107
使用 ps aux 列舉系統所有進行中的程序,再利用 grep 篩選出 kvm 程序,以及虛擬機 ID 為 107 的這一支。
列出 KVM 執行虛擬機器的完整參數
好了,這些資訊比起上面的作法,提供了更多的細節資訊,不管是日後要用來在其它地方手動執行虛擬機器,或是要研究這些參數的用途,都有很大的幫助。
但是這個做法指令比較多,一次也只能看一台,有沒有更好的工具可以幫助我呢?
有的,您可以使用 htop 或 glances。
以 htop 查看 KVM 程序參數
如上圖黃色箭頭所示,將光棒停留在要查看的程序上,再按下鍵盤的右鍵,就可以往右查看到完整的執行參數了。
查看指令
上述的方法可行,但我使用 Proxmox VE 時,有沒有更簡單快速的方案?
有的,可以使用 PVE 所提供的 CLI 工具快速查詢。
查看虛擬機器執行參數
qm showcmd xxx
使用 qm showcmd 指令,後面帶上三位數的 VMID,即可輕鬆查看。
使用 qm 指令查看虛擬機器執行參數
將這些指令內容複製起來,直接到命令列貼上,這台虛擬機就可以直接運作起來,可以證明這是完整的 KVM 執行指令與參數。
結論
Proxmox VE 提供了許多方便的視覺化與命令列工具,這次的 qm showcmd 小技巧可以協助我們快速找出所要的 KVM 執行參數。
有了這些資訊,除了研究他是怎麼運作的,還可以做一些進階應用,例如加入或修改 PVE 介面上所不提供的設定項,以特殊的參數執行虛擬機(例如啟用巢狀虛擬化,參考資料第三個個連結後的簡報有提到),或是進行一些測試用途。
正因為都是自由、開源軟體,我們才有這麼多方面的強大彈性,樂趣更多,更重要在於「你可以自己掌握的自由」。
參考資料
- Management Tools - KVM
https://www.linux-kvm.org/page/Management_Tools
- [經驗分享]資訊全面的系統監控神器 - Glances
https://blog.jason.tools/2017/04/glances-monitor-useful.html
- [議程簡報]Proxmox VE 叢集、高可用性與其它進階技巧
https://blog.jason.tools/2019/01/proxmox-ve-cluster-ha-others.html