CentOS 6.5安装KVM实践
一,安装CentOS6.5,使用最小化的minimal安装二、安装完CentOS后,使用root登录配置网卡,使虚拟机可以使用外网上网 vi /etc/sysconifg/network-scripts/ifcfg-eth0 下图作为参考:
保存后,重启网络服务 service network restart
然后测试是否能联网 ping www.linuxidc.com
三、关闭selinux和清空iptables 修改selinux配置文件 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 设置当前selinux setenforce 0
清空iptables iptables -F 保存iptables规则 service iptables save
四、安装KVM 使用yum安装: yum -y install qemu-kvm libvirt python-virtinst bridge-utils avahi dmidecode 安装完成后重启虚拟机 init 6
重启完成后,测试kvm是否安装成功 stat /dev/kvm 执行结果: File: "/dev/kvm" Size: 0 Blocks: 0 IO Block: 4096 字符特殊文件 Device: 5h/5d Inode: 9503 Links: 1 Device type: a,e8 Access: (0666/crw-rw-rw-) Uid: ( 0/ root) Gid: ( 36/ kvm) Access: 2015-06-28 16:56:11.463134124 +0800 Modify: 2015-06-28 16:56:11.463134124 +0800 Change: 2015-06-28 16:56:11.463134124 +0800
在vb上执行这个命令不会有结果, 我这个是在真机上执行的结果
测试libvirtd是否可以正常启动 service libvirtd start service libvirtd restart
五、配置网络桥接 检查系统中是否启用了NetworkManager,最好关闭该服务,因为该服务与network有冲突。 chkconfig |grep NetworkManager 如果存在NetworkManager chkconfig NetworkManager off service NetworkManager stop
从ifcfg-eth0复制现有网卡的配置文件,改名为ifcfg-br0: cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0
修改ifcfg-br0,注意红色的两行,其他部分基本上不用改。 vi /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 HWADDR=08:00:27:1D:26:B2 UUID=251576f1-0ae3-4a52-b0e1-9343a7ad936d TYPE=Bridge ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=stataic IPADDR=10.0.0.156 NETMASK=255.255.255.0 GATEWAY=10.0.0.1 DNS1=202.96.64.68 DNS2=202.96.69.38
修改ifcfg-eth0,仅保存以下几行。 vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 HWADDR=08:00:27:1D:26:B2 UUID=251576f1-0ae3-4a52-b0e1-9343a7ad936d TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BRIDGE=br0
重启network服务 service network restart
正在关闭接口 eth0: bridge br0 does not exist! [确定] 关闭环回接口: [确定] 弹出环回接口: [确定] 弹出界面 eth0: [确定] 弹出界面 br0: Determining if ip address 10.0.0.156 is already in use for device br0... [确定]
执行ifconfig br0 Link encap:Ethernet HWaddr 08:00:27:1D:26:B2 inet addr:10.0.0.156 Bcast:10.0.0.1 Mask:255.255.255.0 inet6 addr: fe80::ba97:5aff:feb7:98b5/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1210 errors:0 dropped:0 overruns:0 frame:0 TX packets:40 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:74677 (72.9 KiB) TX bytes:7509 (7.3 KiB)
eth0 Link encap:Ethernet HWaddr 08:00:27:1D:26:B2 inet6 addr: fe80::ba97:5aff:feb7:98b5/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5625 errors:0 dropped:0 overruns:0 frame:0 TX packets:359 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:425234 (415.2 KiB) TX bytes:65054 (63.5 KiB)
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: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)
virbr0 Link encap:Ethernet HWaddr 52:54:00:CA:22:F4 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:11 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:2449 (2.3 KiB)
配置转发 执行以下命令: echo 1 > /proc/sys/net/ipv4/ip_forward 这一步虽然只有简单的一条命令,但却很关键。如果不执行这一步,所有的虚拟机将无法上网。 另外,上一步配置完桥接之后重启network,会自动将ip_forward改为0,所以重新配置网络后,不要忘了执行该命令。发现虚拟机无法上网的时候,也可以检查一下ip_forward值。
六、安装虚拟机 修改 qemu.conf 配置 vi /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0" user = "root" group = "root" dynamic_ownership = 0
重启libvirtd服务 service libvirtd restart
新建用于存放虚拟机相关文件的目录 mkdir /kvm
使用winscp将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=10.0.0.156 --vncport=6900 --vnc
参数详解: --vcpus 分配给虚拟机CPU个数 --disk path 虚拟磁盘所在的路径 --size 虚拟磁盘大小,单位是GB --network bridge 指定虚拟机使用的桥接网卡 --os-variant 虚拟机的操作系统类型 --cdrom 安装虚拟机操作系统的光盘镜像的路径 --vnclisten vnc的监听IP --vncport vnc的监听端口 --vnc 使用vnc进行连接
然后使用vnc-viewer连接虚拟机 , 如果用VNC VIEWER连接虚拟机一闪而过,设置vnc的 ColourLevel=rgb222 使用vnc-viewer连接10.0.0.156:6900就可以远程安装这台虚拟机了
在kvm虚拟机中安装操作系统和在其他虚拟机上没有什么不同的地方 安装完成后, 在kvm虚拟机中进行网卡配置后,就可以使用putty进行远程连接了
如果需要虚拟机随系统启动,就执行 virsh start centos
在VirtualBox中嵌套安装kvm时, 使用vnc远程安装系统是没有问题的, 但是在启动kvm虚拟机的过程中,非常非常的慢, 我等了二十几分钟也没有启动成功. 而且cpu的负载很高 所以在有条件的情况下, 可以使用真机进行实验.
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显示
--------------------------------------分割线 --------------------------------------
KVM中Linux虚拟机的硬盘添加方法 http://www.linuxidc.com/Linux/2013-02/80067.htm
Linux入门学习教程:虚拟机体验之KVM篇 http://www.linuxidc.com/Linux/2015-03/114462.htm
RHEL6 KVM虚拟化创建桥接网卡-网桥 http://www.linuxidc.com/Linux/2013-08/88517.htm
RedHat Linux KVM虚拟机桥接 http://www.linuxidc.com/Linux/2013-02/79934.htm
CentOS 5.6下KVM的安装/桥接设置/虚拟机创建及运行 http://www.linuxidc.com/Linux/2012-12/76883.htm
Ubuntu下用libvirt安装KVM虚拟机时找不到/bin/qemu-kvm问题解决 http://www.linuxidc.com/Linux/2013-08/88985.htm
RedHat6.5下安装配置KVM虚拟机 http://www.linuxidc.com/Linux/2014-10/107972.htm
KVM虚拟化之嵌套虚拟化nested http://www.linuxidc.com/Linux/2015-05/117026.htm