Centos6.7_KVM安装配置使用

当前的虚拟化产品有 vmware vsphere ,Hyper-v,xen,kvm。vmware的虚拟化所占的市场有目共睹,Hyper-V是windows平台下的虚拟化,而Xen就属于一个半虚拟化产品。kvm就是我们今天所介绍的对象。

(kvm是kernel virtual module的简写)kvm是红帽公司5.4版本后所推出的最新虚拟化技术产品。它和vpc,virtual  box都属于完全虚拟化产品,而Xen是属于半虚拟化产品。

虽说kvm是完全虚拟化,但在关键的硬盘和网卡上支持半虚拟化virtio,在很大程度上提高了性能,kvm是轻量级虚拟化的代表,也需要硬件vt技术的支持,另外从操作界面上看,xen和kvm都是用virt-manager工具,差别不是很大,但不可以在同一台机器上同时安装且运行Xen和KVM;另外kvm在只能运行在红帽企业版64位系统上,同时需要关闭selinux。

KVM是指基于 Linux 内核的虚拟机(Kernel-based Virtual Machine)。增加 KVM 到 Linux 内核是Linux 发展的一个重要里程碑,这也是第一个整合到 Linux 主线内核的虚拟化技术。

KVM所使用的方法是通过简单地加载内核模块而将 Linux 内核转换为一个系统管理程序。这个内核模块导出了一个名为 /dev/kvm 的设备,它可以启用内核的客户模式(除了传统的内核模式和用户模式)。有了 /dev/kvm 设备,VM 使自己的地址空间独立于内核或运行着的任何其他 VM 的地址空间。设备树(/dev)中的设备对于所有用户空间进程来说都是通用的。但是每个打开 /dev/kvm 的进程看到的是不同的映射(为了支持 VM 间的隔离)。KVM安装 KVM 之后,您可以在用户空间启动客户操作系统。每个客户操作系统都是主机操作系统(或系统管理程序)的一个单个进程。

1KVM 虚拟机的管理工具

准确来说,KVM仅是Linux 内核中的一个模块。管理和创建完的 KVM 虚拟机,需要更多的辅助工具。QEMU-KVM:在 Linux 系统中,首先我们可以用 modprobe 命令加载 KVM 模块,如果用 RPM 安装 KVM 软件包,系统会在启动时自动加载模块。加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有 KVM 模块是远远不够的,因为用户无法直接控制内核模块去做事情,还必须有一个用户空间的工具。关于用户空间的工具,KVM 的开发者选择了已经成型的开源虚拟化软件 QEMU。QEMU 是一个强大的虚拟化软件,它可以虚拟不同的 CPU 构架。比如说在 x86 的 CPU 上虚拟一个Power的CPU,并利用它编译出可运行在 Power 上的程序。KVM使用了QEMU的基于 x86 的部分,并稍加改造,形成可控制 KVM 内核模块的用户空间工具QEMU-KVM。所以 Linux 发行版中分为 内核部分的 KVM 内核模块和 QEMU-KVM 工具。这就是 KVM 和 QEMU 的关系。 Libvirt、virsh、virt-manager:尽管 QEMU-KVM 工具可以创建和管理 KVM 虚拟机,RedHat 为 KVM 开发了更多的辅助工具,比如 libvirt、libguestfs 等。原因是 QEMU 工具效率不高,不易于使用。Libvirt 是一套提供了多种语言接口的 API,为各种虚拟化工具提供一套方便、可靠的编程接口,不仅支持 KVM,而且支持 Xen 等其他虚拟机。使用 libvirt,你只需要通过 libvirt 提供的函数连接到 KVM 或 Xen 宿主机,便可以用同样的命令控制不同的虚拟机了。Libvirt 不仅提供了 API,还自带一套基于文本的管理虚拟机的命令 virsh,你可以通过使用 virsh 命令来使用 libvirt 的全部功能。但最终用户更渴望的是图形用户界面,这就是 virt-manager。他是一套用 python 编写的虚拟机管理图形界面,用户可以通过它直观地操作不同的虚拟机。Virt-manager 就是利用 libvirt 的 API 实现的。

2、kvm虚拟机的安装

(一)安装之前先要开启cpu的虚拟化功能,如果是物理机直接进入BIOS中就该虚拟化选项开启,如果是

vmware worksation 如图:

如果是vSphere 的话也是在设置中找到cpu的设置去开启虚拟化支持。

设置好之后检查虚拟化是否成功支持:

#egrep "(vmx|svm)" /proc/cpuinfo

flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov patpse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc uparch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperfunfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnttsc_deadline_timer xsave avx hypervisor lahf_lm arat epb pln pts dts tpr_shadowvnmi ept vpid

(二)kvm软件的安装

# yum install qemu-kvm qemu-kvm-tools virt-manager libvirt -y

 # service libvirtd start

 # service libvirtd status

libvirtd (pid  1818) ...

 # chkconfig libvirtd on

说明:

kvm为linux内核的一个模块,模块不需要安装,只需要加载

virt-manageer 为kvm的管理包

libvirt 为创建虚拟机的工具包

qemu:虚拟化软件,可以虚拟不同的CPU,支持异构(x86的架构可以虚拟化出不是x86架构的)
       qemu-kvm:用户态管理kvm,网卡,声卡,PCI设备等都是qemu来管理的

(三)检查模块的正确安装

使用lsmod来检查模块安装

# lsmod | grep kvm

kvm_intel             55656  0

kvm                  345460  1 kvm_intel

(四)检查KVM是否成功安装

#virsh -c qemu:///system list

备注:初次安装横线下面没有属于正常。另外如果报错的话检查上面的服务是否正常启动。

3、kvm的网络配置

一种是default,它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。

默认的网络连接是virbr0,它的配置文件在

#cat /var/lib/libvirt/network/default.xml

<!--

OVERWRITTEN AND LOST. Changes to thisxml configuration

should be made using:

virsh net-edit default

or other application using thelibvirt API.

-->

<network>

<name>default</name>

<uuid>36ec31bf-a7fa-4b61-90a8-2b46aed90518</uuid>

<forward mode=‘nat‘/>

<bridge name=‘virbr0‘ stp=‘on‘ delay=‘0‘ />

<mac address=‘52:54:00:B7:F4:66‘/>

<ip address=‘192.168.122.1‘ netmask=‘255.255.255.0‘>

<dhcp>

<range start=‘192.168.122.2‘ end=‘192.168.122.254‘ />

</dhcp>

</ip>

</network>

另外一种方式是bridge方式,可以使用虚拟机成为网络中具有独立IP的主机。

我这里是使用第二种网络配置:

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

#BROADCAST=10.0.0.255

HWADDR=00:0C:29:92:B5:37

#IPADDR=10.0.0.61

#NETMASK=255.255.255.0

#GATEWAY=10.0.0.254

ONBOOT=yes

BRIDGE="br0"

#vi /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0

TYPE=Bridge

BOOTRPOTO=static

IPADDR=10.0.0.85

NETMASK=255.255.255.0

GATEWAY=10.0.0.254

ONBOOT=yes

#service network restart

说明:

现在使用10.0.0.85连接宿主机

#ifconfig

br0       Link encap:Ethernet  HWaddr 00:0C:29:92:B5:37

inet addr:10.0.0.85  Bcast:10.0.0.255  Mask:255.255.255.0

inet6 addr:fe80::20c:29ff:fe92:b537/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1

RX packets:420 errors:0 dropped:0overruns:0 frame:0

TX packets:235 errors:0 dropped:0overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:33439 (32.6 KiB)  TX bytes:29623 (28.9 KiB)

eth0      Link encap:Ethernet  HWaddr 00:0C:29:92:B5:37

inet6 addr:fe80::20c:29ff:fe92:b537/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1

RX packets:4299 errors:0 dropped:0overruns:0 frame:0

TX packets:2822 errors:0 dropped:0overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:384854 (375.8 KiB)  TX bytes:300481 (293.4 KiB)

eth1      Link encap:Ethernet  HWaddr 00:0C:29:92:B5:41

inet addr:192.168.3.150  Bcast:192.168.3.255  Mask:255.255.255.0

inet6 addr:fe80::20c:29ff:fe92:b541/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1

RX packets:1175 errors:0 dropped:0overruns:0 frame:0

TX packets:304 errors:0 dropped:0overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:76602 (74.8 KiB)  TX bytes:22635 (22.1 KiB)

Interrupt:16 Base address:0x2000

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:65536 Metric:1

RX packets:618 errors:0 dropped:0overruns:0 frame:0

TX packets:618 errors:0 dropped:0overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:73375 (71.6 KiB)  TX bytes:73375 (71.6 KiB)

virbr0    Link encap:Ethernet  HWaddr 92:66:C3:69:F0:D9

inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0

inet6 addr:fe80::9066:c3ff:fe69:f0d9/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1

RX packets:0 errors:0 dropped:0overruns:0 frame:0

TX packets:81 errors:0 dropped:0overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:0 (0.0 b)  TX bytes:12603 (12.3 KiB)

注:网桥模式需要在真机eth0配置文件中添加 BRIDGE="br0",否则真机与虚拟机无法互通.

配置完毕后eth0口则不会显示地址信息,新配置的br0口会代替eth0口成为真机网口,装好的虚拟机eth0口将于真机br0口互通.

4、创建虚拟机

(一)使用virt-manager建立一个KVM虚拟机

virt-manager是基于libvirt的图像化虚拟机管理软件,请注意不同的发行版上 virt-manager的版本可能不同,图形界面和操作方法也可能不同。本文使用了红帽6企业版的virt-manager-0.9.0-31。创建KVM虚拟机最简单的方法是通过virt-manager接口。从控制台窗口启动这个工具,从root身份输入virt-manager命令,点击file菜单的"新建"选项virt-manager接口界面

#virt-manager  //图形化界面安装虚拟机

(二)使用virt-install命令创建虚拟机

//本文重点介绍virt-install命令创建虚拟机

#yum groupinstall "Virtualization tools" -y  //安装脱机虚拟机镜像管理工具

#virt-install --help

Usage: virt-install --name NAME --ramRAM STORAGE INSTALL [options]

Options:

--version             showprogram‘s version number and exit

-h, --help            show thishelp message and exit

--connect=URI         Connect tohypervisor with libvirt URI

通用选项:

-n NAME, --name=NAME

客户端事件名称

-r MEMORY, --ram=MEMORY

以 MB 为单位为客户端事件分配的内存

--vcpus=VCPUS       配置来宾账户的虚拟 CPU(vcpu) 数量,如:

--vcpus 5

--vcpus 5, maxcpus=10

--vcpussocket=2,cores=4,threads=2

--cpuset=CPUSET     Set which physical CPUs domain can use.

--cpu=CPU              CPU型号及功能,如:--cpu coreduo,+x2apic

--description=DESCRIPTION

在生成的 XML 中保存的可读 VM 描述。

--security=SECURITY

设定域安全驱动器配置。

--numatune=NUMATUNE

为域进程调整 NUMA 策略。

安装方法选项:

-c CDROM, --cdrom=CDROM

光驱安装介质

-l LOCATION, --location=LOCATION

安装源(例如:nfs:host:/path、http://host/path                        ://host/path)

--pxe                 使用 PXE 协议从网络引导

--import            在磁盘映像中构建客体

--init=INIT         为容器虚拟机启动二进制的路基该您。例

如:

--init /path/to/app(包含应用程序)

--init /sbin/init(用于所有 OS 容器)

--livecd         将光驱介质视为 Live CD

-x EXTRA, --extra-args=EXTRA

附加到使用 --location 引导的内核的参数

--initrd-inject=INITRD_INJECTIONS

使用 --location 为 initrd 的 root

添加给定文件

--os-type=DISTRO_TYPE

要安装的操作系统类型,例如:‘linux‘、‘u

nix‘、‘windows‘

--os-variant=DISTRO_VARIANT

The OS variant beinginstalled guests, e.g. ‘fedora6‘,

‘rhel5‘, ‘solaris10‘, ‘win2k‘

--boot=BOOTOPTS     自选配置后安装引导顺序、菜单、永久

kernel 引导,等等。

存储配置:

--disk=DISKOPTS     Specifystorage with various options. Ex.

--diskpath=/my/existing/disk

--disk path=/my/new/disk,size=5(in gigabytes)

--diskvol=poolname:volname,device=cdrom,bus=scsi,...

--nodisks           不要为该客户端设置任何磁盘。

--filesystem=FILESYSTEMS

将主机目录传递给虚拟机。例如:

--filesystem/my/source/dir,/dir/in/guest

--filesystemtemplate_name,/,type=template

联网配置:

-w NETWORK, --network=NETWORK

Configure a guestnetwork interface. Ex:

--network bridge=mybr0

--networknetwork=my_libvirt_virtual_net

--networknetwork=mynet,model=virtio,mac=00:11...

--nonetworks        不要为该客体创建网络接口。

图形配置:

--graphics=GRAPHICS

配置虚拟机显示设置。例如:

--graphics vnc

--graphicsspice,port=5901,tlsport=5902

--graphics none

--graphicsvnc,password=foobar,port=5910,keymap=ja

--noautoconsole     不要自动尝试连接到客户端控制台

设备选项:

--serial=SERIALS           配置虚拟机串口设备

--parallel=PARALLELS

配置虚拟机并口设备

--channel=CHANNELS  配置虚拟机沟通频道

--console=CONSOLES  配置虚拟机与主机之间的文本控制台连接

--host-device=HOSTDEVS

Configure physical hostdevices attached to the guest

--soundhw=SOUNDHW   Configureguest sound device emulation

--watchdog=WATCHDOG

配置虚拟机 watchdog 设备

--video=VIDEO       配置虚拟机视频硬件。

--smartcard=SMARTCARD

配置虚拟机智能卡设备。例如:

--smartcardmode=passthrough

--redirdev=REDIRDEV

Configure a guestredirection device. Ex:

--redirdevusb,type=tcp,server=192.168.1.1:4000

--panic=PANIC       Configure a guest panic device. Ex:

--panic default

虚拟化平台选项:

-v, --hvm            客户端应该是一个全虚拟客户端

-p, --paravirt      这个客户端一个是一个半虚拟客户端

--container         This guestshould be a container guest

--virt-type=HV_TYPE

要使用的管理程序名称(kvm、qemu、xen等等)

--arch=ARCH     模拟的 CPU 构架

--machine=MACHINE   The machinetype to emulate

--noapic            为全虚拟客户端禁用 APIC(在 os-type/os-

variant db 中覆盖数值)

--noacpi            为全虚拟客户端禁用 ACPI(在 os-type/os-

variant db 中覆盖数值)

-u UUID, --uuid=UUID

客户端 UUID。

其它选项:

--autostart         引导主机时自动启动域。

--print-xml         输出所生成域的

XML,而不是定义虚拟机。

--print-step=XMLSTEP

输出具体安装步骤(1,2,3,all)的

XML。

--noreboot          完成安装后不要引导虚拟机。

--wait=WAIT       要等待的时间(以分钟为单位)

--dry-run             完成安装步骤,但不要创建设备或者定义

虚拟机。

--force             对任意应用程序提示强制回答‘yes’,终止左右其它提示

-q, --quiet       禁止无错误输出

--prompt         要求用户为模糊情况或者需要的选项输入。

-d, --debug     输入故障排除信息

# virt-install --connectqemu:///system --name kvm4 --ram 500 --disk path=/dev/sdb5 --network bridge=br0--arch x86_64 --graphics sdl --location=/tmp/CentOS-7-x86_64-Minimal-1511.iso

开始安装......

搜索文件.treeinfo......                        |2.2 kB     00:00 ...

搜索文件vmlinuz......                          | 9.8 MB     00:00 ...

搜索文件initrd.img......                      |  73 MB     00:00 ...

ERROR    No DISPLAY environment variable set.  //出错,解决方法如下:

# export DISPLAY=guilinuxbox:0.0

# virt-install --connect qemu:///system --name kvm4 --ram 500 --diskpath=/dev/sdb5 --network bridge=br0 --arch x86_64 --graphics sdl--location=/tmp/CentOS-7-x86_64-Minimal-1511.iso

开始安装......

搜索文件.treeinfo......                        |2.2 kB     00:00 ...

搜索文件vmlinuz......                          | 9.8 MB     00:00 ...

搜索文件initrd.img......                      |  73 MB     00:00 ...

ERROR    unsupported configuration: sdl notsupported by ‘/usr/libexec/qemu-kvm‘

Domain installation does not appearto have been successful.

If it was, you can restart yourdomain by running:

virsh --connect qemu:///system start kvm1

otherwise, please restart yourinstallation.  //出错,提示qemu-kvm没有sdl接口,因此我们换成vnc来连接虚拟机界面。解决方法如下:

# yum-y install virt-viewer

# virt-install --name CentOS-7_x86_64 --virt-type kvm --ram 1024 --disk path=/dev/sdb5 --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole --location=/tmp/CentOS-7-x86_64-Minimal-1511.iso --force

开始安装......

搜索文件.treeinfo......                        |2.2 kB     00:00 ...

搜索文件vmlinuz......                          |9.8 MB     00:04 ...

搜索文件 initrd.img......                       |  73 MB    00:15 ...

创建域......                                     |    0 B    00:19

‘virt-viewer --help‘

域安装仍在进行。您可以重新连接

到控制台以便完成安装进程。

# virsh list --all

Id

----------------------------------------------------

8     CentOS-7_x86_64                running

# netstat -tunlp|grep kvm

tcp        0     0 127.0.0.1:5900             0.0.0.0:*                  LISTEN      5149/qemu-kvm

虚拟机基本操作学习:

生成kvm虚拟机:virt-install
查看在运行的虚拟机:virsh list
查看所有虚拟机:virsh list –all
查看kvm虚拟机配置文件:virsh dumpxml name
启动kvm虚拟机:virsh start name
正常关机:virsh shutdown name
非正常关机(相当于物理机直接拔掉电源):virsh destroy name
删除:virsh undefine name(彻底删除,找不回来了,如果想找回来,需要备份/etc/libvirt/qemu的xml文件)
根据配置文件定义虚拟机:virsh define file-name.xml
挂起,终止:virsh suspend name
恢复挂起状态:virsh resumed name

编辑kvm的xml文件,更改虚拟机CPU配置

#virsh edit CentOS-7_x86_64

<vcpu placement=‘static‘>1</vcpu>  //当前为1,自动扩容,最大为4

时间: 2024-10-10 16:47:06

Centos6.7_KVM安装配置使用的相关文章

CentOS-6.5安装配置Tomcat-7

https://my.oschina.net/u/593517/blog/304483 http://blog.csdn.net/lgh0824/article/details/51194116 摘要: CentOS-6.5安装配置Tomcat-7 安装说明 安装环境:CentOS-6.3安装方式:源码安装 软件:apache-tomcat-7.0.29.tar.gz下载地址:http://tomcat.apache.org/download-70.cgi 安装前提 系统必须已经安装配置了JDK

centos6.5_x64 安装配置java+tomcat+apache

1.下载: # wget http://download.oracle.com/otn-pub/java/jdk/6u31-b04/jdk-6u31-linux-x64-rpm.bin 2.赋权限: [[email protected] ~]# ls -l jdk-6u31-linux-x64-rpm.bin -rw-r--r-- 1 root root 81071431 Jun 26 14:00 jdk-6u31-linux-x64-rpm.bin [[email protected] ~]#

[转]CentOS-6.3安装配置cmake

CentOS-6.3安装配置cmake zhoulf 2013-02-03 原创 安装说明 安装环境:CentOS-6.3安装方式:源码编译安装 软件:cmake-2.8.10.2.tar.gz下载地址:http://www.cmake.org/cmake/resources/software.html 安装前提 系统中已经安装了g++和ncurses-devel,如果没有安装使用下面的命令安装: [[email protected] /]# yum install gcc-c++[[email

[转]Centos6.5安装配置keepalived

参考博文: Centos6.5安装配置keepalived CentOS6.5 keepalived详解及实现Nginx服务的高可用性 CentOS6.5 LVS + KeepAlived搭建步骤 我采用yum 方式  直接安装  版本为1.2.13 # yum -y install keepalived global_defs { #全局定义 notification_email { #定义邮件提醒 一行一个 多个人写多行 acassen@firewall.loc failover@firew

CentOS6.5安装配置Samba

CentOS6.5安装配置Samba 本文的场景是虚拟机运行CentOS6.5,本机是Win7,现欲把CentOS上的一个文件夹共享出来,Win的机器可以读写. Samba与window连接需要使用NetBIOS协议,请确认你的Win7系统已经安装了NetBIOS协议. 组成Samba运行的有两个服务,一个是SMB,另一个是NMB:SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务

Centos6.5安装配置Mantisbt

Centos6.5安装配置Mantisbt 一.安装配置Apache 1.1.安装依赖包(APR,APR-UTIL,pcre) tar -zxf apr-1.4.5.tar.gz[[email protected] apr-1.4.5]# ./configure --prefix=/usr/local/apr[[email protected] apr-1.4.5]# make[[email protected] apr-1.4.5]# make install [[email protecte

34. CentOS-6.3安装配置Apache2.2.6

安装说明 安装环境:CentOS-6.3安装方式:源码编译安装 软件:httpd-2.2.6.tar.gz  | pcre-8.32.tar.gz | apr-1.4.6.tar.gz | apr-util-1.5.1.tar.gz下载地址:http://mirror.bjtu.edu.cn/apache/httpd/http://apr.apache.org/download.cgihttp://jaist.dl.sourceforge.net/project/pcre/pcre安装位置:/u

[转] CentOS6.5安装配置Apache和PHP、MySQL

原文地址:http://blog.csdn.net/hooperzao/article/details/25088131 在CentOS下已经有了Apache,不过我们还是可以用yum命令安装补齐所需要的模块 yum -y install httpd php php-mysql mysql-server 默认的查看状态.启动.停止.重启.刷新的命令及参数为: service httpd status|start|stop|restart|reload service mysqld status|

38. CentOS-6.3安装配置Tomcat-7

安装说明 安装环境:CentOS-6.3安装方式:源码安装 软件:apache-tomcat-7.0.29.tar.gz下载地址:http://tomcat.apache.org/download-70.cgi 安装前提 系统必须已经安装配置了JDK6+,如果不会安装请参考<CentOS-6.3安装配置JDK-7>. 安装tomcat 将apache-tomcat-7.0.29.tar.gz文件上传到/usr/local中执行以下操作: [[email protected] local]# c