1.11 SAN存储技术:
从存储到主机之间的网络连接有多种不同的机制,包括DAS、SAN、NAS等,而针对大型应用,关键应用常常采用SAN存储架构,其优点是高性能,易拓展,而缺点则是管理复杂、价格昂贵(特别是使用FC光纤网络)。
如上图,关键业务如web服务器、数据库服务器等通过光纤连接到光纤交换上,光纤交换下是多套存储形成的存储网络,这样的架构性能相当强劲。企业级应用中,为防止单点故障,还会使用两套光纤交换实现物理上的冗余,保证高可用性。
说到SAN就必须要提iSCSI,iSCSI(ip Over SCSI)业内也常叫作ipSAN,即是通过TCP/IP的网络协议来传输磁盘的SCSI数据,随着以太网技术的发展,千兆万兆都将应用在企业中,而以iSCSI存储的性价比,很多中小型企业会更加倾向于使用。
区分SCSI设备和FC光纤设备是相当重要的,FC光纤设备是在存储虚拟化最底层模拟一个或多个SCSI设备的抽象设备,并没有真实的SCSI设备,而是通过SCSI协议模拟的。
GNBD(Global Network Block Device)全局网络块设备类似于iSCSI的存储架构,只是数据传输以数据块为单位,C/S内核模块提供了通过以太网块级别(block-level)的存储访问。
1.12 光纤通道:
现在企业级应用中,通信最佳选材当然是FC光纤了,光纤通信抗干扰、高速率,在企业中表现优秀,光纤通道的组建需要光纤线、HBA卡、光纤交换机,组成一个高性能高可用的光纤网络。
由于光纤网络的管理复杂性,且价格高昂,所以一般仅应用在最为关键的业务的关键部分,典型的应用就是光纤存储网络。
1.13 HBA光纤接口卡:
说到HBA卡就要说说光纤通信的原理,光纤通信主要是一个光电转换的过程,数字信号通过HBA卡转换成光信号,光信号在光纤中高速传输,在另一端的HBA卡上转换成电信号。HBA卡本身就有处理器对数据进行处理,不需要耗费CPU的处理时间,这也是光纤通信高效的原因之一。
HBA卡类似于SCSI卡,在计算机中被识别成SCSI设备。HBA卡使用SCSI命令,SCSI数据将被添加网络包头和包尾,转换成FC光纤通道协议进行传输。一些HBA卡能提供一个以上的光纤物理路径,就像多路径一样。
1.14 光纤交换机:
光纤交换机是SAN光纤存储网络的重要部分,提供了良好的拓展性,也使得SAN存储网络连接几乎不受距离的限制。光纤通道通信距离可以超过100km。
光纤交换的拓扑有以下三种:点对点;仲裁环路;交换式光纤网。点对点是两个设备的简单连接,仲裁环路是所有的设备都排列在一个环路连接中,交换式光纤网是所有的设备连接到一个或多个光纤交换机上,形成光纤交换网络。企业中普遍使用的是交换式光纤网。
1.15 iSCSI存储:
iSCSI可以理解为ip Over SCSI,也可以理解为internet SCSI,即是指SCSI数据通过以太网络进行传输,使用TCP/IP协议,默认使用3260端口。一些企业更乐于使用iSCSI,因为不像FC光纤网,iSCSI完全可以利用现有的交换网络进行部署,且iSCSI以性价比著称,对于中小型企业来说是最佳选择。
1.16 NPS网络电源控制器:
NPS(Network Power Switch)网络电源控制器,即电源Fence。在集群中,Fence设备是相当重要的,在Windows的集群中没有Fence这个概念,他的服务切换是通过仲裁机制来实现;而Linux的集群既有仲裁机制,也有Fence机制。
Fence设备大体可以分为两大类,一类是电源Fence,另一类则是电缆Fence。现在的集群大部分只使用了电缆Fence。下面介绍一下Fence的工作原理:以双机的HA集群为例,当空闲节点通过心跳线得知服务节点发生问题,如通信失败等,空闲节点就会利用服务节点上的Fence卡将该节点关机或重启,并将服务资源“抢”到本节点上。电源Fence则是检测到集群节点断电时则切换服务到另一节点。
下图即为NPS,主要就是为每一个电源接口提供一个以太网口,以实时监控电源情况,目前国内很少使用,其实有了UPS和完善的机房管理体制,NPS也没有什么必要。
1.17 ACPI机制:
ACPI(Advanced Configuration and Power interface)机制主要是针对主机电源管理的机制,对于管理电源消耗很有用处。各厂商也有相应的产品,如戴尔的远程访问接口卡DRAC,惠普的是iLo,英特尔的是IpmI等。
由于ACPI是基于软件的机制,所以并不能完全依赖。例如,集群中一个节点由于内核恐慌(kernel panic)而被逐出集群,这时该节点将不能处理必要的电源轮询。
1.18 网络集群节点:
集群心跳也属于集群通信传输的一部分,集群上的服务可以利用不同网卡上的子网分隔开来,集群间通信形成一个子网,集群中各节点对外提供服务的网卡连接到公网。
通常为防止单点故障,各通信接口都要利用两块以上的网卡做绑定,可以实现冗余和负载均衡的作用。
网络设备必须支持组播,组播用于集群间各节点之间的通信,地址是集群创建之时自动生成的,但也可以手动地用其他地址覆盖。必须确定所有的网络硬件(路由、交换、集线器、网卡等)支持组播。交换机的默认配置有些是关闭了组播的,你可以通过ping组播地址测试一下,使用netstat -g 查看已分配的组播地址。
1.19 广播与组播:
广播的特点就是单对多,像DHCP服务那样,利用广播来发送自己DHCP的身份;组播则是数据包发送给指定的接收者。有一个形象的比喻,广播就是告诉全公司的人一件事,组播则是只告诉一部分你想告诉的人。
组播比广播更具效率,因为广播是不管你需不需要这信息,通通都发一遍,而组播则是有针对性地发送,效率自然比较好。
不是所有的以太网卡都支持组播。
IPv6很依赖组播,因为IPv6取消了广播,采用了更合理的组播。
1.20 以太通道的绑定:
以太通道的绑定即是将多块物理网卡在操作系统上绑定成一个逻辑设备,实现高可用性和负载均衡。在集群中,双机之间的心跳线是集群的关键,但是如果心跳线的网卡发生故障,则整个集群就失去功能了,所以,心跳线网卡常常用两块网卡绑定起来,实现冗余,防止由于物理网卡故障而导致集群崩溃。
1.21 以太通道绑定的配置:
配置以太网卡绑定相当简单。
第一步是配置加载bonding内核模块,使得支持绑定功能;
# vim /etc/modprobe.conf
alias bond0 bonding
options bond0 mode=1 miimon=100 use_carrier=0
写入上面两行参数后保存退出;其中,mode=0/1,0表示提供容错和负载均衡的功能,1表示只提供容错的功能;miimon=100表示连接监控的频度,单位为毫秒;use_carrier表示如何确定连接状态;可以使用primary参数指定哪块网卡作为主要优先的。
第二步是配置网卡配置文件:
# cd /etc/sysconfig/network-scripts/
假设要将eth0和eth1绑定成bond0,则作如下修改:
# vim ifcfg-eth0
DEVICE=eth0
MASTER=bond0
SLAVE=yes
ONBOOT=yes
BOOTPROTO=static
# vim ifcfg-eth1
DEVICE=eth1
MASTER=bond0
SLAVE=yes
ONBOOT=yes
BOOTPROTO=static
# vim ifcfg-bond0
DEVICE=bond0
IPADDR=192.0.2.1
NETMASK=255.255.255.0
GATEWAY=192.0.2.254
ONBOOT=yes
BOOTPROTO=static
重启网络:
# /etc/init.d/network restart
1.22 多路径:
多路径是用于访问共享存储的,可防止单点故障导致服务不可用。
设备映射多路径允许节点通过多条路径访问存储,多路径支持FC、iSCSI、GNBD等存储架构。
1.23 安全:
集群间多有节点的通信默认都经过了加密,OpenAIS使用集群名作为密钥,但这并不是彻底安全的策略。
防火墙必须允许集群和GFS相应端口的使用。以下端口必须开放:
5404,505 cman udp
11111 ricci tcp
14567 gnbd tcp
16851 modcluster tcp
21064 dlm tcp
50006,50008 ccsd tcp
50007 ccsd udp