keepalived主从模式抢占
时间: 2024-08-22 18:02:08 浏览: 36
Keepalived是一款开源的高可用软件,常用于Linux系统中的虚拟IP地址负载均衡和故障切换。其主从模式(Master-Slave Mode)下,通常有一个主节点(Master)管理和分发流量,而其他节点作为备份(Slave)。当主节点发生故障时,备选的Slave会通过竞争选举(一般基于心跳检测和配置文件的选举策略)成为新的主节点。
在抢占(Preemptive)模式中,一旦检测到主节点失效,备选节点不会等待特定的通知或确认,而是立即启动接管服务并切换到主节点状态,以减少服务中断的时间。这种方式提高了系统的响应速度和可用性。但是,频繁的主从切换可能会对系统资源造成压力,因此需要合理设置选举延迟时间和故障恢复策略。
相关问题
垮机房配置keepalived主从
首先,您需要在两台机器上安装keepalived软件包。您可以使用以下命令在CentOS上安装keepalived:
```
sudo yum install keepalived
```
接下来,您需要在主机和从机上创建keepalived配置文件。在此示例中,我们将假设主机的IP地址为192.168.1.100,从机的IP地址为192.168.1.101。在主机上,您可以使用以下命令创建一个名为keepalived.conf的配置文件:
```
sudo nano /etc/keepalived/keepalived.conf
```
在其中添加以下内容:
```
vrrp_script chk_http_port {
script "/usr/local/bin/check_apache.sh"
interval 2
}
vrrp_instance VI_1 {
interface eth0
state MASTER
virtual_router_id 51
priority 101
virtual_ipaddress {
192.168.1.102
}
track_script {
chk_http_port
}
}
```
此配置文件定义了一个名为VI_1的keepalived实例,它将在主机和从机之间管理虚拟IP地址192.168.1.102。主机被定义为MASTER状态,从机被定义为BACKUP状态。如果主机失效,从机将自动接管虚拟IP地址。
注意,我们还定义了一个名为chk_http_port的脚本,它将定期检查Apache服务器是否在运行。如果Apache服务器停止运行,则主机的优先级将降低,从机将成为MASTER。
在从机上,您可以使用以下命令创建一个名为keepalived.conf的配置文件:
```
sudo nano /etc/keepalived/keepalived.conf
```
在其中添加以下内容:
```
vrrp_script chk_http_port {
script "/usr/local/bin/check_apache.sh"
interval 2
}
vrrp_instance VI_1 {
interface eth0
state BACKUP
virtual_router_id 51
priority 100
virtual_ipaddress {
192.168.1.102
}
track_script {
chk_http_port
}
}
```
此配置文件定义了一个与主机相同的keepalived实例,但从机被定义为BACKUP状态,并且优先级较低。如果主机失效,从机将自动接管虚拟IP地址。
最后,您需要启动keepalived服务。在主机和从机上,您可以使用以下命令启动服务:
```
sudo systemctl start keepalived
```
现在,您已经成功地在两个机器上配置了keepalived主从模式,以确保在主机故障时,从机将顺利接管虚拟IP地址。
keepalived配置非抢占模式主从都有虚拟vip
keepalived是一个用于Linux系统的高可用性解决方案,它通过VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)协议来实现高可用性服务。VRRP允许两个或多个节点共享一个虚拟IP地址(VIP),这样当主节点发生故障时,备份节点可以迅速接管流量,从而保证服务的连续性。
在非抢占模式下,当主节点因故障失去响应时,不会自动重新选举新的主节点。这意味着即使主节点恢复,也不会重新获得VIP的所有权,除非管理员手动介入。
配置keepalived实现非抢占模式同时主从节点都有虚拟VIP,你需要在keepalived的配置文件中设置`nopreempt`选项。以下是一个配置示例:
```conf
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.100
}
}
vrrp_instance VI_2 {
state BACKUP
interface eth0
virtual_router_id 51
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.100
}
}
```
在这个配置中,两台机器都配置了相同的`virtual_router_id`和`virtual_ipaddress`,但只有主节点(MASTER)配置了高优先级(这里为100),备份节点(BACKUP)配置了低优先级(这里为50)。通过`nopreempt`选项,备份节点不会抢占VIP,即使它的优先级变高。这样,即使主节点恢复,备份节点也不会将VIP交给主节点。