#####################################################################################
#安装系统
#####################################################################################
# 按F2进入BIOS
# 在CPU 配置中的socket1和socket0中查看是否激活了Inter vt-d的功能
# 网络配置接口 ens117f3
# 参考该服务器的接口配置 /etc/sysconfig/network-scripts/ifcfg-ens117f3
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DEVICE=eno1
HWADDR=6c:0b:84:92:e0:32
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.111.95.32
NETMASK=255.255.192.0
GATEWAY=10.111.127.254
IPV6INIT=yes
IPV6_AUTOCONF=no
DHCPV6=no
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
如果添加网卡到网桥br0
ifcfg-br0
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DEVICE=br0
TYPE=bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.111.95.32
NETMASK=255.255.192.0
GATEWAY=10.111.127.254
DNS1=10.96.1.18
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ifcfg-eno1
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
TYPE=Ethernet
DEVICE=eno1
NAME=eno1
HWADDR=6c:0b:84:92:e0:32
ONBOOT=yes
BOOTPROTO=none
DEFROUTE=yes
BRIDGE=br0
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#重启网络服务
systemctl restart network.service
# 添加路由
route add default gw 10.74.120.1
route add -net 10.74.0.0 netmask 255.255.0.0 gw 10.74.120.1
#查看libvirt的版本
virsh version
#解除网桥绑定
virsh iface-unbridge br0
#查看libvirt所管理的接口
virsh iface-list
#将接口添加到网桥
virsh iface-bridge ens117f3 br0
virsh iface-bridge enp0s25 br0
#建立/dev/loop0
mount -o loop win7.iso /mnt
#修改libvirt权限
vim /etc/libvirt/qemu.conf
# 修改如下字段
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
user = "root"
group = "root"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
systemctl restart libvirtd.service
systemctl status libvirtd.service
#然后再注释掉这两行
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#user = "root"
#group = "root"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
systemctl restart libvirtd.service
systemctl status libvirtd.service
#修改
#/usr/lib/udev/rules.d/80-kvm.rules 参考40刀片配置
# 关闭SELINUX
setenforce 0
vim /etc/selinux/config
# 修改如下字段
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
SELINUX=disabled
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#查看当前状态
getenforce
#查看KVM模块
lsmod | grep kvm
#建立/dev/loop0
mount -o loop win7.iso /mnt
#系统就会自动建立/dev/loop0
#使用了/dev/loop0后就会自动产生/dev/loop1
#查看已经建立的/dev/loop
losetup -l
#查看下一个建立的/dev/loopn
losetup -f
losetup -o 32256 /dev/loop0 /home/kvm/iso/CgelImg
losetup -l
mount -o loop /dev/loop0 /home/kvm/mnt
######################################################################################
# 关闭防火墙
######################################################################################
service firewalld stop
systemctl disable firewalld.service
systemctl is-enabled firewalld.service
######################################################################################
# Samba配置
######################################################################################
yum install samba.x86_64
rpm -qa | grep samba
smbpasswd -a root
vim /etc/samba/smb.conf
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[root]
path = /home/liufeng
available = yes
browsealbe = yes
public = yes
writable = yes
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
service smb restart
service nmb restart
systemctl enable smb.service
systemctl enable nmb.service
#修改cgel_lf.xml
#####################################################################################
#挂载IMAGE文件中的内容
#####################################################################################
mkdir mnt
losetup -o 32256 /dev/loop2 iso/CgelImg
mount -o loop /dev/loop2 mnt
#####################################################################################
#通过修改GRUB来选择启动不同的内核和文件系统
#####################################################################################
cd mnt
[root@zxvei-b2 image]# cat grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/hda
default=0
timeout=5
title CGEL4.x
root (hd0,0)
kernel /bzImage ro root=/dev/ram console=ttyS0,115200
initrd /initrd_wyc.gz
#####################################################################################
#通过 qemu-img 制作虚拟硬盘
#####################################################################################
qemu-img create -f raw cgel.img 2G
qemu-img create -f qcow2 -o size=20G win8-64.img
qemu-img create -f qcow2 -o size=20G win8-32.img
qemu-img create -f qcow2 -o size=20G win81-32.img
qemu-img create -f qcow2 -o size=10G CentOS65-32.img
#qemu-img create -f qcow2 -b 1G.img temp.qcow
#qemu-img create -f qcow2 -o size=10G temp.qcow
mkfs -t ext3 cgel.img
# 修改backing file的位置
qemu-img rebase cirros.disk -b /home/kvm/nfv/cirros/backup.disk
#####################################################################################
#通过 dd 制作虚拟硬盘
#####################################################################################
# 1024 * 1024 K = 1048576 K = 1G
dd if=/dev/zero of=1G.img bs=1k count=1048576
mkfs.ext2 1G.img
#修改cgel_lf.xml
#进入虚拟机后
mkdir /mnt
mount /dev/hdb /mnt
#####################################################################################
#修改文件系统内容
#####################################################################################
mkdir rootfs
cp mnt/initrd_wyc.gz rootfs/
cd rootfs
# 解开文件系统
gunzip -d initrd_wyc.gz
cpio -i < initrd_wyc
rm initrd_wyc
#修改文件系统内容
#..................
#压缩文件系统,并替换老的文件系统
find . | cpio -H newc -o | gzip -9 > ../initrd_cpio_glibc.gz
cd ..
mv initrd_cpio_glibc.gz mnt/
#####################################################################################
# 创建并启动虚拟机
#####################################################################################
virsh create cgel.xml
#查看启动命令和日志
cat /var/log/libvirt/qemu/cgel_lf_kvm.log
# 看虚拟机情况
virsh list
#停止虚拟机
virsh destroy 43
#####################################################################################
#登陆虚拟机
#####################################################################################
telnet 0.0.0.0 5000
#挂载硬盘
mkdir /mnt
mount /dev/hdb /mnt
sync
#查看硬盘情况
mount
fdisk -l
#配置网络
ifconfig eth0 10.74.169.73
route add -net 10.74.0.0 netmask 255.255.0.0 gw 10.74.169.254
route -n
############################################
# VNC管理命令
############################################
vncserver -list
vncserver -kill :2
#####################################################################################
# 手工启动QEMU
#####################################################################################
#/usr/local/bin/qemu-system-x86_64 -m 2048 -smp 2 -kernel my/bzImage -initrd my/initrd_cpio_glibc.gz
/usr/local/bin/qemu-system-x86_64 -m 2048 -smp 2 -kernel my/bzImage -initrd my/initrd_cpio_glibc.gz -vnc :2
/usr/local/bin/qemu-system-x86_64 -m 2048 -smp 2 my/bzImage
#####################################################################################
# 图形界面安装WIN7
#####################################################################################
# 下载ISO ISO 文件所在位置 10.74.169.44 root/root123
# 44 上使用: scp win7.img root@10.74.169.72:/home/liufeng/
# 制作硬盘
qemu-img create -f raw win7.img 20G
# 制作XML文件,启动命令解释见win7.xml
# 设置VNC,realvnc安装好后,避免连接虚拟机一闪而过,依次选择“options”->"advanced"->"expert"->"colourlevel",将这项改为“full”即可
#启动虚拟机
virsh create xml/win7.xml
# 连接VNC 10.74.169.72:5910
# 后面驱动去掉从CDROM启动,并直接使用win7.img即可
# win7 激活密钥
J783Y-JKQWR-677Q8-KCXTF-BHWGC
C4M9W-WPRDG-QBB3F-VM9K8-KDQ9Y
2VCGQ-BRVJ4-2HGJ2-K36X9-J66JG
MGX79-TPQB9-KQ248-KXR2V-DHRTD
FJHWT-KDGHY-K2384-93CT7-323RC
THHH2-RKK9T-FX6HM-QXT86-MGBCP
KH2J9-PC326-T44D4-39H6V-TVPBY
D8BMB-BVGMF-M9PTV-HWDQW-HPCXX
TFP9Y-VCY3P-VVH3T-8XXCC-MF4YK
236TW-X778T-8MV9F-937GT-QVKBB
87VT2-FY2XW-F7K39-W3T8R-XMFGF
KH2J9-PC326-T44D4-39H6V-TVPBY
TFP9Y-VCY3P-VVH3T-8XXCC-MF4YK
J783Y-JKQWR-677Q8-KCXTF-BHWGC
C4M9W-WPRDG-QBB3F-VM9K8-KDQ9Y
2VCGQ-BRVJ4-2HGJ2-K36X9-J66JG
MGX79-TPQB9-KQ248-KXR2V-DHRTD
FJHWT-KDGHY-K2384-93CT7-323RC
# 网络IP 10.74.169.75 网关 10.74.169.254 DNS 10.41.132.9
#####################################################################################
# 图形界面安装RHEL
#####################################################################################
# 下载ISO ISO 文件所在位置 10.74.169.44 root/root123
# 44 上使用: scp rhel-server-7.0-x86_64-dvd.iso root@10.74.169.72:/home/liufeng/iso
# 制作硬盘
qemu-img create -f raw rhel.img 20G
# 制作XML文件,启动命令解释见rhel_lf.xml
#启动虚拟机
virsh create xml/rhel_lf.xml
# 连接VNC 10.74.169.72:5910
# 后面驱动去掉从CDROM启动,并直接使用rhel_lf.img即可
# 选择GUI 安装,选择必须要的服务;选择
# 网络IP 10.74.169.75 网关 10.74.169.254 DNS 10.41.132.9
cd /etc/sysconfig/network-scripts
vi ifcfg-ens3
>>HWADDR=52:54:00:85:D2:BA
>>TYPE=Ethernet
>>BOOTPROTO=static
>>DEFROUTE=yes
>>PEERDNS=yes
>>PEERROUTES=yes
>>IPV4_FAILURE_FATAL=no
>>IPV6INIT=yes
>>IPV6_AUTOCONF=yes
>>IPV6_DEFROUTE=yes
>>IPV6_PEERDNS=yes
>>IPV6_PEERROUTES=yes
>>IPV6_FAILURE_FATAL=no
>>NAME=ens3
>>UUID=c59f0d06-7774-499a-8c56-47dfe61dbf39
>>ONBOOT=yes
>>IPADDR=10.74.169.76
>>NETMASK=255.255.254.0
>>GATEWAY=10.74.169.254
#################################################3
# 迁移的步骤
###################################################
# NFS操作
#主机1:10.74.169.79
#主机2:10.74.169.72
#在主机1上启动nfs服务器
vim /etc/exprots 添加内容:/home/wyc/CGSL-V4 10.74.169.0/24(rw)
systemctl start nfs-server.service
#主机2上执行操作:
mount 10.74.169.79:/home/wyc/CGSL-V4 /home/wyc/CGSL-V4
mount 10.74.120.168:/home/cgel_img_nfs /home/cgel_img_nfs/
mount 10.74.120.219:/home/iso /home/iso
losetup -o 32256 /dev/loop0 /home/kvm/iso/CgelImg
losetup -l
mount -o loop /dev/loop0 /home/kvm/mnt
#制作登陆key在主机1上执行下列命令,主机2上也可执行(ssh登录不用输入密码)。
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.74.120.172
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.74.120.153
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.74.120.171
#设定主机名称
hostnamectl set-hostname lf-127
reboot
#修改uuid,解决error: internal error: Attempt to migrate guest to the same host 00020003-0004-0005-0006-000700080009问题
#修改后需要重启libvirtd
sed -i "/#host_uuid/ahost_uuid = \"`uuidgen`\"" /etc/libvirt/libvirtd.conf
systemctl restart libvirtd.service
systemctl status libvirtd.service
#添加对端主机名称的DNS,解决error: Unable to resolve address 'zxvei-b2' service '49152': Name or service not known
vim /etc/hosts 添加:
10.74.120.172 zxvei-b2
10.74.121.127 lf-127
#开始迁移
virsh migrate cgel_kvm_nfs --live qemu+ssh://10.74.120.172/system --unsafe --verbose
virsh migrate cgel_kvm_nfs --live qemu+ssh://10.74.121.127/system --unsafe --verbose
virsh migrate rhel_kvm_nfs --live qemu+ssh://10.74.120.172/system --unsafe --verbose
virsh migrate rhel_kvm_nfs --live qemu+ssh://10.74.121.127/system --unsafe --verbose
virsh migrate rhel_kvm_nfs --live qemu+ssh://10.74.120.171/system --unsafe --verbose
virsh migrate rhel_kvm_nfs --live qemu+ssh://10.74.121.127/system --unsafe --verbose
virsh migrate rhel_kvm_nfs --live qemu+ssh://10.74.120.9/system --unsafe --verbose
virsh migrate rhel_kvm_nfs --live qemu+ssh://10.74.121.8/system --unsafe --verbose
virsh migrate win7_kvm_nfs --live qemu+ssh://10.74.120.172/system --unsafe --verbose
virsh migrate win7_kvm_nfs --live qemu+ssh://10.74.121.127/system --unsafe --verbose
virsh migrate win7_kvm_nfs --live qemu+ssh://10.74.120.171/system --unsafe --verbose
virsh migrate win7_kvm_nfs --live qemu+ssh://10.74.121.127/system --unsafe --verbose
172 <==> 171
virsh migrate win7_kvm_nfs --live qemu+ssh://10.74.120.172/system --unsafe --verbose --compressed
virsh migrate win7_kvm_nfs --live qemu+ssh://10.74.120.171/system --unsafe --verbose --compressed
virsh migrate win7_kvm_nfs --live qemu+ssh://10.74.120.172/system --unsafe --verbose tcp://10.74.120.172
virsh migrate win7_kvm_nfs --live qemu+ssh://10.74.120.171/system --unsafe --verbose tcp://10.74.120.171
virsh migrate win7_kvm_nfs --live qemu+ssh://10.74.120.9/system --unsafe --verbose tcp://10.74.120.9
virsh migrate win7_kvm_nfs --live qemu+ssh://10.74.120.8/system --unsafe --verbose tcp://10.74.120.8
virsh migrate win7_kvm_nfs --live qemu+ssh://192.168.0.9/system --unsafe --verbose tcp://192.168.0.9
virsh migrate win7_kvm_nfs --live qemu+ssh://192.168.0.8/system --unsafe --verbose tcp://192.168.0.8
127 <==> 153
virsh migrate win7_nfs_kvm --live qemu+ssh://10.74.120.153/system --unsafe --verbose
virsh migrate win7_nfs_kvm --live qemu+ssh://10.74.121.127/system --unsafe --verbose
virsh migrate rhel_nfs_kvm --live qemu+ssh://10.74.120.153/system --unsafe --verbose
virsh migrate rhel_nfs_kvm --live qemu+ssh://10.74.121.127/system --unsafe --verbose
virsh migrate cgslv5_kvm_nfs --live qemu+ssh://10.74.120.153/system --unsafe --verbose
virsh migrate cgslv5_kvm_nfs --live qemu+ssh://10.74.121.127/system --unsafe --verbose
105 <==> 106
virsh migrate centos_kvm_vm --live qemu+ssh://192.168.2.106/system --unsafe --verbose
virsh migrate centos_kvm_vm --live qemu+ssh://192.168.2.105/system --unsafe --verbose
virsh migrate centos_kvm_vm --live qemu+ssh://192.168.2.106/system --unsafe --verbose
#XBEZLE
virsh migrate centos_kvm_vm --live qemu+ssh://192.168.2.105/system --unsafe --verbose --compressed
#多线程压缩迁移
virsh migrate centos_kvm_vm --live qemu+ssh://192.168.2.105/system --unsafe --verbose --comp-methods mt --comp-mt-level 1 --comp-mt-threads 12 --comp-mt-dthreads 3
#libvirt中调试MT迁移功能需要的断点
b qemuMonitorJSONSetMigrationCompression
b qemu_monitor_json.c:297
p cmdstr
b qemuMonitorJSONSetMigrationCapability if capability==QEMU_MONITOR