• KVM文件管理


    一、文件管理简介:

                   通过文件管理可以直接查看、修改、复制虚拟机的内部文件。

                   例如,当系统因为配置文件无 法启动时,可以直接修改虚拟机的文件。

                  虚拟机磁盘文件主要有raw和qcow2格式。raw格式 性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES 加密等。

                  要使用镜像功能,磁盘格式必须为qcow2。

                  raw格式的话,速度稍微快点,在高版本的qemu-kvm中,几乎不比qcow2的格式快,而 qcow2格式节省空间,可动态增长,在公有云中广泛使用,建议使用qcow2。

                 所有有时候,我 们需要将raw格式的磁盘转换成qcow2格式(qemu-img convert -f raw -O qcow2 /kvmvm/vmtest01.img /kvm-vm/vmtest01.qcow2)。 

    二、离线访问工具应用场景

                    观看或下载位于虚拟机磁盘中的文件

               编辑或上传文件到虚拟机磁盘 

          读取或写入的虚拟机配置

                    准备新的磁盘映像,其中包含文件、目录、文件系统、分区、逻辑卷和其他选项

                    拯救和修复客户无法启动或需要更改启动配置的虚拟机 

                    监控虚拟机的磁盘使用情况

                    根据组织安全标准审计虚拟机的合规性

                    通过克隆和修改模板来部署虚拟机

                    读取CD和DVD ISO和软盘映像

    三、虚拟磁盘离线访问工具

                    主要是安装libguestfs libguestfs-tools软件工具,就可以直接读取qcow2格式的磁盘文件。

                     些操作最好要在虚拟机关机状态下做,否则会出错。

            1.virt­inspector 显示os版本、内核、驱动、挂载点、应用等等,很少使用。

    virt-inspector /kvm-vm/testvm01.qcow2
    

      

             more的方式显示

    virt-inspector --format=qcow2 -a  /kvm-vm/testvm01.qcow2  | more
    

      

           2.virt­cat命令类似于cat命令

    virt-cat  -a /kvm-vm/testvm01.qcow2  /etc/hostname
    

      

           3.vrit-edit命令用于编辑文件,用法与vim基本一致,例如把主机名改成 vmtest001.test.com

    virt-edit  -a /kvm-vm/testvm01.qcow2  /etc/hostname
    

      

          4.virt-df命令用于查看虚拟机磁盘信息

    virt-df -h -a /kvm-vm/testvm01.qcow2
    

      

         5.virt-copy-out这个命令可以把虚拟机里的文件复制出来, 用法如下

    virt-copy-out  -d  testvm01 /etc/hostname ./
    

      

         6.virt-copy-in是将文件复制到虚拟机里面,用法和virt-copy-out基本相同

    virt-copy-in -d testvm01 hostname  /etc/
    

      

         7.guestfish命令

             guestfish [--ro|--rw] -i -a /path/to/disk.img

             guestfish [--ro|--rw] -i -d name-of-libvirt-domain

    guestfish --ro -i -d testvm01
    

      

          8.Guestmount:

              在一些使用场景中,直接把虚机镜像文件挂接在本地系统中,也是一个简便的办法。

                 例如。

                      # guestmount -a vm1.qcow2 -m /dev/vg_centosbase/lv_root --rw /mnt

                 如果事先不知道虚机内部分区的路径信息,则可以使用参数-i来让guestmount自己决定使用 哪一个挂接点:

                     # guestmount -a vm1.qcow2 -i --rw /mnt

    guestmount -a /kvm-vm/testvm01.qcow2 -i --rw /deis/  #文件夹首先是空不允许有文件,否则报错
    

      

    guestunmount  /deis/    #卸载系统镜像挂载位置
    

      

     四、管理虚拟磁盘

               1.虚拟化项目中存储的注意事项

                      存储的性能几乎总是虚拟化的瓶颈

                      通过多个磁盘驱动以分布磁盘I/O来实现存储解决方案

                      驱动器的速度越快越好,考虑SSD与机械磁盘的混合使用

                      考虑部署集中化的SAN/NFS来实现高可用性和实时迁移

                

            2.虚拟磁盘类型

                  1).固定 Fixed

                      在配置时,指定磁盘大小

                     不管在虚拟磁盘上实际存储多少数据,都将占用相同大小主机磁盘空间

                  2.)动态 Dynamic

                       增长到最大容量,但是只根据需求使用更多的空间

                 3.)差异(差分盘) Differencing

                        因为创建是差异磁盘,所以只保存变更的数据,类似于lvm的快照

                        例如,将操作系统安装在父盘,然后创建差异化磁盘来执行进一步配置,桌面虚拟化使用很多。

             3.KVM支持的虚拟磁盘类型:

                 1.)raw

                          这并非是一种真正的磁盘格式,而是代表虚拟机所使用的原始镜像

                          它并不存储元数据,因此可以作为保证虚拟机兼容性的候选方案。然而,也正因为它不 存储元数据,因此不能支持某些高级特性,比如快照和压缩等

                          格式简单,容易转化为其他的格式。需要文件系统的支持才能支持sparse file

                          cow: copy-on-wirte格式,昙花一现

                          qcow: QEMU早期的copy-on-write格式,过渡性方案

                 2.)qcow2:

                          按需进行分配磁盘空间,不管文件系统是否支持

                          支持快照

                          支持zlib的磁盘压缩

                          支持AES的加密

                 3.)vmdk(virtual machine disk)

                         VMware环境当中默认使用的磁盘格式

                 4.)vhdvhdx(virtual Hard Disk)

                        微软默认采用的文件格式

                 5.)vdi(virtual Box)

            4.可以通过qemu-img --help | grep Supported命令查看KVM所支持的磁盘格式         

    qemu-img --help | grep Supported
    

      5.qemu-img是QEMU的磁盘管理工具,在qemu-kvm源码编译后就会默认编译好qemuimg这个二进制文件。

               qemu-img也是QEMU/KVM使用过程中一个比较重要的工具,qemu-img工 具的命令行基本用法如下:

                      qemu-img command [command options]

    qemu-img常用功能命令:
           check 检查完整性
           create 创建镜像
           commit 提交更改
           compare 比较
           convert 转换
           info 获取信息
           map 映射
           snapshot 快照管理
           rebase 在已有的镜像的基础上创建新的镜像
           resize 调整大小
           amend 修订镜像格式选项
    

       6.创建虚拟磁盘,默认是创建raw格式的磁盘

    qemu-img create t1.img 1g

                  

              7.创建qcow2格式磁盘时,可以指定选项,通过-o参数,常用参数主要有:

                   

     qemu-img create -f qcow2 test2.qcow2 1g -o  preallocation=full
    

                 

     五、后备差异虚拟磁盘(VMware中称作链接克隆)

                存储与基础镜像(父)磁盘的变化

                基础镜像(父)磁盘不会改变

                差异磁盘隔离变化

                多个差异磁盘可以使用相同的基础镜像(父)磁盘

       1.优点:标准化基础镜像,节省空间

        2.缺点:增加了开销,较差的性能 (尤其是vmware虚拟机中的试验环境,要等待很久才 能启动)

         

           1.首选,需要拥有一个基础虚拟磁盘,可以通过安装一个全新的虚拟机得到,然后将各种使 用的基本软件设置好。

    qemu-img  create -f qcow2 
    > -o backing_file=/kvm-vm/testvm01.qcow2  
    > oa-disk0.qcow2
    

      

            2.然后根据差异磁盘创建虚拟机 (强烈建议通过修改配置文件) 如果修改配置文件的话,只需要修改主机名,uuid值,及mac地址即可。

     mv /kvm-vm/oa-disk0.qcow2  /kvm-vm/oa-testvm01.qcow2
    cd /etc/libvirt/qemu/
    cp testvm01.xml  oa-testvm01.xml
    vim oa-testvm01.xml
    

      修改内容:

    %s/testvm01/oa-testvm01/g
    <mac address='52:54:00:f9:e5:48'/>  #修改其中任意一个 数字智能在0-9之间
    <uuid>14841360-0da0-4b8d-8bad-ddde2ea9d5e9</uuid>  #uuid可以使用命令uuidgen生成
    

      定义域

    virsh define /etc/libvirt/qemu/oa-testvm01.xml
    

      

           

        结果:

            

    六、虚拟磁盘格式转换

                   

     七、调整虚拟磁盘大小

               

     八、磁盘快照管理

           1. 快照/检查点 Snapshot/Checkpoint

               磁盘快照

        对磁盘数据进行快照

        主要用于虚拟机备份等场合

        内存快照 ü 对虚拟机的内存/设备信息进行保存

        该机制同时用于休眠恢复、迁移等场景

        主要使用virsh save(qemu migrate to file)实现,只能对运行的虚拟机进行

       检查点快照

                  同时保存虚拟机的磁盘快照和内存快照

                 用于将虚拟机恢复到某个时间点

                 可以保证数据的一致性

        2.磁盘快照分类--不推荐使用

           按快照信息保存分为:

                               内置快照:

                                   快照数据和base磁盘数据放在一个qcow2文件中

                              外置快照:

              快照数据单独的qcow2文件存放

                         按虚拟机状态可以分为:

           关机态快照:

             数据可以保证一致性

           运行态快照:

                                   数据无法保证一致性,类似于系统crash后的磁盘数据,使用时可能需要 fsck等操作。

                        按磁盘数量可以分为:

                              单盘:单盘快照不涉及原子性

                              多盘:涉及原子性。

                       主要分为两个方面:

                              1、是所有盘快照点相同

                              2、所有盘要么都快照 成功,要么都快照失败。

                    主要依赖于qemu的transaction实现。

              

                       

  • 相关阅读:
    技术总监7年经验——论程序员的职业发展路线
    2.MySQL入门基本操作初体验
    1.MySQL的安装(linux Ubuntu环境下)
    Boot Petalinux Project Using a remote system
    字符设备驱动、平台设备驱动、设备驱动模型、sysfs的比较和关联
    linux采用模块方法,添加一个新的设备
    在远程服务器上完成本地设备的程序烧写和调试(基于vivado ,SDK软件)
    Linux Master/Baremetal Remote 配置下的裸机调试
    利用Xlinix SDK 建立Linux程序以及对该程序进行调试
    Vivado Launching SDK "Importing Hardware Specification" error的解决方法
  • 原文地址:https://www.cnblogs.com/mo-xiao-tong/p/12804090.html
Copyright © 2020-2023  润新知