虚拟化服务–KVM虚拟机的使用与管理

  • Post author:
  • Post category:其他


各种虚拟化的软件品牌与服务

VMware:VMware Workstation vSphere

Microsoft: VirtuaLPC Hyper-V

RenHat:KVM RHEV

Citrix:Xen

Oracle: Oracle VM VirtualBox

其中KVM和vSphere这两种属于企业级的服务我们今天了解的是KVM服务

KVM是linux内核的模块,它需要CPU的支持,采用硬件辅助虚拟化技术Intel-VT,AMD-V ,内存的相关如intel的EPT和AMD的PVI技术

虚拟机的组成:内核虚拟化模块(KVM)

系统设备仿真(QEMU)

虚拟机管理程序(LIBVIRT)

一个xml文件(虚拟机配置文件)在/etc/libvirt/qemu/

一个磁盘镜像文件(虚拟机的硬盘)在/var/libvirt/images/

安装kvm虚拟化服务平台需要的软件

qemu-kvm 为kvm提供底层仿真支持

libvirt-daemon 守护进程,管理虚拟机

libvirt-client 用户端软件,提供客户端管理命令

libvirt-daemon-driver-qemu libvirtd连接qemu的驱动

非必要软件

virt-iinstall 系统安装工具

virt-manager 图形管理工具

virt-v2v 虚拟机迁移工具

virt-p2v 物理机迁移工具



安装kvm软件

[root@localhost ~]#yum -y install qemu-kvm libvirt-daemon libvt-daemon-driver-qemu libvirt-client



启动kvm服务

[root@localhost ~]# systemctl start libvirtd.service 



kvm虚拟机的管理

命令合适:virsh 控制指令 [虚拟机名称] [参数]

列出虚拟机

[root@room9pc01 ~]# virsh list --all    列出所有
 Id    名称                         状态
----------------------------------------------------
 1     db1                            running
 2     web1                           running
 3     test                           running
 4     node5                          running
 -     tedu_node01                    关闭
 -     win2008                        关闭

[root@room9pc01 ~]# virsh list    列出开启的虚拟机
 Id    名称                         状态
----------------------------------------------------
 1     db1                            running
 2     web1                           running
 3     test                           running
 4     node5                          running

[root@room9pc01 ~]# 

启动虚拟机

[root@room9pc01 ~]# virsh start db1
域 db1 已开始

停止虚拟机

[root@room9pc01 ~]# virsh shutdown db1
域 db1 被关闭

重启虚拟机

[root@room9pc01 ~]# virsh reboot web1
域 web1 正在被重新启动

强制停止虚拟机

[root@room9pc01 ~]# virsh destroy db1
域 db1 被删除

console 真机连接虚拟机

[root@room9pc01 ~]# virsh console web1
连接到域 web1
换码符为 ^]

CentOS Linux 7 (Core)
Kernel 3.10.0-862.el7.x86_64 on an x86_64

localhost login: root
Password: 

edit 修改虚拟机的配置

[root@room9pc01 ~]# virsh edit web1

autostart 设置虚拟机自启动

[root@room9pc01 ~]# virsh autostart web1
域 web1标记为自动开始

domiflist 查看虚拟机网卡信息

[root@room9pc01 ~]# virsh domiflist web1
接口     类型     源        型号      MAC
-------------------------------------------------------
vnet1      bridge     vbr        virtio      52:54:00:86:c5:cf

domblklist 查看虚拟机硬盘信息

[root@room9pc01 ~]# virsh domblklist web1
目标     源
------------------------------------------------
vda        /var/lib/libvirt/images/web1.img



虚拟网络的管理

virsh 虚拟网络管理 和 管理虚拟机的区别就一个 选项前面家 net

virsh net-list [–all] 列出虚拟机网络

net-statr 启动虚拟交换机

net-destroy 强制停止虚拟交换机

net-define 根具xml文件 创建虚拟网络

net-undefine 删除一个细腻网络设备

net-edit 修改虚拟交换机的配置

net-autostatr 设置虚拟机开机自启

命令都一样,这里不多说了



虚拟机的磁盘管理命令qemu-img

命令格式:qemu-img 命令 参数 块问价名称 大小

create 创建一个磁盘

convert 转换磁盘格式

info 查看磁盘信息

resize 扩容磁盘空间



创建虚拟机



1.创建磁盘镜像文件
[root@room9pc01 images]# qemu-img create -b .node_base.qcow2 -f qcow2 yxt.img 20G
Formatting 'yxt.img', fmt=qcow2 size=21474836480 backing_file='.node_base.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off 
[root@room9pc01 images]# ls
content  lost+found       tedu-wallpaper-01.png  web1.img
db1.img  node5.img        test.img               win.img
iso      tedu_node01.img  virt                   yxt.img


2.查询镜像文件信息
[root@room9pc01 images]# qemu-img info yxt.img
image: yxt.img
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 196K
cluster_size: 65536
backing file: .node_base.qcow2       后端盘位置
Format specific information:
    compat: 1.1
    lazy refcounts: false


3.创建xml配置文件
[root@room9pc01 images]# vim /etc/libvirt/qemu/yxt.xml

<domain type='kvm'>
  <name>yxt</name>
  <memory unit='KB'>1524000</memory>
  <currentMemory unit='KB'>1524000</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <os>
    <type arch='x86_64' machine='pc'>hvm</type>
    <boot dev='hd'/>
    <bootmenu enable='yes'/>
    <bios useserial='yes'/>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
  </cpu>
  <clock offset='localtime'/>
  <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'/>
      <source file='/var/lib/libvirt/images/yxt.img'/>
      <target dev='vda' bus='virtio'/>
    </disk>
    <interface type='bridge'>
      <source bridge='vbr'/>
      <model type='virtio'/>
    </interface>
    <channel type='unix'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
    </channel>
    <serial type='pty'></serial>
    <console type='pty'>
      <target type='serial'/>
    </console>
    <memballoon model='virtio'></memballoon>
  </devices>
</domain>



4.定义xml文件
[root@room9pc01 images]# virsh define /etc/libvirt/qemu/yxt.xml


5.确认虚拟机创建成功
[root@room9pc01 images]# virsh list --all 
 Id    名称                         状态
----------------------------------------------------
 2     web1                           running
 3     test                           running
 4     node5                          running
 -     db1                            关闭
 -     tedu_node01                    关闭
 -     win2008                        关闭
 -     yxt                            关闭

运行虚拟机yxt

[root@room9pc01 images]# virsh start yxt
域 yxt 已开始

连接虚拟机yxt

[root@room9pc01 images]# virsh console yxt
连接到域 yxt
换码符为 ^]



版权声明:本文为MANlidong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。