当前位置: 首页 > news >正文

4. kvm存储虚拟化

kvm存储虚拟化

  • 一、命令行工具管理虚拟磁盘
    • 1、查看虚拟磁盘
    • 2、添加磁盘
    • 3、删除磁盘
  • 二、qcow2格式的磁盘文件
    • 1、创建磁盘文件
    • 2、差量镜像/快速创建虚机
      • 2.1 创建差量镜像
      • 2.2 准备配置文件
      • 2.3 创建虚拟机
      • 2.4 批量部署虚拟机
  • 三、存储池 storage pool
    • 1、类型
    • 2、在线迁移
    • 2.1 规划后端存储
    • 2.2 运行虚拟机的主机挂载测试存储
    • 3、创建存储池
    • 4、添加主机名解析
    • 5、测试迁移

一、命令行工具管理虚拟磁盘

1、查看虚拟磁盘

[root@martin-host ~]# virsh domblklist vm01_centos79 
Target     Source
------------------------------------------------
hda        /var/lib/libvirt/images/vm01_centos79.qcow2
hdb        /kvm/iso/CentOS-7.9-x86_64-Everything-2009.iso
vda        /var/lib/libvirt/images/vm01_centos79-1.qcow2

2、添加磁盘

[root@martin-host ~]# qemu-img create -f qcow2 /var/lib/libvirt/images/vm01_centos79-2.qcow2 5G 
Formatting '/var/lib/libvirt/images/vm01_centos79-2.qcow2', fmt=qcow2 size=5368709120 encryption=off cluster_size=65536 lazy_refcounts=off [root@martin-host ~]# ls /var/lib/libvirt/images/
vm01_centos79-1.qcow2  vm01_centos79-2.qcow2  vm01_centos79.qcow2  vm02_centos79.qcow2[root@martin-host ~]# virsh attach-disk vm01_centos79 --source /var/lib/libvirt/images/vm01_centos79-2.qcow2 --target vdb --subdriver qcow2 --cache writeback --persistent 
Disk attached successfully磁盘缓存的工作模式:
1、writeback	回写
2、writethrough	通写,默认[root@martin-host ~]# virsh domblklist vm01_centos79 
Target     Source
------------------------------------------------
hda        /var/lib/libvirt/images/vm01_centos79.qcow2
hdb        /kvm/iso/CentOS-7.9-x86_64-Everything-2009.iso
vda        /var/lib/libvirt/images/vm01_centos79-1.qcow2
vdb        /var/lib/libvirt/images/vm01_centos79-2.qcow2

3、删除磁盘

[root@martin-host ~]# virsh detach-disk vm01_centos79 vda --persistent
Disk detached successfully[root@martin-host ~]# virsh detach-disk vm01_centos79 vdb --persistent
Disk detached successfully

二、qcow2格式的磁盘文件

1、创建磁盘文件

[root@martin-host ~]# qemu-img create -f qcow2 /opt/disk01.qcow2 8G
Formatting '/opt/disk01.qcow2', fmt=qcow2 size=8589934592 encryption=off cluster_size=65536 lazy_refcounts=off [root@martin-host ~]# qemu-img info /opt/disk01.qcow2 
image: /opt/disk01.qcow2
file format: qcow2
virtual size: 8.0G (8589934592 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:compat: 1.1lazy refcounts: false

2、差量镜像/快速创建虚机

2.1 创建差量镜像

[root@martin-host ~]# qemu-img create -f qcow2 -b /var/lib/libvirt/images/vm01_centos79.qcow2 /var/lib/libvirt/images/test1_centos79.qcow2
Formatting '/var/lib/libvirt/images/test1_centos79.qcow2', fmt=qcow2 size=8589934592 backing_file='/var/lib/libvirt/images/vm01_centos79.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off [root@martin-host ~]# qemu-img info /var/lib/libvirt/images/test1_centos79.qcow2 
image: /var/lib/libvirt/images/test1_centos79.qcow2
file format: qcow2
virtual size: 8.0G (8589934592 bytes)
disk size: 196K
cluster_size: 65536
backing file: /var/lib/libvirt/images/vm01_centos79.qcow2
Format specific information:compat: 1.1lazy refcounts: false

2.2 准备配置文件

[root@martin-host qemu]# cp vm01_centos79.xml test1_centos79.xml
虚拟名称、UUID、磁盘文件位置、MAC地址、VNC

2.3 创建虚拟机

[root@martin-host ~]# virsh define /etc/libvirt/qemu/test1_centos79.xml 
Domain test1_centos79 defined from /etc/libvirt/qemu/test1_centos79.xml[root@martin-host ~]# virsh list --allId    Name                           State
-----------------------------------------------------     test1_centos79                 shut off-     vm01_centos79                  shut off-     vm02                           shut off[root@martin-host ~]# virsh start test1_centos79 
Domain test1_centos79 started[root@martin-host ~]# virsh autostart test1_centos79
Domain test1_centos79 marked as autostarted

2.4 批量部署虚拟机

#!/bin/bash
## 删除所有虚拟机for vm_name in $(virsh list --all | awk 'NR>2{print $2}')
dovirsh destroy ${vm_name} &> /dev/nullvirsh undefine ${vm_name} &> /dev/null
donerm -rf /var/lib/libvirt/images/*# 新建虚拟机 
kvm_config_file=/opt/kvm/vm_base.xml
kvm_disk_file=/opt/kvm/vm_base.qcow2read -p "虚拟机数量: " numberfor i in $(seq $number)
dovm_name=vm${i}_centos79cp ${kvm_config_file} /etc/libvirt/qemu/${vm_name}.xmlqemu-img create -f qcow2 -b ${kvm_disk_file} /var/lib/libvirt/images/${vm_name}.qcow2 &> /dev/nullsed -ri "s/vm_base/${vm_name}/g" /etc/libvirt/qemu/${vm_name}.xmlsed -ri "/uuid/c \  <uuid>$(uuidgen)</uuid>" /etc/libvirt/qemu/${vm_name}.xmlvm_mac=52:54:00:$(openssl rand -hex 10 | sed -r 's/(..)(..)(..).*/\1:\2:\3/')sed -ri "/<mac/c \      <mac address='${vm_mac}'/>" /etc/libvirt/qemu/${vm_name}.xmlvirsh define /etc/libvirt/qemu/${vm_name}.xml &> /dev/nulldone

三、存储池 storage pool

存储磁盘文件的路径/位置

1、类型

本地存储池
网络存储池, 虚拟机在线迁移(必须)

[root@martin-host ~]# virsh pool-list --all Name                 State      Autostart 
-------------------------------------------default              active     yes       iso                  active     yes       [root@martin-host ~]# virsh pool-dumpxml default 
<pool type='dir'><name>default</name><uuid>1328db51-967c-4696-a63c-88814221c3ad</uuid><capacity unit='bytes'>211654430720</capacity><allocation unit='bytes'>20023582720</allocation><available unit='bytes'>191630848000</available><source></source><target><path>/var/lib/libvirt/images</path><permissions><mode>0711</mode><owner>0</owner><group>0</group><label>system_u:object_r:virt_image_t:s0</label></permissions></target>
</pool>

2、在线迁移

2.1 规划后端存储

[root@kvm_nfs ~]# cat /etc/exports
/kvm_image	192.168.140.200(rw,no_root_squash)	192.168.140.10(rw,no_root_squash)

2.2 运行虚拟机的主机挂载测试存储

[root@martin-host ~]# mount 192.168.140.11:/kvm_image /mnt/
[root@martin-host ~]# touch /mnt/a
[root@martin-host ~]# ls /mnt/
a
[root@martin-host ~]# umount /mnt 

3、创建存储池

在这里插入图片描述
在这里插入图片描述

[root@martin-host ~]# df -hT | grep nfs
192.168.140.11:/kvm_image nfs4      100G   33M  100G   1% /pool_by_nfs
[root@martin-host ~]# 

4、添加主机名解析

[root@martin-host ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.140.200	martin-host.linux.com
192.168.140.10	new-host.linux.com[root@martin-host ~]# scp /etc/hosts root@192.168.140.10:/etc/hosts
root@192.168.140.10's password: 
hosts  

5、测试迁移

[root@martin-host ~]# virsh migrate vm1_centos79 --live qemu+ssh://192.168.140.10/system --unsafe 
root@192.168.140.10's password: 
http://www.lryc.cn/news/396126.html

相关文章:

  • uniapp+vue3嵌入Markdown格式
  • 处理成二维数组对象
  • 智能汽车网络安全笔记
  • web 网络安全
  • Vue 3与Pinia:下一代状态管理的探索
  • 《植物大战僵尸杂交版》2.2版本:全新内容与下载指南
  • 探索Hash Router:构建单页应用的基石
  • MySQL中undo log、redo log 和 binlog三种日志的作用及应用场景
  • javaweb零碎知识3
  • 2024.7.9.小组汇报postman分享会
  • C语言文件操作-文件IO(系统调用)
  • LeetCode67(二进制求和[位运算,大数运算])
  • grep对文件内容搜索(附重要拓展-正则表达式)
  • 前端JS特效第26波:jQuery日期时间选择器插件
  • Anaconda+Pycharm 项目运行保姆级教程(附带视频)
  • java面试-java基础(上)
  • STM32快速搭建项目框架
  • JMH324-免费【最后一战LOL】MOBA竞技版本+单机一键端+视频教程+文本教程
  • WPF UI 3D 多轴 机械臂 stl 模型UI交互
  • 《金山 WPS AI 2.0:重塑办公未来的智能引擎》
  • RT2-使用NLP的方式去训练机器人控制器
  • VisActor vs ECharts: 哪个更适合你的数据可视化需求?
  • 【QT中实现摄像头播放、以及视频录制】
  • el-table封装popver組件,点击列筛选行数据功能,支持筛选,搜索,排序功能
  • 基于DPU的云原生计算资源共池管理解决方案
  • Bugly并非无所不能
  • 2024年信息系统项目管理师1批次上午客观题参考答案及解析(3)
  • YOLOv8改进 | 注意力机制 | 对密集和小目标友好的EVAblock 【原理 + 完整代码】
  • 高效前端开发:解密pnpm的存储与链接
  • 设置单实例Apache HTTP服务器