28.11 磁盘格式
28.12 磁盘扩容(raw)
28.13 磁盘扩容(qcow2)
28.14 调整cpu内存和网卡
28.15 迁移虚拟机
28.11 磁盘格式
虚拟磁盘常用格式有两种:raw
、qcow2
区别:磁盘占中情况上qcow2保持一致,raw不一样。raw定义磁盘多大就占多大,qcow2用多大就占多大
。raw 启动的虚拟机会比 QCOW2 启动的虚拟机 I/O 效率更高,qcow2
是一种当下比较主流的虚拟化磁盘格式,具有占用空间小,支持加密,支持压缩,支持快照
的。 raw格式的磁盘性能比qcow2要好,但是raw格式的磁盘无法做快照1
2
3
4
5
6
7[root@kun02 ~]# ll -h /kvm_data/centos7*
-rw-r--r-- 1 root root 193K 10月 23 22:18 /kvm_data/centos7.qcow2
-rw-r--r-- 1 root root 2.0G 10月 23 22:10 /kvm_data/centos7.raw
[root@kun02 ~]# du -sh /kvm_data/centos7*
196K /kvm_data/centos7.qcow2
0 /kvm_data/centos7.raw
命令 | 含义 |
---|---|
qemu-img info 虚拟磁盘路径 | 查看虚拟磁盘格式 |
qemu-img create -f 格式 虚拟磁盘路径 容量 | 创建对应格式的虚拟磁盘 -f 指定格式 |
qemu-img convert -O 格式 源虚拟磁盘路径 新虚拟磁盘路径 | 虚拟磁盘转换格式 -O 指定转化的新格式 |
virsh edit 虚拟机名 | 编辑虚拟机的配置文件 等同于vim /etc/libvirt/qemu/ |
查看虚拟磁盘格式
1 | [root@kun02 ~]# qemu-img info /kvm_data/centos7.img |
创建2G的raw的格式磁盘
1 | [root@kun02 ~]# qemu-img create -f raw /kvm_data/centos7.raw 2G |
把raw格式的磁盘转换为qcow2格式
1 | [root@kun02 ~]# qemu-img convert -O qcow2 /kvm_data/centos7.raw /kvm_data/centos7.qcow2 ##类似于复制 |
把虚拟机centos7-1的磁盘格式转化为raw并启动
1.关闭虚拟机
1 | [root@kun02 ~]# virsh shutdown centos7-1 |
2.转化磁盘格式
1 | [root@kun02 ~]# qemu-img convert -O raw /kvm_data/centos7-1.img /kvm_data/centos7-1.raw |
3.编辑虚拟机的配置文件中的格式和路径
1 | [root@kun02 ~]# virsh edit centos7-1 |
修改为raw
和 /kvm_data/centos7-1.raw
1
2<driver name='qemu' type='raw'/>
<source file='/kvm_data/centos7-1.raw'/>
4.启动虚拟机
1 | [root@kun02 ~]# virsh start centos7-1 |
28.12 磁盘扩容(raw)
与VMware类似,磁盘扩容分两种。第一种是在已有的磁盘上扩容
,第二种是添加新的磁盘
。
在已有的磁盘上扩容
1.对centos7-1的raw磁盘增加2G
1 | [root@kun02 kvm_data]# qemu-img resize /kvm_data/centos7-1.raw +2G |
2.进入虚拟机系统里面建立新分区来使用
1 | [root@kun02 kvm_data]# virsh start centos7-1 |
进入虚拟系统后使用fdisk分区1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31[root@localhost ~]# fdisk -l
磁盘 /dev/vda:12.9 GB, 12884901888 字节,25165824 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ceb76
设备 Boot Start End Blocks Id System
/dev/vda1 * 2048 2099199 1048576 83 Linux
/dev/vda2 2099200 4196351 1048576 82 Linux swap / Solaris
/dev/vda3 4196352 20971519 8387584 83 Linux
[root@localhost ~]# fdisk /dev/vda
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): p
已选择分区 4
起始 扇区 (20971520-25165823,默认为 20971520):
将使用默认值 20971520
Last 扇区, +扇区 or +size{K,M,G} (20971520-25165823,默认为 25165823):
将使用默认值 25165823
分区 4 已设置为 Linux 类型,大小设为 2 GiB
添加新的磁盘
1.创建新的虚拟硬盘
1 | [root@kun02 kvm_data]# qemu-img create -f raw /kvm_data/centos7-1-1st.raw 2G |
2.编辑虚拟机配置文件添加新建磁盘的路径
1 | [root@kun02 kvm_data]# virsh edit centos7-1 |
在用来1
2
3
4
5
6<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/kvm_data/centos7-1.raw'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
改source file='/kvm_data/centos7-1-1st.raw'
和target dev='vdb'
和slot='0x08'
1
2
3
4
5
6<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/kvm_data/centos7-1-1st.raw'/>
<target dev='vdb' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</disk>
slot中的数字必须和配置文件其他的slot不一样,否则报错
3.在虚拟机里面为新增的虚拟磁盘创建分区
1 | [root@kun02 kvm_data]# virsh start centos7-1 |
一般在生产环境中都会使用新增虚拟磁盘来扩容
28.13 磁盘扩容(qcow2)
qcow2格式磁盘的扩容和raw格式磁盘一样都是有两种方式,但必须先把快照给删除掉才扩容1
2
3
4
5
6[root@kun02 ~]# qemu-img resize /kvm_data/centos7.img +2G
qemu-img: Can't resize an image which has snapshots
qemu-img: This image does not support resize
只能把虚拟机centos7的快照给删除掉
[root@kun02 ~]# virsh snapshot-delete centos7 1540366135
已删除域快照 1540366135
在已有的磁盘上扩容
1 | [root@kun02 ~]# qemu-img resize /kvm_data/centos7.img +2G |
添加新qcow2格式磁盘
1 | [root@kun02 ~]# qemu-img create -f qcow2 /kvm_data/centos7-1st.img 2G |
添加1
2
3
4
5
6<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/kvm_data/centos7-1st.img'/>
<target dev='vdb' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</disk>
1 | [root@kun02 ~]# virsh start centos7 |
28.14 调整cpu内存和网卡
命令 | 含义 |
---|---|
virsh dominfo 虚拟机名 | 查看虚拟机cpu内存信息 |
virsh domiflist 虚拟机名 | 查看虚拟机网卡信息 |
virsh domblklist 虚拟机名 | 查看虚拟机磁盘信息 |
virsh setmem 虚拟机名 内存大小 | 动态调整虚拟机内存 |
virsh setvcpus 虚拟机名 cpu个数 | 动态调整虚拟机CPU |
virsh attach-interface 虚拟机名 –type 模式 –source 源网卡 | 动态添加虚拟机网卡 |
virsh dumpxml centos7 > /etc/libvirt/qemu/虚拟机名.xml | 保存配置 |
查看虚拟机centos7配置信息
1 | [root@kun02 ~]# virsh dominfo centos7 |
查看虚拟机centos7网卡信息
1 | [root@kun02 ~]# virsh domiflist centos7 |
查看虚拟机centos7-1磁盘信息
1 | [root@kun02 ~]# virsh domblklist centos7-1 |
也可以直接编辑配置文件来查看信息来调整cpu 内存 网卡1
2
3
4
5
6
7
8
9[root@kun02 ~]# virsh edit centos7
<domain type='kvm'>
<name>centos7</name>
<uuid>6f6ab168-26db-4f73-8041-2aba9471747f</uuid>
<memory unit='KiB'>1048576</memory> ##分配了多少内存
<currentMemory unit='KiB'>524288</currentMemory> ##现在使用了多少内存
<vcpu placement='static' current='1'>2</vcpu> ##1表示现在使用cpu个数,2表示最大cpu个数
<os>
虚拟机启动时,在线调整内存
1 | [root@kun02 ~]# virsh setmem centos7 800m |
虚拟机启动时,在线调整cpu
1 | [root@kun02 ~]# virsh setvcpus centos7 2 |
虚拟机启动时,在线添加网卡
1 | [root@kun02 ~]# virsh attach-interface centos7 --type bridge --source virbr0 |
增加一块新的网卡,并设置为nat网络模式
(virbr0类似vmware的vmnet8),这里如果写--source br0
,则网络模式为桥接
由于在线调整配置只是临时,还需要让配置文件/etc/libvirt/qemu/
作更新下1
[root@kun02 ~]# virsh dumpxml centos7 > /etc/libvirt/qemu/centos7.xml
28.15 迁移虚拟机
迁移虚拟机就是拷贝xml文件和img文件到远程机器上。再使用define让他出现在virsh list上。克隆虚拟机只是在本机上。
步骤
1.拷贝xml配置文件到远程机器上
1 | [root@kun02 ~]# rsync -av /etc/libvirt/qemu/centos7-1.xml 192.168.80.104:/tmp/ |
2.拷贝虚拟硬盘的文件到远程机器上
1 | [root@kun02 ~]# virsh domblklist centos7-1 ##查看到centos7-1有两个磁盘文件 |
3.定义新的虚拟机
在kun04上1
2
3
4
5[root@kun04 ~]# cp /tmp/centos7-1.xml /etc/libvirt/qemu/ ##把配置文件拷贝到配置目录上
[root@kun04 ~]# virsh define /etc/libvirt/qemu/centos7-1.xml ##定义指定配置文件
[root@kun04 ~]# virsh start centos7-1 ##进入新虚拟机
[root@kun04 ~]# virsh console centos7-1
总结
平时备份虚拟机只要备份(/etc/libvirt/qemu/centos7.xml
)配置文件和(/kvm_data/centos7.img
)磁盘文件即可