KVM虚拟化:使用qemu-kvm创建和管理虚拟机

CentOS 6加载了KVM模块后,我们是无法进行虚拟机的管理的,如果需要管理KVM虚拟机,还需要管理工具才可以。先看一下KVM的管理工具栈。

yum grouplist |grep -i "virtualization"

Virtualization:

qemu-kvm

Virtualization Client:

python-virtinst, virt-manager, virt-viewer

Virtualization Platform:

libvirt, libvirt-client

Virtualization Tools:

libguestfs

安装qemu-kvm:

yum -y install qemu-kvm 
ln -sv /usr/libexec/qemu-kvm /usr/bin/

qemu-kvm的使用:

命令选项:

标准选项

显示选项

块设备选项

网络选项

i386平台专用选项

字符设备选项

蓝牙设备选项

Linux启动专用选项

调试/专家模式选项

qemu-kvm的标准选项:

qemu-kvm的标准选项主要涉及指定主机类型、CPU模式、NUMA、软驱设备、光驱设备及硬件设备等。

-name name:设定虚拟机名称

-M machine:指定要模拟的主机类型,如standard PC,ISA-only PC或Intel-Mac等,可以使用“qemu-kvm -M ?”获取所支持的所有类型

-m megs:设定虚拟机的RAM大小

-cpu model:设定CPU模型,如coreduo、qemu64等,可以使用"qemu-kvm -cpu ?"获取所支持的所有模型

-smp n[,cores=cores][,threads=threads][,sockets=sockets][,maxcpus=maxcpus]:设定模拟的SMP架构中CPU的个数等、每个CPU的核心数及CPU的socket数目等:PC机上最多可以模拟255颗CPU:maxcpus用于指定热插入的CPU个数上限

-numa opts:指定模拟多节点的numa设备

-fda file:

-fdb file:使用指定文件(file)作为软盘镜像,file为/dev/fd0表示使用物理软驱

-hda file:

-hdb file:

-hdc file:

-hdd file:使用指定file作为硬盘镜像

-cdrom file:使用指定file作为CD-ROM镜像,需要注意的是-cdrom和-hdc不能同时使用:将file指定为/dev/cdrom可以直接使用物理光驱

-drive option[,option[,option[,...]]]:定义一个硬盘设备:可用子选项有很多。

file=/path/to/somefile:硬盘映像文件路径

if=interface:指定硬盘设备所连接

index=index:设定同一种控制器类型中不同设备的索引号,即标识号

media=media:定义介质类型为硬盘还是光盘

snapshot=snapshot:指定当前硬盘设备是否支持快照功能:on或off

cache=cache:定义如何使用物理机缓存来访问块数据,其可用值有none、writeback、unsafe和writethrough四个

format=format:指定映像文件的格式,具体格式可参见qemu-img命令

-boot [order=drives][,once=drives][,menu=on|off]:定义启动设备的引导次序,每种设备使用一个字符表示:不同的架构所支持的设备及其表示字符不尽相同,在x86 PC架构上,a、b表示软驱,c表示第一个光驱设备,n-p表示网络适配器,默认为硬盘设备。例如:-boot order=dc,once=d

qemu-kvm的显示选项:

显示选项用于定义虚拟机启动后的显示接口相关类型及属性等。

-nographic:默认情况下,qemu使用SDL来显示VGA输出,而此选项用于禁止图形接口,此时,qemu类似一个简单的命令行程序,其仿真串口设备将被重定向到控制台

-curses:禁止图形接口,并使用curses/ncurses作为交互接口

-alt-grab:使用Ctrl+Alt+Shift组合键释放鼠标

-ctrl-grab:使用右Ctrl键释放鼠标

-sdl:启用SDL

-spice option[,option[,...]]:启用spice远程桌面协议:其中有许多子选项,具体请参照qemu-kvm手册。

-vga type:指定要仿真的VGA接口类型,常见的类型有:

cirrus: Cirrus Logic GD5446显示卡

std:带有Bochs VBI扩展的标准VGA显示卡

vmware:VMware SVGA-II兼容的显示适配器

qxl:QXL半虚拟化显示卡:与VGA兼容,在Guest中安装qxl驱动后能以很好的方式工作,在使用spice协议时推荐使用此类型

none:禁用VGA卡

-vnc display[,option[,option[,...]]]:默认情况下,qemu使用SDL显示VGA输出;使用-vnc选项,可以让qemu监听在vnc上,并将VGA输出重定向至vnc会话,使用此选项时,必须使用-k选项指定键盘布局类型;其中有许多子选项,具体请参考qemu-kvm的手册

display:

1) host:N

172.16.100.7:1,监听于172.16.100.7主的5900+N的端口上

2) unix:/path/to/socket_file

3) none

options:

password:连接时需要验证密码,设定密码通过monitor接口使用change

reverse:“反向”连接至某处于监听状态的vncview上

-monitor stdio:表示在标准输入输出上电视monitor界面

-nographic

Ctrl-a,c:在console和monitor之间切换

Ctrl-a,h:显示帮助信息

网络属性相关选项

网络属性相关选项用于定义网络设备接口类型及其相关的各属性等信息。这里只介绍nic、tap和user三种类型网络接口的属性,其他类型请参考qemu-kvm手册。

-net nic[,vlan=n][,macaddr=mac][,model=type][,name=name][,addr=addr][,vectors=v]:创建一个新的网卡设备并连接至vlan n中:PC架构上默认的NIC为e1000,macaddr用于为其制定mac地址,name用于指定一个在监控时显示的网上设备名称;qemu可以模拟多个类型的网卡设备,如virtio、i82557b、i82559er、ne2k_isa、pcnet、rtl8139、e1000、smc91c111、lance及mcf_fec等;不过,不同平台架构上,其支持的类型可能只包含前述列表中的一部分,可以使用"qemu-kvm -net nic,model=?"来获取当前平台支持的类型。

-net tap[,vlan=n][,name=name][,fd=h][,ifname=name][,script=file][,downscript=dfile]:通过物理机的TAP网络接口连接至vlan n中,使用script=file指定的脚本(默认为/etc/qemu-ifup)来配置当前网络接口,并使用downscript=file指定的脚本(默认为/etc/qemu-ifdown)来撤销接口配置;使用script=no和downscript=no可分别用来禁止执行脚本。

-net user[,option][,option][,...]:在用户模式配置网络栈,其不依赖于管理权限;有效选项有:

vlan=n:连接至vlan n,默认n=0

name=name:指定接口的显示名称,常用于监控模式中

net=addr[/mask]:设定GuestOS中可见的IP网络,掩码可选,默认为10.0.2.0/8

host=addr:指定GuestOS中看到的物理机的IP地址,默认为指定网络中的第二个,即x.x.x.2

dhcpstart=addr:指定DHCP服务地址池中16个地址的起始IP,默认为第16个至第31个,即x.x.x.16-x.x.x.31

dns=addr:指定GuestOS可见的dns服务器地址,默认为GuestOS网络中的第3个地址,即x.x.x.3

tftp=dir:激活内置的tftp服务器,并使用指定的dir作为tftp服务器的默认根目录

bootfile=file:BOOTP文件名称,用于实现网络引导GuestOS,如:qemu -hda linux.img -boot n -net user,tftp=/tftpserver/pub,bootfile=/pexlinux.0

i386平台专用选项

-no-acpi:禁用ACPI功能,GuestOS与ACPI出现兼容问题时使用此选项

-ballcon none:禁用balloon设备

-balloon virtio[,addr=addr]:启用virtio balloon设备

创建第一台虚拟机:

wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-i386-disk.img   #下载cirros镜像
qemu-kvm -m 256 -name tst -smp 2 -hda cirros-0.3.4-i386-disk.img         #使用qemu-kvm启动虚拟机

yum -y install tigervnc     #安装vnc
vncviewer :5900             #使用vncviewer远程到虚拟机

其实,上面创建虚拟机的命令等同于下面的命令:

qemu-kvm -m 128 -name test -smp 2 -drive file=/images/kvm/cirros-0.3.4-i386-disk.img,if=virtio,media=disk,cache=writeback,format=qcow2

只不过,这里使用-drive 指定了磁盘映像文件,

使用qemu-kvm创建Linux虚拟机:

qemu-img create -f qcow2 -o size=10G /images/kvm/centos5.img
qemu-img info /images/kvm/centos5.img
qemu-kvm -name "centos5.5" -m 512 -smp 2 -boot d -drive file=/images/kvm/centos5.img,if=virtio,index=0,media=disk,format=qcow2 -drive file=/opt/CentOS-5.5-i386-bin-DVD.iso,index=1,media=cdrom -net nic,model=virtio,macaddr=52:54:00:A6:71:83 -vga cirrus

虚拟机创建后,使用vncviewer进行连接

出现系统安装界面,安装系统过程略。

系统安装完,出现重新引导界面,不过重新引导,虚拟机依然无法进入centos系统。这是因为qemu-kvm创建虚拟机时,已经配置了2个驱动设备,一个是硬盘设备,一个是光驱设备,而只有移除光驱设备,系统才能使用磁盘设备启动。

qemu-kvm -name "centos5.5" -m 512 -smp 2 -boot d -drive file=/images/kvm/centos5.img,if=virtio,index=0,media=disk,format=qcow2  -net nic,model=virtio,macaddr=52:54:00:A6:71:83 -vga cirrus

再次使用vncviewer连接,看到如下画面,

这样,虚拟机开机后就进入centos系统,而不是系统安装界面,

成功进入之前安装好的系统,注意这里的MAC地址刚好是我们设置过的。

不过,虽然系统安装好了,但是虚拟机无法获取ip地址,这样看起来总觉得不是很妥当,所以这里就尝试添加网络。

首先,在宿主机上执行如下命令:

yum -y install bridge-utils
brctl addbr br0
brctl addif br0 eth0
ifconfig eth0 0.0.0.0
ifconfig br0 192.168.49.10 netmask 255.255.255.0
brctl show
[[email protected] ~]# brctl show
bridge namebridge idSTP enabledinterfaces
br08000.000c2981bdbeyesbr0.0
eth0

然后,使用qemu-kvm创建虚拟机,

qemu-kvm -name "centos5.5" -m 512 -smp 2 -boot d -drive file=/images/kvm/centos5.img,if=virtio,index=0,media=disk,format=qcow2 -net nic -net tap,ifname=br0.0,script=no -vga cirrus

待虚拟机启动后,我们在宿主机上使用ifconfig命令可以看到名为br0.0的网卡,

手工将br0.0加入到br0网桥中去,并给它指定ip地址,

brctl addif br0 br0.0
ifconfig br0.0 192.168.49.100 netmask 255.255.255.0 up

最后,使用vncviewer连接虚拟机,

此时,从宿主机访问kvm创建的名为centos5.5的虚拟机,

使用ssh的方式,也可以成功连接。

原文地址:http://blog.51cto.com/jerry12356/2113364

时间: 2024-09-29 22:26:43

KVM虚拟化:使用qemu-kvm创建和管理虚拟机的相关文章

KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机

一.KVM简介 KVM(名称来自英语:Kernel-basedVirtual Machine的缩写,即基于内核的虚拟机),是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor.KVM在2007年2月被导入Linux 2.6.20核心中,以可加载核心模块的方式被移植到FreeBSD及illumos上. KVM在具备Intel VT或AMD-V功能的x86平台上运行.它也被移植到S/390,PowerPC与IA-64平台上.在Linux内核3.9版中,加入A

KVM虚拟化搭建及其KVM中LVM扩容

KVM虚拟化搭建及其KVM中LVM扩容 前言: 公司项目方最近有两台物理服务器系统分别为CentOS 7.2.需要部署KVM虚拟化,第一台服务器A需要虚拟出三台虚拟机(均为CentOS 7.2系统),服务器B上需要虚拟出三台CentOS 7.2 系统和两台windows server2012 系统.其中六台CentOS 7.2 虚拟机需要部署我们自己的平台,两台windows分别部署客户的平台.下面来为大家说一下KVM虚拟化的搭建,以及创建虚拟机的两种办法,及其操作使用.     KVM小课补:

KVM虚拟化之安装KVM虚拟机(一)

KVM虚拟化 1.KVM虚拟化介绍与应用场景 什么是KVM虚拟化? KVM,内核级虚拟化技术 Kernel-based Virtual Machine .KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术).是基于硬件的完全虚拟化.虚拟化就是通过模拟计算机硬件(cpu,内存,硬盘,网卡)来实现在一台物理服务器上运行同时多个不同的操作系统,使每个操作系统之间都是互相隔离的,并且应用程序都可以在相互独立的空间内运行而互不影响,可以实现资源的动态分配.灵活调度.跨域共享,提高资源利用

使用virt-manager创建和管理虚拟机

1.虚拟机管理程序和虚拟机管理 一个服务器上只安装单一操作系统的时代已经过去,单个服务器可通过安装多个虚拟机来运行不同操作系统.虚拟机的大量使用减少了所需的服务其硬件,降低了服务器的功耗,但却带来了另外一个问题,多虚拟机数目的增加使其管理变得更加复杂. 虚拟化为管理虚拟机及其资源以及物理主机的基础资源带来了新的挑战.多个操作系统现在以虚拟机的形式共享一个物理主机的资源,操作系统与物理主机之间不再存在一对一的映射关系.每个虚拟机使用一个容器和其他元数据来表示,该容器持有一个或多个虚拟磁盘,而这些元

KVM虚拟化技术(六)磁盘管理

KVM支持的虚拟磁盘类型 raw 这并非是一种真正的磁盘格式,而是代表虚拟机所使用的原始镜像:它并不存储元数据,因此可以作为保证虚拟机兼容性的候选方案,然而也正因为 它不存储元数据,因此不能支持某些高级特性,比如快照和压缩等. 格式简单,容易转换为其他格式:需要文件系统的支持才能支持sparse file cow copy-on-write格式,昙花一现 qcow  QEMU早期的copy-on-write格式,过渡性方案 qcow2 按需进行分配磁盘空间,不管文件系统是否支持 支持快照.压缩.

[Virtualization][qemu][kvm][virtio] 使用 QEMU/KVM 模拟网卡多队列

序: 做DPDK例子的时候,发现一些例子需要多队列,而我当前所使用的虚拟机并不是多队列的.关于我当前虚拟机的状态,可以见前文. 所以,我的需求就是,让虚拟机里的网卡,有多队列! 参考: http://www.linux-kvm.org/page/Multiqueue https://gist.github.com/sibiaoluo/11133723 原理上没大看懂,半懂不懂的.目的优先. 查看: 如何查看网卡是否支持多队列: 红色的行就代表支持了. MSI-X就是支持多队列的意思,MSI是什么

KVM虚拟化技术

KVM虚拟化技术 Qemu-kvm kvm Qemu-kvm创建和管理虚拟机 1.KVM简介 KVM(名称来自英语:Kernel-basedVirtual Machine的缩写,即基于内核的虚拟机),是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor.KVM在2007年2月被导入Linux 2.6.20核心中,以可加载核心模块的方式被移植到FreeBSD及illumos上. KVM在具备Intel VT或AMD-V功能的x86平台上运行.它也被移植到S

CentOS 6.5安装KVM虚拟化

一.KVM简介 KVM(Kernel-basedVirtual Machine)即基于内核的虚拟机,是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor.KVM在2007年2月被导入Linux 2.6.20核心中,以可加载核心模块的方式被移植到FreeBSD及illumos上. KVM在具备Intel VT或AMD-V功能的x86平台上运行.它也被移植到S/390,PowerPC与IA-64平台上.在Linux内核3.9版中,加入ARM架构的支持. 关于

Linux Kvm虚拟化部署(Centos)

一:搭建KVM虚拟化平台1.创建centos的虚拟机的时候进行编辑,处理器开启虚拟化功能2.安装kvm插件这是在安装系统的时候直接安装kvm组件,当然也可以通过yum命令或者其他的方式进行安装--YUM命令安装:安装插件:yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install 安装图形化界面:yum install -y virt-manager systemctl enable libvirtd &&am