坚持#第281天~KVM3-QEMU虚拟机的热迁移、桥接、NAT、仅主机模式、创建/删除一个QEMU虚拟机的脚本、

虚拟机的迁移:

 

宿主机 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"//s#${motherName}#${mjName}#" -e "/uuid/c\  ${uuidMake}" -e"/images/s#${motherName}.qcow2#${mjName}.qcow2#" -e"/" ${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

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 查看当前快照的内容
就是将全局配置文件做个备份而已

你可能感兴趣的:(坚持#第281天~KVM3-QEMU虚拟机的热迁移、桥接、NAT、仅主机模式、创建/删除一个QEMU虚拟机的脚本、)