当前位置:首页 » 专业资讯
开发技术指南» 文章正文
    引言: 這是我花了三個星期測試並且撰寫.. 實際在三部RedHat
 

 

    摘要: linux系统命令分类详解 转自:www.linuxeden.com 一.备份压缩 二.文件管理 三.网络通信 四.特殊命令 1.rpm 命令手册 2.linux 中文件查找技术大全 3.ftp 命令大全及其应用 五.系统管理 六.其他 zhchhui 回复于:2003-07-31 09:17:30 一.备份压缩 zipinfo 功能说明:列出压缩文件信息。 语  法:zipinfo [-12hlmmsttvz......
 ·内核学习faq大集锦    »显示摘要«
    摘要: 1. 请推荐一些好的linux内核参考书? a.《linux device drivers, second edition》,有中文译本 b.《understanding the linux kernel, 2nd edition》 c.《linux内核源代码情景分析》,分上下两册 d.《边干边学-linux内核指导》 2. 内核源代码问题 2.1 如何得到某一版本的linux内核源代码? a. http://www.kernel.org或ftp......


Linux-HA安裝手冊...

這是我花了三個星期測試並且撰寫.. 【相关文章:zt: Kernel Tuning

【扩展阅读:Tcp_wrapper的安装和使用

實際在三部redhat 8.0上測試安裝成功... 【扩展信息:嵌入式设备上的 Linux 系统开发

其中包含lvs/dr、lvs/ip tunnel的arp problem也解決了...

有用就拿去參考吧...

做出來的東西跟那些大廠的ha差不多,

所以其實不需要advance server版本,

一樣可以實現ha...

只是比較麻煩罷了...:)

===================================

作者:apile(apilecheng@yahoo.com.tw)

完成日期:2003/08/04

附注:欢迎传阅转寄,并希望可以保留原作者名字

redhat 8.0/9.0 lvs安装手册:

1.前言:

  redhat在 9.0以后,就将ipvsadm这些套件去除,因此如果想使用lvs(linux virtual server),就得自己重新编译核心(kernel),而编译核心是一件穷极无聊的事情,不管是make menuconfig、make xconfig、make config,触目所及都是一堆不是很懂的驱动程式,本文利用一些技巧,将compile kernel变得比较简单,但是如果你有一些不常见的硬体设备,请自己想办法compile,或者利用linux的load module功能自行将该硬体的驱动程式加载进kernel。

redhat 8.0选择完整安装时,预设已经会支援ipvs,但是他却不支援-noarp这个网路卡设定选项,因为没有这个-noarp选项,则lvs无法在同一个网段内设定lvs/dr与lvs/ip tunnel,会遭遇arp problem,所以只好重新编译核心,顺便将kernel更新至比较新的版本,另外redhat 8.0上比较新的核心,预设不支援ipvs。

  首先简单介绍一下lvs到底是什么东西,其实他是一种丛集(cluster)的技术,透过支援ipvs的kernel,来达到lvs/direct routing (dr)、lvs/ip tunnel、lvs/nat的功能,详细内容请看lvs官方网站。而这些技术有什么用呢?其实就是拿来当成high availability软体,unix大厂sun、hp、ibm、sco等等都有提供这类的软体,但是都要很多钱,而我们没什么钱,只好用open source,而open source的好处,就是可以达到类似的功能,但不需要花钱。

  以下安装内容主要参考下述网页,非常感谢这些提供基本知识的人,如果你不清楚lvs是什么,看看下面文章,可以有个头绪顺便练练基本的功夫,以免后面的内容你完全不晓得我再写什么。

http://linux.vbird.idv.tw/ 鸟哥的linux私房菜(linux基本常识)

http://www.adj.idv.tw/server/linux_lvs.php    在redhat 7.3上架设lvs

http://www.linuxvirtualserver.org/  lvs的官方网站

http://www.linuxaid.com.cn/articles/2/0/202490941.shtml linuxaid说明(上)

http://www.linuxaid.com.cn/articles/8/0/807154206.shtml linuxaid说明(下)

http://mail.incredimail.com/howto/lvs/install/ alex的网站,重要的patch都从这儿抓取

附带一提:

如果你参考linux virtual server的官方网站上的作法,我在redhat 8上编译了十多次的kernel也作不出来,后来发现是因为redhat在kernel-2.4.20-19.8的source中将ipvs的程式码拿掉,且cipe版本也不对。

目前最适合拿来当linux virtual server的redhat版本为7.3,其他的都不是很stable,有兴趣可以用google查查看。

  下列方法适用于2.4的kernel,主要在redhat 8.0上使用,但是redhat 9.0应该也差不多。

 

part i :编译核心

1.首先安装redhat 8.0,选择全部安装。关闭一些不用的service与并将vsftp启动。即着手进行kernel的重新编译,此时的kernel版本为2.4.18-18.4。

2.首先上google找寻oprofile版本要大于0.4的,因为在安装kernel 2.4.20-18.8.rpm的时候会需要这个rpm,如果找不到rpm,就搜寻oprofile-0.4-xx.src.rpm。

2.1 安装oprofile

# rpm –ivh oprofile-0.4-44.8.1.src.rpm

# cd /usr/src/redhat/specs

# vi oprofile.spec 将(buildprereq: kernel-source >=2.4.20)用# mark起来

# rpmbuild –bb oprofile.spec

# cd /usr/src/redhat/rpms/i386/

# rpm –ivh oprofile-0.4-44.8.1.i386.rpm(安装oprofile)

3.安装kernel 2.4.20-18.8的kernel,上http://ftp.nsysu.edu.tw/linux/redhat/updates/抓取kernel-2.4.20-18.8的rpm核心,因为我测试环境有三部,一部是我的notebook (p4 cpu、512mb ram),一部是有4gb ram与两颗cpu(piii 700)的机器,一部是有1gb ram与两颗有hyper threading p4 cpu的电脑。所以我总共抓了三个rpm,分别是

kernel-2.4.20-18.8.i686.rpm         02-jun-2003 23:34  13.3m  

kernel-bigmem-2.4.20-18.8.i686.rpm  02-jun-2003 23:34  13.9m  

kernel-smp-2.4.20-18.8.i686.rpm     02-jun-2003 23:34  13.9m  

然后在各部机器上先安装上述rpm:若不清楚倒底要用那个,

可以用uname –r

2.4.20-18.8bigmem (就用bigmem的版本)

#rpm –ivh kernel-2.4.20-18.8.i686.rpm

检查grub(/boot/grub/grub.conf)或lilo(/etc/lilo.conf)的设定是不是正确?

如果正确,就重新启动机器(shutdown –i 6 now),用2.4.20-18.8开机,检查有无错误。

4.然后上http://www.redhat.com 抓取kernel-source-2.4.20-19.8.i386.rpm这个kernel的核心。利用

# rpm –ivh kernel-source-2.4.20-19.8.i386.rpm   

安装,他会建立两个目录:

/usr/src/linux-2.4.20-19.8 (directory)

/usr/src/linux-2.4->/usr/src/linux-2.4.20-19.8 (symbolic link)

但是我们还要另外建立一个symbolic link

#ln –s ./linux-2.4.20-19.8  ./linux

因为等会要上ipvs patch的时候,他一定会link到/usr/src/linux这个目录,所以要另外建立这个soft link。

5.因为我们先前有安装过2.4.20-18.8的rpm档,所以在/boot目录下,可以找到

-rw-r--r--    1 root     root        44764  5月 29 19:49 config-2.4.20-18.8

这个档案,将这个档案copy至/usr/src/linux/.config

# cp /boot/config-2.4.20-18.8 /usr/src/linux/.config

因为等会我要利用make oldconfig去作…他default会去读取/usr/src/linux/.config这个file

注意:这就是我所说的技巧,因为我先前用make config、make menuconfig选取那些modules,但是因为数量实在太多,看得眼花撩乱,而且选完不知道为什么总有一两地方有问题无法compile成功,无意间被我发现2.4.20-18.8的config档案与2.4.20-19.8的config档案一模一样,加上kernel的readme中又有写make oldconfig会去读取,.config这个档案,所以我才会想到用这个方法或许可行,因为2.4.20-18.8都可以正常启动机器了,不可能用相同的config 档案,2.4.20-19.8就无法启动。其他版本,应该也差不多,先安装一个差不多版本的kernel,再用他的config去重新compile支援ipvs的kernel。

6.给kernel的source file上patch:

6.1上linux virtual server的网页抓取kernel-2.4.0-20的patch档案下来,

我是抓下面这个档案:

the ipvs netfilter module for kernel 2.4 - version 1.0.9 - may 21, 2003

(http://www.linuxvirtualserver.org/software/kernel-2.4/ipvs-1.0.9.tar.gz)

取得ipvs-1.0.9.tar.gz 这个档案

我试过抓linux-2.4.20-ipvs-1.0.9.patch.gz 这个档案,但是从来没有compile成功过,所以放弃。

6.2将ipvs-1.09.tar.gz解开,放在/usr/src/source/ipvs-1.0.9这个目录下,然后在这个目录下,输入

# make patchkernel

# make installsource

将ipvs的patch加载到kernel的source中

6.3 加载 ”hidden”的patch

可以到http://mail.incredimail.com/howto/lvs/install/src/ 这个目录中抓取

(hidden-2.4.20pre10-1.diff)这个patch档案,放在/usr/src/linux目录下,利用:

# cat hidden-2.4.20pre10-1.diff | patch –p1

对kernel进行patch,非常感谢alex提供上述patch。

注意: 为什么这里要对kernel进行hidden的patch ,因为在使用lvs中的dr与ip tunnel的时候,会需要有一块网路卡要设定两个ip的情形,但是linux在2.2.14之后,就将eth0:1的-noarp这个flag关闭。也就是说在kernel 2.2.14以后,eth0:1就视为eth0的别名,任何对eth0:1的设定也同样作用在eth0,换句话说,我对eth0:1下-noarp,同样也会对eth0有作用,这样会使得整张网路卡收不到封包。


...   下一页
    摘要: --percent 使用参考: rpm -i --percent nmap-3.00-4.i386.rpm 用途: 将显示安装的百分比 -h or --hash 使用参考: rpm -i --hash nmap-3.00-4.i386.rpm 用途: 在大文件安装比较友好,你可以不用怀疑是否机器出毛病了,可知道具体做到哪里. -vv [for -i option] 使用参考: rpm -i -vv nmap-3.00-4.i386.rpm 用途:......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE