2015年(68)
分类: 系统运维
2015-08-31 18:29:02
Kelnel-baseVirtual Machine(KVM) 是基于内核的针对包含虚拟化扩展(Intel VT 或 AMD-V)的 x86 硬件上的 Linux 的完全原生的虚拟化解决方案,通过可加载的内核模块连接内核。
1.2 安装环境:系统:Red Hat Enterprise Linux Server release 6.1 64位
内核:Linux 2.6.32-131.0.15.el6.x86_64 #1 SMP Tue May 10 15:42:40 EDT 2011x86_64 x86_64 x86_64 GNU/Linux
硬件要求:确认主机CPU使用英特尔VT或AMD-V芯片组,支持硬件虚拟化
[root@localhost ]# grep -E 'vmx|svm' /proc/cpuinfo
如果是intel的cpu且支持KVM虚拟化的,会有vmx标记,AMD的CPU则有svm标记
二、安装
注意,KVM与其他虚拟机是不可兼容和的,不能在已运行xen、vmware等虚拟机的系统中运行KVM;
2.1 安装准备
以下安装的软件全为rhel6.1光盘上的,为安装软件方便,可以先挂载光盘,设置好yum的源为挂载光盘的软件包目录后用yum来安装。
[root@localhost]# mount /dev/cdrom /mnt
[root@localhost ]# vi /etc/yum.repos.d/cdrom.repo //添加如下内容
[cdrom]
name=Red Hat Enterprise Linux base
baseurl=file:///mnt/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@localhost]# yum clean all
[root@localhost ]# yum install kvm //安装kvm模块
[root@localhost ]# yum intallqemu-kvm-tools //安装kvm调试工具
[root@localhost ]# yum install bridge-utils //安装网卡桥接工具
[root@localhost ]# yum install virt-manager libvirt libvirt-pythonpython-virtinst
l python-virtinst: kvm管理工具,提代像virt-install virt-image之类的命令用于管理kvm
l libvirt:用于与程序管理器(操作系统)通信的一个API库,使用virsh命令行工具来管理和控制kvm。
l libvirt-python: 包含了一组用python开发的调用libvirt的api接口的模块
l virt-manager: 图形界面的kvm管理工具,也是调用libvirt的api接口
2.3 重启服务器
[root@localhost ]# init 6
[root@localhost ]# lsmod |grep kvm //查看KVM模块是否正常加载
kvm_intel 47694 0
kvm 300283 1 kvm_intel
三、配置网络桥接
先验证虚拟网卡是否存在,KVM装好后会生成一个独立的虚拟桥接设备virbr0用作nat,默认配置的IP地址为192.168.122.1
[root@localhost]# ifconfig virbr0
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
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:0overruns:0 frame:0
TX packets:0 errors:0 dropped:0overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
配置网卡桥接
[root@localhost]# cd /etc/sysconfig/network-scripts/
[root@localhost]# cp ifcfg-eth0 ifcfg-br0
配置如下表:
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=eth0
TYPE=Ethernet
HWADDR=00:14:5E:C2:1E:40
ONBOOT=yes
NM_CONTROLLED=no
BRIDGE=br0
DEVICE=br0
TYPE=Bridge
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=10.10.1.152
NETMASK=255.255.255.0
ONBOOT=yes
应用程序-〉系统工具-〉虚拟系统管理器或直接在终端输入 ./virt-manger
右键->新建
输入 虚拟机名称、配置安装介质
配置虚拟机内存、CPU、存储等
配置网络
配置完成后开始安装操作系统
4.2 使用命令行
[root@localhost]#virt-install --name vmwin7 \
--ram 1024 --vcpus=1 \
--disk path=/data/kvm/img/win7.img,size=20\
--network bridge=br0--os-variant=win7 \
--cdrom/home/kvm/soft/XP.iso \
--vnc
使用VNC联到虚拟机
[root@localhost]# virt-install --help //virt-install各选项含义
usage: virt-install--name NAME --ram RAM STORAGE INSTALL [options]
options:
-h, --help show this help message and exit
--connect=CONNECT 使用 URI 连接到监控程序
通用选项:
-n NAME,--name=NAME 客户端事件名称
-r MEMORY,--ram=MEMORY 以 MB 为单位为客户端事件分配的内存
--arch=ARCH 模拟的 CPU 构架
-u UUID,--uuid=UUID 客户端 UUID。
--vcpus=VCPUS 配置您的客户端的 vcpu 数目
--check-cpu 检查确定 vcpu 没有超过物理 CPU数目,如果超过则发出警告。
--cpuset=CPUSET 设定可以使用的物理 CPU。
--os-type=DISTRO_TYPE 全虚拟客户端的操作系统类型,例如:'linux'、'unix'、'windows'
--os-variant=DISTRO_VARIANT全虚拟客户端的操作系统变体,例如:'fedora6'、'rhel5'、'solaris10'、'win2k'
--host-device=HOSTDEVS hysical host device to attach to the domain.
Full Virtualizationspecific options:
--sound 使用仿真声音设备
--noapic 为全虚拟客户端禁用 APIC(在 os-type/os-variant db 中覆盖数值)
--noacpi 为全虚拟客户端禁用 ACPI(在 os-type/os-variant db 中覆盖数值)
虚拟化类型选项:
-v, --hvm 客户端应该是一个全虚拟客户端
-p, --paravirt 这个客户端一个是一个半虚拟客户端
--accelerate 使用内核加速功能(kvm、kqemu......)
安装方法选项:
-c CDROM, --cdrom=CDROM 光驱安装介质
-l LOCATION, --location=LOCATION 安装源(例如:nfs:host:/path、
、ftp://host/path)
--pxe 使用 PXE 协议从网络引导
--import Build guest around an existing diskimage
--livecd Treat the CD-ROM media as a Live CD
-x EXTRA, --extra-args=EXTRA
附加到使用 --location 引导的内核的参数
存储配置:
--disk=DISKOPTS 使用不同选项指定作为磁盘使用的存储。
-f FILE_PATH, --file=FILE_PATH 作为磁盘映像使用的文件
-s DISKSIZE, --file-size=DISKSIZE 磁盘映像大小(如果它不存在的话),以GB 为单位
--nonsparse 不要为磁盘使用稀疏文件。请注意这会使得客户端创建变得及其缓慢
--nodisks 不要为该客户端设置任何磁盘。
联网配置:
-b BRIDGE, --bridge=BRIDGE 连接客户端 NIC 的桥接;如果没有给定,确定默认桥接
-w NETWORK, --network=NETWORK 将客户端连接到虚拟网络,使用 NAT 转发到物理网络
-m MAC, --mac=MAC 客户端的固定 MAC地址;如果没有则使用随机给定的地址。
--nonetworks Don't create network interfaces for theguest.
图形配置:
--vnc 用 VNC 进行图形支持
--vncport=VNCPORT VNC 使用的端口
--sdl 用 SDL 进行图形支持
--nographics 不要为该客户端设置图形控制台。
--noautoconsole 不要自动尝试连接到客户端控制台
-k KEYMAP, --keymap=KEYMAP 为图形控制台设置 keymap
其它选项:
-d, --debug 输入故障排除信息
--noreboot 安装完成时请禁用自动重启。
--wait=WAIT Time to wait (in minutes)
--force 对任意应用程序提示强制回答‘yes’,终止左右其它提示
--prompt Request user input for ambiguoussituations or
required options.--debug