当前位置: 首页 > 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: 

相关文章:

4. kvm存储虚拟化

kvm存储虚拟化 一、命令行工具管理虚拟磁盘1、查看虚拟磁盘2、添加磁盘3、删除磁盘 二、qcow2格式的磁盘文件1、创建磁盘文件2、差量镜像/快速创建虚机2.1 创建差量镜像2.2 准备配置文件2.3 创建虚拟机2.4 批量部署虚拟机 三、存储池 storage pool1、类型2、在线迁移2.1 规划后…...

uniapp+vue3嵌入Markdown格式

使用的库是towxml 第一步&#xff1a;下载源文件&#xff0c;那么可以git clone&#xff0c;也可以直接下载压缩包 git clone https://github.com/sbfkcel/towxml.git 第二步&#xff1a;设置文件夹内的config.js&#xff0c;可以选择自己需要的格式 第三步&#xff1a;安装…...

处理成二维数组对象

const objects [] let checkboxvalue [{ name: 名字1 }, { name: 名字2 }] let data [{ value: 值1, id: id1 }, { value: 值2, id: id2 }]let arr [] checkboxvalue.map((item, index) > {// data[index].name item.namearr.unshift({ contractName: item.name, list:…...

智能汽车网络安全笔记

汽车五大域 动力底盘、车身控制、智能座舱、智能网联和高级辅助驾驶五大域 国外汽车安全法规标准 汽车网络安全管理体系&#xff08;CSMS&#xff09; CSMS指的是管理汽车的网络威胁和风险&#xff0c;并保护车辆免受网络攻击的组织过程和管理系统 安全验证和安全测试 8…...

web 网络安全

Web网络安全是网络安全的一个重要分支&#xff0c;专注于保护Web应用程序、服务和网站免受各种网络威胁。学习Web网络安全涉及多个层面的知识和技能&#xff0c;以下是一些主要的学习领域&#xff1a; 一、XSS攻击 全称:&#xff1a;Cross Site Script &#xff08;跨站脚本&a…...

Vue 3与Pinia:下一代状态管理的探索

引言 随着Vue 3的推出&#xff0c;Pinia应运而生&#xff0c;成为官方推荐的状态管理库&#xff0c;旨在替代Vuex。Pinia与Vuex相比&#xff0c;带来了以下主要区别和优势&#xff1a; 更简洁的API&#xff1a;Pinia的API设计更加直观和简洁&#xff0c;易于理解和使用。更好…...

《植物大战僵尸杂交版》2.2版本:全新内容与下载指南

《植物大战僵尸杂交版》2.2版本已经火热更新&#xff0c;带来了一系列令人兴奋的新玩法和调整&#xff0c;为这款经典的塔防游戏注入了新的活力。如果你是《植物大战僵尸》系列的忠实粉丝&#xff0c;那么这个版本绝对值得你一探究竟。 2.2版本更新亮点 新增看星星玩法 这个新…...

探索Hash Router:构建单页应用的基石

前言 第一次看到Vue的路由模式的时候&#xff0c;有点分不清楚 createWebHashHistory()和 createWebHistory的区别&#xff0c;感觉功能也差不多。后来去搜了一下发现前面的那个叫做哈希模式&#xff0c;哈希模式通过URL的hash&#xff08;即#后面的部分&#xff09;来实现前端…...

MySQL中undo log、redo log 和 binlog三种日志的作用及应用场景

在 MySQL 数据库中&#xff0c;undo log、redo log 和 binlog 都是关键的日志类型&#xff0c;它们在数据恢复和事务管理中起着重要作用。 Undo Log&#xff08;回滚日志&#xff09; 作用&#xff1a;undo log 主要用于事务回滚和MVCC&#xff08;多版本并发控制&#xff09;。…...

javaweb零碎知识3

// 假设您已经导入了 axios import axios from axios;// 获取表单元素 const form document.getElementById(myForm);// 为表单添加 submit 事件监听器 form.addEventListener(submit, function(e) {// 阻止表单的默认提交行为e.preventDefault();// 创建 FormData 对象并从表…...

2024.7.9.小组汇报postman分享会

文章目录 一、前言&#xff08;一&#xff09;界面导航说明&#xff08;二&#xff09;发送第一个请求 二、基本功能&#xff08;一&#xff09;常见类型的接口请求(常见的接口有如下四种类型&#xff1a;1.查询参数的接口请求2.表单类型的接口请求3.上传文件的表单请求4.JSON …...

C语言文件操作-文件IO(系统调用)

文件IO (系统调用) 文件描述符open函数read函数write函数lseek函数close函数dup函数dup2函数 stat函数getpwuid函数getgrgid函数 实例 目录操作 opendir函数readdir函数rewinddir函数closedir函数实例 文件IO (系统调用) 文件IO就是系统调用&#xff0c;用户空间进入内核空间…...

LeetCode67(二进制求和[位运算,大数运算])

二进制求和 题目要求: 给你两个二进制字符串 a 和 b &#xff0c;以二进制字符串的形式返回它们的和。 这道题其实有几种解法.我们先来介绍简单的方法. 我们可以将两个字符串的二进制转成十进制,获取对应值相加之后,我们可以不断对2取余,获取尾数拼接即可.也就是像我们平常求一…...

grep对文件内容搜索(附重要拓展-正则表达式)

文件搜索是搜索查找符合条件的某文件的目录&#xff0c;若要编辑文件或对文件的某配置进行修改&#xff0c;就需要对文件内容进行搜索。 grep 命令是 Linux 及类 Unix 操作系统中的一个强大的文本搜索工具&#xff0c;用于搜索一个或多个文件中匹配给定模式的行。grep 代表“Gl…...

前端JS特效第26波:jQuery日期时间选择器插件

jQuery日期时间选择器插件&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下&#xff1a; <!DOCTYPE html> <html> <head lang"zh-CN"> <meta charset"UTF-8"> <title>jQuery日期时间选择器插件 - PHP中文网</t…...

Anaconda+Pycharm 项目运行保姆级教程(附带视频)

最近很多小白在问如何用anacondapycharm运行一个深度学习项目&#xff0c;进行代码复现呢&#xff1f;于是写下这篇文章希望能浅浅起到一个指导作用。 附视频讲解地址&#xff1a;AnacondaPycharm项目运行实例_哔哩哔哩_bilibili 一、项目运行前的准备&#xff08;软件安装&…...

java面试-java基础(上)

文章目录 一、什么是Java&#xff1f;特点&#xff1f;二、什么是JVM、JDK、JRE&#xff1f;三、java跨平台实现原理四、java数据类型有哪些?五、char能不能存一个中文汉字?六、存在数字i加1小于i或者i减1小于i?七、什么是自动类型转换与强制类型转换?八、什么是装/拆箱&am…...

STM32快速搭建项目框架

注&#xff1a;编写本博客的原因&#xff0c;学习期间基于复习之前知识点的需要&#xff0c;故撰写本教程&#xff0c;即是复习前面的知识点也是作为博客的补充 1.0 文件夹的创建 创建一个STM32项目为模版工程&#xff0c;问价夹下分别包含4个子文件夹&#xff0c;一个是Librar…...

JMH324-免费【最后一战LOL】MOBA竞技版本+单机一键端+视频教程+文本教程

资源介绍&#xff1a; 修改前打开【D:\ZHServer】文件夹里的【[1]一键启动.bat】&#xff0c;游戏不要打开&#xff0c;否则修改失败。 修改完以后重启架设程序才会生效。 fball_gamedb1数据库——gameuser数据表 obj_name 角色名 obj_lv 等级 obj_diamond 钻石 obj_gold 8…...

WPF UI 3D 多轴 机械臂 stl 模型UI交互

1、三维插件环境调整 2、动态模型材质处理 3、动态模型鼠标交互 4、模型旋转基本思路 5、六轴机械臂节点旋转处理 6、更多HelixToolkit插件处理案例 7、快速对接Blender模型 鼠标交互&#xff08;没有强调场景的变换&#xff09; 鼠标命中测试&#xff08;HitTest 不推荐&…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...