Linux集群原理与安装配置介绍
Linux集群原理
Linux集群系统包括集群节点和集群管理器两部分。集群节点有时简称为节点、服务器或服务器节点,是提供处理资源的系统,它进行集群的实际工作。一般来讲,它必须进行配置才能成为集群的一部分,也必须运行集群的应用软件。应用软件可以是专用于集群的软件,也可以是设计用于分布式系统的标准软件。Linux集群管理器则是将节点捆绑在一起,以构成单一系统外观的逻辑结构,它用于将任务分解到所有的节点。
集群因多种不同的原因而有着不同的类型,建立Linux集群的最直接原因是共享CPU资源,在多个机器之间平衡负载,获得更多的系统可靠性,或在主机失败时提供后备系统(切换)。
通过对相关软件的分析,实现集群负载的功能是通过流量管理实现的,具体有以下几种实现方法:直接路由(Direct Forwarding)、网络地址转换(NAT)和隧道技术(Tunneling)。
直接路由(Direct Forwarding)是当参与集群的计算机和作为控制管理的计算机在同一个网段时可以使用此法。控制管理的计算机接收到请求包时,直接送到参与集群的节点。它的优点是返回给客户的流量不经过控制主机,速度快、开销少。
可能大家比较熟悉网络地址转换(NAT)这种方法。地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址,外界看起来包是来自地址转换器本身。当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。它的优点是节省IP地址,能对内部进行伪装;缺点是效率低,因为返回给请求方的流量要经过转换器。
隧道技术(Tunneling)这种方式是Linux集群的节点不在同一个网段时采用的转发机制,是将IP包封装在其它网络流量中。从安全角度考虑,应该使用隧道技术中的***,也可使用租用专线。
Linux集群所能提供的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务和Proxy服务器等。下面我就以一个具体的产品TurboLinux Cluster Server 来实现一个负载均衡Linux集群系统,用于提供Web和FTP服务。
Linux集群规划
1提供的服务:Web、FTP
2做一个较完善的负载均衡系统,以便能用到其中较多的功能。
3使用4台服务器,其中3台安装TurboLinux Cluster Server,1台安装Windows 2000 Sever
Linux集群安装
1在3台服务器上安装Turbo Linux,还需要安装Apache和wu-ftpd,因为Linux集群要提供这种服务。安装完成后重启机器,挂接光驱在目录/mnt/cdrom下,执行。/TLCS-install,然后按提示完全安装。
2在1台服务器上安装Windows 2000 Server,还要安装Internet Information Server 50
配置Linux集群管理器
1设置各台服务器的IP地址、子网掩码、路由等,调通网络,并将1台TurboLinux服务器设置成DNS服务器,使其能够正向解析和反向解析。此例服务器名为pc1,域为testcom
2配置Cluster Server执行TurboLinuxclusteradmin,设置情况如下(连字符连接的是选单选项或其下级选单,冒号后为设置情况):
(1)ClusterServer Configuration-Cluster Services-Application Stability Agents:
http为默认的服务,不用设置。
ftp:/usr/lib/ftpAgent
(2)ClusterServer Configuration--Cluster Services--Service Settings:
http,80:TCP,sticky
ftp,21:TCP,ftp
(3)ClusterServer Configuration--Servers Configuration:
pc1 (pc1testcom),direct,ping
pc2 (pc2testcom),direct,ping
pc3 (pc3testcom),direct,ping
pc4 (pc4testcom),direct,ping
(4)ClusterServer Configuration--Advance Traffic Managers:
Advance Traffic Manager System:pc1testcom
Advance Traffic Manager Setting: 默认值
(5)ClusterServer ConfigurationàVirtual Severs:
主机为:pc1testcom
sendmail:master@pc1 testcom
Server pool name: Server Group1
(6)ClusterServer ConfigurationàGloble Settings:
网络设置:netmask 2552552550
配置集群各节点
1配置Windows 2000 Server节点
因为TurboLinux Cluster Server 本身能被工具自动同步,所以只要配置Windows 2000 Server即可。
(1)开始→设置→控制面板→添加新硬件→下一步→添加/排除设备故障→添加新设备→否,再从列表选择硬件→其它设备→Microsoft:Microsoft Loopback Adapter→完成。
(2)在桌面上单击鼠标右键选择网上邻居→属性→TCP/IP,设置IP地址、缺省网关、子网掩码(先设成 2552552550)。
(3)开始→运行→regedit→找到注册表中与Microsoft Loopback Adapter相关的项,将子网掩码改成 255255255255
(4)配置系统运行合适的服务,并配置适合集群管理器管理的配置,以便可在控制管理器中使用。
2配置Turbo Linux Cluster Server节点
(1)在管理菜单中选tlcs_content _sync执行内容同步,输入将要配置的节点机密码,将复制集群管理器中的服务内容到节点。
(2)在管理菜单中选择tlcs_ config _sync执行设置同步,输入将要配置的节点机密码,复制集群管理器中的设置内容到节点。
到此,我们已经可以在集群管理器PC1上看到运行状态,可将客户端连在接服务器的交换机上,客户端可以请求Web和FTP服务。
建立一个安全Linux服务器就首先要了解Linux环境下和网络服务相关的配置文件的含义及如何进行安全的配置。在Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,也许你需要编辑这些文件来完成联网工作,但是这些配置文件大都可以通过配置命令linuxconf(其中网络部分的配置可以通过netconf命令来实现)命令来实现。下面介绍基本的TCP/IP网络配置文件。
/etc/confmodules文件
该配置文件定义了各种需要在启动时加载的模块的参数信息。这里主要着重讨论关于网卡的配置。在使用Linux做网关的情况下,Linux服务器至少需要配置两块网卡。为了减少启动时可能出现的问题,Linux内核不会自动检测多个网卡。对于没有将网卡的驱动编译到内核而是作为模块动态载入的系统若需要安装多块网卡,应该在“confmodules”文件中进行相应的配置。
若设备驱动被编译为模块(内核的模块):对于PCI设备,模块将自动检测到所有已经安装到系统上的设备;对于ISA卡,则需要向模块提供IO地址,以使模块知道在何处寻找该卡,这些信息在“/etc/confmodules”中提供。
例如,我们有两块ISA总线的3c509卡,一个IO地址是0x300,另一个是0x320。编辑“confmodules”文件如下:
aliaseth03c509
aliaseth13c509
options3c509io=0x300,0x320
这是说明3c509的驱动程序应当分别以eth0或eth1的名称被加载(aliaseth0,eth1),并且它们应该以参数io=0x300,0x320被装载,来通知驱动程序到哪里去寻找网卡,其中0x是不可缺少的。
对于PCI卡,仅仅需要alias命令来使ethN和适当的驱动模块名关联,PCI卡的IO地址将会被自动的检测到。对于PCI卡,编辑“confmodules”文件如下:
aliaseth03c905
aliaseth13c905
若驱动已经被编译进了内核:系统启动时的PCI检测程序将会自动找到所有相关的网卡。ISA卡一般也能够被自动检测到,但是在某些情况下,ISA卡仍然需要做下面的配置工作:
在“/etc/liloconf”中增加配置信息,其方法是通过LILO程序将启动参数信息传递给内核。对于ISA卡,编辑“liloconf”文件,增加如下内容:
append="ether="0,0,eth0ether="0,0,eth1"
注:先不要在“liloconf”中加入启动参数,测试一下你的ISA卡,若失败再使用启动参数。
如果用传递启动参数的方法,eth0和eth1将按照启动时被发现的顺序来设置。
/etc/HOSTNAME文件
该文件包含了系统的主机名称,包括完全的域名,如:deepopenarchcom。
/etc/sysconfig/network-scripts/ifcfg-ethN文件
在RedHat中,系统网络设备的配置文件保存在“/etc/sysconfig/network-scripts”目录下,ifcfg-eth0包含第一块网卡的配置信息,ifcfg-eth1包含第二块网卡的配置信息。
下面是“/etc/sysconfig/network-scripts/ifcfg-eth0”文件的示例:
DEVICE=eth0
IPADDR=2081641861
NETMASK=2552552550
NETWORK=2081641860
BROADCAST=208164186255
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
若希望手工修改网络地址或在新的接口上增加新的网络界面,可以通过修改对应的文件(ifcfg-ethN)或创建新的文件来实现。
Linux命令行下可以使用一系列命令查看各种硬件信息,从而得知服务器配置。
参考命令如下:
查看主板的序列号: dmidecode | grep -i ’serial number’
用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart)
查看CPU信息:cat /proc/cpuinfo [dmesg | grep -i 'cpu'][dmidecode -t processor]
查看内存信息:cat /proc/meminfo [free -m][vmstat]
查看板卡信息:cat /proc/pci
查看显卡/声卡信息:lspci |grep -i ‘VGA’[dmesg | grep -i 'VGA']
查看网卡信息:dmesg | grep -i ‘eth’[cat /etc/sysconfig/hwconf | grep -i eth][lspci | grep -i 'eth']
查看PCI信息:lspci (相比cat /proc/pci更直观)
查看USB设备:cat /proc/bus/usb/devices
查看键盘和鼠标:cat /proc/bus/input/devices
查看系统硬盘信息和使用情况:fdisk & disk – l & df
查看各设备的中断请求(IRQ):cat /proc/interrupts
查看系统体系结构:uname -a
查看及启动系统的32位或64位内核模式:isalist –v [isainfo –v][isainfo –b]
dmidecode查看硬件信息,包括bios、cpu、内存等信息
测定当前的显示器刷新频率:/usr/sbin/ffbconfig –rev \
查看系统配置:/usr/platform/sun4u/sbin/prtdiag –v
查看当前系统中已经应用的补丁:showrev –p
显示当前的运行级别:who –rH
查看当前的bind版本信息:nslookup –class=chaos –q=txt versionbind
dmesg | more 查看硬件信息
lspci 显示外设信息, 如usb,网卡等信息
lsnod 查看已加载的驱动
lshw
psrinfo -v 查看当前处理器的类型和速度(主频)
prtconf -v 打印当前的OBP版本号
iostat –E 查看硬盘物理信息(vendor, RPM, Capacity)
prtvtoc /dev/rdsk/c0t0d0s 查看磁盘的几何参数和分区信息
df –F ufs –o i 显示已经使用和未使用的i-node数目
isalist –v
对于“/proc”中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:
Cpuinfo 主机CPU信息
Dma 主机DMA通道信息
Filesystems 文件系统信息
Interrupts 主机中断信息
Ioprots 主机I/O端口号信息
Meninfo 主机内存信息
Version Linux内存版本信息
备注: proc – process information pseudo-filesystem 进程信息伪装文件系统
linux服务器怎么装telnet?
利用telnet连接linux服务器需要确保:windows客户端开启telnet功能、linux服务器开启telnet服务
首先,linux服务器开启telnet服务:
许多linux系统在默认情况下是不安装telnet服务的。在此介绍yum安装telnet服务,它的优点是联网条件下能够自动检查安装包的依赖文件。
1输入yuminstall-ytelnet-server命令安装telnet服务。出现complete,代表安装完成。
2使用命令vi/etc/xinetdd/telnet编辑telnet配置文件,将disable的值改成no,保存。
3重启xinetd服务,使得telnet配置生效。命令:servicexinetrestart。
4在linux服务器上打开telnet协议的23端口。命令vi/etc/sysconfig/iptables,添加代码-ainput-mstate--statenew-mtcp-ptcp--dport23-jaccept,保存。
5重启iptables,使得防火墙策略生效。
然后,windows客户端开启telnet功能:
1依次点击开始菜单-->控制面板-->程序和功能-->打开或关闭windows功能。
2在弹出的windows功能对话框中勾选telnet客户端,点击确定。
最后,windows上点击开始菜单,在搜索框中输入cmd,回车进入dos界面。
输入命令:telnet+linux服务器ip,回车进入连接界面。输入linux系统用户名密码即可成功连接。
注意:windows客户端与linux服务器端必须在同一网段上,否则无法连通。
Linux网卡ip配置怎么设置?
我的:
配置centos系统的网络,需要修改几个文件:
1/etc/hosts:
IP主机名
举例:
1044155117iz251u7jin4z
2vim/etc/resolvconf:
nameserver1001002136
nameserver1001002138
这里配置的是DNS服务器地址,写入IP即可。
3vim/etc/sysconfig/network:
NETWORKING=yes
HOSTNAME=iZ251u7jin4Z
NETWORKING_IPV6=no
PEERNTP=no
GATEWAY=1721715253
最关键的是HOSTNAME主机名和GATEWAY网关配置好。
4vim/etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172174220
NETMASK=2552552400
这个文件主要配置IP地址和子网掩码。IP地址可以写事先固定的,或者使用dhclienteth0先获取一个DHCP分发的IP地址。
5执行servicenetworkrestart重启网络服务。
怎样查看linux的网卡信息?
对于初学linux的朋友,查看linux的网卡信息是必须掌握的一个技能。那么,怎样查看linux的网卡信息呢?
工具/原料
linux操作系统
一、查看命令
1、启动linux操作系统,进入到桌面。
2、启动终端。
3、在终端键入命令ifconfigeth0,回车。
二、信息解读
1、第一行说明了网卡类型和MAC地址。
2、第二行说明了IPV4地址,广播地址和子网掩码。
3、第三行说明了IPV6地址。
4、第五行说明了接收的数据包总数,以及错误的包数、丢失的数据包数。
5、第六行与第五行相对应,分别是发送的数据包总数,以及错误的包数、丢失的数据包数。
6、第八行则分别是接收和发送的字节数。
怎样查看linux的网卡信息?
方法一:ethtooleth0采用此命令可以查看到网卡相关的技术指标(不一定所有网卡都支持此命令)ethtool-ieth1加上-i参数查看网卡驱动可以尝试其它参数查看网卡相关技术参数方法二:也可以通过dmesg|grepeth0等看到网卡名字(厂家)等信息通过查看/etc/sysconfig/network-scripts/ifcfg-eth0可以看到当前的网卡配置包括IP、网关地址等信息。当然也可以通过ifconfig命令查看。
如何使得Linux服务器下多网卡负载均衡?
◆应用服务器的负载均衡技术如果将客户端的负载均衡层移植到某一个中间平台,形成三层结构,则客户端应用可以不需要做特殊的修改,透明的通过中间层应用服务器将请求均衡到相应的服务结点。比较常见的实现手段就是反向代理技术。使用反向代理服务器,可以将请求均匀转发给多台服务器,或者直接将缓存的数据返回客户端,这样的加速模式在一定程度上可以提升静态网页的访问速度,从而达到负载均衡的目的。使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能。然而它本身也存在一些问题,首先就是必须为每一种服务都专门开发一个反向代理服务器,这就不是一个轻松的任务。反向代理服务器本身虽然可以达到很高效率,但是针对每一次代理,代理服务器就必须维护两个连接,一个对外的连接,一个对内的连接,因此对于特别高的连接请求,代理服务器的负载也就非常之大。反向代理能够执行针对应用协议而优化的负载均衡策略,每次仅访问最空闲的内部服务器来提供服务。但是随着并发连接数量的增加,代理服务器本身的负载也变得非常大,最后反向代理服务器本身会成为服务的瓶颈。◆基于域名系统的负载均衡NCSA的可扩展Web是最早使用动态DNS轮询技术的web系统。在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。在很多知名的web站点都使用了这个技术:包括早期的yahoo站点、163等。动态DNS轮询实现起来简单,无需复杂的配置和管理,一般支持bind82以上的类unix系统都能够运行,因此广为使用。DNS负载均衡是一种简单而有效的方法,但是存在不少问题。首先域名服务器无法知道服务结点是否有效,如果服务结点失效,余名系统依然会将域名解析到该节点上,造成用户访问失效。其次,由于DNS的数据刷新时间TTL(TimetoLIVE)标志,一旦超过这个TTL,其他DNS服务器就需要和这个服务器交互,以重新获得地址数据,就有可能获得不同IP地址。因此为了使地址能随机分配,就应使TTL尽量短,不同地方的DNS服务器能更新对应的地址,达到随机获得地址。然而将TTL设置得过短,将使DNS流量大增,而造成额外的网络问题。最后,它不能区分服务器的差异,也不能反映服务器的当前运行状态。当使用DNS负载均衡的时候,必须尽量保证不同的客户计算机能均匀获得不同的地址。例如,用户A可能只是浏览几个网页,而用户B可能进行着大量的下载,由于域名系统没有合适的负载策略,仅仅是简单的轮流均衡,很容易将用户A的请求发往负载轻的站点,而将B的请求发往负载已经很重的站点。因此,在动态平衡特性上,动态DNS轮询的效果并不理想。◆高层协议内容交换技术除了上述的几种负载均衡方式之外,还有在协议内部支持负载均衡能力的技术,即URL交换或七层交换,提供了一种对访问流量的高层控制方式。Web内容交换技术检查所有的HTTP报头,根据报头内的信息来执行负载均衡的决策。例如可以根据这些信息来确定如何为个人主页和图像数据等内容提供服务,常见的有HTTP协议中的重定向能力等。HTTP运行于TCP连接的最高层。客户端通过恒定的端口号80的TCP服务直接连接到服务器,然后通过TCP连接向服务器端发送一个HTTP请求。协议交换根据内容策略来控制负载,而不是根据TCP端口号,所以不会造成访问流量的滞留。由于负载平衡设备要把进入的请求分配给多个服务器,因此,它只能在TCP连接时建立,且HTTP请求通过后才能确定如何进行负载的平衡。当一个网站的点击率达到每秒上百甚至上千次时,TCP连接、HTTP报头信息的分析以及进程的时延已经变得很重要了,要尽一切可能提高这几各部份的性能。在HTTP请求和报头中有很多对负载平衡有用的信息。我们可以从这些信息中获知客户端所请求的URL和网页,利用这个信息,负载平衡设备就可以将所有的图像请求引导到一个图像服务器,或者根据URL的数据库查询内容调用CGI程序,将请求引导到一个专用的高性能数据库服务器。如果网络管理员熟悉内容交换技术,他可以根据HTTP报头的cookie字段来使用Web内容交换技术改善对特定客户的服务,如果能从HTTP请求中找到一些规律,还可以充分利用它作出各种决策。除了TCP连接表的问题外,如何查找合适的HTTP报头信息以及作出负载平衡决策的过程,是影响Web内容交换技术性能的重要问题。如果Web服务器已经为图像服务、SSL对话、数据库事务服务之类的特殊功能进行了优化,那么,采用这个层次的流量控制将可以提高网络的性能。◆网络接入协议交换大型的网络一般都是由大量专用技术设备组成的,如包括防火墙、路由器、第3、4层交换机、负载均衡设备、缓冲服务器和Web服务器等。如何将这些技术设备有机地组合在一起,是一个直接影响到网络性能的关键性问题。现在许多交换机提供第四层交换功能,对外提供一个一致的IP地址,并映射为多个内部IP地址,对每次TCP和UDP连接请求,根据其端口号,按照即定的策略动态选择一个内部地址,将数据包转发到该地址上,达到负载均衡的目的
0条评论