鼠標:
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='3'/>
</input>
<graphics type='spice' autoport='yes'>
<listen type='address'/>
<image compression='off'/>
</graphics>
<graphics type='vnc' port='-1' autoport='yes' keymap='en-us'>
<listen type='address'/>
</graphics>
在使用virt-manager远程管理windows虚拟机时,鼠标漂移导致无法操作windows,很不方便。 解决办法:在虚拟机配置文件中找到
<input type=‘mouse‘ bus=‘usb‘>
把mouse改为tablet或者在 <devices> </devices>中添加
<input type=‘tablet‘ bus=‘usb‘>
1. 查看虚拟机信息
virsh dumpxml vm1
2. 在线调整虚拟机内存 (增大或减小)
#调整为4G virsh setmem vm1 4G #调整为2G virsh setmem vm1 2G
#能够在线调整的最大内存不能超过为虚拟机分配的最大内存(上面 xml 文件中设置的最大为 4G),否则需要关闭虚拟机上调最大内存
3. 在线调整虚拟机 CPU (只能增大,不能减小)
virsh setvcpus vm1 4 virsh setvcpus vm1 8
#同样,能够动态调整的最大 VCPU 个数也不能超过为虚拟机设置的最大 VCPU 数量
4. 在线添加硬盘
#添加 qcow2 格式硬盘
#创建qcow2格式的新磁盘,大小为40G qemu-img create -f qcow2 /data/vhosts/test/cos_v1-add1.disk 40G virsh attach-disk cos_v1 /data/vhosts/test/cos_v1-add1.disk vdb --cache none --subdriver qcow2 --config --persistent #虚拟机根磁盘为vda,因此这里使用vdb表示新添加磁盘 #--config 参数同时更新虚拟机xml文件,确保重启后依然生效
#添加 raw 格式硬盘
#创建raw格式的新磁盘,大小为40G qemu-img create -f raw /data/vhosts/test/cos_v1-add2.disk 40G virsh attach-disk lnmptest-107 /data/vhosts/test/cos_v1-add2.disk vdc --cache none --subdriver raw --config --persistent
5. 在线移除硬盘
#可以查看虚拟机所有磁盘 virsh domblklist vm1 virsh detach-disk vm1 vdb
6. 在线添加网卡
virsh attach-interface --domain vm1 --type network --source default --model virtio --config #可以查看新添加的网卡 virsh domiflist vm1
7. 在线添加光盘
virsh attach-disk vm1 /data_lij/iso/CentOS-6.4-x86_64-bin-DVD1.iso vdd
-------------------qemu qcow2镜像如何缩小-------------------
---------------------------------------------------------
qcow2镜像中创建新内容会变大,但是删除却不会自动缩小。
原因:
linux所谓的删除文件,只是将文件做了标记,并不是真正的删除。
处理方案:
第一步:
先在虚拟机中删除用不到的文件,然后执行:
qemu-img convert -O qcow2 debian.qcow2 debian_new.qcow2
时间略长。
如果没有明显变化,和df -h中的大小相差很大的话:
第二步:
将做了删除标记的文件全部覆盖,然后重新使用rm -f 删除!
步骤:
sudo dd if=/dev/zero of=/zero.dat
时间长的很
sudo rm /zero.dat -f
然后重复第一步。
第三步:
在第一步的基础上,可以添加 -c 进行压缩:
qemu-img convert -c -O qcow2 debian.qcow2 debian_new.qcow2
关于查看KVM虚拟机所在的虚拟网卡的方法
--------------------------------------------
虚拟机xml路径 只有/var/run/libvirt/qemu/才有虚拟网卡的配置条目
/var/run/libvirt/qemu/
#配置文件/etc/libvirt/qemu/没有网卡配置
管理命令
virt-install 安装虚拟机
virt-clone 克隆
virsh list --all /显示所有虚拟机
virsh undefine NAME 取消list中的域名
virsh start NAME /启动images
virsh shutdown NAME
virsh reboot NAME 重启虚拟机
virsh destroy NAME /删除 删除后域名还在需要undefine
virsh edit *.xml /修改/etc/libvirt/qemu/配置文件
virsh autostart NAME 开机自启动虚拟机
virsh dumpxml wintest01 > /etc/libvirt/qemu/wintest02.xml 到处虚拟机配置
virsh suspend oeltest01 挂起服务器
virsh resume oeltest01 恢复服务器
virt-viewer centos1 进入图形化
virsh domiflist 查看网络接口
virsh snapshot-list phm-zabbix-master //查看快照
virsh snapshot-create-as phm-zabbix-master snap1 //创建快照
virsh snapshot-revert --domain phm-zabbix-master snap1 //回滚
virsh snapshot-delete phm-zabbix-master snap1 //删除快照
#virsh attach-interface snale --type bridge --source br0 临时添加网卡
永久添加网卡命令即加入到配置宿主内存中而非xml中
#virsh attach-interface snale --type bridge --source br0 --config
命令行增加的网卡只保存在内存中,宿主机重启就失效,所以需要保存到配置文件中
virsh dumpxml privi-server >/etc/libvirt/qemu/snale.xml 内存到处xml
virsh define /etc/libvirt/qemu/snale.xml 内存导入xml
virsh dumpxml privi-server >/etc/libvirt/qemu/privi-server.xml
virsh define /etc/libvirt/qemu/privi-server.xml
删除网卡
virsh detach-interface snale --type bridge --mac 52:54:00:14:86:cf
-------------virt-sparsify对kvm虚拟机qcow2文件进行缩容操作及操作中问题处理解决记录
FAQ1:virt-sparsify的时提示tmp不足
time virt-sparsify --tmp=/mnt_backup --compress ./DB-disk1.qcow2 /mnt_backup/backup_200.98.10.18/DB-disk1.new.qcow2
virt-sparsify的时候,有时候提示tmp不足,可以考虑在更大的分区上创建一个tmp目录,方法如下:
# mkdir /opt/tmp
# chmod 1777 /opt/tmp/
# export TEMP=/opt/tmp
# export TMPDIR=/opt/tmp
然后就可以继续virt-sparsify了
FAQ2:virt-sparsify过程中报无/tmp重定向目录permission的处理
[root@K2-CN1 vm]# time virt-sparsify --tmp=$TEMP --compress ./DB-disk1.qcow2 /mnt_backup/backup_200.98.10.18/DB-disk1.new.qcow2
[ 0.3] Create overlay file in /mnt_backup/tmp to protect source disk
[ 6.3] Examine source disk
virt-sparsify: error: libguestfs error: could not create appliance through
libvirt.
Try running qemu directly without libvirt using this environment variable:
export LIBGUESTFS_BACKEND=direct
Original error from libvirt: internal error: process exited while
connecting to monitor: 2023-05-01T16:49:12.542398Z qemu-kvm: -blockdev
{"driver":"file","filename":"/mnt_backup/tmp/sparsifyaa26db.qcow2","node-name":"libvirt-2-storage","cache":{"direct":false,"no-flush":true},"auto-read-only":true,"discard":"unmap"}:
Could not open '/mnt_backup/tmp/sparsifyaa26db.qcow2': Permission denied
[code=1 int1=-1]
If reporting bugs, run virt-sparsify with debugging enabled and include the
complete output:
virt-sparsify -v -x [...]
real 0m8.672s
user 0m0.038s
sys 0m0.034s
[root@K2-CN1 vm]# export LIBGUESTFS_BACKEND=direct
[root@K2-CN1 vm]# time virt-sparsify --tmp=$TEMP --compress ./DB-disk1.qcow2 /mnt_backup/backup_200.98.10.18/DB-disk1.new.qcow2
[ 0.3] Create overlay file in /mnt_backup/tmp to protect source disk
[ 6.3] Examine source disk
[ 10.3] Fill free space in /dev/sda1 with zero
FAQ3:获取kvm虚拟机ip-MAC
[root@K2-CN1 vm]# virsh list
Id Name State
------------------------------------------
6 guestfs-b6sukqts420a4a46 running
[root@K2-CN1 vm]# virsh domiflist guestfs-b6sukqts420a4a46
Interface Type Source Model MAC
------------------------------------------
[root@K2-CN1 vm]# virsh domiflist DB
Interface Type Source Model MAC
------------------------------------------------------------
- bridge br-prd e1000 x4:96:94:fd:e3:92
- bridge br-mgmt e1000 x4:96:94:fd:e3:93
- bridge br-prd virtio x4:96:94:fd:e3:95
[root@K2-CN1 vm]# ip addr 52:54:00:87:e5:60
Command "52:54:00:87:e5:60" is unknown, try "ip address help".
[root@K2-CN1 vm]# ip addr br-mgmt
Command "br-mgmt" is unknown, try "ip address help".
[root@K2-CN1 vm]# arp -n
Address HWtype HWaddress Flags Mask Iface
100.3.*.115 ether x4:96:94:fd:e3:92 C br-mgmt
100.192.10.2 ether 40:34:02:c1:0c:97 C br-mgmt