设为首页 收藏本站
查看: 1632|回复: 0

[经验分享] KVM虚拟机的创建、管理与迁移

[复制链接]

尚未签到

发表于 2015-4-10 18:37:10 | 显示全部楼层 |阅读模式
[日期:2012-06-01]


KVM虚拟机管理
一、环境
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
[iyunv@target ~]# yum install -y qemu-kvm.x86_64 qemu-kvm-tools.x86_64  #安装kvm内核
[iyunv@target ~]# yum install libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarch  libvirt-python.x86_64 #安装virt管理工具
[iyunv@target ~]# modprobe kvm         #加载kvm内核
[iyunv@target ~]# modprobe kvm-intel   #intel cpu加载kvm-intel内核,要支持全虚拟化,必须开启;要求cpu支持,通过bios可设置。
[iyunv@target ~]# modprobe kvm-amd     #amd cpu加载kvm-intel


[iyunv@target ~]# modprobe -ls | grep kvm   #查看内核是否开启
kernel/arch/x86/kvm/kvm.ko
kernel/arch/x86/kvm/kvm-intel.ko
kernel/arch/x86/kvm/kvm-amd.ko
[iyunv@target ~]# modprobe -ls | grep kvm-intel
kernel/arch/x86/kvm/kvm-intel.ko
三、安装guest虚拟机
1、直接通过virt-manager安装、管理虚拟机(略)
2、通过命令行安装guest虚拟机
[iyunv@target ~]# yum install virt-viewer   #开启图形控制台安装虚拟客户机需要,
[iyunv@target ~]# 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、开关机
[iyunv@target ~]# virsh start node4      #开机
[iyunv@target ~]# virsh create /etc/libvirt/qemu/node4.xml #直接通过主机配置文档启动主机
[iyunv@target ~]# virsh shutdown node4   #关机
[iyunv@target ~]# virsh destroy node4    #强制关闭电源
[iyunv@target ~]# virsh list --all       #查看虚拟机状态         
Id 名称               状态
----------------------------------
18 node4                running
  - node5                关闭
  - win8                 关闭


2、添加删除虚拟机
[iyunv@target ~]# virsh define /etc/libvirt/qemu/node5.xml   #根据主机配置文档添加虚拟机
[iyunv@target ~]# virsh list --all        #node5已经添加
Id 名称               状态
----------------------------------
18 node4                running
  - node5                关闭
  - win8                 关闭
  
[iyunv@target ~]# virsh undefine node5     #移除虚拟机
[iyunv@target ~]# ls /etc/libvirt/qemu
networks  node4.xml  win8.xml
[iyunv@target ~]# virsh list --all         #node5已经被移除
Id 名称               状态
----------------------------------
18 node4                running
  - win8                 关闭


3、远程管理虚拟机(qemu+ssh连接)
[iyunv@target ~]# yum install virt-viewer
[iyunv@target ~]# export DISPLAY=192.168.40.18:0.0
[iyunv@target ~]# virt-viewer -c qemu///system node4                          #本地管理虚拟机,system:获取system权限,注意qemu后是三个/
[iyunv@manager ~]# virt-viewer -c qemu+ssh://root@192.168.32.40/system node4  #远程linux通过virt-viewer+ssh管理虚拟机
Xlib:  extension "RANDR" missing on display "192.168.40.18:0.0".
root@192.168.32.40's password:
root@192.168.32.40's password:
#会弹出virt-viwer的gtk管理界面


4、使用已存在的虚拟机配置文档安裝新的虚拟机
[iyunv@target ~]# qemu-img create -f qcow2 /virhost/kvm_node/node6.img 20G
#为新建虚拟机生产磁盘镜像文件


[iyunv@target ~]# virsh list
Id 名称               状态
----------------------------------
18 node4                running


[iyunv@target ~]# virsh dumpxml node4 >/etc/libvirt/qemu/node6.xml
#导出虚拟机node6的硬件配置信息为/etc/libvirt/qemu/node6.xml


[iyunv@target ~]# vim /etc/libvirt/qemu/node6.xml  
    #修改node6的id号
  node6           #虚拟机node6的name
  4b7e91eb-6521-c2c6-cc64-c1ba72707fc7  #uuid必须修改,否则会和node4的冲突
  524288
  524288
  1
  
    hvm
   
  
  
   
   
   
  
  
  destroy
  restart
  restart
  
    /usr/libexec/qemu-kvm
   
      
               #指定新虚拟机的硬盘文件
      
   
   
      
      
      
      
   
   
      
      
      
      
   
   
      
      
   
   
      
      
   
   
   
  

[iyunv@target ~]# virsh define /etc/libvirt/qemu/node6.xml
#使用虚拟描述文档建立虚拟机,可用virsh edit node6修改node6的配置文件
[iyunv@target ~]# virsh start node6
#启动虚拟机
5 为虚拟机开启vnc
[iyunv@target ~]# virsh edit node4     #编辑node4的配置文件;不建议直接通过vim node4.xml修改。

   #port='-1' autoport='yes':port自动分配,监听回环网络(virt-manager管理需要listen='127.0.0.1'),无密码
改为

   #固定vnc管理端口5904,不自动分配,vnc密码xiaobai,监听所有网络
2. 远程vnc访问地址:192.168.32.40:5904




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


centos6.2安装kvm虚拟机
三月 6th, 2012


KVM虚拟机简介

kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。
KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己到进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列也是基于软件模拟的Para-Virtualization。
KVM虚拟机安装与使用
1.前期准备
1.1确定机器有VT
不知道芯片的生产厂商则输入:egrep '(vmx|svm)' /proc/cpuinfo
如果flags: 里有vmx 或者svm就说明支持VT;如果没有任何的输出,说明你的cpu不支持,将无法成功安装KVM虚拟机。
1.2 确保BIOS里开启VT:
Intel(R) Virtualization Tech [Enabled]
如有必要,还需在BIOS中开启VT
2.KVM虚拟机安装
安装相关的软件包
# yum -y groupinstall 'Virtualization' 'Virtualization Client' 'Virtualization Platform'
软件包安装完毕后,加载kvm模块
# modprobe kvm
检查模块是否加载成功,执行如下命令,
# lsmod |grep kvm
如果显示两行,说明模块正确加载
kvm_intel 47790 0
kvm 300762 1 kvm_intel
如果只显示一行,请检查
1,cpu是否支持VT技术
2,bios中是否将cpu的VT开启
接下来配置桥接网卡,网上有现成的脚本可以使用,这个是我在之前测试convirt时发现的,实际上是convirt的环境配置工具。
先将工具包下载下来下了
wget --no-cache http://www.convirture.com/downloads/convirture-tools/2.0.1/convirture-tools-2.0.1.tar.gz
然后解压软件包吧
# tar zxvf convirture-tools-2.0.1.tar.gz
# /root/convirture-tools/install/managed_server/scripts/convirt-tool --bridge setup
执行完上述命令后,会自动将桥接网卡配置好,跑桥接自动好
启动服务
/etc/init.d/libvirt-guests start
/etc/init.d/libvirtd start
到此,kvm虚拟化环境就全部配置完毕了
接下来我们用虚拟机来安装一个windows2003实际体验一下。
首先下载virto for win驱动,下载地址如下
http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/
列表中的virtio-win-0.1-22.iso是安装windows完成后,使用的光盘驱动镜像(含virtio网卡和硬盘驱动)
软盘驱动目前从上面的url中移除了(原因不知),好在蚊子将其上传到了115网盘中,下载连接如下
http://115.com/file/annuyfsk#virtio-win-1.1.16.vfd
准备工作就绪,下面就开始安装windows2003
执行如下命令
# virt-install --name=win2k3 --ram=1024 --vcpus=2 --cpu host --cdrom=/data/win2003-1.iso --os-type=windows  --disk /data/vm/win2k3.img,size=10,bus=virtio,cache=writeback --disk /data/virtio-win-1.1.16.vfd,device=floppy --network bridge=br0,model=virtio –graphics vnc,port=9901,listen=192.168.10.100,password=123456 --hvm --force
下面对上面的命令进行解读
--name    给虚拟机起个名字
--ram       分配给虚拟机的内存,单位MB
--vcpus   分配给虚拟机的cpu个数
--cpu host   将宿主机的cpu配置传递给虚拟机,这样虚拟机可以使用宿主机cpu的很多features
--cdrom       指定windows安装文件的全路径
--disk        指定虚拟机img文件路径,如果虚拟机使用lvm分区,这里就指向到lvm的分区就行
size      虚拟机文件大小,单位GB
bus      虚拟机磁盘使用的总线类型,为了使windows达到好的性能,这里使用virtio
cache   虚拟机磁盘的cache类型
之后还有一个--disk参数,这里是加载软驱文件device=floppy
--network bridge    指定桥接网卡
model  网卡模式,这里也是使用性能更好的virtio
--graphics         图形参数

执行完毕后,如果没有什么报错的话,即可以通过vnc的客户端进行连接了。之后的安装方式就和在真实服务器上安装windows一样了。这里蚊子截了几张图


如果不加载virtio的驱动,硬盘是认不出来的。如上图所示
   
加载软盘文件后,在安装windows2003时,点击F6,进入到加载驱动的界面。如上图


关于virt-install的命令可以查看man手册,或在线慢手册,地址为:http://linux.die.net/man/1/virt-install

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-55815-1-1.html 上篇帖子: KVM基于X86硬件辅助的虚拟化技术实现机制【转】 下篇帖子: 在 Linux 的 KVM虚拟机 上安装 Mac OS 系统的研究总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表