• virsh常见命令笔记


    【基本命令】

    virsh start

    启动

    shutdown

    关闭

    destroy

    强制断电

    suspend

    挂起

    resume

    恢复

    undefine

    删除

    dominfo

    查看配置信息

    domiflist

    查看网卡配置信息

    domblklist

    查看虚机的磁盘位置

    edit

    修改配置文件

    dumpxml

    查看虚机当前配置

    autostart

    物理机开机后自启动(配置后会在此目录生成配置文件/etc/libvirt/qemu/autostart/*.xml

    autostart --disable

    取消自动启动

       

    【相关参数】

    参数名称

    使用时机

    何时生效

    config

    任何时候

    下一次start虚拟机时生效

    live

    只有在虚拟机活动时可用

    立即生效,但是虚拟机下一次start时,会失效

    current

    任何时候

    当虚拟机处于shutoff时,同–config
    当虚拟机处于running时,同–live

       

    【增加网卡】

    数据包传输基本路径:

    虚拟机 --> QEMU虚拟机网卡 --> 虚拟化层 --> 内核网桥 --> 物理网卡

       

    KVM默认情况下是由QEMULinux的用户空间模拟出来的并提供给虚拟机的。

       

    全虚拟化:即客户机操作系统完全不需要修改就能运行于虚拟机中,客户机看不到真正的硬件设备,与设备的交互全是由纯软件虚拟的

    半虚拟化:通过对客户机操作系统进行修改,使其意识到自己运行在虚拟机中。因此,全虚拟化和半虚拟化网卡的区别在于客户机是否需要修改才能运行在宿主机中

       

    半虚拟化使用virtio技术virtio驱动因为改造了虚拟机的操作系统,让虚拟机可以直接和虚拟化层通信,从而大大提高了虚拟机性能。

       

    [root@kvm-server ~]# virsh domiflist vm-node1 #查找虚拟机网卡的MAC地址

    Interface Type Source Model MAC

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

    vnet0 bridge br0 virtio 52:54:00:40:75:05

       

       

    [root@kvm-server ~]# virsh attach-interface vm-node1 --type bridge --source br0 --model virtio

    #临时增加网卡的方法,关机后再开机新增网卡配置丢失

    Interface attached successfully

       

       

    [root@kvm-server ~]# virsh domiflist vm-node1

    Interface Type Source Model MAC

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

    vnet0 bridge br0 virtio 52:54:00:40:75:05

    vnet1 bridge br0 virtio 52:54:00:5b:6c:cc

       

       

    [root@kvm-server ~]# virsh edit vm-node1

    #永久生效方法一:修改配置文件增加如下内容

    #永久生效方法二:使用virt-manager管理工具进行操作

       

    <interface type='bridge'>

    <mac address='52:54:00:11:90:7c'/>

    <source bridge='br0'/>

    <target dev='vnet1'/>

    <model type='virtio'/>

    <alias name='net1'/>

    <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>

    </interface>

       

       

    [root@kvm-server ~]# virsh detach-interface vm-node1 --type bridge --mac 52:54:00:84:23:3d --current

    #根据MAC地址删除网卡,即时生效,如果需要最终生效也要使用virsh edit 来修改配置文件

    Interface detached successfully

       

       

    [root@kvm-server ~]# virsh domiflist vm-node1

    Interface Type Source Model MAC

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

    vnet0 bridge br0 virtio 52:54:00:40:75:05

       

    【增加磁盘】

    KVM虚拟机的磁盘镜像从存储方式上看,可以分为两种方式,第一种方式为存储于文件系统上,第二种方式为直接使用裸设备。

    存于文件系统上的镜像有很多格式,如rawcloopcowqcowqcow2vmdlkvdi等,经常使用的是rawqcow2

    裸设备的使用方式可以是直接使用裸盘,也可以是用LVM的方式。

       

    raw:是简单的二进制镜像文件,一次性会把分配的磁盘空间占用。raw支持稀疏文件特性,稀疏文件特性就是文件系统会把分配的空字节文件记录在元数据中,而不会实际占用磁盘空间。

       

    qcow2:第二代的QEMU写时复制格式,支持很多特性,如快照、在不支持稀疏特性的文件系统上也支持精简方式、AES加密、zlib压缩、后备方式。

       

    [root@kvm-server ~]# qemu-img create -f raw /Data/vm-node1-10G.raw 10G #创建raw格式并且大小为10G的磁盘

    Formatting '/Data/vm-node1-10G.raw', fmt=raw size=10737418240

       

    [root@kvm-server ~]# qemu-img info /Data/vm-node1-10G.raw

    image: /Data/vm-node1-10G.raw

    file format: raw

    virtual size: 10G (10737418240 bytes)

    disk size: 0

       

    [root@kvm-server ~]# virsh attach-disk vm-node1 /Data/vm-node1-10G.raw vdb --cache none #临时生效,关机再开机后失效

    Disk attached successfully

       

    [root@kvm-server ~]# virsh edit vm-node1 #使用edit命令,把找到的内容加到vda磁盘后面即可

    <disk type='file' device='disk'>

    <driver name='qemu' type='raw' cache='none'/>

    <source file='/Data/vm-node1-10G.raw'/>

    <backingStore/>

    <target dev='vdb' bus='virtio'/>

    <alias name='virtio-disk1'/>

    <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>

    </disk>

       

    磁盘镜像格式的转换方法:

    [root@kvm-server ~]# qemu-img convert -p -f raw -O qcow2 test.raw test.qcow2                             

    #参数-p显示进度,-f是指原有的镜像格式,-O是输出的镜像格式,然后是输入文件和输出文件

    (100.00/100%)

       

    【虚拟机克隆】

    virt-clone

    --original kvm

    --name cloned_kvm

    --file /home/data/clone_kvm.qcow

    需要注意的是,克隆结束之后,网卡配置信息也被克隆了,需要登陆到console里面修改网卡配置信息。

    virsh start sunhao-3 --console

       

    【修改虚拟机配置】

    # 修改配置

    <domain type='kvm'>

    <name>node-192.168.5.90-test</name>

    <uuid>de4fe850-2fa7-49be-b785-77642bc95713</uuid>

    <memory unit='KiB'>8192000</memory>

    <currentMemory unit='KiB'>4194304</currentMemory>

    <vcpu placement='auto' current="1">16</vcpu>

       

    # 动态修改VCPUVCPU只能热增加,不能减少

    # 查看当前逻辑CPU数量

    # 动态增加到4

    virsh setvcpus node-test 4 --live

       

    # 动态修改内存(增减都可以)

       

    # 查看当前内存大小

    # virsh qemu-monitor-command node-test --hmp --cmd info balloon

    balloon: actual=4096

       

    # 设置当前内存为8G

    # virsh qemu-monitor-command node-test --hmp --cmd balloon 8190

    关于内存:

    memory: 客户机最大使用的物理机内存上限。物理机器在boot使用的最大内存。

    currentMemory: 如果设置的话,一旦机器被boot起来之后,相应模块被加载了,客户机就会调整它的内存到这个值。

  • 相关阅读:
    将.lib库文件转换成.a库文件的工具
    协议
    协议
    bzoj1066
    bzoj2668
    bzoj2245
    bzoj2324后续思考
    bzoj2324
    jsoi2014前两轮回眸
    bzoj1293
  • 原文地址:https://www.cnblogs.com/liufarui/p/13050613.html
Copyright © 2020-2023  润新知