1.环境准备
宿主机:host1 192.168.10.116 host2 192.168.10.111 客户虚拟机:guest-host1 23.23.23.101 httpd #充当后端服务器 guest-host2 23.23.23.102 httpd #充当后端服务器 guest-host3 23.23.23.107 192.168.10.200 haproxy+keepalived #前端调度及高可用 guest-host4 23.23.23.108 192.168.10.201 haproxy+keepalived #前端调度及高可用 宿主机host1网桥:br0 23.23.23.200 #内网 br1 192.168.10.116 #外网 宿主机host2网桥:br0 23.23.23.201 #内网 br1 192.168.10.111 #外网
2.网络环境搭建,以宿主机host1为例
1)将eth0和eth1网卡绑定到bond0上
[root@centos7 network-scripts]#vim ifcfg-bond0 OOTPROTO=static NAME=bond0 DEVICE=bond0 ONBOOT=yes BONDING_MASTER=yes BONDING_OPTS="mode=1 miimon=100" #每间隔100毫秒心跳检测 BRIDGE=br0 #绑定的内网网桥br0上
2)将eth2和eth3网卡绑定到bond1上
root@centos7 network-scripts]#vim ifcfg-bond1 OOTPROTO=static NAME=bond1 DEVICE=bond1 ONBOOT=yes BONDING_MASTER=yes BONDING_OPTS="mode=1 miimon=100" #每间隔100毫秒心跳检测 BRIDGE=br1 #绑定的内网网桥br1上
3)分别配置eth0和eth1网卡指向bond0上
[root@centos7 network-scripts]#vim ifcfg-eth0 OOTPROTO=static NAME=eth0 DEVICE=eth0 ONBOOT=yes NM_CONTROLLED=no MASTER=bond0 USERCTL=no SLAVE=yes [root@centos7 network-scripts]#vim ifcfg-eth1 OOTPROTO=static NAME=eth1 DEVICE=eth1 ONBOOT=yes NM_CONTROLLED=no MASTER=bond0 USERCTL=no SLAVE=yes
4)分别配置eth2和eth3网卡指向bond0上
[root@centos7 network-scripts]#vim ifcfg-eth2 OOTPROTO=static NAME=eth2 DEVICE=eth2 ONBOOT=yes NM_CONTROLLED=no MASTER=bond1 USERCTL=no SLAVE=yes [root@centos7 network-scripts]#vim ifcfg-eth3 OOTPROTO=static NAME=eth3 DEVICE=eth3 ONBOOT=yes NM_CONTROLLED=no MASTER=bond1 USERCTL=no SLAVE=yes
5)分别配置网桥br0和br1
[root@centos7 network-scripts]#vim ifcfg-br0 TYPE=Bridge #指明桥接网卡 BOOTPROTO=static NAME=br0 DEVICE=br0 ONBOOT=yes IPADDR=23.23.23.200 #桥接网卡地址 NETMASK=255.255.0.0 [root@centos7 network-scripts]#vim ifcfg-br1 TYPE=Bridge BOOTPROTO=none NAME=br1 DEVICE=br1 ONBOOT=yes IPADDR=192.168.10.116 NETMASK=255.255.255.0 GATEWAY=192.168.10.1
6)重启网络使网卡生效
[root@centos7 network-scripts]#systemctl restart network [root@centos7 network-scripts]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000 link/ether 00:0c:29:16:56:39 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000 link/ether 00:0c:29:16:56:39 brd ff:ff:ff:ff:ff:ff 4: eth2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond1 state UP group default qlen 1000 link/ether 00:0c:29:16:56:4d brd ff:ff:ff:ff:ff:ff 5: eth3: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond1 state UP group default qlen 1000 link/ether 00:0c:29:16:56:4d brd ff:ff:ff:ff:ff:ff 6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP group default qlen 1000 link/ether 00:0c:29:16:56:39 brd ff:ff:ff:ff:ff:ff inet6 fe80::20c:29ff:fe16:5639/64 scope link valid_lft forever preferred_lft forever 7: bond1: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master br1 state UP group default qlen 1000 link/ether 00:0c:29:16:56:4d brd ff:ff:ff:ff:ff:ff inet6 fe80::20c:29ff:fe16:564d/64 scope link 8: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:0c:29:16:56:39 brd ff:ff:ff:ff:ff:ff inet 23.23.23.200/16 brd 23.23.255.255 scope global br0 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe16:5639/64 scope link valid_lft forever preferred_lft forever 9: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:0c:29:16:56:4d brd ff:ff:ff:ff:ff:ff inet 192.168.10.116/24 brd 192.168.10.255 scope global br1 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe16:564d/64 scope link valid_lft forever preferred_lft forever
7)在以相同的网络搭建方式搭建宿主机host2,此处省略
3.分别在宿主机host1和宿主host2上搭建KVM虚拟化环境,并创建虚拟机,以host1为例
1)启动宿主机之前必选勾选上虚拟化功能
2)根据机器自身条件分配的内存和磁盘空间越大越好,为跑多个虚拟机做准备![]
3)查看cpu是否支持虚拟化等指令集功能,如vmx
[root@centos7 network-scripts]#cat /proc/cpuinfo …… …… flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm tpr_shadow vnmi ept vpid tsc_adjust arat …… ……
4)KVM虚拟化模块是内置在 linux 的内核中的,所以无需下载此模块包,只需安装KVM相关的命令包
[root@centos7 ~]# yum install qemu-kvm qemu-kvm-tools libvirt virt-manager virt-install -y qemu-kvm qemu-kvm-tools #模拟轻量级IO设备,如鼠标、键盘等 libvirt #启动虚拟机的管理主程序 virt-manager #web界面的管理程序,建立远程连接 virt-install #一组命令,利用virt-install安装虚拟机
5)启动虚拟机的管理主程序 libvirtd
[root@centos7 ~]# systemctl start libvirtd [root@centos7 ~]# systemctl enable libvirtd
6)本地主机虚拟化网卡,可以访问外部网络,外部网络不可以访问此虚拟网卡,是NAT模式
[root@centos7 ~]# ifconfig virbr0 flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255 ether 52:54:00:89:c5:75 txqueuelen 1000 …… #virbr0:当启动libvirted会生成的内置虚拟网卡,相当于一个内置路由器.
7)创建虚拟机磁盘镜像文件
[root@centos7 ~]# qemu-img create -f raw /var/lib/libvirt/images/centos-only.raw 5G #磁盘格式为raw,存放的路径为默认路径,磁盘名称为centos-only.raw 大小为5G的磁盘
8)xshell远程连接上传centos镜像文件
9)上传成功
10)安装虚拟机
[root@centos7 ~]# virt-install --virt-type kvm --name centos7-only --memory 600 --vcpus 2 --cdrom=/data/centos-iso/CentOS-7-x86_64-Minimal-1511.iso --disk path=/var/lib/libvirt/images/centos.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole 选项说明: --virt-type #指定虚拟化类型 --name # 命名虚拟机的名称 --memory #虚拟机运行内存大小 --vcpus #虚拟机cpu个数 -cdrom #指定镜像文件路径 --disk path 指定磁盘文件路径 --network network=default #指定网络类型为默认模式,默认是NAT模式 --graphics vnc,listen=0.0.0.0 开启图形化,支持远程连接VNC,以及监听所有端口 --noautoconsole 开机不自动连接控制台
11)刚开始安装时迅速连接虚拟机的控制界面进行手动安装,有两种方法
方法一:使用VNC远程连接进行控制
方法二:使用命令virt-manager进入控制模拟图形窗口进行安装
[root@centos7 ~]# virt-manager
设置内核参数net.ifnames=0 biosdevname=0 来统一网卡命名eth*
安装成功重启
点击虚拟机详情
查看已安装的虚拟机即运行状态
11)也可以在virt-manager管理端直接创建新的虚拟机
选择创建新的虚拟机
选择本地安装
选择镜像文件路径
配置虚拟机的运行内存和CPU数量
点击选择定制存储磁盘,也可以选择创建一个新的镜像磁盘
选择事先用命令qemu-install新创建的磁盘镜像文件centos7-bak.raw
配置好网卡,点击确认安装完成虚拟机的安装
12)还可以选择克隆一个虚拟机
鼠标右键选择clone
点击clone进行克隆安装
查看克隆后的虚拟机
4.分别在宿主机host1和宿主host2上配置后端虚拟机httpd服务和前端虚拟机调度服务的网络IP,以host1为例
启动虚拟机两种方式:
方式一:安装电源管理包实现命令行启动或关闭虚拟机
yum install acip -y #安装电源管理包
virsh list --all #显示所有已创建的虚拟机并显示运行的状态
virsh start cento7-only #开启指定的虚拟机
virsh shutdown cento7-only #关闭指定的虚拟机
方式二:直接使用virt-manager在图形模拟界面操作虚拟机
1)centos7-only虚拟机作为geust-host1后端httpd服务并配置网络IP
选择Detail查看更改此虚拟机的硬件配置
选择连接到本地内网桥接网卡br0,网卡设备模式为virtio半虚拟化模式
在配置网卡eth0绑定静态Ip
网卡配置好后重启网络,查看geust-host1的ip地址是否生效
定义后端服务httpd的页面访问
[root@centos7 ~]# echo 23.23.23.101 > /var/www/html/index.html
2)centos7-only-clone虚拟机作为geust-host3前端调度服务并配置网络IP
将其中一个网卡连接到内网网桥br0
另一个网卡连接到外网网桥br1
配置好haproxy和keepcalived等配置文件实现高可用调度 绑定一个虚拟VIP 192.168.10.230
5.两台宿主机搭建完成之后再进行浏览访问测试实现高可用调度
第一次访问
第二次访问
以上所述就是小编给大家介绍的《KVM实现haproxy+keepalived高可用调度分离小架构》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 集群调度框架的架构演进过程
- 大数据平台任务调度与监控系统架构分析
- 分布式集群调度框架 Mesos 架构与实现
- 架构设计:分布式系统调度,Zookeeper 集群化管理
- 云原生架构下复杂工作负载混合调度的思考与实践
- 阿里巴巴 Sigma 调度和集群管理系统架构详解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
高性能JavaScript
【美】Nicholas C. Zakas(尼古拉斯.泽卡斯) / 丁琛 / 电子工业出版社 / 2015-8-1 / 65
如果你使用 JavaScript 构建交互丰富的 Web 应用,那么 JavaScript 代码可能是造成你的Web应用速度变慢的主要原因。《高性能JavaScript》揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的加载、运行、DOM 交互、页面生存周期等。雅虎的前端工程师 Nicholas C. Zakas 和其他五位 JavaScript 专家介绍......一起来看看 《高性能JavaScript》 这本书的介绍吧!
html转js在线工具
html转js在线工具
RGB HSV 转换
RGB HSV 互转工具