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

news/2024/11/7 18:43:38/

二,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
销毁池 vmdisk3.删除存储定义的目录
[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 vm1Filesystem 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.ppmy.cn/news/99907.html

相关文章

如何使用 service account 获取 keycloak 的用户信息

Keycloak 是一个开源的权限管理和认证系统。使用 Keycloak 可以让开发者专注于解决业务的核心问题。获取用户信息是权限管理和认证系统需要的基本功能。Service Account 是OAuth 2.0推荐的系统服务使用的账户&#xff0c;开发者可以通过 Keycloak 的 Service Account 来让自己的…

ChatGPT自动生成思维导图

&#x1f34f;&#x1f350;&#x1f34a;&#x1f351;&#x1f352;&#x1f353;&#x1fad0;&#x1f951;&#x1f34b;&#x1f349; ChatGPT自动生成思维导图 文章目录 &#x1f350;问题引入&#x1f350;具体操作markmapXmind &#x1f433;结语 &#x1f…

idea不识别yml文件了

添加上这两个就好了

FFmpeg5.0源码阅读——mov文件格式解析

摘要&#xff1a;之前在Mp4格式详解中详细描述了Mp4文件格式的具体布局方式。为了更加深入理解mp4文件格式&#xff0c;本文记录了ffmpeg中解封装mp4文件的基本实现。关键字:mov、FFmpeg、mp4 1 简介 mp4文件格式是现如今网络上最常见的视频文件格式&#xff0c;其和mov等格式…

《数据库系统概论》期末考试手写笔记汇总+考试注意事项+反思(超全整理总结!!!)

&#xff08;一&#xff09;期末考试手写笔记汇总 笔记内容为期末考试前整理&#xff08;结合测试题PPT作业题目课本&#xff09; 很多内容为纯手写&#xff0c;非常的全乎&#xff0c;预祝你期末可以考个好成绩&#x1f339; 第二章第三章&#xff08;25分&#xff09; (…

POWERLINK协议在stm32单片机+w5500移植成功经验分享

连续折腾了多个晚上&#xff0c;又趁周末又花了一天时间&#xff0c;终于把powerlink协议移植成功到单片机上啦。本想放弃&#xff0c;但想了下不管我能不能用上&#xff0c;结个尾吧&#xff0c;分享给有需要的人。放弃并不难&#xff0c;但坚持一定很酷。为了移植测试这个协议…

线性表的链式表示——单链表

目录 一、单链表的定义二、单链表上基本操作的实现1、采用头插法建立单链表2、采用尾插法建立单链表3、按序号查找结点值4、按值查找表结点5、插入结点操作6、删除结点操作7、求表长操作 三、双链表、循环链表、静态链表 顺序表可以随时存取表中的任意一个元素&#xff0c;它的…

供收藏:国内各种免费可用ChatGPT实测(兼验伪) 版本不断更新补充 更新日期:2023/05/28

文章目录 供收藏&#xff1a;国内各种免费可用ChatGPT实测(兼验伪) 版本不断更新补充 更新日期&#xff1a;2023/05/28国内大厂的人工智能语言模型国内可访问的ChatGPT资源&#xff08;创业公司&#xff09;ZelinAI&#xff08;国内可直接访问的ChatGPT&#xff09;注册邀请码网…