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; |
【增加网卡】
数据包传输基本路径:
虚拟机 --> 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管理工具进行操作
[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 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磁盘后面即可
磁盘镜像格式的转换方法: [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常见命令笔记的更多相关文章
- go学习笔记-常见命令
常见命令 go 命令 可以在控制台执行go来查看 go Go is a tool for managing Go source code. Usage: go <command> [arg ...
- 【Oracle】曾经的Oracle学习笔记(1-3) 数据库常见用语,常见命令,创建测试表
一.数据库的登录 二.数据库常用语 三.测试表的创建,测试数据初始化 四.常见命令介绍 五.测试 user:jeffreysn:jeffrey user:systemsn:jeffrey 浏览器中输入 ...
- Mysql学习笔记(001)-常见命令
常见命令 SHOW DATABASES; /* use test; create database myemployees; use myemployees; create table employe ...
- [Linux基础]Linux基础知识入门及常见命令.
前言:最近刚安装了Linux系统, 所以学了一些最基本的操作, 在这里把自己总结的笔记记录在这里. 1,V8:192.168.40.10V1:192.168.40.11Linux ip:192.168 ...
- 《linux就该这么学》第三节课 第二节命令笔记
命令笔记 (随笔原创,借鉴请修改) linux系统中一切都是文件 2.4 系统状态的命令: ifconfig : 查看系统网卡信息,包括网卡名称,ip地址,掩码,mac地址,收到数据包大 ...
- 2 . Linux常见命令
Linux常见命令格式: 命令名称 选项 参数 ls -alh 文件/目录 --all #ls 显示当前目录内容 #ls -l 显示文件详细信息 #ls -hl h已常见单位显示文件大小 k M G# ...
- 嵌入式Linux开发教程:Linux常见命令(上篇)
摘要:这是对周立功编著的<嵌入式Linux开发教程>的第7期连载.本期刊载内容有关LinuxLinux常见命令中的导航命令.目录命令和文件命令.下一期将连载网络操作命令.安装卸载文件系统等 ...
- Linux 常用命令笔记
Linux 常用命令笔记 1. locate locate:用来定位文件的位置,如:locate a.txt 但是这个命令有延迟,也就是新建的文件不一定能搜索到,如果非要找到新建的文件可以使用 upd ...
- 关于XShell的常见使用和设置以及Linux中的常见命令.
本文部分转自:http://sundful.iteye.com/blog/704079 和 http://www.vckai.com/p/5 有时候在XShell中操作的一些命令傻傻的分不清这个命令到 ...
随机推荐
- 【Dotnet9-01】从0开始搭建开源项目-lqclass.com
行文目录 一. 前言 1.1 我的现有网站 1.2 想法:新开发一个网站 1.3 目前开发计划 二. 行动了 2.1 Github创建项目 2.2 使用 WTM 搭建后台框架 2.3 项目演示 2.4 ...
- 百度前端技术学院-基础-day22-24
第二十二天到第二十四天:JavaScript里面的居民们 task1 题目: <div> <label>Number A:<input id="radio-a& ...
- Java中的Reference类使用
Java 2 平台引入了 java.lang.ref 包,这个包下面包含了几个Reference相关的类,Reference相关类将Java中的引用也映射成一个对象,这些类还提供了与垃圾收集器(gar ...
- MySQL技术内幕InnoDB存储引擎(六)——锁
什么是数据库的锁? 锁是数据库系统区别于文件系统的一个关键特性.锁机制用于管理对共享资源的并发访问.让数据库事务满足隔离性的要求. InnoDB 中锁的作用 不仅用于对数据进行并发访问,还还包括了缓冲 ...
- rancher安装,快速安装
apt-get install docker.io docker -y docker run -d --restart=always -v /data/rancher_server:/var/lib/ ...
- 轮廓检测论文解读 | Richer Convolutional Features for Edge Detection | CVPR | 2017
有什么问题可以加作者微信讨论,cyx645016617 上千人的粉丝群已经成立,氛围超好.为大家提供一个遇到问题有可能得到答案的平台. 0 概述 论文名称:"Richer Convoluti ...
- Peomise
什么是promise 简单回答: 一种异步的解决方案 回顾一下什么是异步 事件 / setTimeout 异步执行的时机 同步->异步微任务->GUI渲染->异步宏任务 #为 ...
- [日常摸鱼]bzoj2038[2009国家集训队]小Z的袜子-莫队算法
今天来学了下莫队-这题应该就是这个算法的出处了 一篇别人的blog:https://www.cnblogs.com/Paul-Guderian/p/6933799.html 题意:一个序列,$m$次询 ...
- 工具-效率工具-XMIND8破解(99.1.3)
@ 目录 1.下载 2.修改hosts文件 3.修改配置文件 4.填入序列号 5.破解完成 关于作者 1.下载 1.点击进入官方网站下载 2.下载破解包 网址:点击进入网盘地址 密码:domd 2.修 ...
- PHP可变变量特性
可变变量 有时候使用可变变量名是很方便的.就是说,一个变量的变量名可以动态的设置和使用.一个普通的变量通过声明来设置,例如: <?php$a = 'hello';?> 一个可变变量获取了一 ...