大家好,又见面了,我是你们的朋友全栈君。
文章目录
-
- virsh命令行
-
- 一、存储池管理
- 二、生产环境存储池使用
- 三、磁盘格式
-
- 1. 磁盘镜像文件格式
- 2. 创建磁盘文件
- 四、挂载磁盘
- 五、KVM管理
-
- 查看、启动、关闭、重启、重置
- 六、虚拟机克隆
- 七、增量镜像
-
- 1. 概述
- 2. 创建增量镜像文件
- 3. 创建虚拟机xxx1的xml配置文件
- 4. 根据xml配置文件创建xxx1虚拟机
- 5. 测试
- 八、快照
- 九、磁盘格式转换
- 使用virsh创建一个虚拟机
virsh命令行
一、存储池管理
- 创建基于文件夹的存储池
mkdir /data/vmfs
- 定义存储池与其目录
virsh pool-define-as --type dir --target /data/vmfs
- 创建已定义的存储池
#创建存储池
virsh pool-build vmdisk
#查看存储池,不激活无法使用
virsh pool-list --all
- 激活并自动启动已定义的存储池
virsh pool-start vmdisk
virsh pool-autostart vmdisk
- 在存储池中创建虚拟机存储卷
virsh vol-create-as vmdisk disk1.qcow2 20G --format qcow2
- kvm存储池主要体现一种管理方式,可以通过挂载存储目录,lvm逻辑卷的方式创建存储池,虚拟机存储卷创建完成后,剩下的操作与无存储卷的方式无任何区别
- KVM存储池也要用于虚拟机迁移任务
- 存储池相关管理命令
#在存储池中删除虚拟机存储卷
virsh vol-dalete --pool vmdisk disk1.qcow2
#取消激活存储池
virsh pool-destroy vmdisk
#删除存储池定义的目录
virsh pool-delete vmdisk
#取消定义存储池
virsh pool-undefine vmdisk
二、生产环境存储池使用
添加lvm和远程存储即可
三、磁盘格式
1. 磁盘镜像文件格式
raw
原始格式,性能最好
qcow
cow写时拷贝,性能远不如raw,很快夭折,出现了qcow2
qocw2
性能上还是不如raw,但是raw不支持快照,qcow2支持快照
qed
现在默认安装好用的是raw格式,所有做快照的都需要转换为qcow2格式
什么是写时拷贝
raw立即分配空间,无论实际使用到多少空间,而qcow2只是承诺分配空间,只有在实际使用到空间时才会分配,最多分配承诺的空间
2. 创建磁盘文件
代码语言:javascript复制qemu-img create -f qcow2 test.qcow2 0G
#默认路径是/var/lib/libvirt/images,也可创建时带上路径,-f后指定格式
#查看已经创建的虚拟机磁盘文件
qemu-img info test.qcow2
四、挂载磁盘
使用libguestfs Linux工具可以在虚拟机无法启动的情况下对虚拟机内部进行检查。
利用Libguestfs找出损坏的虚拟机文件。
Libguestfs允许在虚拟机上挂在任何类型的文件系统,以便修复启动故障。
使用Libguestfs,首先需要使用Libvirt。其为一个管理接口,可以和KVM、Xen及其他基于Linux的虚拟机相互连接。甚至可以打开Windows虚拟机上的文件,但是需要先将虚拟机迁移到Libguestfs可用的Linux环境下。
代码语言:javascript复制#查看磁盘镜像分区信息
virt-df -h -d vm1(domain)
vir-filesystems -d vm1(domain)
#挂载磁盘镜像分区
guestmount -d vm1 -m /dev/centos/root /mnt
#取消挂载
guestumount /mnts
注:mtab文件在CentOS7的启动过程中非常有用,删除会导致不能启动
五、KVM管理
查看、启动、关闭、重启、重置
代码语言:javascript复制#查看虚拟机
virsh list
virsh list --all
#查看虚拟机配置文件
virsh dumpxml xxx
#保存配置文件
virsh dumpxml xxx > xxx.xml
#修改xxx的配置文件
virsh edit xxx
#使用vim编辑器修改配置文件的话,需要重启libvirtd
#启动
virsh start xxx
#暂停
virsh suspend xxx
#关闭
virsh shutdown xxx(建议使用此方式)
virsh destory xxx
#重启
virsh reboot xxx
#重置
virsh reset xxx
#删除虚拟机
virsh undefine xxx
#虚拟机在开启状态下undefine是无法删除的,但是再的story会被直接删除掉,磁盘文件不会被删除
#虚拟机开机启动
virsh autostart xxx
#目录/etc/libvirt/qemu/autostart/默认不存在,有开机启动的虚拟机时自动创建
#取消开机启动
virsh autostart --disable xxx
#查看所有开机启动的虚拟机
ls /etc/libvirt/qemu/autostart
virsh list --all --autostart
六、虚拟机克隆
代码语言:javascript复制#自动设置存储卷
virt-clone -o xxx -n xxx_clone --auto-clone
#指定存储卷
virt-clone -o xxx -n xxx_clone -f /data/wcn_data/vmfs/vmdisk1.qcow2
七、增量镜像
类似于VMWare中的链接克隆
1. 概述
通过一个基础镜像,在基础镜像中把所需要的环境都搭建好,然后基于该镜像建立起一个个增量镜像,每个镜像对应一个虚拟机,虚拟机对镜像的所有改变都记录在增量镜像中,基础镜像始终保持不变。
功能
节省磁盘空间,快速复制虚拟机
2. 创建增量镜像文件
代码语言:javascript复制qemu-img create -b xxx.img -f qcow2 xxx1.img
qemu-img info xxx1.img
3. 创建虚拟机xxx1的xml配置文件
从xxx.xml复制后修改以下几处
- 虚拟机名称
- UUID
- 磁盘镜像文件
- 网卡MAC地址
4. 根据xml配置文件创建xxx1虚拟机
代码语言:javascript复制virsh define /xxx1.xml
virsh start xxx1
5. 测试
略
八、快照
代码语言:javascript复制#为虚拟机创建一个快照(磁盘格式必须是qcow2)
virsh snapshot-create-as vm1 vm1.snap
#查看磁盘的快照信息
qemu-img info vm1.img
#列出虚拟机的快照
virsh snapshot-list vm1
九、磁盘格式转换
代码语言:javascript复制#把raw转换为qcow2
qemu-img convert -O qcow2 xxx.raw xxx.qcow2
使用virsh创建一个虚拟机
请参考此文章 利用virsh和xml文件创建虚拟机
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169793.html原文链接:https://javaforall.cn