KVM虚拟化-libvirt杂记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KVM虚拟化-libvirt杂记相关的知识,希望对你有一定的参考价值。

一、virt-install

1、创建虚拟机

1.1 基于PXE环境创建一个虚拟机

1.1.1 创建存放磁盘映像的文件夹

[[email protected] ~]# mkdir /images/centos/

1.1.2 创建虚拟机

virth-install会自动创建磁盘映像文件
[[email protected] ~]# virt-install -n centos6.6 -r 512 --vcpus=1,maxvcpus=2 --pxe --disk /images/centos/centos6.6.qcow2,size=30,format=qcow2,bus=virtio,sparse=yes --network bridge=br0,model=virtio --force --graphics vnc

技术分享图片

1.1.3 查看安装过程的图形界面

[[email protected] ~]# yum install virt-viewer

[[email protected] ~]# virsh list
 Id    Name                           State
----------------------------------------------------
 20    centos6.6                      running

[[email protected] ~]# virt-viewer 8

1.1.4 删除虚拟机

[[email protected] ~]# virsh destroy centos6.6
[[email protected] ~]# virsh undefine centsos6.6 --remove-all-storage

2 通过导入磁盘映像启动虚拟机

[[email protected] ~]# mkdir /images/cirros
[[email protected] ~]# mv cirros-no_cloud-0.3.0-i386-disk.img /images/cirros/

不创建,空跑一遍测试:
[[email protected] ~]# virt-install -n cirros -r 128 --disk /images/cirros/cirros-no_cloud-0.3.0-i386-disk.img --import --dry-run

创建:
[[email protected] ~]# virt-install -n cirros -r 128 --disk /images/cirros/cirros-no_cloud-0.3.0-i386-disk.img --import 

2.1 删除虚拟机,不删除存储

[[email protected] ~]# virsh destroy cirros
[[email protected] ~]# virsh undefine cirros

2.2 终端上创建虚拟机

[[email protected] ~]# virt-install -n cirros -r 128 --vcpus=1,maxvcpus=2 --network bridge=br0,model=virtio --disk /images/cirros/cirros-no_cloud-0.3.0-i386-disk.img --import --serial=pty --console=pty --nographics 

技术分享图片

2.3 连接虚拟机

技术分享图片

Ctrl+右中括号 退回宿主机界面

3、其他操作

3.1 给虚拟机动态添加一块硬盘

原始磁盘数量:

技术分享图片

查看添加磁盘帮助:
[[email protected] ~]# virsh help attach-disk

3.1.1 创建磁盘

[[email protected] ~]# qemu-img create -f qcow2 -o size=20G,preallocation=metadata /images/centos/second.qcow2

查看磁盘信息:
[[email protected] ~]# qemu-img info /images/centos/second.qcow2
image: /images/centos/second.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 4.1M
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

3.1.2 动态挂载磁盘

[[email protected] ~]# virsh attach-disk 26 /images/cirros/second.qcow2 vda --targetbus virtio 
成功附加磁盘

技术分享图片

3.1.3 动态拆除硬盘(前提没有分区或挂载)

[[email protected] ~]# virsh detach-disk 26 vda
成功分离磁盘

技术分享图片

3.2 添加网卡

[[email protected] ~]# virsh attach-interface 26 bridge virbr0
成功附加接口

# ifconfig -a | grep eth
eth0      Link encap:Ethernet  HWaddr 52:54:00:8A:19:44  
eth1      Link encap:Ethernet  HWaddr 52:54:00:96:29:36

3.3 删除网卡

[[email protected] ~]# virsh detach-interface 26 bridge --mac 52:54:00:96:29:36
成功分离接口

3.4 查看虚拟机的配置文件信息

[[email protected] ~]# virsh dumpxml  cirros

3.5 查看CPU信息

[[email protected] ~]# virsh vcpucount 26
最大值    配置         2
最大值    live           2
当前       配置         1
当前       live           1

[[email protected] ~]# virsh vcpuinfo 26
VCPU:           0
CPU:            0
状态:       running
CPU 时间:   104.1s
CPU关系:      yy

设置虚拟机最多使用几颗CPU:
[[email protected] ~]# virsh setvcpus 26 2

当前CPU已经变成2个
[[email protected] ~]# virsh vcpucount 26
最大值    配置         2
最大值    live           2
当前       配置         1
当前       live           2

3.6 查看磁盘信息

查看磁盘的映像文件路径:
[[email protected] ~]# virsh domblklist 26
目标     源
------------------------------------------------
hda        /images/cirros/cirros-no_cloud-0.3.0-i386-disk.img

3.7 列出网络接口

[[email protected] ~]# virsh domiflist 26
接口     类型     源        型号      MAC
-------------------------------------------------------
vnet1      bridge     br0        virtio      52:54:00:8a:19:44

3.8 查看虚拟机详细信息

[[email protected] ~]# virsh dominfo 26
Id:             26
名称:       cirros
UUID:           56f44a3d-7159-4a14-a1ff-d4e9df428f3b
OS 类型:    hvm
状态:       running
CPU:          2
CPU 时间:   158.4s
最大内存: 131072 KiB
使用的内存: 131072 KiB
持久:       是
自动启动: 禁用
管理的保存: 否
安全性模式: none
安全性 DOI: 0

3.9 查看hypervisor信息

[[email protected] ~]# virsh sysinfo

3.10 查看宿主机硬件信息

[[email protected] ~]# virsh nodeinfo
CPU 型号:        x86_64
CPU:               2
CPU 频率:        1496 MHz
CPU socket:        1
每个 socket 的内核数: 2
每个内核的线程数: 1
NUMA 单元:       1
内存大小:      4193784 KiB

3.11 查看当前主机的访问路径

[[email protected] ~]# virsh uri
qemu:///system

3.12 查看qemu版本

[[email protected] ~]# virsh version
根据库编译:libvirt 3.2.0
使用库:libvirt 3.2.0
使用的 API: QEMU 3.2.0
运行管理程序: QEMU 1.5.3

3.13 列出宿主机网卡

[[email protected] ~]# virsh iface-list
 名称               状态     MAC 地址
---------------------------------------------------
 br0                  活动     00:0c:29:a7:7a:ec
 lo                   活动     00:00:00:00:00:00

3.14 列出网络过滤器

[[email protected] ~]# virsh nwfilter-list

3.15 查看用户空间定义的网络

[[email protected] ~]# virsh net-list
 名称               状态     自动开始  持久
----------------------------------------------------------
 default              活动     是           是

3.16

以上是关于KVM虚拟化-libvirt杂记的主要内容,如果未能解决你的问题,请参考以下文章

使用libvirt-java采集KVM虚拟机状态信息

KVM+Qemu+Libvirt实战

openstack的虚拟化技术有个kvm,啥是kvm?啥qemu,libvirt

使用libvirt工具栈管理kvm虚拟机

KVM虚拟化专题KVM及Libvirt架构

libvirt创建KVM虚拟机