开发者学堂课程【KVM 虚拟化第三课时:KVM 管理】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/809/detail/13904
KVM 管理
管理 KVM 虚拟机的几个核心命令
virtsh —— 命令行下的虚拟机管理工具
virt-manager —— 可视化管理工具
virt-viewer —— 虚拟机查看工具
virt-instal —— 命令行下的虚拟机创建命令
虚拟机核心资源
虚拟机最为核心的便是将硬件资源放置在资源池内重新分配,在 libvirt 中,最为核心的便是对资源的虚拟化:CPU 、存储、网络
一、存储池
1.1存储池 Storage Pool
在 libvirt 中,最核心的是 Storage Pool
Storage Pool 将存储归纳整理成为一个个不同的Storage Pool
Storage Pool 可以跨越不同的硬件,如一个Storage Pool 可以由多个硬盘组成
1.2存储池管理
查看所有存储池: virsh pool-list -- all
定义一个新的存储池:virsh pool-defne-as poolname dir ----/ home / username /. local / libvirt / images
构建存储池:virsh pool-build poolname
启用存储池:virsh pool-start 、 poolname
自启动存储池:virsh pool-autostart poolname
删除存储池:virsh pool-undefne poolname
1.3操作存储池
演示virsh使用
输入virsh help,查看virsh所有命令
在virsh每个命令有不同的分组
存储池就分在pool这个组
输入virsh help pool就只展示与存储池相关命令
输入virsh pool-list查看所有已经配置的存储池
输入virsh help pool-list 可以查看pool-list里所有参数
输入virsh pool-info iso可以查看pool具体信息
输入virsh pool-capabilities查看pool的能力 ,表示当前支持哪些配置
1.4创建存储池
使用define创建存储池:
使用virsh pool-define-as 输入要定义的名称比如vdisk格式dir
设定--target ./设置路径
实行pool-list--all查看所有
vdisk还未构建所以vdisk还未激活
virsh pool-build vdisk 对存储池进行构建
path'.' 为相对路径,应该修改为绝对路径
Pwd查看当前路径
使用viest pool-edit来修改vdisk
进入配置路径:
执行virsh pool-start 启动vdisk
执行virsh pool-autostart vdisk 开启池自动重启
完成创建
执行virsh pool-dumpxml vdisk 查看配置
2.1存储卷Storage Volume
存储池被创建之后,就可以在存储池中创建存储卷。
存储卷是实际用来存储数据的单位。
存储卷有明确的大小的限制。
2.2存储卷管理
virsh vol-create-as poolname volumename 10GiB --format aw|bochs|raw|qcow|qcow|vmdk
virsh vol-upload --pool poolname volumename volumepath
virsh vol-list poolname
virsh vol-resize --pool poolname volumename 12GiBe
virsh vol-delete --pool poolname volumename
virsh vol-dumpxml --pool poolname volume #查看详情
2.3使用存储卷
virsh 控制存储卷
virsh help volume查看存储卷提供的命令
2.4创建存储卷
virsh help vol-create-as查看创建存储卷的信息
virsh pool-list查看池的名字
virsh vol-create-as 加上池的名字vdisk加上卷的名字datafile 容量10GiB --format
virsh vol-list vdisk 查看定义好的卷
virsh vol-list defult 查看之前存在的卷
virsh vol-info datafile --pool vdisk 查看卷的信息
resize 对磁盘进行扩容
容量修改到12GiB
查看容量修改后:
3.1虚拟机Domain
在libvirt中,每一个虚拟机都被称为Domain,我们对于虚拟机的操作,实际上是对于Domain的操作。
3.2管理虚拟机
virsh list--all查看所有虚拟机
virt-install --name debian(名字) --memory 1024(内存大小) --vcpus=2,maxvcpus =4(cpu数量) --cpu host --cdrom$HOME/iso/debian.iso(使用的镜像路径)--disk size=2(磁盘大小),format=raw (磁盘格式)--network user(使用的网络) --virt-type kvm (虚拟化类型)创建虚拟机
virt-install -- name demo --memory 512 -- disk /home/user/VMs/mydisk.img --import导入创建好的虚拟机
virsh start domain启动虚拟机
virsh shutdown domain关闭虚拟机
virsh edit domain编辑虚拟机
3.3虚拟机管理操作
Virsh help domain查看命令
通过list查看虚拟机基本信息
vcpuinfo查看cpu具体信息
使用install创建虚拟机
Virtual-install设置名字、内存、cpu大小、镜像路径、磁盘大小、磁盘格式使用网络以及虚拟化类型。
4.1网络Network
libvirt默认会创建一个NAT网桥,用于虚拟机和外界进行沟通。
除了NAT,libvirt还支持以下几种网络配置
Obridge——birdge创建一个虚拟设备,它通过一个物理接口直接共享数据。使用场景为:宿主机有静态网络、不需与其它域连接、要占用全部进出流量,并且域运行于系统层级。
Network——这是一个虚拟网络,它可以与其它虚拟机共用。使用场景为:宿生机有动态网络(例如: NetworkManager) 或使用无线
4.2网络
Macvtap——直接连接到宿主机的一个物理网络接口
User——本地网络,仅用于用户会话。
4.3创建custom
查看网络命令
查看已有网络
查看已有网络信息
查看配置文件
修改为自己的文件
创建 vi network.xml,粘贴上修改好的文件,保存退出
查看net-create帮助
创建custom
5.1快照Snapshot
虚拟机快照保存了虚拟机在某个指定时间点的状态(包括操作系统和所有的程序),利用快照,我们可以恢复虚拟机到某个以前的状态,比如测试软件的时候经常需要回滚系统。
5.2管理快照
virsh snapshot-create-as domain snapshot1 -- -disk- -only --atomic创建快照
virsh snapshot-list domain查看快照
5.3创建快照
查看快照命令:snapshot
创建快照
查看配置好的快照
libvirt提供编程语言的SDK,你可以通过编程来控制虚拟机
实际编程中的操作
Gitlab——libvirt
使用交互式方式了解libvirt的使用
libvirt官方给出教程,可查看教程进行学习。