对kvm的管理工具,除了原生的qemu-kvm,
还有virsh,强大命令行的虚拟机管理工具
virsh创建虚拟机必须要按照xml格式配置文件来实现,比较繁琐
一般创建用virtual machine manager来实现,或者使用virtinst来实现
要求我们被管理的主机上必须启用libvirtddaemon 守护进程才可以
virsh list可以列出当前主机上所有虚拟机实例,把之前的实例先kill掉
利用刚才的网络来尝试创建虚拟机
virsh需要借助于xml文件
-n 指定虚拟机名称
–memory 内存大小
cpu型号是什么
import可以导入镜像文件
-w 指明network
使用virt-manager 来创建
br-init不是使用virsh命令来创建的,否则识别不了,试试手动指明是否可以
**没有获取到地址,halt poweroff 关机
virrsh list 可以看到刚才创建的虚拟机实例,处于非运行状态是无法查看的
想要启动可以使用virsh start **
想要脱离控制台,CTRL+右中括号
console c1直接连接到指定的控制台上
vish还可以进入交互式模式
第一域管理,管理虚拟机本身的
域监控,查看虚拟机相关信息的
查看宿主机或hypervisor信息的
interface 管理主机接口的,虚拟的网桥,设备之类的
网络过滤器,去生成,iptables规则的,networking,是管理虚拟化网络的、
默认加入default网络
存储池有关,为多个虚拟机提供卷的
存储卷有关,共享存储之上,专门创建出来的磁盘文件的另外一个结构方式
之前是可以用透传方式,在云计算中一半每一个虚拟机实例都有两个存储设备,第一个存储设备是本地主机上为此虚拟机实例提供的磁盘映像文件,第二个通常是共享的ISCI接口或者是SCsi接口的透传设备
将来如果这个虚拟机崩了怎么办
或是物理机崩了如何,可以在另外一个物理机上基于同一个映像文件,启动虚拟机实例,重新关联到外部共享存储上来,已这个共享存储才是真正放数据的地方,这个设备通常称为卷,利用透传访问,性能会十分OK
virsh–help查看命令
关机就相当于正常关机,
强行关机 destory 等于把电源直接拔了
‘id号一直是累加的,如果关了,重新开,也会标记位新实例
**这是配置文件信息,自己也要编一个才能 创建一个虚拟机实例,每一个虚拟机实例的配置文件都在/etc/libvirt目录下,可以复制一个当作模板,但要修正里面的信息进行启动 **
br物理桥,mac地址修改
名字也需要修改
查看加载的磁盘镜像文件在哪里
创建并启动是create
define 只创建不启动
保存为一个模板,把模板里内容改改
尝试启动试试
关键命令start,destory,shutdown,create,define,console
还可以挂机,暂停,暂停在内存中
这个地址应该是物理网络中的地址
现在是通的
**现在可以把它暂停下来,c2做pause操作
**
ping就不动了
表示继续的意思
就通了
这个暂停,是暂停于内存中
也可以直接把一个域状态保存在内存中的
、从一个文件中恢复
重启一个域
删除虚拟机
virsh命令:
虚拟机的生成需要依赖于预定义的xml格式的配置文件;其生成工具有两个:virt-manager, virt-install;
virsh [OPTION]... COMMAND [ARG]..
子命令的分类:
Domain Management (help keyword 'domain')
Domain Monitoring (help keyword 'monitor')
Host and Hypervisor (help keyword 'host')
Interface (help keyword 'interface')
Networking (help keyword 'network')
Network Filter (help keyword 'filter')
Snapshot (help keyword 'snapshot')
Storage Pool (help keyword 'pool')
Storage Volume (help keyword 'volume')
Domain Management (help keyword 'domain')
create:从xml格式的配置文件创建并启动虚拟机;
define:从xml格式的配置文件创建虚拟机;
destroy:强行关机;
shutdown:关机;
reboot:重启;
undefine:删除虚拟机;
suspend/resume:暂停于内存中,或继续运行暂停状态的虚拟机;
save/restore:保存虚拟机的当前状态至文件中,或从指定文件恢复虚拟机;
console:连接至指定domain的控制台;
attach-disk/detach-disk:磁盘设备的热插拔;
attach-interface/detach-interface:网络接口设备的热插拔;
type:bridge
source:BRIDGE_NAME
注意 :无须事先创建网络接口设备;
如何实现磁盘和网卡设备的热插拔,可以不停机加硬盘,网卡,拆硬盘和网卡,
需要用到attch,(从一个xml文件来附加设备)
和detach
加磁盘首先先创建磁盘类型文件,qemu-img create,创建好久可以加到虚拟机实例上
指定哪个域,添加哪一个磁盘运行文件,为哪一个目标设备target,后面都是可选的
向c2添加vms下的cirrors的磁盘文件,叫vdb
热插拔完成
可以挂载使用,可以分区
下面这个才是成功的
现在不要就可以删除
domblist列出块设备
指定在哪个域上,拆除哪个目标设备
已经拆除了
网卡设备也可以热插拔
接口列表
vnet1 通过bridge 桥方式连接到br0上
指明向哪个域基于什么类型,增加什么接口,类型一般是桥,source一般是源网络接口
之前我们创建的br-int
把.1放到桥上去,把.2添加到虚拟机上去
**域c2 类型bridge 源.2 **
现在这个桥virsh好像识别不了,只能lo br0
用brctl创建的不被virsh所认可,需要自己定义一个桥,
定义桥的时候把哪个接口添加上来
不要指物理接口,指物理接口相当于创建物理桥了
在创建一个接口当作桥
向c2添加一个类型为bridge接口依然为br0
类型是rt8139(模拟的特定的硬件芯片)
而不是virtio 半虚拟化的
获取一个地址
指明从哪个域上拆除哪个类型的接口,注意:指明类型,很可同一类型都拆了
这就是网卡的热插拔
事实上还可以增加减少cpu个数,增加减少内存大小
stats各种统计数据
当前状态
将来手动用的多的也是domain管理和manager,其他功能很少手动管理
图形管理工具:
kimchi(泡菜):基于H5研发web GUI; virt-king;
OpenStack: IaaS(重量级),3,5台服务器跑是自讨苦吃,python研发非常吃内存
oVirt:(虚拟化管理基于web的GUI,多数情况下使用虚拟机都不会,直接手动创建)
先启动libvirtd,才能使用libvirt吗,如果没有启用virt daemon服务,virt都无法使用,彼此之间是由依赖关系的