KVM虚拟化技术学习-KVM管理

news2025/1/10 11:20:55

二,KVM管理

1.升级配置

1.创建一个空磁盘卷

[root@localhost ~]# qemu-img create -f qcow2 /kvm/images/disk2.qcow2 5G
Formatting 'disk2.qcow2', fmt=qcow2 size=5368709120 encryption=off cluster_size=65536 lazy_refcounts=off

2.修改配置文件

<disk type='file' device='disk'>
                 <driver name='qemu' type='qcow2'/>
                 <source file='/kvm/images/disk2.qcow2'/>
                 <target dev='vda' bus='virtio'/>
                 <address type='pci' domain='0x0000' bus='0x00' slot='0x16' function='0x0'/>
        </disk>

3.重启定义

[root@localhost ~]# virsh define /etc/libvirt/qemu/centos7.0.xml

图像化添加

 

2.KVM存储

KVM必须要配置⼀个⽬录当作他存储磁盘镜像(存储卷)的⽬录,我们称这个⽬录为存储池

1.存储池管理

1.创建基于文件夹的存储池

[root@localhost ~]# mkdir -p /data/vmfs

2.定义存储池与其目录

[root@localhost ~]# virsh pool-define-as vmdisk --type dir --target /data/vmfs
定义池 vmdisk

3.创建已定义的存储池

    创建已定义的存储池
[root@localhost ~]# virsh pool-build vmdisk
构建池 vmdisk
•   查看已定义的存储池,存储池不激活无法使用
[root@localhost ~]# virsh pool-list --all
​
 名称               状态     自动开始
​
 default              活动     是
 image                活动     是
 iso                  活动     是
 vmdisk               不活跃  否

4.激活并自动启动已定义的存储池

[root@localhost ~]# virsh pool-start vmdisk
池 vmdisk 已启动
[root@localhost ~]# virsh pool-autostart vmdisk
池 vmdisk 标记为自动启动

5.在存储池中创建虚拟机存储卷

[root@localhost ~]# virsh vol-create-as vmdisk oeltest03.qcow2 3G --format qcow2
创建卷 oeltest03.qcow2
#注1:KVM存储池主要是体现⼀种管理⽅式,可以通过挂载存储⽬录,lvm逻辑卷的⽅式创建存储池,虚拟机存储卷创建完成后,剩下的操作与⽆存储卷的⽅式⽆任何区别了。
#注2:KVM存储池也要⽤于虚拟机迁移任务。

6.删除存储卷和池

    1.在存储池中删除虚拟机存储卷
[root@localhost ~]# virsh vol-delete --pool vmdisk oeltest03.qcow2
卷 oeltest03.qcow2 被删除
    2.取消激活存储池
[root@localhost ~]# virsh pool-destroy vmdisk
销毁池 vmdisk
    3.删除存储定义的目录
[root@localhost ~]# virsh pool-delete vmdisk
池 vmdisk 被删除
    4.取消定义存储池
[root@localhost ~]# virsh pool-undefine vmdisk

2.磁盘格式

1.磁盘镜像文件格式

raw
    原始格式,性能最好
qcow
    性能远不能和raw相比,所以很快被淘汰,出现qcow2
qcow2
    性能上还是不如raw,但是raw不能支持快照,qcow2支持快照
注:
    现在默认安装好的用的是raw格式,所有做快照要把他们转为qcow2格式

2.什么叫写时的拷贝?

raw立刻分配空间,不管你有没有用到那么多空间

qcow2只是承若给你分配空间,但是只有当你需要用空间的时候,才会给你空间,最多只给你承若空间的大小,避免空间浪费

3.工作当中用那个?

工作中虚拟机会有多个备份,一个坏了,再起一个就行了,所有没必要用快照。当然也不一定。数据绝对不会存储到本地。

3.挂载磁盘

作为虚拟化环境管理员,你肯定遇到过虚拟机⽆法启动的情况。实施排错时,你需要对虚拟机的内部进 ⾏检查。⽽Libguestfs Linux⼯具集可以在这种情况下为你提供帮助。

利⽤Libguestfs找出损坏的虚拟机⽂件

Libguestfs允许在虚拟机上挂载任何类型的⽂件系统,以便修复启动故障。

使⽤Libguestfs,⾸先需要使⽤Libvirt。Libvirt是⼀个管理接⼝,可以和KVM、Xen和其他⼀些基于 Liunx的虚拟机相互连接。Libguestfs的功能更加强⼤,可以打开Windows虚拟机上的⽂件。但是⾸先你 需要将虚拟机迁移到libguestfs可⽤的环境当中,也就是Linux环境

查看磁盘镜像分区信息:
[root@qfedu.com ~]# virt-df -h -d vm1
 Filesystem Size Used Available Use%
 vm1:/dev/sda1 484M 32M 428M 7%
 vm1:/dev/sdb1 3.5G 3.5G 0 100%
 vm1:/dev/VolGroup/lv_root 6.1G 1.1G 4.7G 18%
[root@qfedu.com ~]# virt-filesystems -d vm1
 /dev/sda1
 /dev/sdb1
 /dev/VolGroup/lv_root
挂载磁盘镜像分区:
[root@qfedu.com ~]# guestmount -d vm1 -m /dev/vda1 --rw /mnt

3.KVM管理

1.查看开启的虚拟机

[root@localhost yum.repos.d]# virsh list
​
 Id    名称                         状态
----------------------------------------------------

2.查看所有虚拟机

[root@localhost yum.repos.d]# virsh list --all
​
 Id    名称                         状态
----------------------------------------------------
​
 -     centos7.0                      关闭
 -     centos7.0-2                    关闭

3.KVM虚拟机的配置文件

1.查看KVM虚拟机的配置文件
[root@localhost yum.repos.d]# virsh dumpxml centos7.0
2.修改centos7.0的配置文件
注:与vi的区别,可以免libvirtd重启
[root@localhost yum.repos.d]# virsh edit centos7.0

4.虚拟机管理

1.开启虚拟机

[root@localhost qemu]# virsh start centos7.0

2.虚拟机暂停和恢复

[root@localhost qemu]# virsh suspend centos7.0  #暂停
​
​
[root@localhost qemu]# virsh resume centos7.0   #恢复

3.关闭虚拟机

[root@localhost qemu]# virsh shutdown centos7.0
​
[root@localhost qemu]# virsh destory centos7.0

4.重启

[root@localhost qemu]# virsh reboot centso7.0
​
​
[root@localhost qemu]# virsh reset centos7.0    #去电重启,速度快,但是不安全

5.删除虚拟机

[root@localhost qemu]# virsh undefine centos7.0
#注意:虚拟机在开启的情况下undefine是⽆法删除的,但是如果再destroy会直接被删除掉

6.虚拟机开机自启动

[root@localhost qemu]# virsh autostart centos7.0
​
[root@localhost qemu]# virsh autostart --disable centos7.0  #取消自启动

7.查看所有开机自启的虚拟机

[root@localhost qemu]# virsh list --all --autostart

5.虚拟机克隆

1.图形界面

applications---》system tools----》virtual machine manager

关闭要克隆的虚拟机,右键点击虚拟机选择clone

 

2.字符终端,命令克隆

1.命令克隆虚拟机

[root@localhost qemu]# virt-clone -o centos7.0 -n centos7.0-2 --auto-clone
正在分配 'disk-clone.qcow2'                                                                                                     | 9.0 GB  00:00:02
​
成功克隆 'centos7.0-2'。
选项:
    -o:要克隆的虚拟机名称
    -n:新虚拟机的名称
    -f:指定存储池

2.增量镜像

原理: 以基本镜像⽂件node.img为基础,创建⼀个镜像⽂件node4.img,以此创建⼀个虚拟机 node4,虚拟机node4的改变将存储于node4.img中。

1.创建增量镜像文件

qemu-img create -b node.img -f qcow2 node4.img

2.创建虚拟机node4的XML配置文件

cp /etc/libvirt/qemu/node.xml /etc/libvirt/qemu/node4.xml
vim /etc/libvirt/qemu/node4.xml
[root@localhost ~]# vi /etc/libvirt/qemu/centos7.0-2.xml
#修改一下内容
<name>centos7.0-2</name>    #虚拟机名字
  <uuid>cac95646-ab50-4c0a-9770-e97f0723e19f</uuid> #UUID 修改一位即可
  <memory unit='KiB'>1048576</memory>   #内存
  <currentMemory unit='KiB'>1048576</currentMemory> #实际内存
  <vcpu placement='static'>1</vcpu> #CPU核数
  <mac address='52:54:00:98:d9:79'/> #MAC地址 修改后三位其中一个即可

3.根据XML配置定义虚拟机node4

virsh define /etc/libvirt/qemu/node4.xml
virsh start node4

4.测试

[root@qfedu.com ~]# du -h node.img
6.3G node.img
[root@qfedu.com ~]# du -h node4.img
33M node4.img
[root@qfedu.com ~]# dd if=/dev/zero of=test bs=1M count=200 #在虚拟机node4
上增量200M⼤⼩⽂件
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 1.00361 seconds, 209 MB/s
[root@qfedu.com ~]# du -h node.img #基本镜像⽂件node.img⼤⼩未变
6.3G node.img
[root@qfedu.com ~]# du -h node4.img #增量镜像⽂件node4.img增加200M了
234M node4.img

6.虚拟机快照

1.快照管理

1.创建快照

[root@localhost ~]# virsh snapshot-create-as centos7.0 centos7.0-init
已生成域快照 centos7.0-init

2.查看快照

[root@localhost ~]# virsh snapshot-list centos7.0
 名称               生成时间              状态
------------------------------------------------------------
 centos7.0-init       2023-05-27 22:34:14 +0800 shutoff

3.恢复快照

[root@localhost ~]# virsh snapshot-revert centos7.0 centos7.0-init

4.删除快照

[root@localhost ~]# virsh snapshot-delete --snapshotname centos7.0-init centos7.0
已删除域快照 centos7.0-init

2.格式转换

qcow2 现在⽐较主流的⼀种虚拟化镜像格式,经过⼀代的优化,⽬前qcow2的性能上接近raw裸格式的性能, 这个也算是redhat的官⽅渠道了

对于qcow2的格式,⼏点还是⽐较突出的,qcow2的snapshot,可以在镜像上做N多个快照:

•更⼩的存储空间

•Copy-on-write support

•⽀持多个snapshot,对历史snapshot进⾏管理

•⽀持zlib的磁盘压缩

•⽀持AES的加密

1.查看镜像文件格式:

[root@qfedu.com ~]# qemu-img info /var/lib/libvirt/images/vm8.img
image: /var/lib/libvirt/images/vm8.img
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 10G

2.格式转换

把raw格式转换成qcow2格式

[root@qfedu.com ~]# qemu-img convert -f raw -O qcow2
/var/lib/libvirt/images/vm8.img /var/lib/libvirt/images/vm8_qcow2.img

3.再次根据上面所示即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/580852.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloudAlibaba整合分布式事务Seata

文章目录 1 整合分布式事务Seata1.1 环境搭建1.1.1 Nacos搭建1.1.2 Seata搭建 1.2 项目搭建1.2.1 项目示意1.2.2 pom.xml1.2.2.1 alibaba-demo模块1.2.2.2 call模块1.2.2.3 order模块1.2.2.4 common模块 1.2.3 配置文件1.2.3.1 order模块1.2.3.2 call模块 1.2.4 OpenFeign调用1…

想要成为一个性能测试工程师需要掌握哪些知识?

如果想要成为一个性能测试工程师需要掌握哪些知识&#xff1f; 可以看看下方教程&#xff01; 2023年最新版Jmeter性能测试项目实战讲解&#xff0c;从入门到精通价值8888的实战教程_哔哩哔哩_bilibili2023年最新版Jmeter性能测试项目实战讲解&#xff0c;从入门到精通价值888…

idea不识别yml文件了

添加上这两个就好了

recurdyn实用操作

目录 1.剖视图查看 2.自动重复操作 3.多个面生成FaceSurface 4.查看质心&#xff0c;质量坐标工具Mass 5.履带仿真建立其他特征路面 6.joint单位 7.创建样条插值函数AKISPL 8.导出结果曲线数据 9.后处理各名称含义 1.剖视图查看 取消剖视图需要重新进入&#xff0c;取…

Redis的ZipList和QuickList和SkipList和RedisObject(未完成)

ZipList:压缩列表&#xff0c;为了节省内存而设计的一种数据结构 ZipList是一种特殊的双端链表&#xff0c;是由一系列的特殊编码的连续内存块组成&#xff0c;不需要通过指针来进行寻址来找到各个节点&#xff0c;可以在任意一端进行压入或者是弹出操作&#xff0c;并且该操作…

C# | 凸包算法之Andrew‘s,获取围绕一组点的凸多边形的轮廓点

C#实现凸包算法之Andrew’s 文章目录 C#实现凸包算法之Andrews前言示例代码实现思路测试结果结束语 前言 这篇关于凸包算法的文章&#xff0c;本文使用C#和Andrew’s算法来实现凸包算法。 首先消除两个最基本的问题&#xff1a; 什么是凸包呢&#xff1f; 凸包是一个包围一组…

上海城市开发者社区小聚有感

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是Rockey&#xff0c;不知名企业的不知名Java开发工程师 &#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&#x1f44d;一下博主哦 &#x1f4dd;联系方式&#xff1a;he18339193956&…

JAVAWEB(上)

一、HTML和CSS 1.盒子 2.表单 3.机器人回答&#xff1a; 3.1 label标签 <label>标签用于关联表单元素和文本标签&#xff0c;通过为表单元素定义文本标签&#xff0c;可以使表单更易于使用和访问。它的基本语法如下&#xff1a;<label for"input_id">…

LeetCode高频算法刷题记录9

文章目录 1. 二叉树的最大深度【简单】1.1 题目描述1.2 解题思路1.3 代码实现 2. 对称二叉树【简单】2.1 题目描述2.2 解题思路2.3 代码实现 3. 二叉树的直径【简单】3.1 题目描述3.2 解题思路3.3 代码实现 4. 验证二叉搜索树【中等】4.1 题目描述4.2 解题思路4.3 代码实现 5. …

基于51单片机的项目作品汇总

篇记录下自己做的项目作品&#xff0c;作品有实物也有仿真&#xff0c;以实物居多&#xff0c;主要是以单片机为主&#xff0c;单片机有HC32,STM32,STC,51等&#xff0c;本人从事单片机行业5年&#xff0c;拥有丰富的经验。也涉及QT&#xff0c;LVGL&#xff0c;嵌入式&#xf…

Java学习笔记20——常用API

常用API 常用APIMath类Math的常用方法 System类System类常用方法 Object类Object类常用方法 Arrays类Arrays常用方法 基本类型包装类Integer类的概述和使用int和String的相互转换自动装箱和拆箱 日期类Date类Date类的常用方法 SimpleDateFormat类SimpleDateFormat的构造方法Sim…

C++ priority_queue

C priority_queue &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容讲解了优先队列的对应接口的使用 文章目录…

APT(Advanced Persistent Threat高级持续性威胁)——网络安全

APT&#xff08;高级持续性威胁&#xff09; 特点攻击过程防御策略与APT相关的加密技术&#xff08;学习侧重&#xff09; 网络安全APT&#xff08;Advanced Persistent Threat高级持续性威胁&#xff09;是一种复杂的网络攻击&#xff0c;旨在长期潜伏在目标网络中&#xff0c…

【线程池】Java线程池的核心参数

目录 一、简介 二、构造方法 三、线程池的核心参数 3.1 corePoolSize 线程池核心线程大小 3.2 maximumPoolSize 线程池最大线程数量 3.3 keepAliveTime 空闲线程存活时间 3.4 unit 空间线程存活时间单位 3.5 workQueue 工作队列 ①ArrayBlockingQueue ②LinkedBlocki…

嵌入式Linux中pinctrl 子系统和 gpio 子系统分析

目录 1、gpio 子系统 API 2、pinctrl 子系统 API 本文讲解 pinctrl 子系统和 gpio 子系统的 API&#xff0c;以及使用示例。 传统的配置 pin 的方式就是直接操作相应的寄存器&#xff0c;但是这种配置方式比较繁琐、而且容易出问题(比如 pin 功能冲突)。pinctrl 子系统就是为…

Linux :: 【基础指令篇 :: 文件及目录操作:(2)】::Linux操作系统的文件“框架”、绝对路径与相对路径及路径定位文件对象的解释

前言&#xff1a;本篇是 Linux 基本操作篇章的内容&#xff01; 笔者使用的环境是基于腾讯云服务器&#xff1a;CentOS 7.6 64bit。 学习集&#xff1a; C 入门到入土&#xff01;&#xff01;&#xff01;学习合集Linux 从命令到网络再到内核&#xff01;学习合集 本篇内容&am…

Linux常见IO模型

这篇博客开始我们Linux的最后一个章节--常见IO模型&#xff0c;在之前的博客当中我们讲述过Linux中基础的IO操作&#xff0c;欢迎大家去阅读。 我们通常指的IO操作便是数据的输入和输出&#xff0c;对应的具体操作过程我们可以将其分为两个步骤&#xff1a;等待IO就绪和数据拷…

Eclipse教程 Ⅵ

今天分享Eclipse Java 构建路径、Eclipse 运行配置(Run Configuration)和Eclipse 运行程序 Eclipse Java 构建路径 设置 Java 构建路径 Java构建路径用于在编译Java项目时找到依赖的类&#xff0c;包括以下几项&#xff1a; 源码包项目相关的 jar 包及类文件项目引用的的类…

postgresql 内核源码分析 语法解析 gram.y

专栏内容&#xff1a;postgresql内核源码分析个人主页&#xff1a;我的主页座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物&#xff0e; 目录 前言 概述 流程简介 调用流程 语法解析详细分解 raw_parser的主流程 词法…

Wireshark使用手册

目录 前言 Wireshark不能做的 Wireshark VS Fiddler 同类的其他工具 什么人会用到wireshark wireshark 开始抓包 Wireshark 窗口介绍 Wireshark 显示过滤 保存过滤 过滤表达式的规则 封包列表(Packet List Pane) 封包详细信息 (Packet Details Pane) wireshark与…