`
zhanghaj00
  • 浏览: 63023 次
社区版块
存档分类
最新评论

自己学习nginx,HA 第一天

 
阅读更多
自己学习Linux 时间也不短了,从简单的命令到一些基本的软件,还有对Linux 网络,存储,都有一定的了解,但是怎么感觉一直掌握不熟练,原来是一直没有自己的练习,所以从现在开始开始慢慢做自己的一个小企业级应用  利用HA 搭建 高可用前段集群,利用nginx 的upstream 搭建负载均衡,并且实现反向代理后端服务器,

现在自己有三个虚拟机,都是Linux 的 2.6.32的内核, 由于资源有限,现在先用两台主机搭建一个HA 高可用集群, 然后删除一个 做nginx 负载均衡 后端用tomcat 实现web实现




话不多说 开始干

两台 server 虚拟机,用host-only 连接 IP 分别是 192.168.137.100/192.168.137.100  (为了保证server能联网,每个虚拟机装两个网卡,第一个网卡就是自己固定的IP ,第二块网卡用NAT 方式连接,保证虚拟机可以连上网,以便于安装软件 我喜欢用wget 方式来下载安装包。下载完成以后 再把第二块网卡改成一个心跳ip,没办法 ,工作电脑 只能这么搞了。嘿嘿,这个配置可以自己在网络配置中找到)


首先说下HA, 从我这个门都没有进的人眼中看,HA 就是利用heartbeat 软件, 把两台服务器连接起来,利用心跳检测,利用共享磁盘,然后有一个内部的UDP IP广播,或者是串口, 把这些集合在一起,混杂配置 配置。 当然,其中还有很多很多具体的问题,比如磁盘共享那一块就很多需要具体解决的复杂的问题,但是现在只是搭建一个测试的HA ,所以 不要在意太多


下载 heartbeat 压缩包 http://www.linux-ha.org/wiki/Downloads

上面的heartbeat ,cluster glue ,resource agents 都要下了

由于我装得是mini版的CentOS所以 有非常多的包需要下,我会在最后写下我安装中让人头疼的错误,真心是非常多。

一样的 tar -jxvf 解压软件(tar.bz2)

然后就一步一步的 这是官网上的步骤
$ ./bootstrap
$ ./configure --help
$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var LIBS='/lib/libuuid.so.1'
#查看下 lib下面有没有这个 没有的话 yum下载之
$ make
$ sudo make install

但是执行第一个就一直报错,按部就班 查看需要什么包  需要什么装什么
autoconf  automake  libtool
这些 都可以在ftp://ftp.gnu.org/pub/gnu/ 这上面找到 包 自己下吧。。wget很方便。。不需要挂载什么东西。 (我下载的最新的heartbeat 需要最新的autoconf 和 automake 就是这个最新的搞得我费了半天劲


晚上11点。 install 了半个多小时。。终于 装上了!!!! 明天开始正式配置。



-----------那些需要升级包还有少包的错误就不写了----------
1.
Reusable-Cluster-Components-glue—glue-1.0.9

./autogen.sh

报告如下错误
configure.ac:71: error: possibly undefined macro:AC_LIBTOOL_DLOPEN
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:72: error: possiblyundefinedmacro:AC_LIBLTDL_CONVENIENCE
configure.ac:73: error: possibly undefined macro: AC_PROG_LIBTOOL
./autogen.sh exiting due to error (sorry!).



解决办法是,在执行一次./autogen.sh 即可(不清楚)

2.编译heartbeat时报错:

configure: error: Core development headers were not found

See `config.log'' for more details.

./bootstrap exiting due to error (sorry!).

解决:这需要中间层包glue,

3.出现configure.in:required file './install-sh' not found 求大神

这个把 automake 下面的 install-sh 拷贝到root 目录下

4.安装Reusable-Cluster-Components-glue--glue-1.0.9
./.libs/libplumb.so: undefined reference to `uuid_parse’
./.libs/libplumb.so: undefined reference to `uuid_generate’
./.libs/libplumb.so: undefined reference to `uuid_copy’
./.libs/libplumb.so: undefined reference to `uuid_is_null’
./.libs/libplumb.so: undefined reference to `uuid_unparse’
./.libs/libplumb.so: undefined reference to `uuid_clear’
./.libs/libplumb.so: undefined reference to `uuid_compare’
collect2: ld returned 1 exit status
gmake[2]: *** [ipctest] Error 1
gmake[2]: Leaving directory `/root/Reusable-Cluster-Components-glue-1.0.6/lib/clplumbing’
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/root/Reusable-Cluster-Components-glue-1.0.6/lib’
make: *** [all-recursive] Error 1
解决办法:
  ./configure --prefix=$PREFIX  --with-daemon-user=${CLUSTER_USER} --with-daemon-group=${CLUSTER_GROUP} --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'
各位在./configure的时候指定一下LIBS,如果是32位系统的话改成LIBS='/lib/libuuid.so.1'。下面ClusterLabs-resource Heartbeat在./configure的时候都指定一下,要不然继续报错。

5。make时出现 
lib/pils/.libs/libpils.so -lbz2 -lxml2 -lc -lrt -ldl -lglib-2.0 -lltdl ./.libs/libplumb.so: undefined reference to `uuid_parse' ./.libs/libplumb.so: undefined reference to `uuid_generate' ./.libs/libplumb.so: undefined reference to `uuid_copy' ./.libs/libplumb.so: undefined reference to `uuid_is_null' ./.libs/libplumb.so: undefined reference to `uuid_unparse' ./.libs/libplumb.so: undefined reference to `uuid_clear' ./.libs/libplumb.so: undefined reference to `uuid_compare' collect2: ld returned 1 exit status gmake[2]: *** [ipctest] Error 1 
解决办法:yum install e2fsprogs-devel libuuid-devel

6../configure时出现configure: error: BZ2 libraries not found 
解决办法:yum -y install bzip2-devel glib2-devel 

7编译安装3.0.7,make时出错了
ucast.c: 在函数‘HB_make_send_sock’中:
ucast.c:468: 错误:与‘i’类型冲突
ucast.c:465: 附注:‘i’的上一个声明在此
ucast.c:502: 错误:在非结构或联合中请求成员‘ifr_ifrn’
ucast.c:508: 错误:在非结构或联合中请求成员‘ifr_ifrn’
ucast.c:513: 错误:在非结构或联合中请求成员‘ifr_ifrn’
gmake[4]: *** [ucast.lo] 错误 1
gmake[4]: Leaving directory `/usr/local/src/Heartbeat-3-0-7e3a82377fa8/lib/plugins/HBcomm'
gmake[3]: *** [all-recursive] 错误 1
gmake[3]: Leaving directory `/usr/local/src/Heartbeat-3-0-7e3a82377fa8/lib/plugins/HBcomm'
gmake[2]: *** [all-recursive] 错误 1
gmake[2]: Leaving directory `/usr/local/src/Heartbeat-3-0-7e3a82377fa8/lib/plugins'
gmake[1]: *** [all-recursive] 错误 1
gmake[1]: Leaving directory `/usr/local/src/Heartbeat-3-0-7e3a82377fa8/lib'
make: *** [all-recursive] 错误 1

解决方法:Heartbeat-3-0-7e3a82377fa8/lib/plugins/HBcomm/ucast.c
这个文件貌似有问题,删除468行int i = 1;应该就能make了。(这个真心坑爹)

8. 下面是一些要安装的 包 应该比较全了
ftp://ftp.gnu.org/pub/gnu/automake/automake-1.14.tar.gz
ftp://ftp.gnu.org/pub/gnu/autoconf/autoconf-2.69.tar.gz
http://hg.linux-ha.org/heartbeat-STABLE_3_0/archive/7e3a82377fa8.tar.bz2
http://hg.linux-ha.org/glue/archive/glue-1.0.9.tar.bz2
https://github.com/ClusterLabs/resource-agents/tarball/v3.9.2
yum install bzip2-devel
yum install  glib2-devel 
yum install libxml2 libxml2-devel
yum install gcc-c++
yum install libtool-ltdl-devel
yum install libxslt-devel

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics