虚拟化_KVM

一、KVM介绍

1、KVM全称kernel vitual machine,是针对包含虚拟化扩展(InterVT或AMD-V)的x86硬件上的完全原生的虚拟化解决方案

2、KVM是以色列Qumranet开发,基于linux内核,2008年9月4日RedHat公司收购KVM

3、RHEL5/CentOS5默认是Xen,RHEL6/CentOS6版本默认是KVM

二、KVM架构

-KVM驱动:作为linux内核的一个模块,其主要负责虚拟机的创建,虚拟机内存的分配,VCPU寄存器的读写以及VCPU的运行

-Qemu:用于模拟虚拟机的用户控件组件,提供I/O设备模型,访问外设的途径。

-Libvirt,virsh:由于Qemu工具效率不高,RedHat为KVM开发了辅助工具,比如libvirt、libguestfs。Libvirt是一套提供多种语言接口的API,为各种虚拟化工具提供一套方便、可靠的编程接口,而且支持Xen宿主机,便可以用同样的命令控制不同的虚拟机了。Libvirt不仅提供了API,还自带一套基于文本的管理虚拟机的命令virsh,可以通过使用virsh命令来使用libvirt的全部功能。

-virt-manager是一套python编写的虚拟机管理图形界面,用户可以通过他只管地操作不同的虚拟机,利用libvirt的API实现的。

三、kvm创建brigde网络模型的虚拟机

查看cpu是否支持虚拟化

# egrep --color "vms|smd" /proc/cpuinfo

如果有输出内容intel的cpu会有vmx,AMD的cpu会有svm

关闭NetworkManager服务

# /etc/init.d/NetworkManager stop

# chkconfig --level 2345 NetworkManager off

检查network服务是否启动

# chkconfig --list network

安装虚拟化的软件包:

# yum -y install kvm virt-* libvirts bridge-utils qemu-img

说明:

kvm:软件包中含有KVM内核模块,它在默认linux内核中提供kvm管理程序

libvirts:安装虚拟机管理工具,使用virsh等命令来管理和控制虚拟机

bridge-utils:设置网络网卡桥接

virt-*:创建、克隆虚拟机命令,以及图形化管理工具virt-manager

qemu-img:安装qemu组将,使用qemu命令来创建磁盘等。

检查kvm是否安装成功

# lsmod | grep --color kvm

如果出现:下列内容则表示安装成功加载kvm模块

kvm_intel              54285  0

kvm                   333172  1 kvm_intel

如果没有成功加载则执行:

# modprobe kvm_intel

如果还是没有则reboot

编辑配置文件

# vi /etc/libvirt/qemu.conf
user = "root"
group = "root"
dynamic_ownership = 0

启动服务

# /etc/init.d/libvirtd start ;
/etc/init.d/messagebus start

配置网络

修改网络配置文件重启网络服务

# cd /etc/sysconfig/network-scripts/

# cp ifcfg-eth0 ifcfg-br0

# vim ifcfg-br0

DEVICE=br0

TYPE=Bridge

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=none

IPADDR=10.10.10.156

NETMASK=255.255.255.0

GATEWAY=10.10.10.1

DNS1=192.168.1.1

DNS2=8.8.8.8

# vim ifcfg-eth0

DEVICE=eth0

HWADDR=00:0C:29:29:E5:68

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=none

BRIDGE=br0

使用qemu-kvm创建虚拟机

将qemu-kvm连接到/usr/sbin/下

# ln -sv /usr/libexec/qemu-kvm /usr/sbin

利用网络镜像创建虚拟机

virt-install --name  fansik1 --ram 512 --disk
path=/kvm/fansik1.img,size=30 --vcpus 1 --os-type linux --os-variant rhel6
--network bridge=br0 --graphics none --console pty,target_type=serial
--location ‘http://mirrors.163.com/centos/6.7/os/i386/‘ --extra-args
‘console=ttyS0,115200n8 serial‘

选择English然后配置静态ip地址就可以执行安装

利用光盘镜像创建虚拟机

# qemu-img create -f qcow2 -o
preallocation=metadata /kvm/fansik.qcow2 10G

通过NFS将光盘文件共享出来,然后通过NFS创建

# virt-install --name fansik --ram 512 --disk
path=/kvm/fansik.qcow2,format=qcow2,size=7,bus=virtio --vcpus 1 --os-type linux
--os-variant rhel6 --network bridge=br0 --graphics none --console
pty,target_type=serial --location ‘/mnt/‘ --extra-args ‘console=ttyS0,115200n8
serial‘

NFS设置:

NFS server name:NFS服务器IP地址

CentOS directory:/mnt/images/install.img

NFS mount options (optional):ro

四、virsh常用操作

# virsh list --all

显示所有虚拟机

# virsh console 名称

切换到某台虚拟机

关闭虚拟机需要在虚拟机上(不是宿主机)安装acpid包

# yum install acpid

# /etc/init.d/acpid start

在关闭就可以正常关闭虚拟机了

# virsh shutdown fansik

或者可以直接使用destroy选项

# virsh destroy fansik

启动虚拟机并进入该虚拟机

# virsh start fansik --console

挂起虚拟机

# virsh suspend fansik

恢复虚拟机

# virsh resume fansik

是虚拟机开机自启动

# virsh autostart fansik

关闭虚拟机的开机自启动

# virsh autostart --disable fansik

完全删除虚拟机

# virsh destroy fansik

# virsh undefine fansik

# rm -rf /kvm/fansik

五、kvm克隆

将fansik虚拟机克隆成fansik2

# virt-clone --original fansik --name fansik2
--file /kvm/fansik2.qcow2

进去后修改一下网卡配置即可,和vmware中差不多

六、创建快照

创建快照

# virsh snapshot-create fansik2

查看快照信息

# qemu-img info fansik2.qcow2

磁盘转换

# qemu-img convert -f raw -O qcow2 fansik1.img
fansik1.qcow2

创建的快照,和转换的磁盘都以xml文件的的形式存储在/etc/libvirt/qemu目录下

列出快照

# virsh snapshot-list fansik2

或者

# qemu-img info /kvm/fansik2.qcow2

七、恢复和删除快照

先列出快照然后选择要恢复的快照名称,恢复快照

# virsh snapshot-revert fansik2 1461996142

显示当前虚拟机的快照

# virsh snapshot-current fansik2

删除快照

# virsh snapshot-delete fansik2 1461996142

快照存储位置/var/lib/libvirt/qemu/snapshot/fansik2/

八、kvm磁盘扩容

给fansik2增加5G

# qemu-img resize /kvm/fansik2.qcow2 +5G

查看一下

# qemu-img info fansik2.qcow2

销毁重启后就可以看到多出来5G啦

# virsh destroy fansik2

# virsh start fansik2

重新分区就可以使用了,注意其实柱面要接着之前的

将重新分的区添加到逻辑卷中去

# pvcreate /dev/vda3

# pvs查看分区情况

PV        
VG       Fmt  Attr PSize PFree

/dev/vda2 
vg_bogon lvm2 a--  9.51g    0

/dev/vda3          
lvm2 a--  5.00g 5.00g

# vgextend vg_bogon /dev/vda3

# vgs查看是否添加成功

VG       #PV
#LV #SN Attr   VSize  VFree

vg_bogon  
2   2   0 wz--n- 14.50g 5.00g

# lvs

# lvextend -l +100%FREE /dev/vg_bogon/lv_root

# resize2fs /dev/vg_bogon/lv_root

九、根据虚拟磁盘恢复虚拟机

# virsh undefine fansik1

/etc/libvirt/qemu中的fansik1.xml就会被删除

# virsh dumpxml fansik > fansik1.xml

或者

# cp fansik.xml fansik1.xml

# vim fansik1.xml编辑配置文件

修改<name>fansik1</name>

<uuid>c026536a-8227-bf18-3dd6-e026bd6417b1</uuid>

<driver name=‘qemu‘ type=‘raw‘
cache=‘none‘/>

<source file=‘/kvm/fansik.img‘/>

定义fansik1

# virsh define /etc/libvirt/qemu/fansik1.xml

十、调整cpu、内存、网卡

调整cpu和内存

# virsh edit fansik1或者# vim /etc/libvirt/qemu/fansik1.xml

直接编辑文件即可:

<memory unit=‘KiB‘>524288</memory>

<currentMemory
unit=‘KiB‘>524288</currentMemory>

<vcpu placement=‘static‘>1</vcpu>

列出网卡信息:

# virsh domiflist fanisk1

添加网卡(需要虚拟机开机时配置):

# virsh attach-interface fansik1 --type bridge
--source br0

或者编辑配置文件添加:

<interface type=‘bridge‘>

<mac
address=‘52:54:00:42:99:0b‘/>

<source
bridge=‘br0‘/>

<model
type=‘virtio‘/>

<address
type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x03‘ function=‘0x0‘/>

</interface>

十一、kvm虚拟机迁移

# virsh dumpxml fansik >
/etc/libvirt/qemu/fansik8.xml

查看虚拟磁盘位置

# virsh domblklist fansik

把虚拟磁盘同步到要迁移的服务器上

# rsync -avP /kvm/fansik.qcow2
/data/kvm/fansik8.qcow2

定义虚拟机

# virsh define /etc/libvirt/qemu/fansik8.xml

启动虚拟机

# virsh start fansik8.xml

时间: 2024-10-13 21:59:35

虚拟化_KVM的相关文章

Linux 部署KVM虚拟化平台

简单介绍 KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案.KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度:虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程.这使得 KMV 能够使用 Linux 内核的已有功能. 但是,KVM 本身不执行任何硬件模拟,需要客户空间程序通过 /dev/kvm 接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的 I/O,并将它的视频显示

学习虚拟化技术需要掌握的知识与能力(未完成版)

我从1993年学习计算机,有过短期的C语言开发经历,现在主要从事网络与系统集成的工作.我可以算是学习计算机比较"早"的一批人了. 1993年的时候,我是从MS-DOS 3.30开始,直到最后的MS-DOS 6.22.Windows系统是从Windows 3.1(中文版)开始,再到Windows 3.11.Windows 95.98一直到现在的Windows 10. 组建Windows网络是在1996年河北省国税局全省联网,是从Windows NT 3.51开始,到后来的Windows

Windwos Hyper-v嵌套虚拟化

现在微软的虚拟化越来越成熟,许多人也渐渐的开始研究微软的Hyper-V的虚拟化,但是苦于没有太多的电脑提供部署环境,再加上之前的windwos版本是不支持在虚拟机中安装Hyper-V,让大家头大. 现在的win10和win server 2016都已经支持嵌套虚拟化,也就是说可以在虚拟机中安装Hyper-V. 首先当然是安装Hyper-V,安装过程就省略了,相信大家肯定都知道. 安装完Hyper-V后新建一台虚拟机.在这里我建立一台名为test的虚拟机. 然后以管理员方式运行powershell

SQL Server虚拟化系列(3)&mdash;&mdash;构建理想的基于VMware的SQL Server虚拟机

虚拟化变得越来越常见,并且在不了解虚拟化如何工作的情况下,DBA在尝试解决性能问题时会出现盲点,例如减少资源争用或改进备份和恢复操作等. 在本文中我们将主要讲述为您的SQL Server工作负载构建理想的基于VMware的虚拟机.我们的下一篇文章将介绍怎么样在Hyper-V上构建对应的SQL Server虚拟化环境. 现在,作为DBA,您可能没有访问权限来创建用于SQL Server的新虚拟机.这些操作可以交给您的VM管理员,他们将为您部署合适的VM环境. 以下详细信息适用于在Windows S

VMware (威睿) 虚拟化产品简介

VMware vSphere 是VMware(威睿)的一个虚拟化产品,VMware vSphere 是业界领先且最可靠的虚拟化平台.vSphere将应用程序和操作系统从底层硬件分离出来,从而简化了 IT操作.您现有的应用程序可以看到专有资源,而您的服务器则可以作为资源池进行管理.它包括VMware vCenter Server, VMware ESX Server,VMware ESXi Server,VMware vSphere Client,VMware Workstation 等等.举个列

49 Linux操作系统原理、虚拟化技术基础原理

04 虚拟化技术基础原理 一.配置虚拟化网络 1.编辑配置文件 #关闭NetworkManager [[email protected] ~]# service NetworkManager stop [[email protected] ~]# chkconfig NetworkManager off    [[email protected] ~]# chkconfig --list NetworkManager NetworkManager  0:关闭  1:关闭  2:关闭  3:关闭

ESXI-P2V-V2V-应用虚拟化-在线转移

P2V-V2V-虚拟化应用 实战背景: 1.由于企业采购财务软件T3暂不支持win10 . 2.一台计算机无法安装多个版本T3客户端,从而实现对T3服务器的访问操作. 3.财务软件U8和T3安装在同一台电脑安装上存在兼容性问题. 解决方案:在现有ESXI平台上创建多台虚拟机(2003),在虚拟系统中安装各版本T3客户端,然后再安装易速联虚拟化应用软件服务器端,在用户端(财务电脑)安装异速联客户端软件,连接服务器实现对各T3服务器访问操作过程. EXSI现有平台:  操作步骤: 1.在ESXI平台

云计算与虚拟化的区别0.0

1.传统数据中心面临的问题 在讲云计算和虚拟化之前,在没有云计算之前我们传统统数据中心面临的问题. 1.1.传统IDC托管 买台机器-放到IDC-安装系统-部署应用-买个域名-绑定上去-对外访问-ICP备案-ICP证(电子商务)-文网文(文化部备案)--公安局备案-接入备案(机房接入备案,备案现在机房管 ) 注销备案 -- 各种坑 北京不支持个人备案转公司备案. 域名转让(官方要求最多72小时)坑 72小时中有可能会出现 两方都给停了的风险. 一般招代理去做 1.2.IDC租用 IDC连续租三年

KVM虚拟化技术(二)KVM介绍

KVM:Kernel Virtual Machine KVM是基于虚拟化扩展的x86硬件,是Linux完全原生的全虚拟化解决方案.部分半虚拟化支持,主要是通过半虚拟网络驱动程序的形式用于Linux和Windows客户机系统的. KVM被设计为是一个内核模块,支持广泛的客户机操作系统:在KVM架构中,虚拟机实现为常规的Linux进程.这使KVM能够享受Linux内核的所有功能. KVM模块是KVM虚拟机的核心部分.其主要功能是初始化CPU硬件,打开虚拟化模式,然后将虚拟机客户机运行在虚拟机模式下,