iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >KVM专题(3)存储
  • 375
分享到

KVM专题(3)存储

专题KVM 2023-01-31 01:01:54 375人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

基于文件系统的存储 dir:目录格式的存储fs:磁盘分区存储neyfs:网络共享文件存储 基于设备的存储 Disk:物理硬盘存储Iscsi:iSCSITarget后端存储logical:逻辑卷的存储 KVM支持的虚拟磁盘类型 raw

基于文件系统的存储

dir:目录格式的存储
fs:磁盘分区存储
neyfs:网络共享文件存储

基于设备的存储

Disk:物理硬盘存储
Iscsi:iSCSITarget后端存储
logical:逻辑卷的存储

KVM支持的虚拟磁盘类型

raw
    这并非是一种真正的磁盘格式,而是代表虚拟机所使用的原始镜像
    他并不存储元数据,因此可以作为保证虚拟机兼容性的候选方案。不支持快照和压缩等高级特性
    格式简但,容易转换成为其它的格式。需要文件系统用的支持才能使用sparse file
cow : copy-on-write格式,昙花一现
qcow : QEMU早期的copy-on-write格式
qcow2
    按需分配磁盘空间,不管文件系统是否支持
    支持快照
    支持zlib的磁盘压缩
    支持AES的加密
vmdk
    VMware环境当中默认使用的磁盘格式
vhd\vhdx
    微软默认采用的文件格式

使用qemu-imgg管理虚拟磁盘

qemu-img是一个功能强制性磁盘镜像管理工具
  check                        检查完整性
  create                        创建镜像
  commit                     提交更该
  compare                    比较
  convert                     转换
  info                            获得信息
 snopshot                    快照管理
 resize                         调整大小
例如:
创建一块raw格式1g大小的虚拟磁盘
qemu-img create t1.img 1g   //默认磁盘会存放在当前目录下
创建一块qcow2格式10g大小的虚拟磁盘
qemu-img create t2.img  -f qcow2 10g
查看t2.img虚拟磁盘的具体信息
qemu-img info t2.img
检测t1.img磁盘的运行状态
qemu-img check t1.img
调整oa-disk.qcow2虚拟磁盘的大小,增加5个g  
qemu-img resize oa-disk.qcow2 +5G    //注意磁盘扩容完毕之后需要在虚拟机的操作系统层面进行文件系统的创建
为oa-disk.qcow2创建快照
qemu-img snapshot -a s1 oa-disk.qcow2
查看刚刚创建的快照
qemu-img  snapshot  -l oa-disk.qcow2
回滚快照
qemu-img snapshot -a s1 oa-disk.qcow2

当我们把这些虚拟磁盘文件创建出来就可以添加到虚拟机中,称为虚拟机中的一块磁盘使用

使用一个具体的示例来演示:
qemu-img create -f  qcow2 vm1-disk1.qcow2 10G       
virt-install \
    --name=vm1 \
    --disk path=/tmp/vm1-disk1.qcow2 \        //指定安装到的磁盘文件路径
    --vcpus=1 --ram=1024 \                          //设置虚拟内存大小
    --cdrom=/tmp/Centos-7-x86_64-DVD-1708.iso  \        //指定启动文件
    也可以是 --location   /tmp/CentOS-7-x86_64-DVD-1708.iso
    --network network=default  \
    --graphics vnc,listen=0.0.0.0 \
    --os-type=linux \
    --os-variant=Centos7.0

后备差异虚拟硬盘
在实际生产环境中可以将一个backing_file基础镜像作为父镜像,然后让多个虚拟机使用同一个父镜像,这样只需要为虚拟机提供一个基础镜像即可
对于父镜像来说,可以是raw或者是qcow2文件格式,但是使用父镜像的虚拟机来说必须使用qcow2
准备模板

qemu-img create -f qcow2 \
> -o backing_file=vm1-disk1.qcow2 \  //磁盘镜像为安装过操作系统的镜像
> oa-disk.qcow2      //关联基础磁盘跟父磁盘镜像
创建虚拟机
virt-install --import \
>  --name=oa \
> --vcpus=1 \
> --ram=1024\
> --disk path=/tmp/oa-disk.qcow2  \
> --network network=default \
> --graphics vnc,listen=0.0.0.0

注意当使用指定磁盘创建虚拟机之后,虚拟机磁盘文件属主属组变成qemu
如果我们此时移除或者是更改父镜像磁盘(基础镜像)则虚拟机无法启动

存储池:

存储池的基本概念
Libvirt可以以存储池的形式对存储进行统一管理、简化操作
对于虚拟机操作来说,存储池和卷并不是必须的

KVM专题(3)存储
KVM专题(3)存储

例如我们创建一个基于目录的存储池

mkdir /guest_images        //创建目录
chown root:root /guest_images/      //更改目录属主属组
chmod 700 /guest_images/             //更改权限
virsh pool-define-as  guest_images dir --target "/guest_images"  //创建存储池

创建一个基于分区的存储池

首先新建一块磁盘分区,然后使用virsh命令创建存储池
virsh pool-define-as guest_images2_fs   --source-dev "/dev/sdb1" --target "/guest_test(挂载点)"
virsh pool-start guest_images2_fs    //启动存储池

创建基于磁盘的存储池

新添加一块磁盘并且将磁盘格式更改成gpt格式
准备xml文件

<pool type='disk'>
  <name>guest_images3_fs</name>
  <source>
    <device path='/dev/sdc'/>
    <fORMat type='gpt'/>
  </source>
  <target>
    <path>/dev</path>
  </target>
</pool>
保存退出
virsh pool-define /tmp/guest_images_disk.xml       //使用xml文件创建存储池
virsh pool-start guest_images3_fs :启动存储池

创建基于iscsi的存储池

在iscsi Target服务器上面安装target服务,并配置
/backstores/block> create  block1 dev=/dev/sdb1   //基于磁盘划分
/backstores/fileio> create fikeio1 /tmp/foo1.img 50M  // 基于文件划分
/iscsi> create iqn.2019-02.org.linuxplus.srv1:tomtest //创建target
/iscsi/iqn.20...est/tpg1/luns> create /backstores/block/block1  //创建LUNS
create /backstores/fileio/fikeio1
create  iqn.1994-05.com.redhat:tomkvm1     //创建acl
在iscsi客户端进行配置
iscsiadm --mode discovery --type sendtargets --portal 192.168.153.8
iscsiadm -d2 -m node --login
注意要将iscsi客户端/etc/iscsi/initiatorname.iscsi文件中的信息改成对应的iqn信息InitiatorName=iqn.1994-05.com.redhat:tomkvm1

KVM专题(3)存储
KVM专题(3)存储
KVM专题(3)存储

存储卷

KVM专题(3)存储
**vol-create-as default test1.qcow2 1G --format qcow2 在默认目录下创建一个名为test1.qcow2存储卷

存储卷的管理
在virsh交互模式下进行
删除:
vol-delete lv-name vg-name
vol-delete test1.qcow2 default
将磁盘直接划分成逻辑卷
attach-disk
通过参数添加新的磁盘设备
virsh attach-disk --domain VM1 --source=/vm/t1.img --target=vdb --cache=none
先给虚拟机创建一个虚拟磁盘
创建虚拟磁盘的三种方法:
可以使用dd命令:
qemu-img工具来做
qemu-img create -f qcow2 test00.qcow2 2g
第三种方式:
virsh vol-create-as vm test00.qocw2 2g --format qcow2
创建xml文件**
KVM专题(3)存储
virsh # attach-device vm1 /tmp/disk.xml --persistent
第二种添加方式
virsh# attach-disk vm1 /tmp/test00.qcow2 --target=vdc

其实我个人理解存储池就是存放虚拟磁盘的目录,而存储卷则是目录下面的虚拟磁盘文件

--结束END--

本文标题: KVM专题(3)存储

本文链接: https://www.lsjlt.com/news/184372.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • KVM专题(3)存储
    基于文件系统的存储 dir:目录格式的存储fs:磁盘分区存储neyfs:网络共享文件存储 基于设备的存储 Disk:物理硬盘存储Iscsi:iSCSITarget后端存储logical:逻辑卷的存储 KVM支持的虚拟磁盘类型 raw ...
    99+
    2023-01-31
    专题 KVM
  • kvm可用存储类型有哪些
    本篇文章给大家分享的是有关kvm可用存储类型有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。虚拟磁盘文件可以使用LVM(Logical Volume Manager)创建存...
    99+
    2023-06-13
  • 3. SQL -- 存储过程
    存储过程在Sql Server中,可以定义子程序存放在数据库中,这样的子程序称为存储过程,它是数据库对象之一.一存储过程的优点:1: 存储过程在服务器端运行,执行速度快2: 存储过程只执行一次,然后把编译的二进制代码保存在调整缓存中,以后可...
    99+
    2023-01-31
    存储过程 SQL
  • 前端复习:CSS专题3
    1.1 行高 CSS中,所有的行,都有行高。盒模型的padding,绝对不是直接作用在文字上的,而是作用在“行”上。 line-height: 40px; 文字,是在自己的行里面居中的。比如说,现在的文字字号为14px,行高为24px...
    99+
    2023-01-31
    专题 CSS
  • MySQL专题3之MySQL管理
    1、启动以及关闭MySQL服务器-  首先,我们需要通过以下命令来检查MySQL服务器是否已经启动:ps -ef | grep mysqld-  如果MySQL已经启动,以上命令将输出mysql进程列表,如果mysql未启动,你可以使用以下...
    99+
    2023-01-31
    专题 MySQL
  • DevOps专题 |监控,可观测性与数据存储
    对于DevOps而言,监控是其中重要的一环,上一次的专题内容中,我们与大家分享了大型企业级监控系统的设计。今天我们将和大家从另一个角度进一步探讨互联网工程技术领域的监控设计(monitoring):系统的可观测性(observerbalit...
    99+
    2023-06-04
  • 钉钉专属存储部署
    钉钉专属存储是一种专为钉钉应用设计的专属存储服务,它可以提供高品质、安全可靠的数据存储和备份服务。其特点如下: 安全可靠:钉钉专属存储采用了SSL/TLS加密传输协议和高强度的数据备份措施,能够确保数据的安全性和可靠性。 高品质:钉钉专...
    99+
    2023-10-28
  • 3,mysql的存储引擎
    1,什么是存储引擎,存储引擎说白了就是如何存储数据,如何为存储的数据建立索引和如何更新,查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以成为表类型。 在Oracle和SQL Server等数据库中...
    99+
    2023-01-31
    引擎 mysql
  • 存储基本概念(3)
    将数据保存在存储介质上,除了需要一个好的存储介质之外,还需要一个适当的机制去管理这些存储介质上的数据,以便上层应用包括操作系统可以方便快捷的访问到这些数据。传统上我们知道进行磁盘管理都是通过一些工具进行操作的,那么这些工具是否一定与操作系统...
    99+
    2023-01-31
    基本概念
  • SSM框架之MyBatis3专题3:关联
    当查询内容涉及具有关联关系的多个表时,就需要使用关联关系查询。根据表与表之间的关联关系的不同,关联查询分为四种:1、一对一关联查询;2、一对多关联查询;3、多对一关联查询;4、多对多关联查询; 由于日常工作中最常见的关联关系是一对多、多...
    99+
    2023-01-31
    框架 专题 SSM
  • Oracle专题3之Oracle数据表的
    Oracle SQL Developer是Oracle官方出品的免费图形化开发工具,相对于SQL * Plus来说,图形化的界面便于操作,不必记忆大量的命令,输出结果美观。它的基本功能有结果的格式化输出、编辑器自动提示、代码优化、显示...
    99+
    2023-01-31
    数据表 专题 Oracle
  • Mariadb/MySQL存储过程中的3
    在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环。还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体介绍了。这几个循环语句的格式如下:WHI...
    99+
    2023-01-31
    过程中 Mariadb MySQL
  • iSCSI存储的3种连接方式
    我们分析了iSCSI存储的系统结构,下面来看iSCSI是如何与服务器、工作站等主机设备来连接的,也就是我们如何建立一个iSCSI网络存储系统。 iSCSI设备的主机接口一般默认都是IP接口,可以直接与以太网络交换机和iSCSI交换机连接,形...
    99+
    2023-01-31
    方式 iSCSI
  • C语言数据的存储专项分析
    目录数据的类型介绍类型的基本归类整形在内存中的存储源码、反码、补码关于大小端的概念浮点型在内存中的存储数据的类型介绍 类型的基本归类 在写数据类型的介绍之前,我们首先来简单介绍下 r...
    99+
    2024-04-02
  • 想要成为 Apache 存储专家?先学好 Python!
    作为一名数据存储领域的从业者,如果你想要成为 Apache 存储专家,那么 Python 绝对是一项必备技能。Apache 是一个开源软件基金会,旗下有很多优秀的存储项目,如 Hadoop、Cassandra、Hive 等,这些项目都使用...
    99+
    2023-10-15
    存储 apache 面试
  • 掌握Go语言,成为Linux文件存储的专家
    Linux操作系统的文件存储是其中最基本的功能之一,而Go语言则是最近几年来备受关注的编程语言。本篇文章将探讨如何利用Go语言来操作Linux文件存储,并演示一些实用代码。 一、Go语言介绍 Go语言是一种开源的编程语言,由Google开...
    99+
    2023-08-06
    linux 文件 存储
  • Django 缓存问题?试试使用 Go 存储!
    Django 是一个流行的 Python Web 框架,因其简单易用和强大的功能被广泛使用。然而,随着网站的流量增加,缓存问题也随之出现。Django 内置的缓存机制能够很好地解决这个问题,但是在高并发环境下,仍然会存在一些性能瓶颈。为了...
    99+
    2023-11-08
    存储 django 缓存
  • 存储专家必备:面试中如何讨论Go和Laravel?
    作为一名存储专家,无论是在工作中还是在面试中,熟练掌握各种编程语言和框架是必不可少的。在面试中,经常会被问及一些关于编程语言和框架的问题,其中Go和Laravel是比较常见的话题。那么,在面试中如何讨论Go和Laravel呢?本文将为您提供...
    99+
    2023-07-27
    存储 laravel 面试
  • 【MySQL】基础实战篇(3)—九大储存引擎详解
    引擎 InnoDB引擎MyISAM引擎对比Archive引擎Blackhole引擎CSV引擎Memoy引擎4.7Federated引擎Merge引擎NDB引擎 InnoDB引擎 具备外键支...
    99+
    2023-10-10
    mysql 数据库
  • PHP数组存储学习笔记:如何应对各种存储问题?
    在PHP开发中,数组是一个非常重要的数据类型。它可以用来存储一组相关的数据,比如学生的成绩、商品的价格等等。在实际开发中,我们需要把这些数据存储到不同的存储介质中,比如内存、文件、数据库等等。本篇文章将为大家介绍如何在PHP中应对各种数组...
    99+
    2023-08-05
    存储 学习笔记 数组
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作