集群免存储
A. 如何利用Linux和GFS打造集群存储
负载均衡是一项困难的任务。我们经常需要通过NFS(网络文件系统)或其他机制来为数据提供中心地址,从而共享文件系统。虽然你的安全机制可能可以让你免于Web服务器节点的故障,但是你仍然需要通过中央存储节点来共享数据。
通过GFS(全局文件系统)——Linux的一个免费集群文件系统——你可以创建一个不需要依赖其他服务器的真正稳定的集群。在这篇文章中,我们将展示如何正确地设置GFS.
从概念上来说,一个集群文件系统可以允许多个操作系统载入同一个文件系统并可以在同一时间内向同一文件系统写入数据。现在有许多集群文件系统,包括Sun的Lustre,Oracle的OCFS(Oracle集群文件系统),以及Linux的GFS.
有许多方法可以让一个块设备同时被多个服务器所使用。你可以分区出一个对多个服务器都可视的SAN(存储局域网)LUN(逻辑单元号),设置好相应的iSCSI(互联网小型计算机系统接口),或使用DRBD(分布式复制块设备)在两台服务器之间复制一个分区。在使用DRBD的时候,你将需要在主/主节点中设置好DRBD以使用GFS.
GFS要求
运行GFS意味着你在运行一个集群。目前为止,运行GFS的最简单的手段就是使用Red Hat Cluster Suite(RHCS:Red Hat集群套件)。这个套件在CentOS中就有。此外,还需要下面这些包:cman——集群管理器;lvm2-cluster——使LVM(逻辑卷管理器)可以支持集群的CLVM(集群逻辑卷管理器)包;kmod-gfs——GFS内核模块;最后是gfs-utils.
集群管理器(cman)包含必要的工具,比如分布式锁管理器。除非你希望花时间来确认各种不同的分发版本是如何采用cman的,否则我们强烈推荐使用CentOS或RHEL.同时,你还将获得RH(Red Hat)所维护的各种最新版本的集群服务,此外你还可以获得一个比较稳定的环境。
Fencing(阻绝)机制是绝对必要的。一些指导性文章建议将阻绝模式设定成"手动",因为阻绝设置有可能比较复杂。阻绝意味在集群中进行隔离,或马上中断某些危险节点的运作。如果集群无法阻绝某个发生故障的节点,那么你的GFS将会出现很多问题,因此不要跳过这个步骤。
创建集群设置
你可以通过/etc/cluster/里面的cluster.conf完成大部分的集群设置。我不建议使用各种集群管理应用程序来创建这个设置文件。即使是完全支持的RHEL应用程序,比如两个月前发布的Conga,也经常会创建一些无效的cluster.conf文件,并且无法被必要的服务所解析。
下面是一个cluster.conf文件的例子。这个设置文件采用漂亮的XML格式,其内容非常直接。首先,我们对集群进行命名,我们将这个集群称作"Web.1".
先跳过fence daemon选项,下一个部分就是集群主体的设置内容。你需要在clusternodes部分定义两个节点。设置文件将同时存放在两个节点上,这样这两个节点就都知道彼此的情况。
集群内的每个节点都声明其阻绝方式的名称是独一无二的。在clusternames结束标签下面,我们看到fencedevice部分定义了每个节点如何阻绝其他节点的方式。使用一个支持IPMI(智能平台管理接口)的服务器是最好的方式,而且其设置也是相当简单。你只要将IPMI的地点以及登录方式告诉IP就可以了。为了避免在cluster.conf中留下密码,你可以将它指向一个由根所拥有的脚本并由这个脚本来返回密码。
我们还要指出的是我们在设置中定义了两个节点。这是必须的,因为通常来说,除非大部分节点都同意自己的状态,否则集群无法达到"Quorate"状态。如果只有两个节点的话,没有肯定多数,因此这种方式让集群只能在两个节点下工作,而不能只在只有一个节点的情况下工作。这是设置基本集群的必要方式。
在每个节点上运行"service cman start",系统应该可以开始正常运作。你可以检查"clustat"或"cman nodes"来确认节点是否良好运行。如果有哪个必要的部分没有启动,那么集群将不会显示"Quorate"状态。
GFS设置
首先,我们需要设置CLVM,这样我们才可以通过GFS使用LVM.激活CLVM只要在lvm.conf中设定"locking type=3"就可以了。
然后,就像平常一样创建一个LVM卷组和卷,但是使用的是共享的块设备。如果你使用的是DRBD,你将有可能使用/dev/drbd0.我创建了一个物理卷,然后创建一个名为vg01的卷组,然后创建一个名为web1的逻辑卷,这个卷在:/dev/vg01/web1.
最后,我们需要创建文件系统:
gfs_mkfs -t web1:mygfs -p lock_dlm -j 2 /dev/vg01/web1
-t中给定的名称必须是集群的名称,然后后面是你给这个文件系统所起的名字。只有web1集群的成员才可以载入这个文件系统。然后,设定分布式锁管理器的锁钥类型,指明你需要两份journal(因为这是一个双节点集群)。如果你预计未来要增加更多的节点,那么你需要在这时设定足够高的journal数量。
总结
我们现在可以开始使用这个文件系统了。在两个节点上启动"clvmd"和"gfs"服务。现在你就可以通过"-t gfs"来将类型指定为GFS,从而载入文件系统。
在开始启动之前,一定要设定好cman,clvmd和gfs服务。你最好能熟悉clustat和gfs_tool命令,因为在系统出现问题的时候,你可以用这些命令来查找问题所在。
不要指望GFS能很快。如果有一个节点在进行大量的写入操作的话,那么在访问文件系统的时候出现停顿是很正常的。对于一个数据读取操作比数据写入操作多得多的Web集群来说,这倒不是什么问题。如果出现明显延迟,那么首先要检查一下所有组件的状况,然后评估正在写入的数据。防止延迟现象的最常见措施就是确保HTTP对话中的数据不是写入GFS卷。
B. 分布式与集群的区别是什么
集群强调高可用,分布式强调多业务协作
物理与逻辑
集群倾向于物理概念,即多台机器组成一个集群。这多台机器是否有合作关系并不能保证,比如我们会说我们公司的一个规模为1000台机器的物理集群部署在昌平,但是这1000台机器可能是给公司内不同的平台提供服务,但是从物理角度,由于都部署在一起,在同一个机房,就可以称之为集群。
分布式倾向于逻辑概念,即多个节点或程序为了一个共同的目标,部署在一个或者多个物理机器上。举个例子,一台物理机上装了一个Nginx,它连接的两个Tomcat也在这台物理机上,但是这个Nginx代表的服务,就可以称之为分布式。当然,为了安全性,稳定性等原因,我们并不建议把分布式部署在一个物理节点上。
图片发自简书App
冗余与分解
集群除了可以用来表示多个物理机器,还可以表示一种“冗余”的理念,即通过部署多个同样功能的节点,来实现扩展性与可用性的提升。举个例子,通过在不同节点上部署两个同样功能的server,来这样就算其中一个节点宕机,也能保证服务的可用性。而扩展性,比如一个server的qps可用承担到2000,但是随着用户群体的增加,qps需要达到3000,那么我们就可以通过增加一个Tomcat节点的方式来实现扩容。
分布式的分解与微服务的概念有点相近,即把一个系统的功能分布在不同节点上,每个节点都承担了不同的责任,这样分模块部署最主要的优势是业务隔离,即个别功能的问题或者改进不会影响其他模块,这样就算个别模块挂掉,其他模块也能够继续运作。举个例子,前些年春晚抢红包的时候,曾经由于瞬时间请求量太大导致把微信和支付宝给弄瘫痪了,但是大家都知道,瘫痪的只是红包部分的功能,微信的信息功能并不受影响,这就是分布式的好处。
C. 集群存储的概述
集群存储是指:由若干个“通用存储设备”组成的用于存储的集群,组成集群存储的每个存储系统的性能和容量均可通过“集群”的方式得以叠加和扩展。
传统的存储系统由于受到其物理组成(例如:控制器性能,总线性能,磁盘驱动器的数量,所连接服务器的数量,内存大小,NAS头的性能等)的限制,以及功能上的局限(例如:支持文件系统的容量,元数据和数据处理通路的耦合,快照或复制的数量等),造成了存储系统瓶颈的出现。
一旦遇到存储系统的瓶颈,就会有两种选择:一是:采用硬件更加强大的单个存储系统;二是:采用若干个普通性能的存储系统来组成“存储的集群”。“集群”作为一项已被广泛使用的体系结构,如果采用到存储上组成“集群存储”,就可提供按比例增加的存储资源的性能、容量、可靠性及可用性,突破了单机设备的种种限制。
D. 两台windows 2008 R2做故障转移集群,没有存储请问如何做,实现2台服务器业务互切,不影响业务
找一台服务器安装 windows iscsi target,来模拟iscsi存储,然后这2台2008使用iscsi客户端连接到这个虚拟存储上就可以了。我做群集测试都是这么做的。
E. 存储虚拟化是什么集群存储又是什么
存储虚拟化广义上来说,就是通过映射或抽象的方式屏蔽物理设备复杂性,增加一个管理层面,激活一种资源并使之更易于透明控制。
存储虚拟化(Storage Virtualization)最通俗的理解就是对存储硬件资源进行抽象化表现。通过将一个(或多个)目标(Target)服务或功能与其它附加的功能集成,统一提供有用的全面功能服务。
集群存储是指:由若干个“通用存储设备”组成的用于存储的集群,组成集群存储的每个存储系统的性能和容量均可通过“集群”的方式得以叠加和扩展。
F. 什么是集群存储
云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是指通过集
群应用、网格技术或分布式文机房集中监控系统件系统等功能,将网络中大量各种不同类
型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的
一个系统。当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就
需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云存储是一
个以数据存储和管理为核心的云计算系统。他们基于虚拟化技术和集群架构,具有强大的
横向扩展能力。云存储设备横向扩展的方式让存储系统具有了无限扩展的能力,它能够实
现控制器与硬盘的同时扩展,也就是性能与容量可以同时实现线性扩展。
集群存储是通过将数据分布到集群中各节点的存储方式,提供单一的使用接口与界面,使
用户可以方便地对所有数据进行统一使用与管理。集群中所有磁盘设备整合到单一的共享
存储池中提供给前端的应用服务器,极大提高了磁盘利用率,可以为非结构化数据提供具
备极高IO带宽和灵活可扩展性的存储解决方案。
G. 集群存储的集群存储相对传统NAS和SAN的优势
传统的SAN与NAS分别提供的是数据块与文件两个不同级别的存储服务,集群存储也分为提供数据块与文件两个不同级别存储服务的集群存储系统。
集群存储的优势主要体现在提高并行或分区I/O的整体性能,特别是工作流、读密集型以及大型文件的访问,通过采用更低成本的服务器来降低整体成本。
SAN系统具有很高的性能,但是构建和维护起来很复杂。由于数据块和网络需求的原因,SAN系统也很难扩容。NAS系统的构建和维护虽然比较简单,但是由于其聚合设备(又叫做NAS头)是其架构上的瓶颈,造成其性能很有限。集群存储提供了SAN和NAS结构的优点。在大多数使用集群存储的案例中,随着存储系统的扩容,性能也随之提升。一个大的集群存储的性能往往胜过一个SAN系统,但是价格也会更高。集群存储系统像NAS系统一样易于构建、操作和扩容。大多数集群存储系统没有传统NAS系统的固有瓶颈。
集群存储有两种实现方式:一种是硬件基础架构加上软件,典型代表是SAN架构+IBM GPFS;另一种是专用集群存储,典型代表是Isilon、NetApp GX以及Panasas,其中NetApp GX是构建在NAS基础架构之上的,但是通过操作系统实现集群存储。从这个角度讲,集群存储与SAN或NAS不存在竞争关系,是实现不同存储需求的解决方案。”
集群存储和NAS的概念是在文件系统层面上的,而SAN是在LUN层面上的,集群存储可以利用SAN环境实现。因此,集群存储与SAN解决的问题不同。如果一定要比较这两者的优缺点的话,可以说SAN做到的是多个服务器节点可以同时看到SAN环境中的同一个LUN,还不能做到多服务器节点间的文件级共享。
集群存储在性能、可靠性及扩展性等多个方面都远远优于 NAS。
H. WINDOWS2008集群不用磁盘阵列柜可以做集群吗
看你的集群 目的,
集群最基本的需要一个仲裁盘,这个仲裁盘需要集群内所有计算机可以存取;
微软 需要你用 支持iscsi协议的 设备来做 群集共享盘;
这个 ISCSI 可以由
阵列卡 或者 软件 或者 部分支持这个功能的NAS(就是你说的阵列柜吧);
来实现,
群集里面要提供的服务 ,如果要实现故障转移或其他功能的话,也是需要用到 共享盘;
如果你觉得你的服务数据 没必要 买一个 几万块的 NAS系统,你可以考虑支持
ISCSI 驱动的阵列卡然后用一台电脑或服务器来实现;再不是,可以用软件;
I. 集群存储的定义
集群存储是将多台存储设备中的存储空间聚合成一个能够给应用服务器提供统一访问接口和管理界面的存储池,应用可以通过该访问接口透明地访问和利用所有存储设备上的磁盘,可以充分发挥存储设备的性能和磁盘利用率。数据将会按照一定的规则从多台存储设备上存储和读取,以获得更高的并发访问性能。
J. 集群存储的特点
1. 开放式架构(高扩展性)
它针对集群存储内部构成元素而言。一般集群存储应该包括存储节点、前端网络、后端网络等三个构成元素,每个元素都可以非常容易地采用业界最新技术而不用改变集群存储的架构,且扩展起来非常方便,像搭积木一样进行存储的扩展。特别是对于那些对数据增长趋势较难预测的用户,可以先购买一部分存储,当有需求的时候,随时添加,而不会影响现有存储的使用。
2. 分布式操作系统
这是集群存储的灵魂所在。所有对集群存储的操作都经由分布式操作系统统一调度和分发,分散到集群存储各个存储节点上完成。使用分布式操作系统带来的好处是各节点之间没有任何区别,没有主次、功能上的区别,所有存储节点功能完全一致,这样才能真正做到性能最优。
3. 统一命名空间
统一命名空间在很多厂家的存储概念中都出现过。在集群存储中,统一命名空间强调的是同一个文件系统下的统一命名空间。它同样可以支持上PB级别的存储空间。如果是通过将若干有空间上限的卷挂载到某一个根目录的方式来达到统一命名空间,其效率和出现存储热点时的性能将会大大低于把上PB级别的存储空间置于同一个文件系统下管理的统一命名空间。
4. 易管理性
目前存储业界的管理方式都是通过各厂商的管理工具,或通过Web界面进行管理和配置,往往客户端还需要安装相关软件才能访问到存储上的空间。随着需要管理的存储空间逐渐增大,管理存储的复杂度和管理人员的数量也将会随之增加。而集群存储应该提供一种集中的、简便易用的管理方式,对客户端没有任何影响,采用业界标准的访问协议(比如NFS,CIFS)访问集群存储。
5. 负载均衡
集群存储通过分布式操作系统的作用,会在前端和后端都实现负载均衡。前端访问集群存储的操作,通过几种负载均衡策略,将访问分散到集群存储的各个存储节点上。后端访问数据,通过开放式的架构和后端网络,数据会分布在所有节点上进行存放和读取。
6. 高性能
关于高性能领域,目前对集群存储的讨论还仅局限在高带宽、高并发访问的应用模式下。毫无疑问,集群存储对于该类应用可以提供比传统存储架构更优的性能。但目前应用除了高带宽、高并发访问类的之外,还有高IOPS、随机访问、小文件访问以及备份归档等其他类的应用,集群存储应该在以上领域同样提供高性能的解决方案。