|
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
|
我的博客已迁移到xdoujiang.com请去那边和我交流kvm全称(Kernel-based Virtual Machine),是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。一、基础环境1、版本cat /etc/debian_version 7.82、内核uname -r
3.2.0-4-amd643、涉及ip10.1.10.117(debian7.8)10.1.10.131(windows)4、虚拟机vmware 11内存1G二、kvm安装1、在vmware设置里打开支持虚拟化在虚拟化引擎这边选择Intel VT-x/EPT或AMD-V/RVI,并在第二个方框内打钩
|
|
1
2
|
2、进入系统后查看下是否支持了egrep '(vmx|svm)' --color /proc/cpuinfo
|
|
1
|
看到有vmx说明硬件支持kvm安装 |
|
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
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
|
3、安装kvm所需要的包并查看kvm模块是否加载成功1)安装包apt-get -y install libvirt-bin
apt-get -y install bridge-utils
apt-get -y install qemu-kvm
apt-get -y install virtinst
PS:相关包说明libvirt-bin - programs for the libvirt library
bridge-utils - Utilities for configuring the Linux Ethernet bridge(brctl桥接命令)
qemu-kvm - Full virtualization on x86 hardwarevirtinst - Programs to create and clone virtual machines(virt-install virt-clone等命令)
2)查看kvm模块是否加载成功lsmod |grep kvm
kvm_intel 122053 3 kvm 291965 1 kvm_intel4、配置网络1)查看当前桥接情况brctl showbridge name bridge id STP enabled interfaces
2)修改配置cat /etc/network/interfaces
# This file describes the network interfaces available on your system# and how to activate them. For more information, see interfaces(5).# The loopback network interfaceauto loiface lo inet loopback# The primary network interface#allow-hotplug eth0#auto eth0 #iface eth0 inet static #address 10.1.10.117 #netmask 255.255.255.0 #gateway 10.1.10.254auto br0iface br0 inet staticaddress 10.1.10.117netmask 255.255.255.0gateway 10.1.10.254bridge_ports eth0bridge_stp offbridge_waitport 0bridge_fd 03)使用ifup命令将br0网口启来ifup br0Waiting for a max of 0 seconds for eth0 to become available.
Waiting for br0 to get ready (MAXWAIT is 2 seconds).
4)再次查看桥接情况brctl showbridge name bridge id STP enabled interfaces
br0 8000.000c29c887a1 no eth05)修改内核参数并使永久生效在/etc/sysctl.conf添加到最后
net.bridge.bridge-nf-call-ip6tables = 0net.bridge.bridge-nf-call-iptables = 0net.bridge.bridge-nf-call-arptables = 0sysctl -pnet.bridge.bridge-nf-call-ip6tables = 0net.bridge.bridge-nf-call-iptables = 0net.bridge.bridge-nf-call-arptables = 05、创建磁盘镜像文件1)创建目录mkdir /opt/kvmimage -p
2)使用qemu-img命令创建qemu-img create -f raw /opt/kvmimage/debian7.raw 10G
Formatting '/opt/kvmimage/debian7.raw', fmt=raw size=10737418240
3)查看qemu-img info /opt/kvmimage/debian7.raw
image: /opt/kvmimage/debian7.raw
file format: raw
virtual size: 10G (10737418240 bytes)disk size: 06、使用virt-install命令创建系统
1)virt-install --virt-type kvm --name debian7 --ram 256 --vcpus=1 --cdrom=/opt/debian-7.8.0-amd64-CD-1.iso --network bridge=br0 --graphics vnc,listen=10.1.10.117,port=5900 --noautoconsole --os-type=linux --disk path=/opt/kvmimage/debian7.raw --debug
[Thu, 21 May 2015 00:44:16 virt-install 2599] DEBUG (cli:226) Launched with command line:
/usr/bin/virt-install --virt-type kvm --name debian7 --ram 256 --vcpus=1 --cdrom=/opt/debian-7.8.0-amd64-CD-1.iso --network bridge=br0 --graphics vnc,listen=10.1.10.117,port=5900 --noautoconsole --os-type=linux --disk path=/opt/kvmimage/debian7.raw --debug
[Thu, 21 May 2015 00:44:16 virt-install 2599] DEBUG (cli:332) Requesting libvirt URI default
[Thu, 21 May 2015 00:44:16 virt-install 2599] DEBUG (cli:334) Received libvirt URI qemu:///system
[Thu, 21 May 2015 00:44:16 virt-install 2599] DEBUG (virt-install:259) Requesting virt method 'default', hv type 'kvm'.
[Thu, 21 May 2015 00:44:16 virt-install 2599] DEBUG (virt-install:469) Received virt method 'hvm'
[Thu, 21 May 2015 00:44:16 virt-install 2599] DEBUG (virt-install:470) Hypervisor name is 'kvm'
[Thu, 21 May 2015 00:44:16 virt-install 2599] DEBUG (DistroInstaller:210) DistroInstaller location is a local file/path: /opt/debian-7.8.0-amd64-CD-1.iso
[Thu, 21 May 2015 00:44:16 virt-install 2599] DEBUG (virt-install:623) Guest.has_install_phase: True
Starting install...
[Thu, 21 May 2015 00:44:17 virt-install 2599] DEBUG (virt-install:707) Domain state after install: 1
Domain installation still in progress. You can reconnect to
the console to complete the installation process.参数说明:--name 新客户虚拟机实例名字--virt-type 类型
--ram 以M为单位指定分配给虚拟机的内存大小
--vcpus 虚拟机的虚拟CPU数--cdrom 对应全虚拟化客户机,文件或设备作为一个虚拟化CD-ROM设备使用,可以是ISO映像路径或者一个CDROM设备,它也可以是一个能够提取/访问最小引导ISO映像的URL--network 连接客户机到主机网络--graphics 在客户机中设置一个虚拟控制台并且将其导出为一个VNC服务--noautoconsole 使用本选项指定不自动试图连接到客户机控制台--os-type 针对一类操作系统优化虚拟机配置
--disk path 客户机存储2)查看kvm进程ps aux|grep kvm
root 580 0.0 0.0 0 0 ? S< 00:15 0:00 [kvm-irqfd-clean]103 5990 29.0 1.9 527476 20220 ? Sl 08:34 0:01 /usr/bin/kvm -S -M pc-1.1 -enable-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,id=charmonitor,path=/var/lib/libvirt/qemu/debian7.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-reboot -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/opt/kvmimage/debian7.raw,if=none,id=drive-ide0-0-0,format=raw -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=2 -drive file=/opt/debian-7.8.0-amd64-CD-1.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 -netdev tap,fd=20,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:23:b3:c2,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -vnc 10.1.10.117:0 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
root 5999 0.0 0.0 0 0 ? S< 08:34 0:00 [kvm-pit-wq]root 6004 0.0 0.0 7836 880 pts/0 S+ 08:34 0:00 grep --color=auto kvm
3)查看kvm端口netstat -tupnl|grep kvm
tcp 0 0 10.1.10.117:5900 0.0.0.0:* LISTEN 2662/kvm 4)使用virsh查看机器列表和状态 virsh --connect qemu:///system list --all
Id Name State
---------------------------------------------------- 1 debian7 running
5)运行状态说明running 虚拟机正在运行在cpu上idel 虚拟机是闲置的,没有在运行,在等待IO或者休眠时虚拟机会进入这种状态paused 虚拟机处于暂停状态,一般情况下是被admin运行了virsh suspend才会处于这种状态,但是仍然消耗资源,只不过不被超级管理程序调度而已。shutdown 虚拟机在关闭过程中
shut off 虚拟机没有运行,已经完全关闭crashed 虚拟机崩溃dying 虚拟机处于垂死的状态,但是又没完全关闭或崩溃 6)查看下新建的虚拟机基本信息virsh dominfo debian7Id: 2Name: debian7UUID: 576f2558-10c5-670a-0013-d0f8297de467OS Type: hvmState: runningCPU(s): 1CPU time: 1.7s
Max memory: 262144 KiBUsed memory: 262144 KiBPersistent: yes
Autostart: disableManaged save: no三、客户端连接1、先查看vncvirsh vncdisplay debian710.1.10.117:02、windows(10.1.10.131)1)安装软件TightVNC Version 2.7.7 |
|
1
|
四、安装完成后结果 |
|
1
2
3
|
五、参考文章http://xmodulo.com/use-kvm-command-line-debian-ubuntu.html
http://wiki.libvirt.org/page/Networking
|
本文转自 xdoujiang 51CTO博客,原文链接:http://blog.51cto.com/7938217/1665296,如需转载请自行联系原作者