剛好翻到一篇以前我想過的一個問題「如何知道你目前所在的設備是不是虛擬機?」,為何會有這個問題?
- 當你身為一個廠商連到客戶端的設備時,是否也有過質疑客戶使用虛擬機造成效能不彰的問題?
- 抑或是 host 造成的 bugs 影響 guest
- 或是單純你只想知道目前所使用的 host software 是哪一種
記得當時找了蠻久的,都沒有相對應的 solution,結果就在我一個無意間的 Google 逛街下看到「7 Ways to Detect Virtualization from your VM」
從文中選了一個號稱能在任何的 Linux 編譯成功,並且在我目前環境中都能判斷成功的 virt-what
On Parallels
$ virt-what parallels
On VirtualBox
$ virt-what virtualbox
On OpenStack
$ virt-what kvm
由於用 virt-what 判斷 OpenStack 不會明顯的提示為 OpenStack,僅會顯示 kvm,這樣就無法判別是 OpenStack 或 KVM 了。
好在可以從 /dev/disk/by-id 這個目錄來確認是不是 OpenStack !! 如果是 OpenStack 通常不會存在 /dev/disk/by-id 這個目錄。
延伸閱讀 .. 了解為何 OpenStack 為何沒有 disk by-id
參考資料:
7 Ways to Detect Virtualization from your VM [Xen,VirtualBox,KVM,OpenStack with KVM]