博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Linux系统启动自动加载模块
阅读量:6689 次
发布时间:2019-06-25

本文共 1530 字,大约阅读时间需要 5 分钟。

hot3.png

故事缘由

某应用服务器搬迁至另一机柜,涉及需要重启服务器相关应用服务。 其中包括keepalived服务,此服务启动会自动检测系统自带模块ipvs模式是否加载,如果未启动,会在系统日志中频繁写入日志,最终导致磁盘被日志填满。 以上问题都是有ipvs模块未在系统启动之后自动加载导致。 由此大家开始对于系统模块自动加载开始分析

系统启动流程

  1. 读取服务器硬件信息,载入BIOS的硬件信息,并取得第一个开机装置的代号
  2. 读取第一个开机装置的MBR的boot Loader(/etc/grub.conf)的开机信息
  3. 载入系统内核(Kernel)信息,解压Kernel,尝试驱动硬件
  4. 内核(Kernel)执行init(/etc/inittab)程序并获得run-lebel信息(如3或5)
  5. 开始初始化(init)执行/etc/rc.d/rc.sysinit
  6. 启动内核外挂模块(/etc/modprobe.conf)
  7. 初始化(init)执行run-level的各种Scripts,启动系统及自启动的应用服务
  8. 初始化(init)执行/etc/rc.d/rc.local
  9. 执行/bin/login,等待用户Login
  10. 用户登录Login后进入Shell

模块自动启动

系统启动后自己调用部分模块,但是这些模块都是必须加载,有部分已经写入内核但是未加载的模块,不是必须的,比如ipvs模块。

模块地址:/lib/modules/`uname -r`/kernel/net/netfilter/ipvs

如果要让系统启动之后自己加载此类模块,其实系统已经有了说明。

打开/etc/rc.d/rc.sysinit文件
  1. # Load other user-defined modules   
  2. for file in /etc/sysconfig/modules/*.modules ; do  
  3.   [ -x $file ] && $file   
  4. done  
供给用户新增自己的模块的位置。

模块自启动解决办法

办法一

创建模块文件:/etc/sysconfig/modules/ipvs.modules,输入:
  1. #!/bin/sh   
  2. #
  3. # Load the LVS(IPVS) module for keepalived service   
  4. #   
  5. ModuleName=ip_vs   
  6. /sbin/modinfo -F filename $ModuleName >/dev/null 2>&1  
  7. if [ $? -eq 0 ]   
  8.   then   
  9.        modprobe $ModuleName >/dev/null 2>&1  
  10. fi  
重启服务器,进行测试(lsmod | grep ipvs
注: 办法加载的模块只能用于vip的使用,如果LVS,仅仅ip_vs模块是不够的。

办法二

在/etc/rc.d/rc.sysinit文件最后新增一段,进行自动化加载模块工作
  1. # load LVS IPVS modules   
  2. KERNEL_VER=`uname -r`   
  3. IPVS_PATH=/lib/modules/$KERNEL_VER/kernel/net/netfilter/ipvs   
  4. if [ -d $IPVS_PATH ]; then   
  5.   for module in $IPVS_PATH/* ; do
  6.     module=${module##*/}   
  7.     module=${module%.ko}   
  8.     modprobe $module >/dev/null 2>&1  
  9.     done   
  10. fi  
重启服务器,进行测试(lsmod | grep ipvs)  

转载于:https://my.oschina.net/mesopotamia/blog/410083

你可能感兴趣的文章
第一个Indigo Service
查看>>
《Pro ASP.NET MVC 3 Framework》学习笔记之三十二 【无入侵的Ajax】
查看>>
监听启动报TNS-12537、TNS-12560错误
查看>>
安腾还是Power7——Unix服务器你该如何选?
查看>>
Nginx实用指南V1 (连载之六:cacti监控)
查看>>
HP P2000 RAID-5两块盘离线的数据恢复报告
查看>>
XXX管理平台系统——项目教训
查看>>
会写代码的项目经理
查看>>
通过Lua解释器来扩展丰富nginx功能,实现复杂业务的处理
查看>>
禁用WPF窗体的最大化按钮
查看>>
玩转React样式
查看>>
在SQL Server2005/2008中对记录进行分组,并获得每组前N条记录
查看>>
iOS:网络检测
查看>>
TinyHttpd中sockaddr与struct sockaddr_in的区别
查看>>
Windows Workflow Foundation(一)(转载)
查看>>
C# WinForm中 让控件全屏显示的实现代码
查看>>
为什么你还在用嵌入式的方式来使用mod_wsgi?
查看>>
Sublime 常用快捷键
查看>>
jQueryJSON 无刷新三级联动
查看>>
日志分析利器Splunk的搭建、使用、破解
查看>>