开源负载均衡LVS随机自启动异常诊断案列分析
为响应国家的号召,倡导IT信息系统软硬件设施的的安全、自主与可控性,我们公司也在着力推进IT软硬件的国产化与开源化。也因此引入了开源负载均衡软件LVS且在生产中部署了多套LVS系统。在使用过程中发现一个比较奇怪的问题,部分LVS系统在配置随机自启动后,在操作系统重启可以正常随服务器启动但其中有一套系统却无法随操作系统自启动服务。为了解决这个问题,所以才有了下文。一、问题现象
这套LVS的故障具体现象如下:
已正常将LVS配置为系统服务并且设置为2345开机自启动,但重启服务器后发现服务并未按照预期启动。通过查看系统的诊断日志tail –f /var/log/messages,发现ipvs频繁刷日志到messages文件。
具体错误信息如下:Keepalived_healthcheckers: IPVS: Can't initialize ipvs: Protocol not available。手动执行ipvsadm -Ln后服务恢复正常。
二、分析过程:
1.通过诊断日志提示我们可以确认产生该问题的根本原因在于ipvs模块在系统重启时没有被正常加载
2.通过执行如下命令lsmod|grep ip_vs也进一步印证了相应module没有被加载到kernel之中
那么到底是什么原因导致ipvs模块没有被加载进到linux的内核中的呢?
三、Debug的具体思路:
1.测试设置重启先不启动keepalived,只启动ipvsadm查看能否启动,重启后问题依旧,说明问题暂时不在keepalived上;
2.更换高一点版本的ipvsadm,换成1.25,测试后问题依旧;
3.开始怀疑是安装顺序的原因,于是ipvsadm两个版本都测试与keepalived不同的安装顺序,配合启动的顺序,问题依旧;
4.偶然使用/etc/init.d/ipvsadm start命令启动ipvs服务后再次重启操作系统,ipvsadm成功被系统拉起来了,立即保存快照。
5.于是检查ipvsadm的启动脚本,脚本比较繁琐,涉及到很多文件,发现一配置文件/etc/sysconfig/ipvsadm。突然来了灵感,是不是配置文件有问题。在搜索ipvsadm文件后,发现了问题,在/etc/sysconfig下少一个配置文件;
6.手工建立ipvsadm配置文件 touch ipvsadm,然后重启系统,ipvsadm服务成功启动
四、最佳解决方案
在部署并配置完成LVS后执行service ipvsadm save命令
五、产生该问题的原因
相关部署人员没有按照部署手册实施漏掉相关步骤导致而ipvs的随机自启动恰好依赖于相关的配置文件。

PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP는 1994 년에 시작되었으며 Rasmuslerdorf에 의해 개발되었습니다. 원래 웹 사이트 방문자를 추적하는 데 사용되었으며 점차 서버 측 스크립팅 언어로 진화했으며 웹 개발에 널리 사용되었습니다. Python은 1980 년대 후반 Guidovan Rossum에 의해 개발되었으며 1991 년에 처음 출시되었습니다. 코드 가독성과 단순성을 강조하며 과학 컴퓨팅, 데이터 분석 및 기타 분야에 적합합니다.

PHP는 웹 개발 및 빠른 프로토 타이핑에 적합하며 Python은 데이터 과학 및 기계 학습에 적합합니다. 1.PHP는 간단한 구문과 함께 동적 웹 개발에 사용되며 빠른 개발에 적합합니다. 2. Python은 간결한 구문을 가지고 있으며 여러 분야에 적합하며 강력한 라이브러리 생태계가 있습니다.

PHP는 현대화 프로세스에서 많은 웹 사이트 및 응용 프로그램을 지원하고 프레임 워크를 통해 개발 요구에 적응하기 때문에 여전히 중요합니다. 1.PHP7은 성능을 향상시키고 새로운 기능을 소개합니다. 2. Laravel, Symfony 및 Codeigniter와 같은 현대 프레임 워크는 개발을 단순화하고 코드 품질을 향상시킵니다. 3. 성능 최적화 및 모범 사례는 응용 프로그램 효율성을 더욱 향상시킵니다.

phphassignificallyimpactedwebdevelopmentandextendsbeyondit

PHP 유형은 코드 품질과 가독성을 향상시키기위한 프롬프트입니다. 1) 스칼라 유형 팁 : PHP7.0이므로 int, float 등과 같은 기능 매개 변수에 기본 데이터 유형을 지정할 수 있습니다. 2) 반환 유형 프롬프트 : 기능 반환 값 유형의 일관성을 확인하십시오. 3) Union 유형 프롬프트 : PHP8.0이므로 기능 매개 변수 또는 반환 값에 여러 유형을 지정할 수 있습니다. 4) Nullable 유형 프롬프트 : NULL 값을 포함하고 널 값을 반환 할 수있는 기능을 포함 할 수 있습니다.

PHP에서는 클론 키워드를 사용하여 객체 사본을 만들고 \ _ \ _ Clone Magic 메소드를 통해 클로닝 동작을 사용자 정의하십시오. 1. 복제 키워드를 사용하여 얕은 사본을 만들어 객체의 속성을 복제하지만 객체의 속성은 아닙니다. 2. \ _ \ _ 클론 방법은 얕은 복사 문제를 피하기 위해 중첩 된 물체를 깊이 복사 할 수 있습니다. 3. 복제의 순환 참조 및 성능 문제를 피하고 클로닝 작업을 최적화하여 효율성을 향상시키기 위해주의를 기울이십시오.

PHP는 웹 개발 및 컨텐츠 관리 시스템에 적합하며 Python은 데이터 과학, 기계 학습 및 자동화 스크립트에 적합합니다. 1.PHP는 빠르고 확장 가능한 웹 사이트 및 응용 프로그램을 구축하는 데 잘 작동하며 WordPress와 같은 CMS에서 일반적으로 사용됩니다. 2. Python은 Numpy 및 Tensorflow와 같은 풍부한 라이브러리를 통해 데이터 과학 및 기계 학습 분야에서 뛰어난 공연을했습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

Dreamweaver Mac版
시각적 웹 개발 도구
