zoukankan      html  css  js  c++  java
  • 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实现。

              

                       

  • 相关阅读:
    解决 搭建Jekins过程中 启动Tomcat的java.net.UnknownHostException异常
    射手和农场主
    java 和 JS(javaScript)中的反斜杠正则转义
    分享修改密码的SharePoint Web part: ITaCS Change Password web part
    分享微软官方Demo用的SharePoint 2010, Exchange 2010, Lync 2010虚拟机
    Office 365 的公共网站的一些限制及解决的办法
    SharePoint 2013 关闭 customErrors
    安装 KB2844286 导致SharePoint 2010 XSLT web part 显示出现错误
    安装Office Web Apps Server 2013 – KB2592525安装失败
    如何将hyper-v虚拟机转换成vmware的虚拟机- 转换SharePoint 2010 Information Worker Demonstration and Evaluation Virtual Machine (SP1)
  • 原文地址:https://www.cnblogs.com/mo-xiao-tong/p/12804090.html
Copyright © 2011-2022 走看看