操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    這篇文章主要講解了“如何判斷虛擬環境是物理機、虛擬機還是容器”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入虛擬機上可以編程嗎,一起來研究和學習“如何判斷虛擬環境是物理機、虛擬機還是容器”吧!

    1、判斷容器

    目前還沒有什么方法能夠100%準確判斷虛擬環境是否是容器,至少我沒有找到相關文獻。

    如果環境有--virt命令,則可以直接通過--virt -c命令判斷,如果輸出為none則不是容器,否則會輸出容器類型,比如lxc。目前很少容器里面放的,我見過的就只有 LXD 的鏡像,因此這種方法適用性不廣。

    除此之外,可通過其他判斷,最簡便的方法判斷PID為1的進程,如果該進程就是應用進程則判斷是容器,而如果是init進程或者進程,則不一定是容器,當然不能排除是容器的情況,比如LXD/lXC實例的進程就為/sbin/init。

    容器和虛擬機不一樣的是,容器和宿主機是共享內核的,因此理論上容器內部是沒有內核文件的,除非掛載了宿主機的/boot目錄:

    另外,我們知道容器是通過實現資源限制,每個容器都會放到一個組中,如果是,則的名稱為-xxxx,其中xxxx為容器的UUID。

    而控制容器的資源,本質就是控制運行在容器內部的進程資源,因此我們可以通過查看容器內部進程為1的名稱獲取線索。

    如下是我通過 跑 的 信息:

    我們不僅可以知道這是 容器,還獲取了 容器的 UUID 為 9ba&;11。

    根據如上的結論,判斷一個虛擬環境是否 的腳本為:

    虛擬機上可以編程嗎_淘寶上虛擬店轉實體店_想在淘寶上開個虛擬店

    當然如果僅僅判斷是否 容器,還能通過判斷是否存在 . 文件區分是否 容器:

    rkt 容器類似,輸出結果如下:

    如上的 \x2d 為-號:

    因此判斷一個虛擬環境是否 rkt 的腳本為:

    好奇 AWS 的運行環境是什么,于是寫了個函數輸出 /proc/1/,結果為:

    猜測是一種叫 的運行環境,估計也是一種容器。

    判斷虛擬環境是否為容器環境相對比較復雜,目前沒有完美的方案,總結過程如下:

    虛擬機上可以編程嗎_想在淘寶上開個虛擬店_淘寶上虛擬店轉實體店

    另外,需要特別注意的是,容器必須最先判斷,因為容器本身并沒有任何的硬件虛擬化,容器看到的硬件特性信息和宿主機看到的完全一樣,因此下面介紹的通過lscpu以及DMI信息判斷是否是虛擬機或者物理機,對容器并不適用。換句話說虛擬機上可以編程嗎,不能因為lscpu的 值為KVM就說明一定是KVM虛擬機,因為它也有可能是容器。下文均假設已經排除為容器的情況。

    2、判斷物理機

    如果使用了 ,則可以直接通過 --virt 命令判斷是否物理機:

    如果輸出為 none,則說明是物理機。

    當然也可根據 lscpu 命令輸出,看是否有 屬性,如果沒有該屬性,則一般為物理機,如果存在該屬性則一定是虛擬機:

    獲取物理機的信息最直接的方式是查看 DMI 信息 /sys//dmi//DMI,使用 命令解碼:

    如上可以看出這是臺物理機,廠商為 HP,型號為 DL380 Gen9,序列號為。

    通過 命令可以查看物理服務器的帶外 IP:

    當然如果是虛擬機,如上命令會執行失敗。另外也可以通過其他命令查看物理信息,如lshw 命令。

    淘寶上虛擬店轉實體店_想在淘寶上開個虛擬店_虛擬機上可以編程嗎

    3、判斷虛擬機

    其實前面已經提到了,如果使用了,則可以直接通過 --virt 命令判斷是否虛擬機:

    如果是虛擬機,則會輸出虛擬機類型,如 kvm、()、xen 等。

    當然也可根據 lscpu 命令輸出,查看 屬性值:

    通過如上命令,我的一臺 AWS 虛擬機輸出為 Xen,阿里云虛擬機為 KVM,虛擬機也輸出為 KVM,這是因為我使用了 KVM 硬件加速虛擬化。

    我的搬瓦工虛擬機輸出也為 KVM,可見搬瓦工主機也是 KVM 虛擬機。

    通過如上方法可以獲取虛擬機的虛擬化類型,能否獲取更多信息呢?參考物理機的獲取方式,我們可以通過 命令獲取更多的虛擬機信息。比如我在一臺 虛擬機運行如下命令:

    如上 為 ,說明運行在 平臺,為 Nova 版本,根據 的 可知 15.0.1 對應為 Ocata 版本,而 UUID 即虛擬機的 UUID。

    AWS 上的一臺虛擬機輸出為:

    在 中標明了 字樣。

    虛擬機上可以編程嗎_淘寶上虛擬店轉實體店_想在淘寶上開個虛擬店

    阿里云虛擬機如下(感謝L神提供的輸出):

    可見雖然可以從 信息中獲取云廠商的線索,但其實虛擬機的 信息并沒有統一的標準,有的在 中體現,有的在 Name 中表現,完全取決于云廠商自己的配置。

    如上整合如下腳本初略判斷:

    如上也可以判斷公有云是否基于 實現,比如華為虛擬機輸出為 ,可大致猜測華為的公有云是基于 實現的。

    AWS 以及 系的虛擬機還可以通過 或者 獲取更多信息,以 為例:

    獲取虛擬機的 ID:

    獲取 type (規格):

    獲取虛擬機的公有IP(彈性IP),這個挺有用的,因為在虛擬機沒法通過查看彈性IP,經常登錄虛擬機后,忘記自己的公有IP:

    淘寶上虛擬店轉實體店_虛擬機上可以編程嗎_想在淘寶上開個虛擬店

    其他的比如 vpc-id、ami id(鏡像id)、安全組、公鑰名等都可以通過該方式獲取。

    如果是 ,還可以使用 的 獲取更多信息:

    如上可獲取虛擬機的租戶 ID、 type 等信息。當然邪惡點可以通過查看 獲取虛擬機初始化 root 密碼。AWS 甚至可以查看 以及。

    4、總結

    如上總結了幾種判斷虛擬化環境類型的方法,不一定準確,僅供參考,當然也可能還有其他更好的方法。

    如下是根據前面的結論寫的一個探測虛擬化類型的腳本,不一定健壯完備,僅供參考:

    感謝各位的閱讀,以上就是“如何判斷虛擬環境是物理機、虛擬機還是容器”的內容了,經過本文的學習后,相信大家對如何判斷虛擬環境是物理機、虛擬機還是容器這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是編程網,小編將為大家推送更多相關知識點的文章,歡迎關注!

    --結束END--

    本文標題: 如何判斷虛擬環境是物理機、虛擬機還是容器

    本文鏈接: (轉載時請注明來源鏈接)

    有問題或投稿請發送至: 郵箱/ QQ/

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有