虚拟机的迁移:
宿主机 KVM VMWare
冷迁移:需要关机
cd images
scp 域.qcow2 ip:/root rsync -avz比scp更快
“若是也能c” 哈哈哈
热迁移:
宿主机 KVM VMWare
NFS
为什么说很快?因为nfs挂载在上面就像在自己电脑上面移动文件一样快
黄老师是192.168.1.250
吴老板是192.168.1.133
康老板是192.168.1.181
康老板:
mkdir /kvm
chmod 777/kvm
vim/etc/exports
/kvm192.168.1.0/24(rw,no_root_squash)
systemctlrestart nfs
黄老师:
showmount -e192.168.1.181
强调不要手动挂,要自动挂
吴老板、黄老师:
选中虚拟机-编辑-kvm-添加新存储池:名称:kvm;类型netfs;前进,主机名:康老板ip,源路径:康老板挂载的文件夹/kvm;(目标路径就是本机宿主机的那个路径)
黄老师:
ssh到吴老板,ssh到康老板认证嘛
创建存储卷:名称:nfs你的系统将会装在这里面;最大容量40G
复制位置
ll 粘贴,你的系统将会装在这里面
QEMU创建新的虚拟机,注意管理的路径是kvm的那个目录,
连接SHH 1.133,要迁移的虚拟机-右键-迁移-模式-直连地址是对象ip,cache!none
磁盘-性能选项-缓存模式调为none,需要重启
nfs共享的目录正常权限755,不要设置为777
重启存储池
存储卷那个卷,最终的迁移的磁盘的系统文件
迁移完了之后用virsh list --all命令看的到但是在virt-manager里面看不到是因为你没有重启libvirtd服务,无可用连接就需要发公钥,免密操作呀。模式:隧道
/etc/libvirt/qemu/autostart里面都是软链接,可以直接给域做一个软链接就完成了自动启动
能够进QEMU的虚拟机的方法:
virt-manager、virt-viewer需要图形化的VMWare虚拟机
vnc的两种功能:
1.autoport自动端口随机生成端口
2.固定端口
consolecentos6(grub)不需要ip和图形化界面
vim/etc/default/grub --> 将倒数第二行最后面的引号里面加上console=ttyS0
grub2-mkconfig-o /etc/grub2.cfg生效
virtBox需要经过dnat端口转发,有人访问22号端口,要映射那个人,而hostonly可以直接连接ssh
迁移p2v v2v,很少用
虚拟化的迁移分为两种:冷迁移、热迁移
冷迁移:有图形界面的话,只拷镜像即可。没有图形界面的话要拷镜像和配置文件
存储很重要、docker、容器、集群、20k、30k
LAMP一键脚本!要多久?
容器:智能伸缩,4个可销毁两个
node1挂了,物理机要做迁移,快速迁移也需要共享存储
/var/lib/libvirt/images/kvm
nfs挂载的rw后面加一个sync同步的权限
systemctlrestart nfs
老师:
mount -t nfs192.168.1.181:/kvm /var/lib/libvirt/images/kvm
存储池是否活跃:virt-manager
umount/var/lib/libvirt/images/kvm,是因为
存储池是否活跃:virt-manager
连接详情-添加存储池:nfs,前进,nfs的ip,netfs /kvm
存储卷:nfs.qcow2,管理-虚拟化-nfs.qcow2存储卷
网络:
vmware:bridge、hostonly、nat三种网络类型
外部 host宿主机 vm
连接SHH 1.133,要迁移的虚拟机-右键-迁移-模式-直连地址是对象ip,cache!none
磁盘-性能选项-缓存模式调为none,需要重启
nfs共享的目录正常权限755,不要设置为777
重启存储池
桥接:
vm1
host1:1.1 host2:1.250 vm2
都能访问
仅主机模式hostonly的效果:
外部 host真机 vm1 vm2
同一子网能相互访问,一旦启动hostonly就会多出来一个网卡,这个网卡是不同子网的,用于和内部通信
外部能与host真机通信,host真机能与vm1或vm2互相通信,但是外部不能与vm1或vm2通信,注意dhcp要添加一个路由route add default gw192.168.123.1 eth0,静态的话要写GATEWAY=192.168.123.1
NAT:
kvm1:172.16.0.10/16
host1:1.1 host2:1.250和172.16.0.1/16 kvm2:172.16.0.20/16
vm1和vm2能从右到左甚至到云都能通信,从里面走出来哪里都能去,但是host1不能直接访问kvm1或kvm2
网桥bridge:
bridge id是用来算二层生成树的,防止回路
公司搭vping,子网掩码需要在网卡配置文件里面写上,PREFIX=24这个不要省略了,所以飞哥就要在我上面写子网掩码了。
图形化代替virsh iface-bridge eth0br0:
编辑-连接详情
brctl --help
brctl addbrbr0 添加网桥
brctl addifeth0 br0 添加接口
brctl show 查看网桥
brctl delbr 正在用那个网卡的时候不能删除网卡的网桥,所以没有使用的时候可删
ifconfig br0down
brctldelif (delete iface删除接口的意思)
QEMU里面的网卡设置:大小写的问题:左大右小
br0网桥:
DEVICE="br1"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="static"
IPADDR="192.168.1.250"
PREFIX=24
STP="on"
DELAY="0.0"
物理网卡:
DEVICE=enp3s0
ONBOOT=yes
BRIDGE="br1"
热迁移:
1.nfs共享/kvm192.168.1..0/24(....)
2.kvm1添加存储池
3.kvm2添加存储池,直接用ssh认证一下这两个机器,添加存储卷,创建新的虚拟机
4.用kvm2去QEMU SSH kvm1
怎么将QEMU新创建的虚拟机将NAT模式改为桥接模式?答:点灯泡(QEMU的桥接不需要插网线),宿主机绑定的是哪个网段就只能ping通那个网段
ping -I br1192.168.122.39强制指定接口去ping
编辑-虚拟网络-是NAT的,+ host-only 前进,注意这一步如果去掉IPV4的勾就会导致host-only宿主机不会生成一个与QEMU里面的网卡,就是只能QEMU与QEMU之前通信了,我们这里不去掉这个IPV4的勾,前进,完成
设置网卡dhcp,点灯泡,选host-only的,重启network
QEMU上 都在/etc/libvirt/qemu/networks里面
NAT和HOST-ONLY都在这个目录下
cp default.xml my-nat.xml
vim my-nat.xml
virshnet-define my-nat.xml定义网络NAT,define后面只能加xml文件
virshnet-start my-nat开始
virshnet-autostart my-nat标记为自动启动(编辑-虚拟网络-自动启动)
cphost-only.xml only.xml
vim only.xml删掉mod那一行就是仅主机模式了
virshnet-define only.xml定义网络NAT,define后面只能加xml文件
virshnet-start only网络运行
virshnet-autostart only标记为自动启动
吴老板QEMU的NAT ping只ping的通自己的宿主机,ping不通外网,怎么办?需要手动重新
sysctl -a |grep ip_for网卡有多张就要开启这个路由转发(我想起来了这个之前老郭教我们做过路由route的实验,route机就要开启这个)
net.ipv4.ip_forward= 1
net.ipv4.ip_forward_use_pmtu= 0
在vim /etc/sysctl.conf里面加一行这个net.ipv4.ip_forward = 1
临时的:
echo 1 >/proc/sys/net/ipv4/ip_forward
永久:
echo “net.ipv4.ip_forward= 1” >> /etc/sysctl.conf
sysctl -p生效
磁盘的镜像管理:
qemu-img -h可以看到支持的镜像文件后缀格式
raw 支持稀疏文件,不支持快照
qcow2 支持后端镜像backing_file(快速创建虚拟机),支持快照
cd/var/lib/libvirt/images
qemu-imginfo 域.qcow2 可以查看镜像的格式、磁盘大小
镜像的格式转换未完待续....
创建镜像文件,空的:
这个空的磁盘镜像有什么用?
1.可以将创建虚拟机的镜像放里面
2.可以给磁盘扩容
qemu-imgcreate -f qcow2 -o size=20G test1.qcow2 是输出。
qemu-imginfo test1.qcow2格式是-f -o是大小。
还可以这样写:
qemu-imgcreate -f qcow2 test1.qcow2 20G将大小写到后面也行
qemu-imginfo test1.qcow2 查看
qemu-imgcreate -f qcow2 -o preallocation=full,size=8G c3.img这个也是创建空的镜像文件
克隆装机、pxe装机都很慢怎么办?使用后端镜像:
winxp后端镜像
(20G)
winxp winxp winxp 差异镜像
(kb) (kb) (kb)
A B C
启动winxp差异镜像的时候太小了,几十kb,启动不了,所以要去找模板
A创建新文件,母模板上面不会跟着创建,其他上面也不会跟着创建
如何创建后端镜像:
先将QEMU里的虚拟机关机,比如一个虚拟机的镜像是centos7.0.qcow2
qemu-imgcreate -f qcow2 (row也行) -b centos7.0.qcow2 mj1.qcow2
qemu-imginfo mj1.qcow2查看
QEMU-新建虚拟机导入现有磁盘映像-前进-default里面
这个后台镜像相当于软链接克隆
bash回车就是进入子shell,exit就回来了,可以达到修改主机名看到效果的作用
1.qemu-imgcreate -f qcow2 (row也行) -b centos7.0.qcow2 mj1.qcow2创建后背镜像文件
2.用配置文件创建网络:
cd/etc/libvirt/qemu
ls
cppxe001.xml mj1.xml
vim 域.xml
要改的东西
name
uuid
source 镜像绝对路径改正确,
网络的mac改一下
virsh definemj1.xml
virsh start mj1开机
[mac]
生成mac地址:openssl rand -hex 6|sed -r -e 's#(..)#\1:#g;s#.$##'
openssl rand-hex 6 |sed -r 's#(..)(..)(..)(..)(..)(..)#52:54:\3:\4:\5:\6#'
前面两个mac地址参数可以不用改
[uuid]
uuidgen
1.我需要qcow2的镜像文件
2.根据qcow2的域照着全局配置的模板写一个配置文件
3.激活配置文件virsh define 域.xml
这样虚拟机就创建成功了
# 创建一个QEMU虚拟机的脚本
# 在宿主机里面执行该脚本
read -p"想要软链接克隆哪个虚拟机:"motherName
read -p"为新虚拟机起一个名字:"mjName
uuidMake=`uuidgen`
macAddr=`opensslrand -hex 6 |sed -r 's#(..)(..)(..)(..)(..)(..)#52:54:\3:\4:\5:\6#'`
cd/var/lib/libvirt/images
qemu-imgcreate -f qcow2 -b ${motherName}.qcow2 ${mjName}.qcow2
cd/etc/libvirt/qemu
\cp${motherName}.xml ${mjName}.xml
sed -i -r -e"/<name>/s#${motherName}#${mjName}#" -e "/uuid/c\ <uuid>${uuidMake}</uuid>" -e"/images/s#${motherName}.qcow2#${mjName}.qcow2#" -e"/<mac/c\ <macaddress='${macAddr}'/>" ${mjName}.xml
virsh define${mjName}.xml
# 删除指定QEMU虚拟机的脚本
# 在宿主机里面执行该脚本
read -p"想要删除哪个虚拟机:"delName
virshdestroy ${delName}
virshundefine ${delName}
rm -rf/var/lib/libvirt/images/${delName}.qcow2
udev
统一的机器将提供完全一样的网站
网卡的心跳系统
udev就能改硬件的名字,就是让每一个网卡的名字都改成eth0
ip、uuid、mac地址不能一样,不然起不来有冲突,所以设置为dhcp
配置yum源
模板机:console=ttyS0,避免进不去
SSH链接慢bim/etc/ssh/sshd_config
GSSAPIAuthenticationno 关掉
vim/etc/ssh/ssh_config
ask那里yes/no
<graphicstype='vnc' port='-1' autoport='yes' listen='0.0.0.0' keymap='en-us'>
vncviewerip:5901
QEMU快照
virshsnapshot-create-as mj2 mj2Init创建快照ls /var/lib/libvirt/qemu/snapshot/mj2快照文件所在地
snapshot-list查看快照的列表
virsh snapshot-revert mj2 mj2Init还原快照 或下面的
virsh snapshot-revert cs1 --snapshotname 12312414
virsh snapshot-current mj2 查看当前快照的内容
就是将全局配置文件做个备份而已