自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在Debian或Ubuntu上從命令行使用KVM?

譯文
系統(tǒng) Linux
如果你想讓虛擬機(jī)的配置和管理實(shí)現(xiàn)自動(dòng)化,virsh等命令行管理界面也大有用處。本教程中將演示如何在Debian或Ubuntu上使用virsh,從命令行運(yùn)行KVM。

【51CTO精選譯文】眼下有幾種不同的方法可以管理在KVM虛擬機(jī)管理程序上運(yùn)行的虛擬機(jī)。比如說,virt-manager就是一種廣受歡迎的基于圖形用戶界面(GUI)的前端工具,可用來管理虛擬機(jī)。不過,如果你想在無外設(shè)服務(wù)器上使用KVM,那么基于GUI的解決方案并非理想方案。這時(shí)候,virsh就派得上用場。virsh是一種命令行工具,可用于管理來賓虛擬機(jī)(guest VM)。就其底層而言,virsh依賴libvirtd服務(wù),該服務(wù)可以控制幾種不同的虛擬機(jī)管理程序,其中包括KVM、Xen、QEMU、LXC和OpenVZ。

如果你想讓虛擬機(jī)的配置和管理實(shí)現(xiàn)自動(dòng)化,virsh等命令行管理界面也大有用處。此外,virsh支持多種虛擬機(jī)管理程序,這就意味著你可以通過同一個(gè)virsh界面,管理不同的虛擬機(jī)管理程序。

我在本教程中將演示如何在Debian或Ubuntu上使用virsh,從命令行運(yùn)行KVM。

***步:證實(shí)主機(jī)支持硬件虛擬化

作為***步,證實(shí)主機(jī)的處理器配備硬件虛擬化擴(kuò)展機(jī)制(比如英特爾VT或AMD-V),KVM需要這樣的機(jī)制。下面這個(gè)命令就能證實(shí)一點(diǎn)。

  1. $ egrep '(vmx|svm)' --color /proc/cpuinfo 
  2. flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase smep 

如果輸出結(jié)果并不含有vmx或svm標(biāo)記,這意味著主機(jī)的處理器沒有支持硬件虛擬化的功能。因而,你就無法在主機(jī)上使用KVM。證實(shí)了主機(jī)處理器隨帶vmx或svm后,接下來繼續(xù)安裝KVM。

第二步:安裝KVM

使用apt-get,安裝KVM及相關(guān)的用戶空間工具。

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

下一步,將你的用戶ID添加到libvirt群組,那樣你就能以非root普通用戶的身份,管理虛擬機(jī)了。作為上面安裝KVM的一部分,必須創(chuàng)建libvirt群組。

  1. $ sudo adduser [youruserID] libvirt 

重新裝入更新后的群組成員信息,如下所示??吹揭筝斎朊艽a的提示后,輸入你的登錄密碼。

  1. $ exec su -l $USER 

這時(shí)候,你應(yīng)該能夠以普通用戶的身份運(yùn)行virsh了。為了測試一下,不妨試一試下面這個(gè)命令,它會(huì)列出可用的虛擬機(jī)(目前沒有一個(gè)虛擬機(jī))。要是你沒有遇到權(quán)限錯(cuò)誤,這意味著到目前為止,一切正常。

  1. $ virsh --connect qemu:///system list 
  2. Id    Name                           State 

第三步:配置橋接網(wǎng)絡(luò)

想讓虛擬機(jī)能夠訪問外部網(wǎng)絡(luò),一個(gè)辦法就是通過在Linux主機(jī)上加以配置的Linux網(wǎng)橋。這種技術(shù)名為橋接網(wǎng)絡(luò)(bridged networking)。下面介紹如何創(chuàng)建及配置Linux網(wǎng)橋br0,以便與KVM實(shí)現(xiàn)橋接網(wǎng)絡(luò)。

首先,安裝必要的程序包,然后從命令行創(chuàng)建Linux網(wǎng)橋。

  1. $ sudo apt-get install bridge-utils 
  2. $ sudo brctl addbr br0 

下一步是,在/etc/network/interfaces中配置Linux網(wǎng)橋,那樣一旦主機(jī)啟動(dòng),該網(wǎng)橋就會(huì)自動(dòng)配置。想使用/etc/network/interfaces,你就要禁用系統(tǒng)上的Network Manager(網(wǎng)絡(luò)管理器),如果你在使用它的話。按這里給出的指示(http://xmodulo.com/2014/02/disable-network-manager-linux.html)操作,以禁用網(wǎng)絡(luò)管理器。

禁用了網(wǎng)絡(luò)管理器后,接下來在/etc/network/interfaces中配置Linux網(wǎng)橋br0,如下所示。

  1. #auto eth0 
  2. #iface eth0 inet dhcp 
  3. auto br0 
  4. iface br0 inet dhcp 
  5. bridge_ports eth0 
  6. bridge_stp off 
  7. bridge_fd 0 
  8. bridge_maxwait 0 

這里我假設(shè),eth0是主要的網(wǎng)絡(luò)接口,可以訪問外部網(wǎng)絡(luò)。另外,我還假設(shè),eth0通過DHCP獲得其IP地址。請注意:/etc/network/interface中沒有etho的配置。etho網(wǎng)橋受制于br0時(shí),Linux網(wǎng)橋br0接過eth0的配置。

重啟網(wǎng)絡(luò)服務(wù),證實(shí)Linux網(wǎng)橋已成功配置。如果配置成功,br0應(yīng)該被賦予eth0的DHCP IP地址,eth0應(yīng)該沒有被賦予任何IP地址。

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

第四步:從命令行創(chuàng)建虛擬機(jī)

就KVM而言,虛擬機(jī)的配置存儲(chǔ)在一個(gè)域XML文件中。因而,創(chuàng)建虛擬機(jī)的***步是準(zhǔn)備好域XML文件。

下面是虛擬機(jī)的域XML文件示例。需要的話,你可以使用并定制該域XML文件。

  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/ubuntu-13.10-server-amd64.iso"/> 
  29. <target dev="hdc" bus="ide"/> 
  30. <readonly/> 
  31. <address type="drive" controller="0" bus="1" target="0" unit="0"/> 
  32. </disk> 
  33. <controller type="ide" index="0"> 
  34. <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x1"/> 
  35. </controller> 
  36. <interface type='bridge'> 
  37. <mac address='52:54:aa:00:f0:51'/> 
  38. <source bridge='br0'/> 
  39. </interface> 
  40. <input type='mouse' bus='ps2'/> 
  41. <graphics type='vnc' port='-1' autoport="yes" listen='127.0.0.1'/> 
  42. </devices> 
  43. </domain> 

上面這個(gè)域XML文件定義了下面這個(gè)虛擬機(jī)。

  • 1GB內(nèi)存、一個(gè)虛擬處理器和一只硬驅(qū)。
  • 磁盤映像:/home/dev/images/alice.img
  • 從光盤驅(qū)動(dòng)器啟動(dòng)(/home/dev/iso/ubuntu-13.10-server-amd64.iso)。
  • 網(wǎng)絡(luò):通過br0實(shí)現(xiàn)橋接網(wǎng)絡(luò)。

<uuid></uuid>里面的UUID字符串可以隨機(jī)生成。想獲得一個(gè)隨機(jī)性的UUID,你可以使用uuid命令行工具。

  1. $ sudo apt-get install uuid 
  2. $ uuid 

創(chuàng)建域XML文件的另一個(gè)方法是,轉(zhuǎn)儲(chǔ)現(xiàn)有虛擬機(jī)的域信息,如下所示。

  1. $ virsh --connect qemu:///system dumpxml alice > bob.xml 

第五步:從命令行啟動(dòng)虛擬機(jī)

在創(chuàng)建虛擬機(jī)之前,你需要?jiǎng)?chuàng)建虛擬機(jī)的初始磁盤映像。為此,你可以使用qemu-img命令,之前安裝的qemu-kvm程序包隨帶該命令。

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

使用qcow2作為一種磁盤映像格式的優(yōu)點(diǎn)在于,磁盤映像起初并不是以***值(5GB)的形式創(chuàng)建,不過隨著磁盤被批量裝入數(shù)據(jù),可以慢慢變大。

現(xiàn)在你準(zhǔn)備好了使用之前創(chuàng)建的那個(gè)域XML文件,啟動(dòng)虛擬機(jī)了。下面這個(gè)命令會(huì)啟動(dòng)虛擬機(jī)。

  1. $ virsh --connect qemu:///system create alice.xml 
  2. Domain alice created from alice.xml 

證實(shí)一個(gè)新的域已成功創(chuàng)建。

  1. $ virsh --connect qemu:///system list 
  2. Id    Name                           State 
  3. -------------------------------------------------------------- 
  4. 3     alice                          running 

此外,還要證實(shí)該虛擬機(jī)(比如vnet0)的虛擬接口已成功添加到之前創(chuàng)建的Linux網(wǎng)橋br0。

  1. $ sudo brctl show 

第六步:遠(yuǎn)程訪問虛擬機(jī)

想遠(yuǎn)程訪問運(yùn)行中虛擬機(jī)的控制臺(tái),你可以使用任何VNC客戶程序。

首先,找到該虛擬機(jī)的VNC端口號(hào),如下所示。

  1. $ sudo netstat -nap | grep kvm 

在該示例中,alice虛擬機(jī)的VNC端口號(hào)是5900。

然后啟動(dòng)VNC客戶程序,并連接到在<KVM-host-IP>:5900處運(yùn)行的VNC服務(wù)器。

借助virsh管理虛擬機(jī)

下面列出了virsh命令的一些常見用法。

想創(chuàng)建一個(gè)新的來賓域,并啟動(dòng)虛擬機(jī):

$ virsh --connect qemu:///system create alice.xml

想終止虛擬機(jī),銷毀來賓域:

  1. $ virsh --connect qemu:///system destroy alice 

想關(guān)閉虛擬機(jī)(但不銷毀域):

  1. $ virsh --connect qemu:///system shutdown alice 

想暫停虛擬機(jī):

  1. $ virsh --connect qemu:///system suspend alice 

想恢復(fù)運(yùn)行暫停的虛擬機(jī):

  1. $ virsh --connect qemu:///system resume alice 

主機(jī)一啟動(dòng),就想自動(dòng)啟動(dòng)虛擬機(jī):

  1. $ virsh --connect qemu:///system autostart alice 

想獲得虛擬機(jī)的域信息:

  1. $ virsh --connect qemu:///system dominfo alice 

你還可以從virsh會(huì)話里面管理虛擬機(jī)。想創(chuàng)建并進(jìn)入新的virsh會(huì)話,只要運(yùn)行:

  1. $ virsh --connect qemu:///system 

出現(xiàn)virsh提示符后,你就可以使用任何virsh命令了。

原文鏈接:http://xmodulo.com/2014/02/use-kvm-command-line-debian-ubuntu.html

責(zé)任編輯:黃丹 來源: 51CTO.com
相關(guān)推薦

2021-09-18 09:19:21

Linux

2014-10-22 12:03:14

Linux嗅探HTTP

2018-04-25 10:46:05

Linux命令行日歷

2019-08-27 08:00:10

OpenStack命令虛擬機(jī)

2012-02-08 16:37:36

ibmdw

2020-12-06 08:00:46

scanimage命令行Linux

2016-12-15 08:30:02

Linux命令

2018-03-14 14:27:00

2014-06-09 10:23:20

2023-08-12 11:40:11

命令行生存

2020-10-31 08:20:39

curl命令命令行互聯(lián)網(wǎng)

2023-08-01 13:31:18

模型Alpacaicuna

2018-06-19 16:05:27

LinuxStratis存儲(chǔ)

2022-06-16 14:54:53

hilog工具鴻蒙

2009-09-22 14:17:05

2010-05-27 14:48:45

SVN命令行使用說明

2022-11-18 12:47:51

LinuxAWS命令行工具

2016-01-04 15:17:50

Linux命令行硬件

2018-03-29 15:58:55

Linux命令行編輯器

2019-08-01 13:45:02

Debian 9Debian 10Linux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)