分享
 
 
 

基于Linux的集群系统(十一)

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

Linux集群系统的实现(上)

篇是《基于linux的集群系统》的最后一篇。作者将向我们讲述一个Linux集群系统的具体实现过程。限于篇幅分为上、下两部分。

1. 设计目标

设计一个基于Linux的集群系统,它能够提供负载平衡的功能。系统能够不断监视集群中各台实际服务器的负载状况,并且将来自外部网的多种请求转发到内部网中的某一台实际服务器上执行。

具体来说,它必须拥有以下的功能:

(1)服务转发。能接受来自外部网中的多种基于TCP/IP的服务请求如FTP 、TELNET、 HTTP等,并且将它们转发到当前负载最轻的机器上执行。

(2)动态负载平衡。平衡器能够监视内部网中的实际服务器的负载状况并且找到负载最轻的机器。

(3)连接持续性。来自外部网的同一客户的所有请求必须转发到内部网中的同一台实际服务器上进行处理。

2.环境设置

如图1-1所示,该集群系统由router、server 1、server 2、server 3以及 server n等机器组成。其中router作为内部网和外部网的接口,能够接收外部网的用户请求,并将此用户请求发送到server1到servern中的某台机器上(如server1),当server1处理完用户的请求以后,就将处理完的结果发送给router,然后再由router将请求回应返回给外部网的用户。文章中也将router这台机器称为负载平衡器,因为它承担了均衡负载的作用;将实际响应用户请求的server1等机器称为实际服务器。试验环境中外部网中的客户机器的IP地址为192.9.200.53,负载平衡器(router)有两个IP地址,一个是192.9.200.56,一个是10.1.1.1,负载平衡器上运行的操作系统内核为Linux 2.2.x。内部网中有n台实际服务器,它们的IP地址分别为10.1.1.2、10.1.1.3……..10.1.1.n,他们上面运行的操作系统可以是linux操作系统,也可以是Windows系列的操作系统,如Windows 98、Windows NT等等。它们都将10.1.1.1设为网关,并且都增加了通往192.9.200.0网络的路由。负载平衡的目的就是将客户发向平衡器的请求如:telnet、 ftp 、www等按照内部网机器当前负载的情况分发到各个实际服务器上。

图1-1 负载平衡系统环境设置图

3.构建过程

在构建过程这一小节中,首先介绍IP伪装技术的原理,然后介绍集群系统的建立过程。本集群系统的建立首先要建立IP伪装机制,然后再增加IP Portforwarding(IP端口转发)机制,然后设计一个应用程序,它能够根据集群中的机器的状态实现实时动态负载平衡。本集群系统中的负载平衡器上的Linux内核版本为2.2.x。

3.1 IP伪装技术

本集群系统主要采用了IP Masquerade(IP伪装)机制。该负载平衡系统采用了NAT(network address translation)机制。NAT机制主要用于内部私有网与外部网之间进行通讯。IP地址中的那些私有地址如10.0.0.0/255.0.0.0, 172.16.0.0/255.240.0.0 以及192.168.0.0/255.255.0.0等是无法直接与Internet上的机器通讯的,如果它们想与Internet上的机器通讯,需要采用网络地址翻译(Network Address Translation,NAT)机制。

NAT意味着将IP地址从一组映射到另外一组,如果这种映射关系是N-N的,则称之为静态网络地址翻译;如果映射是M-N(MN)的,则叫做动态网络地址翻译;IP伪装机制实际上就是一种M-1的动态网络地址翻译,它能够将多个内部网中的IP地址映射到一个与Internet相连接的外部网IP地址上,这样这些无法直接与Internet上的机器通讯的具有内部网IP地址的机器就可以通过这台映射机器与外界进行通讯了。而网络地址端口翻译是对网络地址翻译的一种扩展,它将许多网络地址以及它们的TCP/UDP端口翻译为一个IP地址和TCP/UDP端口。本集群系统采用的就是网络地址端口翻译机制。

3.2 IP伪装机制的建立过程

(1) 编译核心使之能够支持IP伪装。

编译核心时要注意以下选项的选择。

* Prompt for development and/or incomplete code/drivers

(CONFIG_EXPERIMENTAL) [Y/n/?]

- YES: though not required for IP MASQ, this option allows

the kernel to create the MASQ modules and enable the option

for port forwarding

-- Non-MASQ options skipped --

* Enable loadable module support (CONFIG_MODULES) [Y/n/?]

- YES: allows you to load kernel IP MASQ modules

-- Non-MASQ options skipped --

* Networking support (CONFIG_NET) [Y/n/?]

- YES: Enables the network subsystem

-- Non-MASQ options skipped --

* Sysctl support (CONFIG_SYSCTL) [Y/n/?]

- YES:

Enables the ability to enable disable options such as forwarding,

dynamic IPs, LooseUDP, etc.

-- Non-MASQ options skipped --

* Packet socket (CONFIG_PACKET) [Y/m/n/?]

- YES: Though this is OPTIONAL, this recommended feature will allow you

to use TCPDUMP to debug any problems with IP MASQ

* Kernel/User netlink socket (CONFIG_NETLINK) [Y/n/?]

- YES: Though this is OPTIONAL, this feature will allow the logging of

advanced firewall issues such as routing messages, etc

* Routing messages (CONFIG_RTNETLINK) [Y/n/?]

- NO:

This option does not have anything to do with packet firewall logging

-- Non-MASQ options skipped --

* Network firewalls (CONFIG_FIREWALL) [Y/n/?]

- YES: Enables the kernel to be comfigured by the IPCHAINS firewall tool

* Socket Filtering (CONFIG_FILTER) [Y/n/?]

- OPTIONAL:

Though this doesn't have anything do with IPMASQ, if you plan

on implimenting a DHCP server on the internal network, you WILL need this

option.

* Unix domain sockets (CONFIG_UNIX) [Y/m/n/?]

- YES:

This enables the UNIX TCP/IP sockets mechanisms

* TCP/IP networking (CONFIG_INET) [Y/n/?]

- YES: Enables the TCP/IP protocol

-- Non-MASQ options skipped --

* IP: advanced router (CONFIG_IP_ADVANCED_ROUTER) [Y/n/?]

- YES:

This will allow you to configure advanced MASQ options farther down

* IP: policy routing (CONFIG_IP_MULTIPLE_TABLES) [N/y/?]

- NO: Not needed by MASQ though users who need advanced features

such as TCP/IP source address-based or TOS-enabled routing will

need to enable this option.

* IP: equal cost multipath (CONFIG_IP_ROUTE_MULTIPATH) [N/y/?]

- NO: Not needed for normal MASQ functionality

* IP: use TOS value as routing key (CONFIG_IP_ROUTE_TOS) [N/y/?]

- NO:

Not needed for normal MASQ functionality

* IP: verbose route monitoring (CONFIG_IP_ROUTE_VERBOSE) [Y/n/?]

- YES: This is useful if you use the routing code to drop IP

spoofed packets (highly recommended) and you want to log them.

* IP: large routing tables (CONFIG_IP_ROUTE_LARGE_TABLES) [N/y/?]

- NO:

Not needed for normal MASQ functionality

* IP: kernel level autoconfiguration (CONFIG_IP_PNP) [N/y/?] ?

- NO:

Not needed for normal MASQ functionality

* IP: firewalling (CONFIG_IP_FIREWALL) [Y/n/?]

- YES: Enable the firewalling feature

* IP: firewall packet netlink device

(CONFIG_IP_FIREWALL_NETLINK) [Y/n/?]

- OPTIONAL: Though this is OPTIONAL, this feature will allow

IPCHAINS to copy some packets to UserSpace tools for additional

checks

* IP: transparent proxy support (CONFIG_IP_TRANSPARENT_PROXY) [N/y/?]

- NO:

Not needed for normal MASQ functionality

* IP: masquerading (CONFIG_IP_MASQUERADE) [Y/n/?]

- YES: Enable IP Masquerade to re-address specific internal to

external TCP/IP packets

* IP: ICMP masquerading (CONFIG_IP_MASQUERADE_ICMP) [Y/n/?]

- YES: Enable support for masquerading ICMP ping packets

(ICMP error codes will be MASQed regardless).

This is an

important feature for troubleshooting connections.

* IP: masquerading special modules support

(CONFIG_IP_MASQUERADE_MOD) [Y/n/?]

- YES: Though OPTIONAL, this enables the OPTION to later enable

the TCP/IP Port forwarding system to allow external computers to

directly connect to specified internal MASQed machines.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有