virsh命令行_怎么进入命令行窗口

2022-09-21 15:36:47 浏览数 (2)

大家好,又见面了,我是你们的朋友全栈君。

文章目录

    • virsh命令行
      • 一、存储池管理
      • 二、生产环境存储池使用
      • 三、磁盘格式
        • 1. 磁盘镜像文件格式
        • 2. 创建磁盘文件
      • 四、挂载磁盘
      • 五、KVM管理
        • 查看、启动、关闭、重启、重置
      • 六、虚拟机克隆
      • 七、增量镜像
        • 1. 概述
        • 2. 创建增量镜像文件
        • 3. 创建虚拟机xxx1的xml配置文件
        • 4. 根据xml配置文件创建xxx1虚拟机
        • 5. 测试
      • 八、快照
      • 九、磁盘格式转换
      • 使用virsh创建一个虚拟机

virsh命令行

一、存储池管理

  1. 创建基于文件夹的存储池
代码语言:javascript复制
mkdir /data/vmfs
  1. 定义存储池与其目录
代码语言:javascript复制
virsh pool-define-as --type dir --target /data/vmfs
  1. 创建已定义的存储池
代码语言:javascript复制
#创建存储池
virsh pool-build vmdisk

#查看存储池,不激活无法使用
virsh pool-list --all
  1. 激活并自动启动已定义的存储池
代码语言:javascript复制
virsh pool-start vmdisk
virsh pool-autostart vmdisk
  1. 在存储池中创建虚拟机存储卷
代码语言:javascript复制
virsh vol-create-as vmdisk disk1.qcow2 20G --format qcow2
  • kvm存储池主要体现一种管理方式,可以通过挂载存储目录,lvm逻辑卷的方式创建存储池,虚拟机存储卷创建完成后,剩下的操作与无存储卷的方式无任何区别
  • KVM存储池也要用于虚拟机迁移任务
  1. 存储池相关管理命令
代码语言:javascript复制
#在存储池中删除虚拟机存储卷
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

0 人点赞