说明:其实之前我有安装过KVM,只是但是不知道这个就是KVM,而当时只知道叫做QEMU虚拟机。

安装:

配置网桥:

1、关闭防火墙



service ufw stop
#永久关闭
update-rc.d ufw remove
#关闭之后改成iptables方案


2、配置网桥

1)查看网卡的设置

eth0是自己修改的,可以不用修改成这个名字,使用系统默认的。



ifconfig



eth0 Link encap:Ethernet HWaddr 00:1c:25:a1:99:fc
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21c:25ff:fea1:99fc/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:736674 errors:0 dropped:0 overruns:0 frame:0
TX packets:1098750 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:63783787 (63.7 MB) TX bytes:1540374899 (1.5 GB)
Interrupt:20 Memory:fc200000-fc220000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1156 errors:0 dropped:0 overruns:0 frame:0
TX packets:1156 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:114090 (114.0 KB) TX bytes:114090 (114.0 KB)

virbr0 Link encap:Ethernet HWaddr be:65:ec:88:86:3d
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)


2)已有的网卡

eth0是直接插入网线的以太网卡

lo是本地网络,本机内部资源

virbr0是刚才我们装完KVM后,自己生成的虚拟网卡

4)网卡桥接

我们增加一个叫br0的虚拟网卡,让这个网卡可以和eth0以太网的网卡做桥接

如果是桌面版,停止NetworkManager服务(如果不停止,那么需要手动GUI界面设置网桥,需要重启reboot)



sudo systemctl stop NetworkManager.service
sudo systemctl disable NetworkManager.service


增加网桥



sudo brctl addbr br0


设置IP,绑定网卡到网桥br0



sudo vi /etc/network/interfaces



auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
bridge_ports eth0
bridge_stp off
bridge_fd 0


保存,重起网卡设置



sudo /etc/init.d/networking restart


如果不行,需要重启reboot

设置DNS



sudo su
echo "nameserver 192.168.199.1" >> /etc/resolvconf/resolv.conf.d/base
/etc/init.d/resolvconf restart #使DNS生效


再查看网卡的设置



ifconfig



br0 Link encap:Ethernet HWaddr 00:1c:25:a1:99:fc
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21c:25ff:fea1:99fc/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:91 errors:0 dropped:0 overruns:0 frame:0
TX packets:100 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6260 (6.2 KB) TX bytes:15470 (15.4 KB)

eth0 Link encap:Ethernet HWaddr 00:1c:25:a1:99:fc
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:605 errors:0 dropped:0 overruns:0 frame:0
TX packets:425 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:112441 (112.4 KB) TX bytes:61529 (61.5 KB)
Interrupt:20 Memory:fc200000-fc220000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:36 errors:0 dropped:0 overruns:0 frame:0
TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2100 (2.1 KB) TX bytes:2100 (2.1 KB)

virbr0 Link encap:Ethernet HWaddr 2a:b8:36:cf:cc:c6
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)


这个时候eth0,已经没有具体的IP地址。IP地址出在了br0的虚拟网上面。

我们ping一下公网ip,看看是不是通的。



ping 8.8.8.8



ping 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=46 time=51.7 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=46 time=50.8 ms


重启网桥



sudo service libvirt-bin restart


5)配置转发



#开启转发支持forward
sudo vi /etc/sysctl.conf
修改为net.ipv4.ip_forward = 1
#生效
sudo sysctrl -p


3、创建虚拟机

图形界面:virt-manager

Ubuntu 16.04安装KVM_centos

命令行:



#新建用于存放虚拟机相关文件的目录
mkdir /kvm
#使用ftp将centos6.5的安装光盘镜像复制到/kvm
#新建用于存放虚拟机的目录
mkdir /kvm/vm



#安装虚拟机
virt-install --name centos --ram 1024 --vcpus=1 --disk path=/kvm/vm/vm1.img,size=10 --network bridge=br0 --os-variant=rhel6 --cdrom /kvm/CentOS-6.5-x86_64-bin-DVD1.iso --vnclisten=0.0.0.0 --vncport=5900 --vnc



参数详解:
--vcpus 分配给虚拟机CPU个数
--disk path 虚拟磁盘所在的路径
--size 虚拟磁盘大小,单位是GB
--network bridge 指定虚拟机使用的桥接网卡
--os-variant 虚拟机的操作系统类型
--cdrom 安装虚拟机操作系统的光盘镜像的路径
--vnclisten vnc的监听IP
--vncport vnc的监听端口
--vnc 使用vnc进行连接


然后使用vnc-viewer连接虚拟机

使用vnc-viewer连接IP:5900就可以远程安装这台虚拟机了

在KVM虚拟机中安装操作系统和在其他虚拟机上没有什么不同的地方

安装完成后,在kvm虚拟机中进行网卡配置后,就可以使用putty进行远程连接了

下次启动:



virsh start centos



#virsh语法参考
virsh list 列出运行中的虚拟机
virsh start centos 启动centos虚拟机
virsh shutdown centos 关闭centos虚拟机
virsh destroy centos 强制关闭centos虚拟机
virsh autostart centos 设置centos自动启动
virsh undefine centos 删除centos虚拟机
virsh suspend centos 暂停centos虚拟机
vrish resume centos 恢复centos虚拟机
virsh reboot centos 重启centos虚拟机
virsh edit centos 编辑centos虚拟机
virsh vncdisplay centos vnc显示