RHEL6.2 编译内核过程

  1. Kdump工具

 

先天给服务器进级内核,实验遇到rhel6.2,进级前基本版本2.6.26,进级后根本版本3.3.6.手续如下:

下载linux-2.6.29.4.tar.bz2到/usr/src 

  Kdump的行事机制是在根本崩溃时, 通过kexec 工具由BIOS运维一个备用水源,
由备用水源实行风华正茂多元任务,保存内部存款和储蓄器中崩溃内核的情况, 供后续故障解析用.

启动

1、下载内核源码,可在

# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.bz2 
# tar -jxvf linux-2.6.27.tar.bz2 
# cd linux-2.6.27 
# make mrproper 
# make menuconfig 
# make clean 
# make bzImage 
# make modules 
# make modules_install 
# mkinitrd /boot/initrd_2.6.27.img 2.6.27

  本文暗中认可英特尔或INTEL X86_64架构, RubiconHEL7系统意况. 

主板BIOS–》Grub–》内核–》运营级–》启动级的结果

2、将下载的基础代码拷贝至/usr/src下,cp linux-3.3.6.tar.gz /usr/src/。

实行mkinitrd命令时,提醒”No module dm-mem-cache found for kernel 2.6.27,
aborting.”时,证明该版本的mkinitrd有bug。 
寸草不留办法,1是当使用mkinitrd时,使用”-without-dmraid”那些参数。2是在运用mkinitrd此前,先创设叁个noraid文件。成立方法如下: 

1.1 内核管理工科具Kdump安装

运行级

3、解压,tar -zxvf linux-3.3.6.tar.gz。

# echo “DMRAID=no” > /etc/sysconfig/mkinitrd/noraid 
# chmod 755 /etc/sysconfig/mkinitrd/noraid

  Kdump是奥迪Q3HEL7中自带的基业管理工科具.在EscortHEL7.1事先的版本,kdump作为安装到位现在的可选组件自动安装,从智跑HEL7.1起来kdump被植入安装分界面,作为系统基础工具供安装选取.

0 关机

4、创立软链接,ln -s linux-3.3.6 rhel。

然后再运营mkinitrd命令。

能够由此下边志高气扬直接RPM包安装.

1 单客户(修复情势)

5、进入rhel目录,cd /usr/src/rhel。

 

yum -y install kexec-tools
rpm -q kexec-tools

2 无NFS模式

6、把原先编写翻译产生的公文删除,make
mrproper。如果早先编译过基础,会时有产生上述文件,将会变成编写翻译的挫败。

这里作者利用了第黄金年代种艺术 

同时,Kdump还布置了图形化管理工科具,能够由此下边指挥若虞升卿装.

3 无图像分界面包车型大巴通通格局

7、配置基本,从底下选用意气风发种,经常选取make menuconfig。

# mkinitrd /boot/initrd-2.6.27.img 2.6.27 –without-dmraid
yum -y install system-config-kdump

4 自定义格局

make config 守旧的公文内核编写翻译方式,但失误后不或者回到。

施行完mkinitrd后,将要在运营菜单中增添编写翻译好的根本消息,以便运营时能够选择基础版本。 

  对于KoleosHEL7.4及事后的版本,kdump支持INTEL IOMMU.
而不帮助中华VHEL7.3及早先的版本.

5 有图像分界面包车型大巴一心情势

make menuconfig 基于文本的基石编写翻译形式,出错可回到,指出选择此等形式。

# cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.27 
# cp System.map /boot/System.map-2.6.27

1.2 通过命令行配置kdump内存体积

6 重启

make xconfig 基于图形化的水源编写翻译形式

开采/etc/grub.conf文件,扩展以下内容到文件结尾。

  kdump能监督系统基本运营情形,其身份相比特殊.
kdump的内部存储器空间是在系统运维时,由指点程序分配的,相对于系统基本,kdump内部存款和储蓄器是三个单身的空间.

 

make oldconfig 只对脚下基础稍作修正

title CentOS (2.6.27) 
root (hd0,0) 
kernel /vmlinuz-2.6.27 ro root=LABEL=/ 
initrd /initrd-2.6.27.img

能够经过如下命令内定kdump的内部存款和储蓄器空间大小.

给Grub加密码

铺排后“exit”,系统精晓“Do you wish to save your new kernel
configuration?”,选拔“yes”。

封存,重启,进行grub的启航菜单中,选取”CentOS(2.6.27)”,就可以使用编写翻译好的基本。 
如若您以为make
modules_install前面包车型地铁手续太难为的话,就直接用下边包车型客车通令让系统帮您做好了 

crashkernel=128M     #为kdump保留128M的内存空间.

cd /boot/grub

8、分明倚赖关系,make dep。

# make install

   crashkernel的值能够设置成“auto”,在部分独具非常的大内部存款和储蓄器的类别中,利于实现Kdump的自动化管理.

vi menu.lst

9、明显内核源码中从未公文,make clean。

上边是运营时的提醒音讯: 

crashkernel=auto

在timeout下边加风华正茂行

10、编写翻译内核,make bzImage。时间较长

sh /usr/src/linux-2.6.27/arch/x86/boot/install.sh 2.6.27 arch/x86/boot/bzImage System.map “/boot” 
WARNING: No module dm-mem-cache found for kernel 2.6.27, continuing anyway 
WARNING: No module dm-message found for kernel 2.6.27, continuing anyway 
WARNING: No module dm-raid45 found for kernel 2.6.27, continuing anyway

  当然,crashkernel的值还足以由此如下情势落到实处越来越灵活的配置.

password 密码

11、编写翻译内核模块,make modules。时间相当长。

这个只是提示,对系统未有怎么震慑,经小编查阅相关的质地。 
或是是基础和mkinitrd的BUG,大家能够参照一下那篇小说 
 
通过给基础打dm-raid45以此补丁,可以缓和掉”WA帕杰罗NING: No module dm-raid45
found for kernel 2.6.29.4, continuing anyway”那个提醒 
 
有关别的的多个从未如故找不到解决的主意,希望大家精晓的,给自家留言!

  crashkernel=<范围1>:<大小1>, <范围2>:<大小2>

保留退出

12、安装模块,make modules_install。

谢谢!

crashkernel=512M-2G:64M,2G-:128M    #当系统内存在512M-2G之间时,为Kdump保留64M的内存空间;当系统内存大于2G时,为Kdump保留128M的内存空间.

grub-install –no-floppy /dev/sda #让改良的grub运转内容生效

13、安装内核,make install。

  还是能那样:

 

那条命令首要成就以下职业:(1)把减掉内核映象拷贝到/boot目录下,
并创设相应的System.map符号链接;(2)调用mkinitrd程序创立基础的initrd映象。改过GRUB配置文件,
/etc/grub.conf或/boot/grub/grub.conf。

crashkernel=128M@16M    #为Kdump保留128M的内存空间,内存地址从16M(physical address 0x01000000)开始.

纠正运营级

局部对象手动完结“make
install”所产生的做事。我尝试了须臾间,境遇有个别主题材料。作者对此grub认知不是很透顶,个人认为还是利用make
install妥贴一些。

1.3 Kdump的存储

init 数字

14、重启就可以。

  Kdump的配备在/etc/kdump.cnf中.
kdump提供种种方式将捕获到根本崩溃数据本地保存或保存到长途主机.

 

图片 1

#path /var/crash    #kdump本地存储目录,默认是存放在/var/crash目录下,可以根据使用习惯设置.
path /usr/local/cores 
...
#raw /dev/vg/lv_kdump    #kdump可以直接写入移动介质.
raw /dev/sdb1
...
#nfs my.server.com:/export/tmp    #kdump可以通过NFS保存到网络上其它存储设备中.
nfs test.example.com:/export/cores
...
#ssh user@my.server.com      #kdump可以通过SSH传输协议,保存远程主机上.
#sshkey /root/.ssh/kdump_id_rsa
ssh user@test.example.com
sshkey /root/.ssh/mykey

服务

  kdump.conf中还是能够在 core_collector makedumpfile 选项后增加” -c “,
使kdump文件能够被减少,以节约存款和储蓄空间.

chkconfig –list #列出劳动意况(运营的)

core_collector makedumpfile -c

systemctl start kdump.service    #启动Kdump服务
systemctl enable kdump.service    #使Kdump开机自启
systemctl is-active kdump       #检查Kdump是否已启动
active
echo 1 > /proc/sys/kernel/sysrq   #模拟内核崩溃,检查/var/crash/是否自动保存Kdump捕获的内核崩溃数据, 以确定Kdump是否正常工作
echo c > /proc/sysrq-trigger

劳动名称    运维级状态

  必要注意的是

sshd            0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

  (1)在凯雷德HEL7以前的本子中,kdump的积攒目录会趁着kdump服务的起步而由系统自动创设.
ENVISIONHEL7中,即便退换了kdump的囤积目录,则必须在开发银行kdump服务早先,手动创制kdump的蕴藏目录,不然kdump服务会运维战败.

 

  (2)若是在装置分界面禁止使用了kdump, 而安装到位今后再通过systemctl start
kdump运维kdump, 会报内部存款和储蓄器不足不可能起动的错误.
kdump的内部存款和储蓄器空间是在根本加载早先由boot分配的, 所以必须纠正boot.
最佳利用kdump的图片管理工科具 system-config-kdump 加载kdump的私下认可配置,
使kdump处于可用状态, 然后重启系统, systemctl status kdump
服务处于激活状态(active).

修改

1.4 利用crash功能解析内核崩溃

chkconfig –level 1 sshd on

  利用crash功用组件能够剖析linux内核崩溃时的网络、磁盘、CPU、系统基本状态,快捷牢固故障点.

sshd服务在运维级1的时候暗中同意运行

crash组件能够经过RPM包安装.

chkconfig –level 1 sshd off

sudo yum -y install crash       #安装crash
sudo debuginfo-install kernel    #安装内核调试模块

sshd服务在运转级1的时候暗许关闭

 sudo crash /usr/lib/debug/lib/modules/<kernel>/vmlinux
/var/crash/<timestamp>/vmcore  #启动crash调试

假如没有打运维级则调治2345运维级状态

测量试验一下:

chkconfig sshd on

图片 2

chkconfig sshd off

图片 3

 

crash基本调节和测验命令:

xinetd是个例外的劳动

crash>log    #崩溃时日志记录
crash>bt     #崩溃时的堆栈信息
crash>vm     #崩溃时的内存状态
crash>ps     #崩溃时的进程状态
crash>files   #崩溃时的打开的文件
crash>exit   #退出crash

诸如敞开telnet服务

2 linux内核调校

先是让ekrb5-telnet为展开状态

2.1 kernel的调校门路

再xinetd为展开状态

  奥迪Q3HEL7中提供三种基本调校方法:

若果有一个不是敞开则不成事

  (1)使用sysctl 命令;

 

  (2)修改/etc/sysctl.d/ 目录下的基业配置文件;

不无基于xinetd 的劳务:都和telnet开启方法朝气蓬勃致

  (3)通过shell 在/proc/sys 目录下挂载虚构文件系统;

 

2.2 sysctl命令能够列出、读取、设置基本参数,
还足以将参数设置为临时或永世.

重启服务

sysctl -a        #列出所有可调校的项
sysctl kernel.version    #列出kernel的版本信息

sysctl <tunable class>.<tunable>=<value>       #使调校参数临时生效
sysctl -W <tunable class>.<tunable>=<value>   #使调校参数永久生效

service 服务名restart

2.3 改革/etc/sysctl.d/99-sysctl.conf 目录下的99-sysctl.conf文件

 

cp /etc/sysctl.d/99-sysctl.conf /etc/sysctl.d/99-sysctl.conf.bak    #备份系统默认的内核参数文件
vim /etc/sysctl.d/99-my.conf    #创建新的内核参数文件

...
<tunable class>.<tunable> = <value>   #写入要调校的参数类和值
 <tunable class>.<tunable> = <value>
...
save    #保存文件
reboot\ sysctl -p /etc/sysctl.d/99-my.conf  #重启系统或者使用sysctl -p 命令载入新的内核参数配置

终止服务

2.4 sysctl 调校内核参数

service 服务名stop

(1)调解最大央浼的aio数量.

 

sysctl -a | grep fs.aio    #查看内核默认的最大aio值
sysctl fs.aio-max-nr=2048576  #临时调整aio最大值

开发银行服务

图片 4

service 服务名start

(2)开启当地ipv4转载功用.

 

sysctl net.ipv4.ip_forward = 1

*防火墙会影响服务,关闭防火墙

(3)设定进度能被分配到的最大内存空间.

chkconfig iptables off

sysctl vm.max_map_count = 65530

service iptables stop

(4)设定系统中并且运营的最大进程数.

 

sysctl kernel.threads-max = 16161

*telnet无法用root直接登入,用普通客商登陆,实施su -变为root客户

  在root权限下,通过sysctl 命令的水源参数调校, 基本上能一向调整linux
的内核全部行为, 知足实际生产中的绝大多数需要.

 

  

/etc/rc.d/rc.local

系统运行时候实行的末段一个服务,暗许存在,日常不注销

 

次第与经过

查阅系统今后运作的次第

ps -ax

-a 全体客商的

-x 拓展的

 

进度编号 运营终端  
状态(S等待,s睡眠,T是甘休未脱离程序,Z是尸鬼程序,安德拉正在运维)运转多久  
命令

  PID    TTY       
STAT                                                          
TIME           COMMAND

    1 ?        Ss     0:01 /sbin/init

 

top 系统经过监察和控制器

top – 09:53:35(系统时间)up  1:41(系统运行时刻),  5
users(当前登入顾客数),  load average: 0.00, 0.00, 0.01(系统负载值)

Tasks: 197 total(系统经过数),   1 running(运转数), 196
sleeping(睡眠数),   0 stopped(甘休未脱离),   0 zombie(丧尸)

Cpu(s):  0.2%us,  0.3%sy,  0.0%ni, 99.2%id(CPU剩余数),  0.3%wa, 
0.0%hi,  0.0%si,  0.0%st

Mem:   2980496k total(物理内部存款和储蓄器总量),  1023280k
used(最大应用内部存款和储蓄器数),  1956216k free(最小空闲数),   132928k
buffers(互连网利用缓存)

Swap:  5079032k total(虚构内存总量),        0k
used(设想内部存款和储蓄器最大应用数),  5079032k free(设想内部存款和储蓄器最小空闲数),  
488952k cached (系计算划飞快利用的内部存款和储蓄器)

 

进程编号 客户                               状态  CPU使用 内部存款和储蓄器使用
运转时刻 命令

  PID    USER      PR  NI  VIRT  RES  SHR    S    %CPU    %MEM    
TIME+    COMMAND

 2869 root         20   0  2660 1120  848    R    1.0     0.0     
0:00.25  top

 

内存总计

最大利用内部存款和储蓄器数-系统企图快捷利用的内存=今后系统利用的内部存储器

 

 

系统负载值(黄金时代台Computer的使用量是10.00)

                      每3分钟 每5分钟 每15分钟

load average(平均值): 0.00,   0.00,   0.01

 

 

关门进度

kill -9 进程号

-9 强制实施

 

killall -9 进度名称

-9 强制实践

 

陈设职分

每日1:00须要备份系统顾客

1、系统客户要备份的内容/etc/passwd /etc/shadow
/etc/group文件为系统全数的客户音讯文件

2、/home目录里面是系统客户的文件目录

制作方法天天1:00把公文和目录都复制到/sysbak目录里面就行了

 

crond服务

crondtab -e 步向安插职务编排

分钟 小时 天   月  星期    命令

0    1     *   *    *      mkdir -p /sysbak

时刻须要必需是表能出现的

每分钟运维的

*/1 * * * *

每小时

0 */1 * * *

每天

0 0 */1 * *

每月

0 0 0 */1 *

每星期

0 0 0 0 */1

 

间距时间

1,30 * * * *

 

连续

1-30 * * * *

 

星期0-7 0和7都以星期天

 

编排好了随后,必须要把crond服务重启一下

service crond restart

 

date 查看系统时间

date -s 0059 订正时间

 

 

 

本文出自 “王道–旭忠著(MakeWong)” 博客

主板BIOS–》Grub–》内核–》运转级–》运转级的结果 运转级 0 关机 1
单客户(修复格局) 2 无NFS方式 3 无图像分界面包车型大巴通通形式 4 自定义…

发表评论

电子邮件地址不会被公开。 必填项已用*标注