-
http://www.2cto.com/os/201203/123128.htmlkvm虚拟机管理
一、环境
role hostname ip OS
kvm_server target 192.168.32.40/24 rhel6.0_x64
vir_guest1 node4 192.168.32.34/24 rhel5.5_i386
vir_guest2 node5 192.168.32.35/24 rhel5.5_i386
manager manager 192.168.32.33/24 rhel5.5_i386
ESXi ESXi 192.168.2.251/24 ESXi 3.5
二、安裝kvm
[[email protected] ~]# yum install -y qemu-kvm.x86_64 qemu-kvm-tools.x86_64 #安装kvm内核
[[email protected] ~]# yum install libvirt.x86_64 libvirt-cim.x86_64
libvirt-client.x86_64 libvirt-java.noarch libvirt-python.x86_64
#安装virt管理工具
[[email protected] ~]# modprobe kvm #加载kvm内核
[[email protected] ~]# modprobe kvm-intel #intel cpu加载kvm-intel内核,要支持全虚拟化,必须开启;要求cpu支持,通过bios可设置。
[[email protected] ~]# modprobe kvm-amd #amd cpu加载kvm-intel[[email protected] ~]# modprobe -ls | grep kvm #查看内核是否开启
kernel/arch/x86/kvm/kvm.ko
kernel/arch/x86/kvm/kvm-intel.ko
kernel/arch/x86/kvm/kvm-amd.ko
[[email protected] ~]# modprobe -ls | grep kvm-intel
kernel/arch/x86/kvm/kvm-intel.ko三、安装guest虚拟机
1、直接通过virt-manager安装、管理虚拟机(略)2、通过命令行安装guest虚拟机
[[email protected] ~]# yum install virt-viewer #开启图形控制台安装虚拟客户机需要,
[[email protected] ~]# virt-install \ #安装选项可用virt-install --help查看
--name node4 \ #虚拟机名
--ram=1024 \ #分配内存大小,MB
--arch=x86_64 \ #模拟的CPU 构架
--vcpus=1 \ #配置虚拟机的vcpu 数目
--check-cpu \ #检查确定vcpu是否超过物理 CPU数目,如果超过则发出警告。
--os-type=linux \ #要安装的操作系统类型,例如:‘linux‘、‘unix‘、‘windows‘
--os-variant=rhel5 \ #操作系统版本,如:‘fedora6‘, ‘rhel5‘, ‘solaris10‘, ‘win2k‘
--disk path=/virhost/node7.img,device=disk,bus=virtio,size=20,sparse=true \ #虚拟机所用磁盘或镜像文件,size大小G
--bridge=br0 \ #指定网络,采用透明网桥
--noautoconsole \ #不自动开启控制台
--pxe #网络安装四、利用virsh对虚拟机管理
1、开关机
[[email protected] ~]# virsh start node4 #开机
[[email protected] ~]# virsh create /etc/libvirt/qemu/node4.xml #直接通过主机配置文档启动主机
[[email protected] ~]# virsh shutdown node4 #关机
[[email protected] ~]# virsh destroy node4 #强制关闭电源
[[email protected] ~]# virsh list --all #查看虚拟机状态
Id 名称 状态
----------------------------------
18 node4 running
- node5 关闭
- win8 关闭2、添加删除虚拟机
[[email protected] ~]# virsh define /etc/libvirt/qemu/node5.xml #根据主机配置文档添加虚拟机
[[email protected] ~]# virsh list --all #node5已经添加
Id 名称 状态
----------------------------------
18 node4 running
- node5 关闭
- win8 关闭
[[email protected] ~]# virsh undefine node5 #移除虚拟机
[[email protected] ~]# ls /etc/libvirt/qemu
networks node4.xml win8.xml
[[email protected] ~]# virsh list --all #node5已经被移除
Id 名称 状态
----------------------------------
18 node4 running
- win8 关闭3、远程管理虚拟机(qemu+ssh连接)
[[email protected] ~]# yum install virt-viewer
[[email protected] ~]# export DISPLAY=192.168.40.18:0.0
[[email protected] ~]# virt-viewer -c qemu///system node4 #本地管理虚拟机,system:获取system权限,注意qemu后是三个/
[[email protected] ~]# virt-viewer -c qemu+ssh://[email protected]/system node4 #远程linux通过virt-viewer+ssh管理虚拟机
Xlib: extension "RANDR" missing on display "192.168.40.18:0.0".
[email protected]‘s password:
[email protected]‘s password:
#会弹出virt-viwer的gtk管理界面4、使用已存在的虚拟机配置文档安裝新的虚拟机
[[email protected] ~]# qemu-img create -f qcow2 /virhost/kvm_node/node6.img 20G
#为新建虚拟机生产磁盘镜像文件[[email protected] ~]# virsh list
Id 名称 状态
----------------------------------
18 node4 running[[email protected] ~]# virsh dumpxml node4 >/etc/libvirt/qemu/node6.xml
#导出虚拟机node6的硬件配置信息为/etc/libvirt/qemu/node6.xml[[email protected] ~]# vim /etc/libvirt/qemu/node6.xml
<domain type=‘kvm‘ id=‘20‘> #修改node6的id号
<name>node6</name> #虚拟机node6的name
<uuid>4b7e91eb-6521-c2c6-cc64-c1ba72707fc7</uuid> #uuid必须修改,否则会和node4的冲突
<memory>524288</memory>
<currentMemory>524288</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch=‘x86_64‘ machine=‘rhel5.4.0‘>hvm</type>
<boot dev=‘network‘/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset=‘utc‘/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type=‘file‘ device=‘disk‘>
<driver name=‘qemu‘ type=‘qcow2‘ cache=‘none‘/>
<source file=‘/virhost/node4.img‘/> #指定新虚拟机的硬盘文件
<target dev=‘vda‘ bus=‘virtio‘/>
</disk>
<interface type=‘bridge‘>
<mac address=‘54:52:00:69:d5:c7‘/>
<source bridge=‘br0‘/>
<target dev=‘vnet0‘/>
<model type=‘virtio‘/>
</interface>
<interface type=‘bridge‘>
<mac address=‘54:52:00:69:d5:d7‘/>
<source bridge=‘br0‘/>
<target dev=‘vnet1‘/>
<model type=‘virtio‘/>
</interface>
<serial type=‘pty‘>
<source path=‘/dev/pts/4‘/>
<target port=‘0‘/>
</serial>
<console type=‘pty‘ tty=‘/dev/pts/4‘>
<source path=‘/dev/pts/4‘/>
<target port=‘0‘/>
</console>
<input type=‘mouse‘ bus=‘ps2‘/>
<graphics type=‘vnc‘ port=‘5900‘ autoport=‘yes‘ keymap=‘en-us‘/>
</devices>
</domain>[[email protected] ~]# virsh define /etc/libvirt/qemu/node6.xml
#使用虚拟描述文档建立虚拟机,可用virsh edit node6修改node6的配置文件[[email protected] ~]# virsh start node6
#启动虚拟机5 为虚拟机开启vnc
[[email protected] ~]# virsh edit node4 #编辑node4的配置文件;不建议直接通过vim node4.xml修改。
<graphics type=‘vnc‘ port=‘-1‘ autoport=‘yes‘ listen=‘127.0.0.1‘ keymap=‘en-us‘/>
#port=‘-1‘ autoport=‘yes‘:port自动分配,监听回环网络(virt-manager管理需要listen=‘127.0.0.1‘),无密码
改为
<graphics type=‘vnc‘ port=‘5904‘ autoport=‘no‘ listen=‘0.0.0.0‘ keymap=‘en-us‘ passwd=‘xiaobai‘/>
#固定vnc管理端口5904,不自动分配,vnc密码xiaobai,监听所有网络2. 远程vnc访问地址:192.168.32.40:5904
五、存储池和存储卷的管理
1.创建 KVM主机存储池
1).创建基于文件夹(目录)的存储池
[[email protected] virhost]# virsh pool-define-as vmware_pool --type dir --target /virhost/vmware
#定义存储池vmware_pool
或
[[email protected] virhost]# virsh pool-create-as --name vmware_pool --type dir --target /virhost/vmware
#创建存储池vmware_pool,类型为文件目录,/virhost/vmware,与pool-define-as结果一样2).创建基于文件系统的存储池
[[email protected] virhost]#virsh pool-define-as --name vmware_pool --type fs
--source-dev /dev/vg_target/LogVol02 --source-format ext4 --target
/virhost/vmware
或
[[email protected] virhost]#virsh pool-create-as --name vmware_pool --type fs
--source-dev /dev/vg_target/LogVol02 --source-format ext4 --target
/virhost/vmware3).查看存储池信息
[[email protected] virhost]# virsh pool-info vmware_pool #查看存储域(池)信息
名称: vmware_pool
UUID: 2e9ff708-241f-fd7b-3b57-25df273a55db
状态: running
Persistent: no
自动启动: no
容量: 98.40 GB
分配: 18.39 GB
可用: 80.01 GB
4).启动存储池
[[email protected] virhost]# virsh pool-start vmware_pool #启动存储池
[[email protected] virhost]# virsh pool-list
名称 状态 自动开始
-----------------------------------------
default 活动 yes
virhost 活动 yes
vmware_pool 活动 no
5)销毁存储域,取消存储池
[[email protected] virhost]# virsh pool-destroy vmware_pool #销毁存储池
[[email protected] virhost]# virsh pool-list --all
名称 状态 自动开始
-----------------------------------------
default 活动 yes
virhost 活动 yes
vmware_pool 不活跃 no
[[email protected] virhost]# virsh pool-undefine vmware_pool #取消存储池的定义
[[email protected] virhost]# virsh pool-list --all
名称 状态 自动开始
-----------------------------------------
default 活动 yes
virhost 活动 yes2.创建了存储池后,就可以创建一个卷,这个卷是用来做虚拟机的硬盘
[[email protected] virhost]# virsh vol-create-as --pool vmware_pool --name node6.img --capacity 10G --allocation 1G --format qcow2
#创建卷 node6.img,所在存储池为vmware_pool,容量10G,初始分配1G,文件格式类型qcow2[[email protected] virhost]# virsh vol-info /virhost/vmware/node6.img #查看卷信息
名称: node6.img
类型: 文件
容量: 10.00 GB
分配: 136.00 KB3.在存储卷上安装虚拟主机
[[email protected] virhost]#virt-install --connect qemu:///system \
-n node7 \
-r 512 \
-f /virhost/vmware/node7.img \
--vnc \
--os-type=linux \
--os-variant=rhel6 \
--vcpus=1 \
--network bridge=br0 \
-c /mnt/rhel-server-6.0-x86_64-dvd.iso六、虚拟机的迁移(vmware 2 kvm)
1.安装软件
[[email protected] ~]# yum install -y virt-v2v.x86_64
[[email protected] ~]# rpm -ivh libguestfs-winsupport-1.0-7.el6.x86_64.rpm virtio-win-1.2.0-1.el6.noarch.rpm
#虚拟机为windows时需要libguestfs-winsupport 包来支持 NTFS 文件系统和 virtio-win 包来支持 Windows para-virtualized 存储和网络设备驱动2.创建 KVM 主机存储域(略)
virt-v2v 在迁移虚拟机的过程中,需要拷贝被迁移虚拟机到 KVM 主机预先定义的存储池中。3.创建 KVM 主机网络接口(略)
虚拟机在迁移之后将连接 KVM 主机网络, 因此主机必须有一个与之相匹配的网络接口,比如说网桥。4.在 KVM 主机上创建或修改 $HOME/.netrc 文件,添加 VMware ESXi 服务器的用户名和密码。
[[email protected] ~]# cat ~/.netrc
machine 192.168.2.251 login root password xxxxxx
[[email protected] ~]# chmod 0600 ~/.netrc5.Vmware ESXi到KVM的迁移
[[email protected] ~]# virt-v2v -ic esx://192.168.2.251/?no_verify=1 -op virhost -b br0 ipserver
** HEAD
https://192.168.2.251/folder/tserver21/RHEL4.6-flat.vmdk?dcPath=ha-datacenter&dsName=ESX35-bak%3Astorage1
==> 401 Unauthorized
** HEAD
https://192.168.2.251/folder/tserver21/RHEL4.6-flat.vmdk?dcPath=ha-datacenter&dsName=ESX35-bak%3Astorage1
==> 200 OK
** GET
https://192.168.2.251/folder/tserver21/RHEL4.6-flat.vmdk?dcPath=ha-datacenter&dsName=ESX35-bak%3Astorage1
==> 200 OK (2084s)
unknown filesystem /dev/hda
unknown filesystem /dev/fd0
virt-v2v: Installation failed because the following files referenced in
the configuration file are required, but missing:
rhel/4/kernel-smp-2.6.9-89.EL.i686.rpm
virt-v2v: 非 virtio 驱动程序配置的 tserver21#所有选项可通过配置文件/etc/virt-v2v.conf来指定
#-op:指定用于转换后的存储域(pool),virhost
#-b:指定网络为网桥br0
#-ic:指定要转换的源地址[[email protected] kvm_node]# virsh list --all
Id 名称 状态
----------------------------------
1 node4 running
- node5 关闭
- tserver21 关闭
- win8 关闭
[[email protected] kvm_node]# virsh start tserver216.KVM到KVM迁移
[[email protected] kvm_node]# virt-v2v -ic qemu+ssh://192.168.32.179/system -op virhost -b br0 node6
[email protected]‘s password:
[email protected]‘s password:
unknown filesystem label SWAP-vda3
virt-v2v: The connected hypervisor does not support a machine type of rhel5.4.0. It will be set to the current default.
virt-v2v: virtio 驱动程序配置的 node6[[email protected] kvm_node]# virsh list --all
Id 名称 状态
----------------------------------
1 node4 running
- node5 关闭
- node6 关闭
- tserver21 关闭
- win8 关闭[[email protected] kvm_node]# virsh start node6
本文来自于 netsword 的BLOG
[转载]kvm libvirt 虚拟机管理
时间: 2024-08-07 04:31:25
[转载]kvm libvirt 虚拟机管理的相关文章
kvm libvirt 虚拟机管理
http://www.2cto.com/os/201203/123128.html kvm虚拟机管理一.环境role hostname ip OSkvm_server target 192.168.32.40/24 rhel6.0_x64vir_guest1 node4 192.168.32.34/24 rhel5.5_i386vir_guest2 node5 192.168.32.
kvm+libvirt虚拟机快照浅析[转]
浅析snapshots, blockcommit,blockpull 作者:Kashyap Chamarthy <kchamart#redhat.com> Date: Tue, 23 Oct 2012 15:28:06 +0530 这是一篇关于snapshots, blockpull, blockcommit的的介绍.作者和with Eric Blake, Jeff Cody,Kevin Wolf以及很多IRC和mailing lists里面的同学大量讨论以及作者大量的特向测试的基础之上总结出
libvirt虚拟机管理常用指令
创建虚拟机 virt-install virt-install --connect qemu:///system -n $NAME -r $MEM -f $DISK -s $DISK_SIZE --vnc --vnclisten=0.0.0.0 --os-type=linux --os-variant=centos7 --vcpus=2 --network bridge=br0 -c $ISO --force 其中DISK_SIZE以G为单位,MEM以MB为单位: 查看虚拟机 virsh lis
Cent os 7之KVM虚拟化基础管理
博文大纲: 一.安装kvm虚拟化: 二.手动更改配置文件的方式,克隆web01,生成新的虚拟机web02: 三.将web01加入开机自启,与web02对比有何异同: 四.远程连接虚拟机的两种方法: 五.使用默认的NAT网络类型使web02可以ping通外网. 一.安装kvm虚拟化 [[email protected] media]# yum -y groupinstall "GNOME Desktop" #安装GNOME桌面环境 [[email protected] media]# y
KVM虚拟机管理配置——libvirt
一.关于libvirt 1)libvirt简介 Libvirt是目前使用最广泛的虚拟机管理工具和应用程序接口(API),常用的虚拟机管理工具(virsh.virt-install.virt-manager)和云计算架构平台(如:OpenStack.OpenNubula)等在底层都使用libvirt的应用程序接口. Libvirt是一套开源的支持linux下虚拟化工具的函数库,为安全有效的管理各域,libvirt提供的一个公共的稳定软件层. Libvirt由三个部分组成:应用程序接口(API).一
KVM+SVN 虚拟机远程管理
1.安装kvm grep -E -o 'vmx|svm' /proc/cpuinfo #检查服务器是否支持虚拟化(vmx为interl平台.svm是AMD平台) #安装KVM所需软件包: yum groupinstall kvm 或 yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager libvirt libvirt-python python-virtinst bridge-utils lsmod |grep k
案例:使用KVM命令集管理虚拟机
一.KVM基本功能管理 1.查看命令帮助 virsh -h 或者virsh --help 2.查看KVM配置文件存放目录 ls /etc/libvirt/qemu 3.查看虚拟机状态 virsh list --all 4.虚拟机关机与开机 virsh shutdown c7-1 //关机virsh start c7-1 //开机 强制关闭关闭电源系统 virsh destroy c7-1 5.通过配置文件启动虚拟机 virsh create /etc/libvirt/qemu/c7-1.xmlv
KVM命令集管理虚拟机
使用KVM命令集管理虚拟机 查看虚拟机状态 [[email protected] ~]# virsh list --all Id 名称 状态 ---------------------------------------------------- 2 c01 running 虚拟机的关机与开机 [[email protected] ~]# virsh shutdown c01 域 c01 被关闭 [[email protected] ~]# virsh list --all Id 名称 状态 -
kvm虚拟机管理(2)
一.virt-manager创建虚机 (1)首先通过命令 virt-manager 启动图形界面:点下面的图标创建虚机 (2)给虚机命名为 kvm1,这里选择从哪里启动虚机.如果是安装新的 OS,可以选择第一项.如果已经有安装好的镜像文件,选最后一项(如下图). (3)接下来需要告诉 virt-manager 镜像的位置,点击 “Browser” (4)需要在系统中上传一个镜像文件到属主机上,放到 /var/lib/libvirt/images/ 目录下,这是 KVM 默认查找镜像文件的地方.