虚拟化产品对比介绍
vmware
KVM rhel6_x64
xen [kernel-xen] rhel5
虚拟化技术:
仿真虚拟化 [对系统硬件没有要求,性能最低]
半虚拟化 [虚拟机可以使用真机物理硬件,性能高,需要改内核]
全虚拟化 直接使用物理硬件,性能高
vmware 支持仿真虚拟化
xen 半虚 REHL5自带xen, 安装时需要安装内核 rpm -ivh kernel-xen-xxx.rpm
kvm 全虚拟化 RHEL6 自带kvm
简介
KVM 即Kernel-based Virtual Machine 基于内核的虚拟机。
KVM,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM(虚拟机监控器)之一。KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization。
KVM:是指基于 Linux 内核的虚拟机(Kernel-based Virtual Machine)。是第一个整合到 Linux 内核的虚拟化技术。在 KVM 模型中,每一个虚拟机都是一个由 Linux 调度程序管理的标准进程,你可以在用户空间启劢客户机操作系统。
一个普通的 Linux 进程有两种运行模式:内核和用户。 KVM 增加了第三种模式:客户模式(有自己的内核和用户模式)
XEN :需要升级内核,只能支持和物理机系统一样的操作系统。 xen虚拟上,可以运行windows
KVM:支持linux以外的其它系统。比如:windows
环境介绍
64位RHEL6以上系统支持KVM,32位不支持。CentOS7以上含有桌面程序系统可安装。
查看自己的CPU是否支持全虚拟化虚拟化技术且是64位的
Intel:cat /proc/cpuinfo | grep --color vmx
AMD :cat /proc/cpuinfo | grep --color svm
看看flag有没有上面的vmx或者是svm,有的话就是支持全虚拟化技术。有几条代表有几个CPU,可以使用top然后1进行查看。
KVM安装
yum install qemu-kvm libvirt libguestfs-tools virt-install virt-manager libvirt-python -y
qemu-kvm : kvm主程序, KVM虚拟化模块
virt-manager: KVM图形化管理工具
libvirt: 虚拟化服务
libguestfs-tools : 虚拟机的系统管理工具
virt-install : 安装虚拟机的实用工具 。比如 virt-clone克隆工具就是这个包安装的
libvirt-python : python调用libvirt虚拟化服务的api接口库文件
rpm –qpi /mnt/Packages/libguestfsxxx #查看对应包summary描述
[root@test63 ~]# systemctl start libvirtd #开启虚拟化服务
[root@test63 ~]# systemctl enable libvirtd #设置libvirtd服务开机启动
[root@test63 ~]# systemctl is-enabled libvirtd #查看是否开机启动
[root@test63 ~]# lsmod | grep kvm #确定正确加载kvm 模块,检查 KVM 模块是否成功安装
kvm_intel 170086 0
kvm 566340 1 kvm_intel
irqbypass 13503 1 kvm
[root@test63 ~]# echo $LANG
en_US.UTF-8
[root@test63 ~]# LANG='zh_CN.UTF-8' #切换成中文界面
[root@test63 ~]# virt-manager #使用virt-manager 建立虚拟机
实战1:配置KVM网络桥接功能
网桥介绍: 我们经常所说的Bridge设备其实就是网桥设备,也就相当亍现在的二层交换机,用亍连接同一网段内的所有机器,所以我们的目的就是将网络设备eth0添加到br0,此时br0就成为了所谓的交换机设备,我们物理机的eth0也是连接在上面的。
添加桥接设备br0:相当于一个二层交换机
[root@test63 ~]# rpm -ivh /mnt/Packages/bridge-utils-1.2-9.el6.x86_64.rpm #安装桥设备工具
[root@test63 ~]# cd /etc/sysconfig/network-scripts/ #把eth0绑到br0桥设备上
[root@test63 network-scripts]# cp ifcfg-ens33/tmp/ #备份一下eth0
[root@test63 network-scripts]# vim ifcfg-ens33 #编辑配置文件为以下内容
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=c713acec-674b-411d-9e61-646482a292ca
DEVICE=ens33
IPADDR=192.168.1.63 #这些内容接下来,需要删除
NETMASK=255.255.255.0 #这些内容接下来,需要删除
GATEWAY=192.168.1.1 #这些内容接下来,需要删除
DNS1=202.106.46.151 #这些内容接下来,需要删除
ONBOOT=yes
IPV6_PRIVACY=no
PEERDNS=no
BRIDGE="br0" #在文件最后插入这一行
生成桥设备的配置文件
[root@test63 network-scripts]# vim ifcfg-br0 #创建ifcfg-br0 文件,并写入以下内容
DEVICE="br0"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Bridge" #注:TYPE="Bridge" ,B要大写
BOOTPROTO=none
IPADDR=192.168.1.63
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
[root@test63 network-scripts]# service network restart #重启生效
[root@test63 network-scripts]# ifconfig #查看是否生效
[root@test63 network-scripts]# brctl show
bridge name bridge id STP enabled interfaces
br 08000.000c290283db no ens33 #桥接配置
virbr 08000.525400183a62 yes virbr0-nic #KVM自带桥设备
创建一台KVM虚拟机
创建一个分区,用于存放安装好的Linux操作系统:
[root@test63 ~]#