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

二,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.再次根据上面所示即可

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

征服bug

curry.30

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值