1、文件管理简介:vim
经过文件管理能够直接查看、修改、复制虚拟机的内部文件。centos
例如,当系统由于配置文件无 法启动时,能够直接修改虚拟机的文件。安全
虚拟机磁盘文件主要有raw和qcow2格式。raw格式 性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES 加密等。bash
要使用镜像功能,磁盘格式必须为qcow2。dom
raw格式的话,速度稍微快点,在高版本的qemu-kvm中,几乎不比qcow2的格式快,而 qcow2格式节省空间,可动态增加,在公有云中普遍使用,建议使用qcow2。工具
全部有时候,我 们须要将raw格式的磁盘转换成qcow2格式(qemu-img convert -f raw -O qcow2 /kvmvm/vmtest01.img /kvm-vm/vmtest01.qcow2)。 性能
2、离线访问工具应用场景ui
观看或下载位于虚拟机磁盘中的文件加密
编辑或上传文件到虚拟机磁盘 spa
读取或写入的虚拟机配置
准备新的磁盘映像,其中包含文件、目录、文件系统、分区、逻辑卷和其余选项
拯救和修复客户没法启动或须要更改启动配置的虚拟机
监控虚拟机的磁盘使用状况
根据组织安全标准审计虚拟机的合规性
经过克隆和修改模板来部署虚拟机
读取CD和DVD ISO和软盘映像
3、虚拟磁盘离线访问工具
主要是安装libguestfs libguestfs-tools软件工具,就能够直接读取qcow2格式的磁盘文件。
些操做最好要在虚拟机关机状态下作,不然会出错。
1.virtinspector 显示os版本、内核、驱动、挂载点、应用等等,不多使用。
virt-inspector /kvm-vm/testvm01.qcow2
more的方式显示
virt-inspector --format=qcow2 -a /kvm-vm/testvm01.qcow2 | more
2.virtcat命令相似于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/ #卸载系统镜像挂载位置
4、管理虚拟磁盘
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.)vhd\vhdx(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
5、后备差别虚拟磁盘(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
结果:
6、虚拟磁盘格式转换
7、调整虚拟磁盘大小
8、磁盘快照管理
1. 快照/检查点 Snapshot/Checkpoint
磁盘快照
对磁盘数据进行快照
主要用于虚拟机备份等场合
内存快照 ü 对虚拟机的内存/设备信息进行保存
该机制同时用于休眠恢复、迁移等场景
主要使用virsh save(qemu migrate to file)实现,只能对运行的虚拟机进行
检查点快照
同时保存虚拟机的磁盘快照和内存快照
用于将虚拟机恢复到某个时间点
能够保证数据的一致性
2.磁盘快照分类--不推荐使用
按快照信息保存分为:
内置快照:
快照数据和base磁盘数据放在一个qcow2文件中
外置快照:
快照数据单独的qcow2文件存放
按虚拟机状态能够分为:
关机态快照:
数据能够保证一致性
运行态快照:
数据没法保证一致性,相似于系统crash后的磁盘数据,使用时可能须要 fsck等操做。
按磁盘数量能够分为:
单盘:单盘快照不涉及原子性
多盘:涉及原子性。
主要分为两个方面:
一、是全部盘快照点相同
二、全部盘要么都快照 成功,要么都快照失败。
主要依赖于qemu的transaction实现。