范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

keepalived使用子网卡的ip创建HA失败

  Keepalived是个一个基于VRRP 协议来实现的 LVS 服务高可用方案的开源组件,可以利用其来解决单点故障问题。一个LVS服务器(Linux Virtual Server Linux虚拟服务器)会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候, 备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。
  当利用keepalived配置主备ip地址进行组建HA时,发现当使用的ip为子网卡上的ip时,组建HA失败。
  [ root@localhost ~]# ifconfig  eth0:  flags=4163 mtu 1500              inet 101.13.17.174 netmask 255.255.255.0 broadcast 10.14.15.255              inet6 2001:123::121 prefixlen 64 scopeid 0x0              inet6 fe80::eda:4lff:feld:b3f0 prefixlen 64 scopeid 0x20             ether 0c:da:4l:ld:b3:f0 txqueuelen 1000 (Ethernet)              RX packets 4275596 bytes 902081284 (860.2 MiB)              RX errors 0 dropped 0 overruns 0 frame 0              TX packets 1526855 bytes 209418917 (199.7 MiB)              TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0    eth0:1:  flags=4l63 mtu 1500             inet 101.13.17.233 netmask 255.255.255.0 broadcast 10.14.15.255             ether 0c:da:4l:ld:b3:f0 txqueuelen 1000 (Ethernet)    lo:  flags=73 mtu 65536             inet 127.0.0.1 netmask 255.0.0.0             inet6 ::1 prefixlen 128 scopeid 0xl0             loop txqueuelen 1000 (L ocal Loopback )             RX packets 1062532 bytes 164572192 (156.9 MiB)             RX errors 0 dropped 0 overruns 0 frame 0            TX packets 1062532 bytes 164572192 (156.9 MiB)             TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0    [root@localhost ~]#
  其中eth0:1  为eth0的子网卡。
  先了解下eth0 和 eth0:1 的区别, eth0属于物理网卡,eth0:1属于子网卡。
  物理网卡 :物理网卡指的是服务器上实际的网络接口设备,比如上面的配置中只有一个eth0网络接口。
  子网卡 :子网卡在这里并不是实际上的网络接口设备,但是可以作为网络接口在系统中出现,如eth0:1、eth1:2这种网络接口。它们必须要依赖于物理网卡,虽然可以与物理网卡的网络接口同时在系统中存在并使用不同的IP地址,而且也拥有它们自己的网络接口配置文件。但是当所依赖的物理网卡不启用时(Down状态)这些子网卡也将一同不能工作。
  因此从上面了解到,子网卡并不是实际的网络接口设备,依赖于对应的物理网卡。
  接下来继续keepalived组HA时,主节点或者备节点配置子网卡上的ip时组HA失败问题。
  当配置HA时,主或备节点使用子网卡上的ip时,启动keepalived时会出现如下错误
  # cat keepalived.conf ! Configuration File for keepalived   global_defs{   router_id 11.12.13.54 }   vrrp_instance VI_1_t{   state BACKUP   insterface eth0:1   mcast_src_cp 11.12.13.54   virtual_router_id 99   priority 20   advert_int 1   nopreempt   authentication{     auth_type PASS     auth_pass 1111   }   virtual_ipaddress{     11.12.13.99   } }
  通过查看日志发现,主节点使用的ip为eth0上的ip,而备节点使用的ip为eth0:1上的ip,搭建HA时失败,通过查看日志,显示如下# cat /var/log/messages Keepalived_vrrp[42201]: Opening file "/opt/keepalived.conf" ... Keepalived_vrrp[42201]: Cant find interface eth0:1 for vrrp_instance VI_1_t !!! Keepalived_vrrp[42201]: Configuration error: VRRP definition must belong to an interface Keepalived_vrrp[42201]: VRRP_Instance(VI_1_t) Unknown interface ! Keepalived_vrrp[42201]: Thread task. ...
  从上面的日志来看,是没有找到实例对应的eth0:1网络接口。
  根据keepalived的源码进行分析了解到static void start_vrrp(void) {     ...     kernel_netlink_init();     ...     init_data(conf_file, vrrp_init_keywords);     ...      if(!vrrp_complete_init())     {         stop_vrrp(KEEPALIVED_EXIT_CONFIG);         return;     }      }   kernel_netlink_init() {     ...     init_interface_queue();     ... }   void init_interface_queue() {     init_if_queue();     netlink_interface_lookup(NULL); #ifdef _HAVE_VRRP_VMAC     set_base_ifp(); #endif }   static void init_if_queue() {     if_queue = alloc_list(free_if, dump_if); }
  1、keepalived启动时,在调用start_vrrp(void)时,会调用init_interface_queue(), 该函数的作用就是从内核中读取系统的网卡设备,然后把网卡信息放到if_queue的全局链表中。
  if_queue链表中保存的都是实际的网卡设备信息,而eth0:1属于子网卡并不是实际的网络接口设备。因此链表中不存在eth0:1的信息。void init_data(const char *conf_file, vector_t *(*init_keywords)(void)) {     ...     (*init_keywords)();     ... }   vector_t * vrrp_init_keywords(void) {     init_global_keywords(reload);     init_vrrp_keywords(true); #ifdef _WITH_LVS_     init_check_keywords(false); #endif #ifdef _WITH_BFD_     init_bfd_keywords(true); #endif     return keywords;         }
  2、接下来start_vrrp(void)调用init_data(conf_file, vrrp_init_keywords)进行初始化。
  init_data的作用就是读取keepalived.conf配置文件中的实例来初始化全局vrrp_data链表,vrrp_data中有个vrrp的链表,vrrp链表节点中保存的是vrrp_instance, 该vrrp_instance就是keepalived.conf配置文件中的关键字,然后获取配置中的信息,挂到vrrp链表节点中。
  在初始化节点过程中当读到interface eth0:1时,会根据获取的名字eth0:1 从if_queue的全局链表中获取网卡接口实例信息来初始化vrrp节点中的ifp字段。由于获取不到,所以日志会打印:
  Cant find interface eth0:1  for vrrp_instance VI_1_t !!!
  此时ifp字段是空的。
  在从配置文件读取virtual_ipaddress 初始化虚拟ip的时候(对应函数vrrp_vip_handler),它会判断ifp字段是否为空,若为空,则打印日志
  Configuration error : VRRP definition must belong to an interface
  bool vrrp_complete_init(void) {     ...     LIST_FOREACH(vrrp_data->vrrp, vrrp, e){         if(!vrrp_complete_instance(vrrp))             return false;                      if(vrrp->ifp->mtu > max_mtu_len)             max_mtu_len = vrrp->ifp->mtu;     }     ... }   static bool vrrp_complete_instance(vrrp_t *vrrp) {     ....     if(!chk_min_cfg(vrrp))         return false;      ... }   static bool chk_min_cfg(vrrp_t *vrrp) {     ...     if(!vrrp->ifp){         log_message(LOG_INFO, "(%s) Unknown interface!", vrrp->iname);         return false;     } }
  3、接下来start_vrrp(void)调用vrrp_complete_init()进一步完成vrrp的初始化工作,同时判断一些之前的初始化值是否成功,由于第二步初始化ifp字段时该值为空,也就是找不到eth0:1的接口实例,因此会打印日志:
  VRRP_Instance(VI_1_t) Unknown interface !
  并返回失败,结束keepalived。
  所以使用keepalived组HA使用子网卡的ip时,由于子网卡不是网络设备,导致keepalived启动时根据配置文件获取不到网卡信息,导致keepalived启动失败。
  因此使用keepalived组HA使用子网卡的ip时,keepalived.conf 中的insterface 字段要设置为子网卡(eth0:1 )对应的物理网卡(eth0)。
  脚本中根据子网卡ip获取物理网卡脚本如下:[ rootelocalhost ~]# ip addr  l: lo:  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:  mtu 1500 qdisc pfifo fast state UP group default qle1000       link/ether 0c:da:41:1d:b3:f0 brd ff:ff:ff:ff:ff:ff 10       inet 101.11.12.174/23 brd 10.14.15.255 scope global eth0        valid lft forever preferred lft forever       inet 101.11.12.233/23 brd 10.14.15.255 scope global secondary eth0:1         valid lft forever preferred lft forever     #获取子网卡101.11.12.233 (eth0:1) 对应的物理网卡        [ rootelocalhost ~]# ip addr | grep -w 101.11.12.233 | awk "{print $NF}" | head -n 1 | cut -d ":" -f 1  #去掉冒号取第一列  eth0

家在长安(散文)九十年代初期,我随三线厂搬迁到西安南郊电子城,在那里工作生活了二十多年。起初虽无缘去长安县游玩,但常听身边朋友提起有关长安县的诸多说法离城较远,交通不便,有山有水,风景优美,但治安82岁球王贝利病危!其子发牵手照勉励父亲,父子五官神似确系亲生贝利儿子勉励生父贝利12月份,卡塔尔世界杯完美落幕,梅西捧到了球坛的最高荣誉,而82岁的球王贝利,有幸见证了这一幕。卡塔尔世界杯结束之后,贝利的身体情况就急转几下,屡次并未。有媒体家的絮语(散文)独身贵族的潇洒,两人世界的和谐,小三口之家的甜蜜,三代乃至四代同堂的欢乐,全家福的令人艳美,使日月趋向完满。锅碗瓢盆的交响,男欢女爱的浪漫,长幼有序的和谐,尊老爱幼的亲情,苦辣酸甜烟台VS徐州究竟谁更胜一筹?烟台山东省地级市,2021年GDP为8711。8亿元。徐州江苏省地级市,2021年GDP为8117。4亿元。单论GDP很明显烟台更胜一筹。烟台面积大约13864。5km2人口大约7生命,就如同天上的一颗流星就在几天前,抖音上一则不幸而惊讶的消息突然映入眼眶,经反复确认证明我没有高烧到头昏眼花,又一个人因为癌症走了作为曾经认识的人,不免有些痛惜和不解,几年不见,没想到竟然是以这种方式挥加密货币平台FTX创办人2。5亿美元保释候审整理麦可欣(纽约综合电)加密货币交易平台FTX创办人弗里德被引渡回美国后,获准以2亿5000万美元保释在外候审,保释条件包括他得和父母同住戴上电子监控器并交出护照。他也得定期接受心阿曼国会议员斥资100万美元买下梅西的夺冠时穿的黑袍AhmedAlBarwani提出买回在2022年世界杯加冕典礼上梅西穿的黑袍。我从阿曼苏丹国祝贺你赢得2022年世界杯。阿拉伯bisht黑袍是骑士精神和智慧的象征。我将支付给你10胜利在望!雷军承诺的三年做到全球第一,现在已经完成一多半了是否还记得雷军曾在一次发布会上向广大网友许下承诺小米三年内要做到全球第一。当时很多人感觉雷军在痴人说梦,小米想要成为全球第一,就必须超过苹果和三星,现在过去了快两年的时间了,小米进中超最新积分榜三镇和泰山队比着输球,争冠军?浙江队第三不稳谁是中超摆烂王者?至少在联赛第32轮,是泰山队和三镇,两支球队说句实话输的都很窝囊,硬生生让一个快没有悬念的联赛,打出了悬念。然后广州城把握机会,赢球,武汉长江也赢了大连人,看起来老詹连续六场30难救主湖人被黄蜂蛰伤,累计更新老詹生涯数据北京时间2022年12月24日,20222023赛季NBA常规赛,湖人130134不抵黄蜂。LBJ本场比赛数据上场33分钟,砍下34分2篮板8助攻1抢断0盖帽,23投15中(三分8三分绝杀生涯单场最高分,哈利伯顿太燃了!他兑现了最初的诺言哈利伯顿太燃了!在今天结束的NBA常规赛中,印第安纳步行者队111108战胜热火队。在比赛第四节还剩14秒结束时,热火队的泰勒希罗三分绝平。步行者暂停后,哈利伯顿轰进超远三分准绝杀
医生为什么脑梗越来越年轻化?注意这5个习惯,尽早改正错误不知道是怎么回事,可能是随着年龄增加,或者生活水平的不断提高,我们可以清楚地感觉到身边患脑梗的人越来越多。以前,我们听说这种病,只发现在年级大的身上,后来慢慢的,这似乎成为了一种全痛风患者能吃板栗吗?哪些人不能吃?医生告诉你现在正是吃板栗的季节,而糖炒板栗也被称为秋天四件套之一,深受人们喜爱,那么板栗嘌呤含量高吗?痛风患者能吃吗?哪些人不能吃呢?下面程医生就带大家一起来了解一下吧!一痛风患者能吃板栗吗与背叛过自己的人相处,原谅后你要有足够的心理准备才能赢得幸福原谅最亲密和最信任的人的伤害,说起来容易,做起来并不易,就这么一句话是不够的。需要很大的勇气,很大的信任,很大的理由和选择,需要有在混乱中安抚自己的能力,需要在选择困难的时候有毅力烦了,累了,就看看这段话,人生,再难也要坚持下去人生,好似就是一场没有尽头的修行。在这个过程中,我们随着成长,随着努力,逐渐的将人生变得熠熠生辉。我曾经看过很多人,面对人生的危机,有不同应对措施,有些人,是因为突然失业,每个月还如何避免女孩早熟?这5个方面都要注意,家有女儿的一定要看看文丨福林妈咪朋友家的女儿今年8岁,之前个子猛增了一段时间,现在突然不长了,比同龄的孩子矮。朋友就比较担心,很怕孩子出现性早熟,从而影响身高发育,影响心理健康。带孩子去医院检查,结果女性月经刚结束时,医生建议这4件事尽量不要做,不妨了解一下中医将每两个月来一次月经叫作并月每三个月来一次月经的叫作居经或是季经一年一次的叫作避年,终身不来月经但是能受孕的叫作暗经。中医对月经的认识1。月经按时而下的基本条件肾气旺盛肝脾调和牙结石终结者,三档可视超声洁牙,呵护牙齿健康吃嘛嘛香随着科技的发展,越来越多黑科技生活好物进入我们的生活中,小到一个可视掏耳勺,大到多功能家用电器,科技无时不刻影响着我们的生活。随着人们对于口腔健康的关注,可视洁牙成了一种看得见的新原山赏秋指南,绝美秋色都藏在这些地方!秋赏红叶邂逅美好醉美秋天收拾行囊一起旅行每当秋天到来原山国家森林公园就美不胜收漫山遍野的红叶开始展现色彩即将令人目不暇接一起来看看原山的红叶有多美吧!01hr地点原山国家森林公园这十位企业家眼中的健康中国改革红利与创新未来二十大报告指出,要推进健康中国建设,把保障人民健康放在优先发展的战略位置,这鼓舞了国内国外的众多企业。过去几年间,中国对医药领域进行了大刀阔斧的政策改革,从而激发了产业的创新活力,2岁宝宝确诊恶性脑瘤,提醒爸妈孩子出现6个症状尽早就医范先生这两年因疫情影响被企业裁员,自离开岗位以来,屡屡碰壁并没有找到一份适合的工作,于是他便也开始加入外卖这个大部队。接单时间可以按照自己的节奏掌握,适合和老婆交换配合在家带孩子。48岁贝嫂踩恨天高!脚掌折弯90度,婆媳关系尴尬,儿子软饭硬吃头条创作挑战赛自从在法国巴黎成功办完自家品牌的时装周后,贝嫂就重回低调,很少出现在公共场合。不过就在10月18日,贝嫂又一次出现在了街头!作为一位时尚弄潮儿,48岁的贝嫂明显还不服