linux中的集群

一、什么是集群?

简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想 的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系 统的节点。

二、集群的特点是什么?

2.1、集群的优越性

集群并不是一个全新的概念,其实早在七十年代计算机厂商和研究机构就开始了对集群系统的研究和开发。由于主要用于科学工程计算,所以这些系统并不为大家所熟知。直到Linux集群的出现,集群的概念才得以广为传播。

 

对集群的研究起源于集群系统的良好的性能可扩展性(scalability)。提高cpu主频和总线带宽是最初提供计算机性能的主要手段。但是这一 手段对系统性能的提供是有限的。接着人们通过增加CPU个数和内存容量来提高性能,于是出现了向量机,对称多处理机(SMP)等。但是当CPU的个数超过 某一阈值,象SMP这些多处理机系统的可扩展性就变的极差。主要瓶颈在于CPU访问内存的带宽并不能随着CPU个数的增加而有效增长。与SMP相反,集群 系统的性能随着CPU个数的增加几乎是线性变化的。图1显示了这中情况。

集群系统的优点并不仅在于此。下面列举了集群系统的主要优点:

 

高可扩展性:如上所述。

高可用性:集群中的一个节点失效,它的任务可以传递给其他节点。可以有效防止单点失效。

高性能:负载平衡集群允许系统同时接入更多的用户。

高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统。

2.2、集群的分类

虽然 根据集群系统的不同特征可以有多种分类方法,但是一般我们把集群系统分为两类:

高可用(High Availability)集群,简称HA集群。这类集群致力于提供高度可靠的服务。

高性能计算(High Perfermance Computing)集群,简称hpC集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力。

 

三、高可用集群的实现

高可用集群通常有两种工作方式:

容错系统:通常是主从服务器方式。从服务器检测主服务器的状态,当主服务工作正常时,从服务器并不提供服务。但是一旦主服务器失效,从服务器就开始代替主服务器向客户提供服务。

负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。

1.rhcs集群的组成

这是RHCS 集群的一个基础套件,提供您一个集群的基本功能,使各个节点组成的集群在一起工作,具体包含分布式集群管理器(CMAN),成员关系管理、锁管理(DLM)配置文件管理(CCS)、栅设备(FENCE)

2.集群配置管理工具

通过LUCI 来管理和配置RHCS集群,LUCI是一个基于web的集群配置方式,通过luci可以轻松的搭建一个功能强大的集群系统,节点主机可以使用ricci来和luci 管理段进行通信

3.Linuxvirtualserver

LVS 是一个开源的负载均衡软件,利用LVS 可以将客户端的请求根据指定的负载策略和算法合理分配到各个节点,实现动态、智能的负载分担。

4.RedHatGS(globalfilesystem)

GFS 是Redhat公司开发的一款集群文件系统,目前最新的版本是GFS2,GFS文件系统允许多个服务同时读写一个磁盘分区,通过GFS可以实现数据的集中管理,免去了数据同步和拷贝的麻烦,但GFS不能独立存在,需要RHCS的底层组件支持

5.clusterlogicalvolumemanger

CLuster 逻辑卷管理,及CLVM,是LVM的扩展,这种允许cluster 中的机器使用LVM来管理共享存储

四、rhcs集群的实验

1.实验环境

虚拟机:

server1    172.25.37.1      做主节点

server2    172.25.37.2      备节点

主机:172.25.37.250

1.配置yum源

server1:

[root@server1 ~]# vim /etc/yum.repos.d/rhel-source.repo
[HighAvailability]
name=Red Hat Enterprise Linux HighAvailability
baseurl=http://172.25.37.250/rhel6.5/HighAvailability
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releas

[LoadBalancer]
name=Red Hat Enterprise Linux LoadBalancer
baseurl=http://172.25.37.250/rhel6.5/LoadBalancer
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releas

[ResilientStorage]
name=Red Hat Enterprise Linux ResilientStorage
baseurl=http://172.25.37.250/rhel6.5/ResilientStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releas

[ScalableFileSystem]
name=Red Hat Enterprise Linux ScalableFileSystem
baseurl=http://172.25.37.250/rhel6.5/ScalableFileSystem
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releas


[root@server1 ~]# yum repolist
[root@server1 ~]# scp /etc/yum.repos.d/rhel-source.repo root@172.25.37.2:/etc/yum.repos.d/rhel-source.repo

[root@server1 ~]# yum install ricci luci -y   ##LUCI 用来管理和配置RHCS集群,节点主机可以使用ricci来和luci 管理段进行通信
[root@server1 ~]# passwd ricci    ##修改用户ricci的密码
[root@server1 ~]# /etc/init.d/ricci start   ##启动ricci
[root@server1 ~]# /etc/init.d/luci start    ##启动luci
[root@server1 ~]# chkconfig ricci on      ##开机自启动
[root@server1 ~]# chkconfig luci on
[root@server1 ~]# vim /etc/hosts     ##作本地解析
 172.25.37.1 server1
 172.25.37.2 server2

server2:

[root@server2 ~]# yum install ricci -y
[root@server2 ~]# passwd ricci
[root@server2 ~]# /etc/init.d/ricci start
[root@server2 ~]# chkconfig ricci on
[root@server2 ~]# vim /etc/hosts
172.25.37.1 server1
172.25.37.2 server2

用浏览器访问https://172.25.37.1:8084

选择advanced

选择Add Exception

选择 confirm Security Exception

密码为修改的ricci密码

cluster Name  为自己创建的名字(随意命名)

等待将server1、server2添加如集群

添加成功!

真机上安装fence

[root@foundation37 Desktop]# yum search fence
[root@foundation37 Desktop]# yum install fence-virtd.x86_64 fence-virtd-libvirt.x86_64  fence-virtd-multicast.x86_64 -y
[root@foundation37 Desktop]# fence_virtd -c
Module search path [/usr/lib64/fence-virt]:   ##回车

Available backends:
    libvirt 0.1
Available listeners:
    multicast 1.2

Listener modules are responsible for accepting requests
from fencing clients.

Listener module [multicast]:    ##回车

The multicast listener module is designed for use environments
where the guests and hosts may communicate over a network using
multicast.

The multicast address is the address that a client will use to
send fencing requests to fence_virtd.

Multicast IP Address [225.0.0.12]:   ##回车

Using ipv4 as family.

Multicast IP Port [1229]:    ##回车

Setting a preferred interface causes fence_virtd to listen only
on that interface.  Normally, it listens on all interfaces.
In environments where the virtual machines are using the host
machine as a gateway, this *must* be set (typically to virbr0).
Set to 'none' for no interface.

Interface [virbr0]: br0     ##输入br0

The key file is the shared key information which is used to
authenticate fencing requests.  The contents of this file must
be distributed to each physical host and virtual machine within
a cluster.

Key File [/etc/cluster/fence_xvm.key]:    ##回车

Backend modules are responsible for routing requests to
the appropriate hypervisor or management layer.

Backend module [libvirt]:   ##回车

Configuration complete.

=== Begin Configuration ===
backends {
	libvirt {
		uri = "qemu:///system";
	}

}

listeners {
	multicast {
		port = "1229";
		family = "ipv4";
		interface = "br0";
		address = "225.0.0.12";
		key_file = "/etc/cluster/fence_xvm.key";
	}

}

fence_virtd {
	module_path = "/usr/lib64/fence-virt";
	backend = "libvirt";
	listener = "multicast";
}

=== End Configuration ===
Replace /etc/fence_virt.conf with the above [y/N]? y    ##一定输入y ,保存
[root@foundation37 Desktop]# 
[root@foundation37 Desktop]# mkdir /etc/cluster
[root@foundation37 Desktop]# cd /etc/cluster/
[root@foundation37 cluster]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1
1+0 records in
1+0 records out
128 bytes (128 B) copied, 0.000169511 s, 755 kB/s
[root@foundation37 cluster]# cat /etc/cluster/fence_xvm.key����R��o(�yv�e�e����x ��1-
     ��=���r0���,����-O<5�%�ޭ+6�������G[+�Q�3֯zE��
                                                      ���/�m�9`ws�p
                                                                   �����璴�GY�A�Ɓ
[root@foundation37 cluster]# scp fence_xvm.key  root@172.25.37.1:/etc/cluster/
root@172.25.37.1's password: 
fence_xvm.key                                       100%  128     0.1KB/s   00:00    
[root@foundation37 cluster]# scp fence_xvm.key  root@172.25.37.2:/etc/cluster/
root@172.25.37.2's password: 
fence_xvm.key                                       100%  128     0.1KB/s   00:00

[root@foundation37 cluster]# systemctl start fence_virtd.service 

浏览器上的设置:

测试:手动关掉server1 主节点   主备节点可相互断电后重启

观察server2的备节点

[root@server1 ~]# fence_node server1    ##手动关闭,

Failover Domains故障转移域设置:

server1的优先级高于server2,数字越小等级越高。

在service  groups中添加服务

注意:一定要先添加ip,再添加脚本

server1:

[root@server1 ~]# yum install httpd -y
[root@server1 ~]# cd /var/www/html/
[root@server1 html]# vim index.html

server1

server2:

[root@server2 ~]# yum install httpd -y
[root@server2 ~]# cd /var/www/html/
[root@server2 html]# vim index.html

server2

测试:

[root@foundation37 cluster]# curl 172.25.37.100
server1
[root@foundation37 cluster]# curl 172.25.37.100
server1
[root@foundation37 cluster]# 

[root@server1 html]#  ip link set down eth0   ##模拟server1故障,

[root@foundation37 cluster]# curl 172.25.37.100
server2
[root@foundation37 cluster]# curl 172.25.37.100
server2
[root@foundation37 cluster]# 

server1重新启动之后,与server2不再争抢资源。

 

 

 

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值