【基本命令】

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默认情况下是由QEMU在Linux的用户空间模拟出来的并提供给虚拟机的。

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

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

半虚拟化使用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虚拟机的磁盘镜像从存储方式上看,可以分为两种方式,第一种方式为存储于文件系统上,第二种方式为直接使用裸设备。

存于文件系统上的镜像有很多格式,如raw、cloop、cow、qcow、qcow2、vmdlk、vdi等,经常使用的是raw和qcow2。

裸设备的使用方式可以是直接使用裸盘,也可以是用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>

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

# 查看当前逻辑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起来之后,相应模块被加载了,客户机就会调整它的内存到这个值。

virsh常见命令笔记的更多相关文章

  1. go学习笔记-常见命令

    常见命令 go 命令 可以在控制台执行go来查看 go Go is a tool for managing Go source code. Usage: go <command> [arg ...

  2. 【Oracle】曾经的Oracle学习笔记(1-3) 数据库常见用语,常见命令,创建测试表

    一.数据库的登录 二.数据库常用语 三.测试表的创建,测试数据初始化 四.常见命令介绍 五.测试 user:jeffreysn:jeffrey user:systemsn:jeffrey 浏览器中输入 ...

  3. Mysql学习笔记(001)-常见命令

    常见命令 SHOW DATABASES; /* use test; create database myemployees; use myemployees; create table employe ...

  4. [Linux基础]Linux基础知识入门及常见命令.

    前言:最近刚安装了Linux系统, 所以学了一些最基本的操作, 在这里把自己总结的笔记记录在这里. 1,V8:192.168.40.10V1:192.168.40.11Linux ip:192.168 ...

  5. 《linux就该这么学》第三节课 第二节命令笔记

    命令笔记 (随笔原创,借鉴请修改) linux系统中一切都是文件 2.4  系统状态的命令:  ifconfig   :    查看系统网卡信息,包括网卡名称,ip地址,掩码,mac地址,收到数据包大 ...

  6. 2 . Linux常见命令

    Linux常见命令格式: 命令名称 选项 参数 ls -alh 文件/目录 --all #ls 显示当前目录内容 #ls -l 显示文件详细信息 #ls -hl h已常见单位显示文件大小 k M G# ...

  7. 嵌入式Linux开发教程:Linux常见命令(上篇)

    摘要:这是对周立功编著的<嵌入式Linux开发教程>的第7期连载.本期刊载内容有关LinuxLinux常见命令中的导航命令.目录命令和文件命令.下一期将连载网络操作命令.安装卸载文件系统等 ...

  8. Linux 常用命令笔记

    Linux 常用命令笔记 1. locate locate:用来定位文件的位置,如:locate a.txt 但是这个命令有延迟,也就是新建的文件不一定能搜索到,如果非要找到新建的文件可以使用 upd ...

  9. 关于XShell的常见使用和设置以及Linux中的常见命令.

    本文部分转自:http://sundful.iteye.com/blog/704079 和 http://www.vckai.com/p/5 有时候在XShell中操作的一些命令傻傻的分不清这个命令到 ...

随机推荐

  1. Dell R740 使用U盘安装 CentOS7.4 出现Warning:dracut-initqueue timeout - starting timeout scripts解决办法

    使用使用UltraISO软碟通刻录U盘,然后在Dell R740服务器安装CentOS7.4会出现如下错误: 解决办法: 1.使用blkid确认U盘的盘符,截图如下: 2.按F11键重启 3.进入启动 ...

  2. 跨站点脚本编制 - SpringBoot配置XSS过滤器(基于mica-xss)

    1. 简介   XSS,即跨站脚本编制,英文为Cross Site Scripting.为了和CSS区分,命名为XSS.   XSS是最普遍的Web应用安全漏洞.这类漏洞能够使得攻击者嵌入恶意脚本代码 ...

  3. 没有部署ingress pod的woker节点telnet slb的80 443端口不通

    一,问题描述 没有部署ingress pod的woker节点telnet slb的80 443端口不通 二,解决办法 方法一:改用svc地址调用 方法二:让每台woker节点都部署ingress po ...

  4. 牛客挑战赛46 D

    题目链接: 数列 查询有多少\([l,r]\)区间满足每个数出现\(k\)的倍数次 即为\(1\)到\(r\)与\(1\)到\(l-1\)每个数相减的次数为\(k\)的倍数次 可以使用哈希维护 记录每 ...

  5. kali2020 装不上docker

    问题描述 如图,不支持i386体系架构 所以百度了一下啥是i386,以及docker支持哪些体系架构 官网的截图如下: 然后我发现我一直以为我装的是64位debian,实际上我装的是32位的 补充一下 ...

  6. RabbitMQ 详解 五种队列-SpiritMark

    上次带大家看了一下RabbitMQ的基本概念,今天我们来详解一下 RabbitMQ的五种队列,也算是一个笔记,如果对您有帮助,可以关注一下,便于下次光顾! 文章目录 1.简单队列 2.work 模式 ...

  7. 李宏毅机器学习课程笔记-2.5线性回归Python实战

    本文为作者学习李宏毅机器学习课程时参照样例完成homework1的记录. 任务描述(Task Description) 现在有某地空气质量的观测数据,请使用线性回归拟合数据,预测PM2.5. 数据集描 ...

  8. MPEG2TS文件格式概述

    总结TS文件格式,早在几个月前就有了这个想法,但一直拖到今天才真正准备写一篇博文来介绍. 再不介绍的话,估计几月后又要去故纸堆里翻东西了,毕竟个人笔记中总结记录的东西太多,搞不好哪天给意外弄丢了. 1 ...

  9. [leetcode]110BalancedBinaryTree平衡二叉树

    public boolean isBalanced(TreeNode root) { int res = helper(root); if (res<0) return false; retur ...

  10. Java学习日报7.22

    //3.2   逆向输出三位整数!    7.22 package 三个和尚比身高1; import java.util.Scanner; public class Demo1{ @SuppressW ...