virsh常见命令笔记

摘要:
〔基本命令〕virshstart启动关机关闭销毁强制关机暂停恢复取消界限删除dominfo查看配置信息domflist查看网卡配置信息domblklist查看虚拟机磁盘位置编辑修改配置文件dumpxml查看虚拟机当前配置自动启动物理机startup(配置文件将在/etc/libvirt/qemu/autostart目录中生成

【基本命令】

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

免责声明:文章转载自《virsh常见命令笔记》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇java 8 lamda Stream的Collectors.toMap 参数iOS-回收键盘的几种方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

斗鱼直播三面:说说JDK与JRE的区别是什么!

前言 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚...

Cuckoo SandBox的安装、配置和应用

依赖安装 在安装和配置Cuckoo之前,需要安装依赖的一些软件和库。首先创建一个文件夹存放cuckoo所需要的文件。 这里是需要的库和需要安装的文件。 安装 Python 库 (Ubuntu/Debian-based) Cuckoo的管理组件完全由Python脚本编写,所以就需要适合的Python版本。 完全兼容的Python版本是 2.7。 老版本的P...

Genymotion的2个问题及解决方法

问题一:Unable to connect to your virtual device 解决方法:基本都是内存不够导致的,在virtualbox中调整对应虚拟机的内存,确保任务管理器中的性能一项中剩余内存大于虚拟机分配的内存即可。 BTW:任务管理器是不统计虚拟机的内存的。。 问题二:从Genymotion开启虚拟机后,play.exe进程无故结束,模拟...

【摘】把vmware的虚拟机硬盘vmdk文件分割成多个2G文件

vmware在host为ntfs的文件系统中创建虚拟机时,虚拟硬盘可指定为一个大的vmdk文件。但如果把这个虚拟机复制到FAT32的文件系统中后,可能将不能启动,提示如下错误信息: VMware Workstation 无法打开该虚拟机所需的一个虚拟磁盘,因为它的大小大于主机文件系统支持的最大大小。某些远程文件系统不支持大于 2 GB 的文件,即使服务器上...

Linux后台执行脚本 &amp;amp;与nohup

Linux后台执行脚本的方式: 0、脚本代码 [root@VM_1_3_centos apps]# cat test.php <?php sleep(5); echo "hello world! "; 1、& 符号当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。示例1、 [root@VM_1_3_c...

java远程调试

服务端需在vm arguments一栏下加上    -agentlib:jdwp=transport=dt_socket,server=y,address=8000 并以run模式启动 如果以debug模式启动服务端,将会报 ERROR: Cannot load this JVM TI agent twice, check your java comm...