KVM -> 虚拟机磁盘管理_03
1、KVM磁盘管理
1、KVM qcow2、raw、vmdk等镜像格式说明:http://blog.csdn.net/zhengmx100/article/details/53887162
raw: 裸格式,占用空间比较大,不支持快照功能,性能较好, qcow2:占用空间小,支持快照,性能比raw差一点 //q就是qemu的缩写,cow 是英文 (copuy on write):写时复制
什么是写时复制?:
举个例子,VMWARE的磁盘文件,当创建完虚拟机之后,文件并没有那么大,但随着使用的增多,文件越来越多,磁盘容量也越来越大
所以,raw格式是一次性分配空间是不能创建快照的,qcow2才能创建快照。
为什么是叫qcow2呢?
举个例子,在linux系统中,文件的格式有mkfs.ext等,如下图所示,那第2代就是mkfs.ext2,第3代就是mkfs.ext3。qcow2同样以此类推,就是qcow的第2代的意思。
2、查看当前虚拟机硬盘信息
qemu-img info /opt/oldboy.qcow2
3、创建一块qcow2格式的虚拟硬盘
可以在创建虚拟机的时候,讲途中红色框内容修改为qcow2,并为磁盘文件命名
4、使用qemu-img命令创建磁盘
create 创建一块虚拟磁盘文件 qemu-img create -f qcow2 /opt/oldboy.qcow2 10G
注: create 是创建的命令, -f 指定 磁盘文件类型 , /opt/oldboy.qcow2 是磁盘文件名字 , 10G 是磁盘文件大小。
如果不指定 磁盘文件类型默认是 raw 格式的,如下图所示
5、raw转qcow2格式:
转换原有磁盘格式:当磁盘文件已经存在为raw格式,我们想要把他转换为qcwo2格式,操作如下:
[root@kvm opt]# qemu-img convert -f raw -O qcow2 centos7.raw centos7.qcow2
*通过修改配置文件,修改磁盘文件
修改clsn7 虚拟机配置文件(虚拟机名字是自己的,virsh list --all 里面的名字)
[root@kvm data]# virsh edit centos7 修改前: <disk type='file' device='disk'> <driver name='qemu' type='raw'/> <source file='/data/clsn.raw'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </disk> 修改后: <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/data/clsn.qcow2'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </disk>
删除原磁盘文件
[root@kvm data]# \rm clsn.raw //其实可以换成mv,把文件移动到/tmp目录下,这样更安全。
启动虚拟机
[root@kvm data]# virsh destroy clsn7
[root@kvm data]# virsh start clsn7
[root@kvm data]# virsh list --all Id 名称 状态 ---------------------------------------------------- 22 clsn7 running
注:raw和qcow2的格式转换形式一样,互换位置即可。
6、修改磁盘大小resize
qemu-img resize oldboy.raw 8G //resize 是修改命令, oldboy.raw是修改磁盘文件名称, 8G 是要修改的大小
第二种是已知磁盘文件大小,想要增加固定参数。
2、KVM快照管理
创建快照virsh snapshot-create centos7 查看快照virsh snapshot-list centos7 还原快照virsh snapshot-revert centos7 --snapshotname 1516574134 删除快照virsh snapshot-delete centos7 --snapshotname 1516636570 raw不支持做快照,qcow2支持快照,并且快照就保存在qcow2的磁盘文件中
注:开机的时候也可以创建快照
查看一个虚拟机里的快照
3、KVM虚拟机添加硬盘
进入硬盘存放目录
[root@kvm ~]# cd /opt
创建一块新的硬盘
[root@kvm data]# qemu-img create -f qcow2 centos7-add01.qcow2 5G Formatting 'centos7-add01.qcow2', fmt=qcow2 size=5368709120 encryption=off cluster_size=65536 lazy_refcounts=off
查看创建的硬盘信息
[root@kvm opt]# qemu-img info centos7-add01.qcow2 image: centos7-add01.qcow2 file format: qcow2 virtual size: 5.0G (5368709120 bytes) disk size: 196K cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false
为虚拟机添加硬盘
[root@kvm opt]# virsh attach-disk centos7 /data/centos7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2 # 成功附加磁盘
参数说明:
调整已添加硬盘的大小
[root@kvm opt]# virsh --help |grep disk attach-disk #附加磁盘设备 detach-disk #分离磁盘设备
将已挂载的磁盘卸载下来
[root@kvm opt]# virsh detach-disk centos7 vdb 成功分离磁盘
调整磁盘大小
# 使用参数 [root@kvm opt]# qemu-img --help |grep resize resize [-q] filename [+ | -]size
增加1G容量
[root@kvm opt]# qemu-img resize centos7-add01.qcow2 +1G Image resized. [root@kvm data]# qemu-img info centos7-add01.qcow2 image: centos7-add01.qcow2 file format: qcow2 virtual size: 6.0G (6442450944 bytes) disk size: 260K cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false
重新讲磁盘添加到虚拟机
[root@kvm opt]# virsh attach-disk centos7 /opt/centos7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2
以下在虚拟机中操作
格式化磁盘
[root@ccentos7 ~]# mkfs.xfs /dev/vdb
挂载磁盘
[root@centos7 ~]# df -h |grep /dev/vdb /dev/vdb 6.0G 33M 6.0G 1% /opt
使用 xfs_growfs 刷新磁盘的信息
[root@centos7 ~]# xfs_growfs --help xfs_growfs: invalid option -- '-' Usage: xfs_growfs [options] mountpoint
4、KVM克隆管理
kvm虚拟机克隆 virt-clone --auto-clone -o centos7 -n guoyouxiu (完整克隆) a:拷贝虚拟机磁盘文件 b:生成虚拟机的配置文件 <name>49-web03</name> <uuid>8e505e25-5175-46ab-a9f6-feaa096daaa4</uuid> <source file='/opt/49-web03.qcow2'/> <mac address='52:54:00:4e:5b:89'/> c:导入虚拟机并进行启动测试 kvm链接克隆 a.基于源磁盘文件,创建链接磁盘文件 qemu-img create -f qcow2 -b 49-web03.qcow2 49-web04.qcow2 b:生成虚拟机的配置文件 c:导入虚拟机并进行启动测试 virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name 49-web04 --memory 1024 --vcpus 1 --disk /opt/49-web04.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
5、KVM网络管理
kvm虚拟机的桥接网络 1:virsh iface-bridge eth0 br0 2:virsh edit centos7 <interface type='bridge'> <mac address='52:54:00:55:aa:fa'/> <source bridge='br0'/> 在宿主机上,重启虚拟机生效 3:修改kvm虚拟机的ip echo 'TYPE=Ethernet BOOTPROTO=static NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=10.0.0.111 NETMASK=255.255.255.0 GATEWAY=10.0.0.254 DNS1=223.5.5.5' >/etc/sysconfig/network-scripts/ifcfg-eth0 4.验证
[root@clsn7 ~]# ping 223.5.5.5 -c1 PING 223.5.5.5 (223.5.5.5) 56(84) bytes of data. 64 bytes from 223.5.5.5: icmp_seq=1 ttl=128 time=94.4 ms
virsh vncdisplay web-49(虚拟机的名字)