KVM-Note

117 阅读2分钟
  • virt-install
  1.不使用swap分区
  2.只分一个/
  3.不使用LVM

#br0
virt-install --name centos76_01 \
--ram 8192 \
--disk path=/opt/kvm/vmfs/jiuying11_01.img,format=qcow2,size=200,bus=virtio \
--vcpus 2 --os-type linux \
--os-variant rhel6 \
--network bridge=br0 \
--location /opt/kvm/centos7/CentOS-7-x86_64-Minimal-1810.iso \
--graphics none --console pty,target_type=serial \
--extra-args 'console=ttyS0,115200n8 serial'

#NAT
virt-install --name centos76_01 \
--ram 8192 \
--disk path=/opt/kvm/centos76_01.img,format=qcow2,size=200,bus=virtio \
--vcpus 2 --os-type linux \
--os-variant rhel6 \
--network network=default \
--location /opt/kvm/centos7/CentOS-7-x86_64-Minimal-1810.iso \
--graphics none --console pty,target_type=serial \
--extra-args 'console=ttyS0,115200n8 serial

#win7
virt-install \
--name EB-08 --ram 4096 --vcpus=2 --cpuset=auto \
--disk path=/opt/kvm/win7.img,format=qcow2,size=35,bus=virtio \
--network network=default,model=virtio,mac=RANDOM \
--disk device=cdrom,path=/opt/kvm/centos7/virtio-win-0.1.126.iso \
--disk device=cdrom,path=/opt/kvm/centos7/cn_windows_7_ultimate_x64_dvd_x15-66043.iso \
--os-type=windows --os-variant=win7  --network network=default  --graphics vnc,port=5900,listen=0.0.0.0 --noautoconsole 
  • Rename KVM
#rename method 1
virsh domrename {domain} {new-name}
#rename method 2
virsh dumpxml EB-06 > EB-21.xml
vi EB-21.xml 
virsh shutdown EB-06
virsh undefine EB-06
virsh define EB-21.xml
virsh start EB-21
  • specified static IP
#设置网卡驱动viro
#获取虚拟机的MAC地址
$ virsh --connect qemu:///system dumpxml EB-136 | grep 'mac address'
> <mac address='虚拟机的mac地址'/>
$ virsh --connect qemu:///system net-list
$ virsh --connect qemu:///system net-edit default 


#host网络配置中在XML下中增加(host部分)
<ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254' />
      <host mac='51:52:10:55:64:ff' name='EB-136' ip='192.168.122.136'/>
      <host mac='51:52:10:55:e0:ee' name='EB-137' ip='192.168.122.137'/>
    </dhcp>
</ip>

#保存,重启网络
$ virsh --connect qemu:///system net-destroy default
$ virsh --connect qemu:///system net-start default 

#重启虚拟机
  • v2v migrate
yum install virt-v2v libguestfs-winsupport

# cfg esxi 
touch .netrc && chmod 0600 .netrc
echo 'machine 10.10.10.5:112 login root password abcdefg' > .netrc

#import esxi from remote
iptables -t nat -A PREROUTING -d 10.10.10.5 -p tcp --dport 1112 -j DNAT --to-destination 192.168.0.12:80

virsh -c esx://root@10.10.10.5:1122/?no_verify=1 list --all

iptables -t nat -A PREROUTING -d 10.10.10.5 -p tcp --dport 1122 -j DNAT --to-destination 192.168.0.12:443

virt-v2v -ic esx://root@10.10.10.5:1112/?no_verify=1  -os vmdisk -of qcow2 --vmtype Desktop --network default EB-06 

#import  esxi from local
virt-v2v -i ova EB-06.ova -o local -os vmdisk  -of qcow2 --vmtype Desktop --network default

#convert
nohup qemu-img convert EB-09-0.vmdk EB-09-0.qcow2 -O qcow2
  • VPN connect working LAN
#KVM-virbr0有两条拒绝规则,删除即可。
iptables -vnL FORWARD --line-nu
iptables -D FORWARD 4 -t filter   #删除编号为4的FORWARD规则

#vpn 增加路由 或者配置VPN PUSH route 192.168.122.0 255.255.255.0
route add -net 192.168.122.0/24 gw 10.10.10.6
  • 桥接host网卡脚本 brctl show
#!/bin/bash
brctl addbr br0
brctl addif  br0 eth0
ip addr del dev eth0 172.16.1.2/24
ifconfig br0 172.16.1.2/24 up
route add default gw 172.16.1.1
  • Docker virt-manager
#VNC-virt-manager
docker run --name manager -p 5901:5901 taosnet/virt-manager

VNC Viewer

docker exec -ti manager ssh-keygen -t rsa -b 4096
docker exec -ti manager cat /root/.ssh/id_rsa.pub
  • CPU缓存绑定进程
taskset -cp 1 <pid>
  • IO调度算法 SSD->Noop 目前 Linux 上有如下几种 I/O 调度算法 1.noop(No Operation) - 通常用于内存存储的设备。 2.cfq(Completely Fair Scheduler ) – 完全公平调度器。进程平均使用IO带宽。 3.Deadline – 针对延迟的调度器,每一个 I/O,都有一个最晚执行时间。 4.Anticipatory – 启发式调度,类似 Deadline 算法,但是引入预测机制提高性能。
#CentOS 6.x
dmesg | grep -i scheduler
#CentOS 7.x
dmesg | grep -i scheduler
  • Linux Compress
# 将0填充到创建的tmpfile中,直到0占满整个空间,需要停止所有进程
touch tmpfile
dd if=/dev/zero of=/tempfile
rm -f /tempfile
virsh shutdown EB-3
nohup qemu-img convert -O qcow2 -c image.qcow2 image_compressed.qcow2 &
qemu-img convert -O qcow2 -c image.qcow2 image_compressed.qcow2
sdelete -z
#仅对C盘缩减
sdelete -z C: 
virsh shutdown EB-3
nohup qemu-img convert -O qcow2 -c image.qcow2 image_compressed.qcow2 &
qemu-img convert -O qcow2 -c image.qcow2 image_compressed.qcow2