- 在 master->backup 模式下,一旦主库宕掉, 虚拟IP会自动漂移到从库,当主库修复后,keepalived启动后,还会把虚拟IP抢过来,即使你设置nopreempt(不抢占)的方式抢占IP的动作也会发生
- 在 backup->backup 模式下,关闭 VIP抢占模式,当主库宕掉后虚拟IP会自动漂移到从库上,当原主恢复之后重启keepalived服务,并不会抢占新主的虚拟IP, 即使是优先级高于从库的优先级别,也不会抢占 IP
通过ARP协议实现VIP
通过ARP协议实现VIP
IP 地址只是一个逻辑地址,在以太网中MAC 地址才是真正用来进行数据传输的物理地址,每台主机中都有一个ARP 高速缓存,存储同一个网络内的IP 地址与MAC 地址的对应关系,以太网中的主机发送数据时会先从这个缓存中查询目标IP 对应的MAC 地址,会向这个MAC 地址发送数据。操作系统会自动维护这个缓存。这就是整个实现的关键
Centos7 CPU 隔离 和 绑定
隔离CPU核心
从一般内核 SMP 平衡和调度算法中删除指定的 cpu (由cpu_number定义)。 将进程移动到或移出“独立” CPU 的唯一方法是通过 CPU 亲和系统调用。 cpu 数量从0开始,因此最大值比系统上的 cpu 数量少1
此选项是隔离 cpu 的首选方法。 另一种方法是手动设置系统中所有任务的 CPU 掩码,这可能会导致问题和次优的负载均衡器性能
virsh 命令详解
安装
1 | # yum install qemu-kvm libvirt virt-install virt-manager |
命令列表
版本信息
- virsh-v 只显示版本号
- virsh-V 显示版本的详细信息
使用virt-install安装虚拟机
准备工作
安装 virt-install
1 | # yum install -y virt-install |
ISO镜像安装虚拟机
- 在官方网站下载CentOS-7ISO镜像
- 使用qemu-img工具创建一个虚拟硬盘
1
qemu-img create -f qcow2 /tmp/centos7.qcow2 10G
通过 libvirt 远程管理虚拟机
通过qemu+ssh方式
通过qemu+ssh连接方式比较简单,只要能通过ssh远程访问,命令如下:
1 | # virsh -c qemu+ssh://root@192.168.1.166/system |
如果2个节点设置了互信,免密钥登录,可直接执行virsh相关命令,
1 | # virsh -c qemu+ssh://root@192.168.1.166/system list |
RabbitMQ 持久化
RabbitMQ 持久化分为三部分:交换器的持久化、队列的持久化和消息的持久化
交换器持久化
交换器的持久化是通过在声明队列是将 durable 参数置为 true 实现的,如果交换器不设置持久化,那么在 RabbitM 务重启之后,相关的交换器元数据会丢失,不过消息不会丢失,只是不能将消息发送到这个交换器中了。
虚拟机的四种网络模型
我们主要以 VirtualBox 和 VMwareWorkstation 这两款目前最主流的桌面虚拟化软件作为例。
总的来说,目前有四种常见的网络模型:
- 桥接(Bridge Adapter)
- NAT
- 主机(Host-only Adapter)
- 内部网络(Internal)
Linux虚拟网络基础
TAP/TUN
TAP/TUN 是 Linux 内核实现的一对虚拟网络设备,TAP 工作在二层虚拟以太设备,TUN 工作在三层
基于 TAP 驱动,即可实现虚拟机 vNIC 的功能,虚拟机的每个 vNIC 都与一个 TAP 设备相连,vNIC 之于 TAP 就如同 NIC 之于 eth
JMeter 进行压力测试
下载JMeter 5.1.1(Requires Java 8+)并设置中文界面
- 下载后解压到任意位置
http://mirrors.shu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.1.1.zip
- 设置中文界面
修改启动文件 jmeter.batapache-jmeter-5.1.1\bin\jmeter.bat,把默认language 改为zh_CN
1 | 改动前: |
- 启动JMeter
进入JMeter的bin目录下,windows系统双击jmeter.bat文件即可启动