天天看點

在vmware上安裝kvm(debian)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

<code>我的部落格已遷移到xdoujiang.com請去那邊和我交流</code>

<code>kvm全稱(Kernel-based Virtual Machine),是一個開源的系統虛拟化子產品,</code>

<code>自Linux 2.6.20之後內建在Linux的各個主要發行版本中。它使用Linux自身的排程器進行管理,</code>

<code>是以相對于Xen,其核心源碼很少。KVM目前已成為學術界的主流VMM之一。</code>

<code>KVM的虛拟化需要硬體支援(如Intel VT技術或者AMD V技術)。是基于硬體的完全虛拟化。</code>

<code>而Xen早期則是基于軟體模拟的Para-Virtualization,新版本則是基于硬體支援的完全虛拟化。</code>

<code>但Xen本身有自己的程序排程器,存儲管理子產品等,是以代碼較為龐大。</code>

<code>廣為流傳的商業系統虛拟化軟體VMware ESX系列是基于軟體模拟的Full-Virtualization。</code>

<code>一、基礎環境</code>

<code>1、版本</code>

<code>cat</code> <code>/etc/debian_version</code> 

<code>7.8</code>

<code>2、核心</code>

<code>uname</code> <code>-r</code>

<code>3.2.0-4-amd64</code>

<code>3、涉及ip</code>

<code>10.1.10.117(debian7.8)</code>

<code>10.1.10.131(windows)</code>

<code>4、虛拟機</code>

<code>vmware 11</code>

<code>記憶體1G</code>

<code>二、kvm安裝</code>

<code>1、在vmware設定裡打開支援虛拟化</code>

<code>在虛拟化引擎這邊選擇Intel VT-x</code><code>/EPT</code><code>或AMD-V</code><code>/RVI</code><code>,并在第二個方框内打鈎</code>

<a href="http://s3.51cto.com/wyfs02/M00/6E/E3/wKioL1WLSrWiYoHqAAIOve2eoWk069.jpg" target="_blank"></a>

<code>2、進入系統後檢視下是否支援了</code>

<code>egrep</code> <code>'(vmx|svm)'</code> <code>--color </code><code>/proc/cpuinfo</code>

<a href="http://s3.51cto.com/wyfs02/M02/6E/E3/wKioL1WLS0WT3s3qAAG1ykwDoo0726.jpg" target="_blank"></a>

<code>看到有vmx說明硬體支援kvm安裝</code>

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

<code>3、安裝kvm所需要的包并檢視kvm子產品是否加載成功</code>

<code>1)安裝包</code>

<code>apt-get -y </code><code>install</code> <code>libvirt-bin</code>

<code>apt-get -y </code><code>install</code> <code>bridge-utils </code>

<code>apt-get -y </code><code>install</code> <code>qemu-kvm</code>

<code>apt-get -y </code><code>install</code> <code>virtinst</code>

<code>PS:相關包說明</code>

<code>libvirt-bin - programs </code><code>for</code> <code>the libvirt library</code>

<code>bridge-utils - Utilities </code><code>for</code> <code>configuring the Linux Ethernet bridge(brctl橋接指令)</code>

<code>qemu-kvm - Full virtualization on x86 hardware</code>

<code>virtinst - Programs to create and clone virtual machines(virt-</code><code>install</code> <code>virt-clone等指令)</code>

<code>2)檢視kvm子產品是否加載成功</code>

<code>lsmod |</code><code>grep</code> <code>kvm</code>

<code>kvm_intel             122053  3 </code>

<code>kvm                   291965  1 kvm_intel</code>

<code>4、配置網絡</code>

<code>1)檢視目前橋接情況</code>

<code>brctl show</code>

<code>bridge name    bridge </code><code>id</code>        <code>STP enabled    interfaces</code>

<code>2)修改配置</code>

<code>cat</code> <code>/etc/network/interfaces</code>

<code># This file describes the network interfaces available on your system</code>

<code># and how to activate them. For more information, see interfaces(5).</code>

<code># The loopback network interface</code>

<code>auto lo</code>

<code>iface lo inet loopback</code>

<code># The primary network interface</code>

<code>#allow-hotplug eth0</code>

<code>#auto eth0 </code>

<code>#iface eth0 inet static </code>

<code>#address 10.1.10.117 </code>

<code>#netmask 255.255.255.0 </code>

<code>#gateway 10.1.10.254</code>

<code>auto br0</code>

<code>iface br0 inet static</code>

<code>address 10.1.10.117</code>

<code>netmask 255.255.255.0</code>

<code>gateway 10.1.10.254</code>

<code>bridge_ports eth0</code>

<code>bridge_stp off</code>

<code>bridge_waitport 0</code>

<code>bridge_fd 0</code>

<code>3)使用ifup指令将br0網口啟來</code>

<code>ifup br0</code>

<code>Waiting </code><code>for</code> <code>a max of 0 seconds </code><code>for</code> <code>eth0 to become available.</code>

<code>Waiting </code><code>for</code> <code>br0 to get ready (MAXWAIT is 2 seconds).</code>

<code>4)再次檢視橋接情況</code>

<code>br0        8000.000c29c887a1    no        eth0</code>

<code>5)修改核心參數并使永久生效</code>

<code>在</code><code>/etc/sysctl</code><code>.conf添加到最後</code>

<code>net.bridge.bridge-nf-call-ip6tables = 0</code>

<code>net.bridge.bridge-nf-call-iptables = 0</code>

<code>net.bridge.bridge-nf-call-arptables = 0</code>

<code>sysctl -p</code>

<code>5、建立磁盤鏡像檔案</code>

<code>1)建立目錄</code>

<code>mkdir</code> <code>/opt/kvmimage</code> <code>-p</code>

<code>2)使用qemu-img指令建立</code>

<code>qemu-img create -f raw </code><code>/opt/kvmimage/debian7</code><code>.raw 10G</code>

<code>Formatting </code><code>'/opt/kvmimage/debian7.raw'</code><code>, </code><code>fmt</code><code>=raw size=10737418240 </code>

<code>3)檢視</code>

<code>qemu-img info </code><code>/opt/kvmimage/debian7</code><code>.raw </code>

<code>image: </code><code>/opt/kvmimage/debian7</code><code>.raw</code>

<code>file</code> <code>format</code><code>: raw</code>

<code>virtual size: 10G (10737418240 bytes)</code>

<code>disk size: 0</code>

<code>6、使用virt-</code><code>install</code><code>指令建立系統</code>

<code>1)virt-</code><code>install</code> <code>--virt-</code><code>type</code> <code>kvm --name debian7 --</code><code>ram</code> <code>256 --vcpus=1 --cdrom=</code><code>/opt/debian-7</code><code>.8.0-amd64-CD-1.iso --network bridge=br0 --graphics vnc,listen=10.1.10.117,port=5900 --noautoconsole --os-</code><code>type</code><code>=linux --disk path=</code><code>/opt/kvmimage/debian7</code><code>.raw --debug</code>

<code>[Thu, 21 May 2015 00:44:16 virt-</code><code>install</code> <code>2599] DEBUG (cli:226) Launched with </code><code>command</code> <code>line:</code>

<code>/usr/bin/virt-install</code> <code>--virt-</code><code>type</code> <code>kvm --name debian7 --</code><code>ram</code> <code>256 --vcpus=1 --cdrom=</code><code>/opt/debian-7</code><code>.8.0-amd64-CD-1.iso --network bridge=br0 --graphics vnc,listen=10.1.10.117,port=5900 --noautoconsole --os-</code><code>type</code><code>=linux --disk path=</code><code>/opt/kvmimage/debian7</code><code>.raw --debug</code>

<code>[Thu, 21 May 2015 00:44:16 virt-</code><code>install</code> <code>2599] DEBUG (cli:332) Requesting libvirt URI default</code>

<code>[Thu, 21 May 2015 00:44:16 virt-</code><code>install</code> <code>2599] DEBUG (cli:334) Received libvirt URI qemu:</code><code>///system</code>

<code>[Thu, 21 May 2015 00:44:16 virt-</code><code>install</code> <code>2599] DEBUG (virt-</code><code>install</code><code>:259) Requesting virt method </code><code>'default'</code><code>, hv </code><code>type</code> <code>'kvm'</code><code>.</code>

<code>[Thu, 21 May 2015 00:44:16 virt-</code><code>install</code> <code>2599] DEBUG (virt-</code><code>install</code><code>:469) Received virt method </code><code>'hvm'</code>

<code>[Thu, 21 May 2015 00:44:16 virt-</code><code>install</code> <code>2599] DEBUG (virt-</code><code>install</code><code>:470) Hypervisor name is </code><code>'kvm'</code>

<code>[Thu, 21 May 2015 00:44:16 virt-</code><code>install</code> <code>2599] DEBUG (DistroInstaller:210) DistroInstaller location is a </code><code>local</code> <code>file</code><code>/path</code><code>: </code><code>/opt/debian-7</code><code>.8.0-amd64-CD-1.iso</code>

<code>[Thu, 21 May 2015 00:44:16 virt-</code><code>install</code> <code>2599] DEBUG (virt-</code><code>install</code><code>:623) Guest.has_install_phase: True</code>

<code>Starting </code><code>install</code><code>...</code>

<code>[Thu, 21 May 2015 00:44:17 virt-</code><code>install</code> <code>2599] DEBUG (virt-</code><code>install</code><code>:707) Domain state after </code><code>install</code><code>: 1</code>

<code>Domain installation still </code><code>in</code> <code>progress. You can reconnect to </code>

<code>the console to complete the installation process.</code>

<code>參數說明:</code>

<code>--name          新客戶虛拟機執行個體名字</code>

<code>--virt-</code><code>type</code>     <code>類型</code>

<code>--</code><code>ram</code>           <code>以M為機關指定配置設定給虛拟機的記憶體大小</code>

<code>--vcpus         虛拟機的虛拟CPU數</code>

<code>--cdrom         對應全虛拟化客戶機,檔案或裝置作為一個虛拟化CD-ROM裝置使用,可以是ISO映像路徑或者一個CDROM裝置,它也可以是一個能夠提取/通路最小引導ISO映像的URL</code>

<code>--network       連接配接客戶機到主機網絡</code>

<code>--graphics      在客戶機中設定一個虛拟控制台并且将其導出為一個VNC服務</code>

<code>--noautoconsole 使用本選項指定不自動試圖連接配接到客戶機控制台</code>

<code>--os-</code><code>type</code>       <code>針對一類作業系統優化虛拟機配置</code>

<code>--disk path     客戶機存儲</code>

<code>2)檢視kvm程序</code>

<code>ps</code> <code>aux|</code><code>grep</code> <code>kvm</code>

<code>root        580  0.0  0.0      0     0 ?        S&lt;   00:15   0:00 [kvm-irqfd-clean]</code>

<code>103        5990 29.0  1.9 527476 20220 ?        Sl   08:34   0:01 </code><code>/usr/bin/kvm</code> <code>-S -M pc-1.1 -</code><code>enable</code><code>-kvm -m 256 -smp 1,sockets=1,cores=1,threads=1 -name debian7 -uuid 576f2558-10c5-670a-0013-d0f8297de467 -no-user-config -nodefaults -chardev socket,</code><code>id</code><code>=charmonitor,path=</code><code>/var/lib/libvirt/qemu/debian7</code><code>.monitor,server,nowait -mon chardev=charmonitor,</code><code>id</code><code>=monitor,mode=control -rtc base=utc -no-reboot -no-</code><code>shutdown</code> <code>-device piix3-usb-uhci,</code><code>id</code><code>=usb,bus=pci.0,addr=0x1.0x2 -drive </code><code>file</code><code>=</code><code>/opt/kvmimage/debian7</code><code>.raw,</code><code>if</code><code>=none,</code><code>id</code><code>=drive-ide0-0-0,</code><code>format</code><code>=raw -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,</code><code>id</code><code>=ide0-0-0,bootindex=2 -drive </code><code>file</code><code>=</code><code>/opt/debian-7</code><code>.8.0-amd64-CD-1.iso,</code><code>if</code><code>=none,</code><code>id</code><code>=drive-ide0-1-0,</code><code>readonly</code><code>=on,</code><code>format</code><code>=raw -device ide-</code><code>cd</code><code>,bus=ide.1,unit=0,drive=drive-ide0-1-0,</code><code>id</code><code>=ide0-1-0,bootindex=1 -netdev tap,fd=20,</code><code>id</code><code>=hostnet0 -device rtl8139,netdev=hostnet0,</code><code>id</code><code>=net0,mac=52:54:00:23:b3:c2,bus=pci.0,addr=0x3 -chardev pty,</code><code>id</code><code>=charserial0 -device isa-serial,chardev=charserial0,</code><code>id</code><code>=serial0 -vnc 10.1.10.117:0 -vga cirrus -device virtio-balloon-pci,</code><code>id</code><code>=balloon0,bus=pci.0,addr=0x4</code>

<code>root       5999  0.0  0.0      0     0 ?        S&lt;   08:34   0:00 [kvm-pit-wq]</code>

<code>root       6004  0.0  0.0   7836   880 pts</code><code>/0</code>    <code>S+   08:34   0:00 </code><code>grep</code> <code>--color=auto kvm</code>

<code>3)檢視kvm端口</code>

<code>netstat</code> <code>-tupnl|</code><code>grep</code> <code>kvm</code>

<code>tcp        0      0 10.1.10.117:5900        0.0.0.0:*               LISTEN      2662</code><code>/kvm</code> 

<code>4)使用virsh檢視機器清單和狀态       </code>

<code>virsh --connect qemu:</code><code>///system</code> <code>list --all</code>

<code> </code><code>Id    Name                           State</code>

<code>----------------------------------------------------</code>

<code> </code><code>1     debian7                        running</code>

<code>5)運作狀态說明</code>

<code>running  虛拟機正在運作在cpu上</code>

<code>idel     虛拟機是閑置的,沒有在運作,在等待IO或者休眠時虛拟機會進入這種狀态</code>

<code>paused   虛拟機處于暫停狀态,一般情況下是被admin運作了virsh   suspend才會處于這種狀态,但是仍然消耗資源,隻不過不被超級管理程式排程而已。</code>

<code>shutdown</code> <code>虛拟機在關閉過程中</code>

<code>shut off 虛拟機沒有運作,已經完全關閉</code>

<code>crashed  虛拟機崩潰</code>

<code>dying    虛拟機處于垂死的狀态,但是又沒完全關閉或崩潰 </code>

<code>6)檢視下建立的虛拟機基本資訊</code>

<code>virsh dominfo debian7</code>

<code>Id:             2</code>

<code>Name:           debian7</code>

<code>UUID:           576f2558-10c5-670a-0013-d0f8297de467</code>

<code>OS Type:        hvm</code>

<code>State:          running</code>

<code>CPU(s):         1</code>

<code>CPU </code><code>time</code><code>:       1.7s</code>

<code>Max memory:     262144 KiB</code>

<code>Used memory:    262144 KiB</code>

<code>Persistent:     </code><code>yes</code>

<code>Autostart:      disable</code>

<code>Managed save:   no</code>

<code>三、用戶端連接配接</code>

<code>1、先檢視vnc</code>

<code>virsh vncdisplay debian7</code>

<code>10.1.10.117:0</code>

<code>2、windows(10.1.10.131)</code>

<code>1)安裝軟體</code>

<code>TightVNC Version 2.7.7</code>

<a href="http://s3.51cto.com/wyfs02/M02/6E/E6/wKiom1WLSsHjai7dAAGK8qWXV40136.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/6E/E3/wKioL1WLTI6igEczAAJxBQfKZqc637.jpg" target="_blank"></a>

<code>四、安裝完成後結果</code>

<a href="http://s3.51cto.com/wyfs02/M00/6E/E6/wKiom1WLSuyw4LXnAAJUXoa2r8w484.jpg" target="_blank"></a>

<code>五、參考文章</code>

<code>http:</code><code>//xmodulo</code><code>.com</code><code>/use-kvm-command-line-debian-ubuntu</code><code>.html</code>

<code>http:</code><code>//wiki</code><code>.libvirt.org</code><code>/page/Networking</code>

<code></code>

本文轉自 xdoujiang 51CTO部落格,原文連結:http://blog.51cto.com/7938217/1665296,如需轉載請自行聯系原作者

繼續閱讀