亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Ubuntu > 正文

在Ubuntu的命令行終端里管理KVM虛擬機的教程

2020-10-18 20:37:09
字體:
來源:轉載
供稿:網友

有很多不同的方式去管理運行在 KVM 管理程序上的虛擬機。例如,virt-manager 就是一個流行的基于圖形界面的前端虛擬機管理工具。然而,如果你想要在沒有圖形窗口的服務器環境下使用 KVM ,那么基于圖形界面的解決方案顯然是行不通的。事實上,你可以單純使用包裝了 kvm 命令行腳本的命令行來管理 KVM 虛擬機。作為替代方案,你可以使用 virsh 這個容易使用的命令行程序來管理客戶虛擬機。在 virsh 中,它通過和 libvirtd 服務通信來達到控制虛擬機的目的,而 libvirtd 可以控制多個不同的虛擬機管理器,包括 KVM,Xen,QEMU,LXC 和 OpenVZ。
當你想要對虛擬機的前期準備和后期管理實現自動化操作時,像 virsh 這樣的命令行管理工具是非常有用的。同樣,virsh 支持多個管理器也就意味著你可以通過相同的 virsh 接口去管理不同的虛擬機管理器。

在這篇文章中,我會示范怎樣在 ubuntu 和 debian 上通過使用 virsh 命令行去運行 KVM。

第一步:確認你的硬件平臺支持虛擬化

第一步,首先要確認你的 CPU 支持硬件虛擬化擴展(e.g.,Intel VT 或者 AMD-V),這是 KVM 對硬件的要求。下面的命令可以檢查硬件是否支持虛擬化。

復制代碼
代碼如下:

$ egrep '(vmx|svm)' --color /proc/cpuinfo

201631110552637.jpg (800×198)

如果在輸出中不包含 vmx 或者 svm 標識,那么就意味著你的 cpu 不支持硬件虛擬化。因此你不能在你的機器上使用 KVM 。確認了 cpu 支持 vmx 或者 svm 之后,接下來開始安裝 KVM。

對于 KVM 來說,它不要求運行在擁有 64 位內核系統的主機上,但是通常我們會推薦在 64 位系統的主機上面運行 KVM。

第二步:安裝KVM

使用 apt-get 安裝 KVM 和相關的用戶空間工具。

復制代碼
代碼如下:

$ sudo apt-get install qemu-kvm libvirt-bin

安裝期間,libvirtd 用戶組(在 debian 上是 libvirtd-qemu 用戶組)將會被創建,并且你的用戶 id 將會被自動添加到該組中。這樣做的目的是讓你可以以一個普通用戶而不是 root 用戶的身份去管理虛擬機。你可以使用 id 命令來確認這一點,下面將會告訴你怎么去顯示你的組 id:

復制代碼
代碼如下:

$ id <your-userID>

201631110806336.jpg (800×82)

如果因為某些原因,libvirt(在 debian 中是 libvirt-qemu)沒有在你的組 id 中被找到,你也可以手動將你自己添加到對應的組中,如下所示:

在 ubuntu 上:

復制代碼
代碼如下:

$ sudo adduser [youruserID] libvirtd

在 debian 上:

復制代碼
代碼如下:

$ sudo adduser [youruserID] libvirt-qemu

按照如下命令重新載入更新后的組成員關系。如果要求輸入密碼,那么輸入你的登陸密碼即可。

復制代碼
代碼如下:

$ exec su -l $USER

這時,你應該可以以普通用戶的身份去執行 virsh 了。做一個如下所示的測試,這個命令將會以列表的形式列出可用的虛擬機(當前的列表是空的)。如果你沒有遇到權限問題,那意味著到目前為止一切都是正常的。

復制代碼
代碼如下:

$ virsh list

 Id    Name                           State
第三步:配置橋接網絡

為了使 KVM 虛擬機能夠訪問外部網絡,一種方法是通過在 KVM 宿主機上創建 Linux 橋來實現。創建之后的橋能夠將虛擬機的虛擬網卡和宿主機的物理網卡連接起來,因此,虛擬機能夠發送和接收由物理網卡傳輸的數據包。這種方式叫做網絡橋接。

下面將告訴你如何創建并且配置網橋,我們創建一個網橋稱它為 br0。

首先,安裝一個必需的包,然后用命令行創建一個網橋。

復制代碼
代碼如下:

$ sudo apt-get install bridge-utils
$ sudo brctl addbr br0

下一步就是配置已經創建好的網橋,即修改位于 /etc/network/interfaces 的配置文件。我們需要將該橋接網卡設置成開機啟動。為了修改該配置文件,你需要關閉你的操作系統上的網絡管理器(如果你在使用它的話)。跟隨操作指南的說明去關閉網絡管理器。

關閉網絡管理器之后,接下來就是通過修改配置文件來配置網橋了。

復制代碼
代碼如下:

#auto eth0
#iface eth0 inet dhcp
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0

在上面的配置中,我假設 eth0 是主要網卡,它也是連接到外網的網卡,同樣,我假設 eth0 將會通過 DHCP 協議自動獲取 ip 地址。注意,之前在 /etc/network/interfaces 中還沒有對 eth0 進行任何配置。橋接網卡 br0 引用了 eth0 的配置,而 eth0 也會受到 br0 的制約。

重啟網絡服務,并確認網橋已經被成功的配置好。如果成功的話,br0 的 ip 地址將會是 eth0 自動分配的 ip 地址,而且 eth0 不會被分配任何 ip 地址。

復制代碼
代碼如下:

$ sudo /etc/init.d/networking restart
$ ifconfig

如果因為某些原因,eth0 仍然保留了之前分配給了 br0 的 ip 地址,那么你可能必須手動刪除 eth0 的 ip 地址。
201631110832722.jpg (800×548)

第四步:用命令行創建一個虛擬機

對于虛擬機來說,它的配置信息被存儲在它對應的xml文件中。因此,創建一個虛擬機的第一步就是準備一個與虛擬機對應的 xml 文件。

下面是一個示例 xml 文件,你可以根據需要手動修改它。

XML/HTML Code復制內容到剪貼板
  1. <domain type='kvm'>  
  2.      <name>alice</name>  
  3.      <uuid>f5b8c05b-9c7a-3211-49b9-2bd635f7e2aa</uuid>  
  4.      <memory>1048576</memory>  
  5.      <currentMemory>1048576</currentMemory>  
  6.      <vcpu>1</vcpu>  
  7.      <os>  
  8.        <type>hvm</type>  
  9.        <boot dev='cdrom'/>  
  10.      </os>  
  11.      <features>  
  12.        <acpi/>  
  13.      </features>  
  14.      <clock offset='utc'/>  
  15.      <on_poweroff>destroy</on_poweroff>  
  16.      <on_reboot>restart</on_reboot>  
  17.      <on_crash>destroy</on_crash>  
  18.      <devices>  
  19.        <emulator>/usr/bin/kvm</emulator>  
  20.        <disk type="file" device="disk">  
  21.          <driver name="qemu" type="raw"/>  
  22.          <source file="/home/dev/images/alice.img"/>  
  23.          <target dev="vda" bus="virtio"/>  
  24.          <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0"/>  
  25.        </disk>  
  26.        <disk type="file" device="cdrom">  
  27.          <driver name="qemu" type="raw"/>  
  28.          <source file="/home/dev/iso/CentOS-6.5-x86_64-minimal.iso"/>  
  29.          <target dev="hdc" bus="ide"/>  
  30.          <readonly/>  
  31.          <address type="drive" controller="0" bus="1" target="0" unit="0"/>  
  32.        </disk>  
  33.        <interface type='bridge'>  
  34.          <source bridge='br0'/>  
  35.          <mac address="00:00:A3:B0:56:10"/>  
  36.        </interface>  
  37.        <controller type="ide" index="0">  
  38.          <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x1"/>  
  39.        </controller>  
  40.        <input type='mouse' bus='ps2'/>  
  41.        <graphics type='vnc' port='-1' autoport="yes" listen='0.0.0.0'/>  
  42.        <console type='pty'>  
  43.          <target port='0'/>  
  44.        </console>  
  45.      </devices>  
  46.    </domain>  

上面的主機xml配置文件定義了如下的虛擬機內容。

1GB內存,一個虛擬cpu和一個硬件驅動

磁盤鏡像:/home/dev/images/alice.img

從 CD-ROM 引導(/home/dev/iso/CentOS-6.5-x86_64-minomal.iso)

網絡:一個橋接到 br0 的虛擬網卡

通過 VNC 遠程訪問

<uuid></uuid> 中的 UUID 字符串可以隨機生成。為了得到一個隨機的 uuid 字符串,你可能需要使用 uuid 命令行工具。

復制代碼
代碼如下:

$ sudo apt-get install uuid
$ uuid

生成一個主機 xml 配置文件的方式就是通過一個已經存在的虛擬機來導出它的 xml 配置文件。如下所示。

復制代碼
代碼如下:

$ virsh dumpxml alice > bob.xml

201631110858159.jpg (800×231)

第五步:使用命令行啟動虛擬機

在啟動虛擬機之前,我們需要創建它的初始磁盤鏡像。為此,你需要使用 qemu-img 命令來生成一個 qemu-kvm 鏡像。下面的命令將會創建 10 GB 大小的空磁盤,并且它是 qcow2 格式的。

復制代碼
代碼如下:

$ qemu-img create -f qcow2 /home/dev/images/alice.img 10G

使用 qcow2 格式的磁盤鏡像的好處就是它在創建之初并不會給它分配全部大小磁盤容量(這里是 10 GB),而是隨著虛擬機中文件的增加而逐漸增大。因此,它對空間的使用更加有效。

現在,你可以通過使用之前創建的 xml 配置文件啟動你的虛擬機了。下面的命令將會創建一個虛擬機,然后自動啟動它。

復制代碼
代碼如下:

$ virsh create alice.xml

Domain alice created from alice.xml
注意: 如果你對一個已經存在的虛擬機執行了了上面的命令,那么這個操作將會在沒有任何警告的情況下抹去那個已經存在的虛擬機的全部信息。如果你已經創建了一個虛擬機,你可能會使用下面的命令來啟動虛擬機。

復制代碼
代碼如下:

$ virsh start alice.xml

使用如下命令確認一個新的虛擬機已經被創建并成功的被啟動。

復制代碼
代碼如下:

$ virsh list

 Id    Name                           State
----------------------------------------------------
 3     alice                          running
同樣,使用如下命令確認你的虛擬機的虛擬網卡已經被成功的添加到了你先前創建的 br0 網橋中。

復制代碼
代碼如下:

$ sudo brctl show

201631110932227.jpg (800×138)

遠程連接虛擬機

為了遠程訪問一個正在運行的虛擬機的控制臺,你可以使用VNC客戶端。

首先,你需要使用如下命令找出用于虛擬機的VNC端口號。

復制代碼
代碼如下:

$ sudo netstat -nap | egrep '(kvm|qemu)'

201631110949449.jpg (800×190)

在這個例子中,用于 alice 虛擬機的 VNC 端口號是 5900。 然后啟動一個VNC客戶端,連接到一個端口號為5900的VNC服務器。在我們的例子中,虛擬機支持由CentOS光盤文件啟動。
201631111007819.jpg (800×563)

使用 virsh 管理虛擬機

下面列出了 virsh 命令的常規用法:

創建客戶機并且啟動虛擬機:

復制代碼
代碼如下:

$ virsh create alice.xml

停止虛擬機并且刪除客戶機:

復制代碼
代碼如下:

$ virsh destroy alice

關閉虛擬機(不用刪除它):

復制代碼
代碼如下:

$ virsh shutdown alice

暫停虛擬機:

復制代碼
代碼如下:

$ virsh suspend alice

恢復虛擬機:

復制代碼
代碼如下:

$ virsh resume alice

訪問正在運行的虛擬機的控制臺:

復制代碼
代碼如下:

$ virsh console alice

設置虛擬機開機啟動:

復制代碼
代碼如下:

$ virsh autostart alice

查看虛擬機的詳細信息:

復制代碼
代碼如下:

$ virsh dominfo alice

編輯虛擬機的配置文件:

復制代碼
代碼如下:

$ virsh edit alice

上面的這個命令將會使用一個默認的編輯器來調用主機配置文件。該配置文件中的任何改變都將自動被libvirt驗證其正確性。

你也可以在一個virsh會話中管理虛擬機。下面的命令會創建并進入到一個virsh會話中:

復制代碼
代碼如下:

$ virsh

在 virsh 提示中,你可以使用任何 virsh 命令。
201631111029309.jpg (800×472)

問題處理

我在創建虛擬機的時候遇到了一個錯誤:

error: internal error: no supported architecture for os type 'hvm'

如果你的硬件不支持虛擬化的話你可能就會遇到這個錯誤。(例如,Intel VT或者AMD-V),這是運行KVM所必需的。如果你遇到了這個錯誤,而你的cpu支持虛擬化,那么這里可以給你一些可用的解決方案:

首先,檢查你的內核模塊是否丟失。

復制代碼
代碼如下:

$ lsmod | grep kvm

如果內核模塊沒有加載,你必須按照如下方式加載它。

復制代碼
代碼如下:

$ sudo modprobe kvm_intel (for Intel processor)
$ sudo modprobe kvm_amd (for AMD processor)

第二個解決方案就是添加 --connect qemu:///system 參數到 virsh 命令中,如下所示。當你正在你的硬件平臺上使用超過一個虛擬機管理器的時候就需要添加這個參數(例如,VirtualBox,VMware)。

$ virsh --connect qemu:///system create alice.xml
當我試著訪問我的虛擬機的登陸控制臺的時候遇到了錯誤:

復制代碼
代碼如下:

$ virsh console alice

 error: internal error: cannot find character device <null>
這個錯誤發生的原因是你沒有在你的虛擬機配置文件中定義控制臺設備。在 xml 文件中加上下面的內部設備部分即可。

XML/HTML Code復制內容到剪貼板
  1. <console type='pty'>  
  2.   <target port='0'/>  
  3. </console>  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久久国产精品| 国产成人拍精品视频午夜网站| 日韩高清免费观看| 国产美女精彩久久| 狠狠爱在线视频一区| 亚洲偷熟乱区亚洲香蕉av| 亚洲国模精品一区| 午夜免费在线观看精品视频| 国产精品日本精品| 九九九热精品免费视频观看网站| 欧美日本亚洲视频| 久久国产精品影视| 久久中文精品视频| 1769国内精品视频在线播放| 欧美专区福利在线| 日韩在线免费视频观看| 色樱桃影院亚洲精品影院| 久久视频在线看| 98午夜经典影视| 亚洲免费小视频| 亚洲国产福利在线| 成人免费观看网址| 91国在线精品国内播放| 国内精久久久久久久久久人| 97人人模人人爽人人喊中文字| 久久伊人免费视频| 尤物tv国产一区| 国产视频久久久久| 久久精品国产成人精品| 18一19gay欧美视频网站| 日韩在线观看高清| 国产高清视频一区三区| 国产成人精品日本亚洲| 热久久免费国产视频| 亚洲综合一区二区不卡| 日韩精品久久久久| 亚洲欧洲国产伦综合| 久久九九全国免费精品观看| 日韩美女免费视频| 亚洲精品福利资源站| 欧美日韩在线视频一区二区| 国产成人91久久精品| 久久精品中文字幕电影| 性欧美长视频免费观看不卡| 搡老女人一区二区三区视频tv| 久久久久一本一区二区青青蜜月| 中文字幕国产精品久久| 91爱视频在线| 亚洲a在线观看| 久久影视电视剧免费网站| 日韩av一区二区在线观看| 日韩中文字幕欧美| 欧美自拍大量在线观看| 亚洲xxxxx性| 成人精品视频久久久久| 日韩福利视频在线观看| 亚洲国产99精品国自产| 亚洲天堂av在线免费观看| 欧美色视频日本版| 欧美成人免费网| 宅男66日本亚洲欧美视频| 亚洲第一av在线| 国产精品极品在线| 久久成人18免费网站| 最近中文字幕mv在线一区二区三区四区| 亚洲女人天堂av| 九九精品在线视频| 亚洲男人的天堂在线| 午夜精品视频网站| 国产精品扒开腿爽爽爽视频| 色妞一区二区三区| 欧美丰满少妇xxxxx| 在线播放国产一区中文字幕剧情欧美| 欧美最顶级的aⅴ艳星| 久久久久久久久久国产精品| 69久久夜色精品国产7777| 日韩在线视频观看正片免费网站| 亚洲国产精品人人爽夜夜爽| 国产精品综合不卡av| 国产精品久久久久久久久影视| 国产精品嫩草影院一区二区| 欧美日韩高清在线观看| 国语自产精品视频在免费| 日韩欧美a级成人黄色| 97精品伊人久久久大香线蕉| 另类图片亚洲另类| 4438全国成人免费| 久久久久久18| 欧美一级黑人aaaaaaa做受| 狠狠色狠色综合曰曰| 成人网在线免费观看| 91黑丝高跟在线| 亚洲最大激情中文字幕| 亚洲欧洲日韩国产| 日本免费一区二区三区视频观看| 国产自摸综合网| 欧美黄网免费在线观看| 亚洲国产精久久久久久| 日韩美女激情视频| 成人a在线观看| 欧美国产亚洲视频| 欧美裸身视频免费观看| 欧美性生交xxxxx久久久| 大胆欧美人体视频| 日韩最新av在线| 亚洲精品国产欧美| 国产精品高潮呻吟久久av无限| 欧美成人免费观看| 日韩动漫免费观看电视剧高清| 久久伊人精品视频| 97人人爽人人喊人人模波多| 色七七影院综合| 久热99视频在线观看| 成人性生交大片免费看视频直播| 久久视频在线直播| 欧美精品videosex极品1| 国产精品狼人色视频一区| 伊人精品在线观看| 欧美野外wwwxxx| 亚洲精品久久在线| 国产中文日韩欧美| 亚洲第一页自拍| 日韩视频一区在线| 亚洲天堂2020| 亚洲精品中文字| 九九热精品视频国产| 高清视频欧美一级| 欧美激情亚洲综合一区| 欧美成人剧情片在线观看| 亚洲白拍色综合图区| 国产精品成人国产乱一区| 欧美视频一二三| 日韩欧美亚洲一二三区| 欧美亚洲免费电影| 成人免费福利在线| 国产精品久久久久久久久男| 高清一区二区三区日本久| 中文字幕综合一区| 97视频在线免费观看| 91精品久久久久| 色综合老司机第九色激情| 狠狠综合久久av一区二区小说| 亚洲国产精品人人爽夜夜爽| 97在线视频精品| 国产伦精品一区二区三区精品视频| 性欧美长视频免费观看不卡| 久久久天堂国产精品女人| 欧美猛交ⅹxxx乱大交视频| 国产va免费精品高清在线| 欧美激情在线观看视频| 韩国美女主播一区| www.日本久久久久com.| 欧美日韩999| 亚洲国产小视频| 日韩av在线免费| 国产噜噜噜噜久久久久久久久| 91免费国产视频| 欧美性猛xxx| 欧美日韩xxxxx| 精品亚洲一区二区三区四区五区| 国产精品久久久久久久久久尿| 亚洲成人av中文字幕| 另类少妇人与禽zozz0性伦| 26uuu日韩精品一区二区|