




免费预览已结束,剩余37页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
mysql 群集,目的: 了解mysql集群,mysql集群,集群是一个统称,他分为好几种,如高性能科学群集、负载均衡群集、高可用性群集等。,群集的概念,科学群集,科学群集 通常,这种集群涉及为群集开发并行编程应用程序,以解决复杂的科学问题。它不使用专门的超级并行计算机,而是用商业系统(如通过高速连接来链接的 一组单处理器或双处理器pc),并且在公共消息传递层上进行通信以运行并行应用程序。我们常常听说一种便宜的 linux 超级计算机问世了,大多数情况就是指这种集群系统,其处理能力与真的超级计算机相当,而其价格与上百万美元的专用超级计算机相比是相当的便宜。,负载均衡群集,负载均衡群集 负载均衡群集为企业需求提供了更为实用的系统。如其名称,这种系统使负载可以在多台计算机中尽可能平均地分摊处理。负载可以是需要均衡的应用程序 处理负载或网络流量负载。在系统中,每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实现平衡。对于网络流量也是如此。,高可用性群集,高可用性群集 高可用性群集的出现是为了使群集的整体服务尽可能可用。如果高可用性群集中的主节点发生了故障,那么这段时间内将由次节点代替它。次节点通常是主节点的镜像,所以当它代替主节点时,它可以完全接管其身份,对用户没有任何影响。,在群集的这三种基本类型之间,经常会发生交叉、混合。比如:在高可用性的群集系统中也可以在其节点之间实现负载均衡,同时仍然维持着其高可用性。,集群概念,群集和集群一样么?群集、分布式计算、并行计算的关系?,群集、并行计算、分布式计算,简单的说:并行计算是在一个整机中多个处理器之间的“共同工作” 分布式计算是多个整机之间的“共同工作” 实际上,群集就是分布式计算的一个类型,而群集和集群都是一个意思! 都翻译成cluster !,群集、并行计算、分布式计算,ndb cluster 存储引擎简介,ndb 存储引擎也叫ndb cluster 存储引擎,主要用于mysql cluster 分布式集群环境,cluster 是mysql 从5.0 版本才开始提供的新功能。这部分我们可能并不仅仅只是介绍ndb存储引擎,因为离开了mysql cluster 整个环境,ndb 存储引擎也将失去太多意义。所以这一节主要是介绍一下mysql cluster 的相关内容。 简单的说,mysql cluster 实际上就是在无共享存储设备的情况下实现的一种内存数据库cluster 环境,其主要是通过ndb cluster(简称ndb)存储引擎来实现的。 一般来说,一个mysql cluster 的环境主要由以下三部分组成:,a) 负责管理各个节点的manage 节点主机: 管理节点负责整个cluster 集群中各个节点的管理工作,包括集群的配置,启动关闭各节点,以及实施数据的备份恢复等。管理节点会获取整个cluster 环境中各节点的状态和 错误信息,并且将各cluster 集群中各个节点的信息反馈给整个集群中其他的所有节点。由于管理节点上保存在整个cluster 环境的配置,同时担任了集群中各节点的基本沟通工作,所以他必须是最先被启动的节点。,manage节点,b) sql 层的sql 服务器节点(后面简称为sql 节点),也就是我们常说的mysql server: 主要负责实现一个数据库在存储层之上的所有事情,比如连接管理,query 优化和响应,cache 管理等等,只有存储层的工作交给了ndb 数据节点去处理了。也就是说,在纯粹的mysql cluster 环境中的sql 节点,可以被认为是一个不需要提供任何存储引擎的mysql服务器,因为他的存储引擎有cluster 环境中的ndb 节点来担任。所以,sql 层各mysql 服务器的启动与普通的mysql 启动有一定的区别,必须要添加ndbcluster 项,可以添加在f 配置文件中,也可以通过启动命令行来指定。,sql节点,c) storage 层的ndb 数据节点,也就是上面说的ndb cluster: ndb 是一个内存式存储引擎也就是说,他会将所有的数据和索引数据都load 到内存中,但也会将数据持久化到存储设备上。不过,最新版本,已经支持用户自己选择数据可以不全部load 到内存中了,这对于有些数据量太大或者基于成本考虑而没有足够内存空间来存放所有数据的用户来说的确是一个大好消息。 ndb 节点主要是实现底层数据存储的功能,保存cluster 的数据。每一个ndb 节点保存 完整数据的一部分(或者一份完整的数据,视节点数目和配置而定),在mysql cluster 里面叫做一个fragment。而每一个fragment,正常情况来讲都会在其他的主机上面有一份(或者多分)完全相同的镜像存在。这些都是通过配置来完成的,所以只要配置得当,mysql cluster 在存储层不会出现单点的问题。一般来说,ndb 节点被组织成一个一个的ndb group,一个ndb group 实际上就是一组存有完全相同的物理数据的ndb 节点群。,data节点,上面提到了ndb 各个节点对数据的组织,可能每个节点都存有全部的数据也可能只保存一部分数据,主要是受节点数目和参数来控制的。首先在mysql cluster 主配置文件(在管理节点上面,一般为config.ini)中,有一个非常重要的参数叫noofreplicas,这个参数指定了每一份数据被冗余存储在不同节点上面的份数,该参数一般至少应该被设置成2,也只需要设置成2 就可以了。因为正常来说,两个互为冗余的节点同时出现故障的概率还是非常小的,当然如果机器和内存足够多的话,也可以继续增大。一个节点上面是保存所有的数据还是一部分数据,还受到存储节点数目的限制。ndb 存储引擎首先保证noofreplicas 参数配置的要求对数据冗余,来使用存储节点,然后再根据节点数目将数据分段来继续使用多余的ndb 节点,分段的数目为节点总数除以noofreplicas 所得。,data节点,mysql簇,mysql簇是mysql适合于分布式计算环境的高实用、高冗余版本。它采用了ndb簇存储引擎,允许在1个簇中运行多个mysql服务器。在mysql 5.1二进制版本中、以及与最新的linux版本兼容的rpm中提供了该存储引擎。(注意,要想获得mysql簇的功能,必须安装mysql-server和mysql-max rpm)。 目前能够运行mysql簇的操作系统有linux、mac os x和solaris。(一些用户通报成功地在freebsd上运行了mysql簇,但mysql ab公司尚未正式支持该特性)。,mysql簇概述,mysql簇是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的簇。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。 mysql簇将标准的mysql服务器与名为ndb的“内存中”簇式存储引擎集成了起来。在我们的文档中,术语ndb指的是与存储引擎相关的设置部分,而术语“mysql簇”指的是mysql和ndb存储引擎的组合。 mysql簇由一组计算机构成,每台计算机上均运行着多种进程,包括mysql服务器,ndb簇的数据节点,管理服务器,以及(可能)专门的数据访问程序。关于簇中这些组件的关系,请参见下图:,簇中的组件关系,所有这些程序一起构成了mysql簇。将数据保存到ndb簇存储引擎中时,表将保存在数据节点内。能够从簇中所有其他mysql服务器直接访问这些表。因此,在将数据保存在簇内的工资表应用程序中,如果某一应用程序更新了1位雇员的工资,所有查询该数据的其他mysql服务器能立刻发现这种变化。 对于mysql簇,保存在数据节点内的数据可被映射,簇能够处理单独数据节点的故障,除了少数事务将因事务状态丢失而被放弃外,不会产生其他影响。由于事务性应用程序能够处理事务失败事宜,因而它不是问题源。 通过将mysql簇引入开放源码世界,mysql为所有需要它的人员提供了具有高可用性、高性能和可缩放性的簇数据管理。,mysql簇概述,mysql簇的基本概念,ndb是一种“内存中”存储引擎,它具有可用性高和数据一致性好的特点。 能够使用多种故障切换和负载平衡选项配置ndb存储引擎,但以簇层面上的存储引擎开始最简单。mysql簇的ndb存储引擎包含完整的数据集,仅取决于簇本身内的其他数据。 下面,我们介绍了设置由ndb存储引擎和一些mysql服务器构成的mysql簇的设置方法。 目前,mysql簇的簇部分可独立于mysql服务器进行配置。在mysql簇中,簇的每个部分被视为1个节点。 注释:在很多情况下,术语“节点”用于指计算机,但在讨论mysql簇时,它表示的是进程。在单台计算机上可以有任意数目的节点,为此,我们采用术语簇主机。 有三类簇节点,在最低的mysql簇配置中,至少有三个节点,这三类节点分别是:,管理(mgm)节点:这类节点的作用是管理mysql簇内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。mgm节点是用命令ndb_mgmd启动的。 数据节点:这类节点用于保存簇的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。没有必要有一个以上的副本。数据节点是用命令ndbd启动的。 sql节点:这是用来访问簇数据的节点。对于mysql簇,客户端节点是使用ndb簇存储引擎的传统mysql服务器。典型情况下,sql节点是使用命令mysqld ndbcluster启动的,或将ndbcluster添加到f后使用mysqld启动。 簇配置包括对簇中单独节点的配置,以及设置节点之间的单独通信链路。对于目前设计的mysql簇,其意图在于,从处理器的能力、内存空间和带宽来讲,存储节点是同质的,此外,为了提供单一的配置点,作为整体,簇的所有配置数据均位于1个配置文件中。,mysql簇的基本概念,多计算机的简单基础知识,本节作了如下假定: 1. 我们将建立具有4个节点的簇,每个节点位于不同的主机上,而且在典型的以太网中具有固定的网络地址,如下所述:,2. 通过下图可更清楚的表明这点:,多计算机的简单基础知识,多计算机的简单基础知识,在每台机器上安装了标准的100 mbps或1吉比特以太网卡,为每块网卡安装了恰当的驱动程序,并用标准的以太网联网装置(如交换器等)将4台主机连接起来(所有机器应使用具有相同容量的网卡,也就是说,簇中的所有4台机器应全部使用100m网卡,或全部使用1g网卡)。mysql簇将工作在100 mbps网络中,但吉比特以太网能提供更好的性能。 注意,mysql簇不适合于连通性低于100 mbps的网络。出于该原因(尤其是),在公共网络如internet上运行mysql簇很难成功,也不推荐这样做。,硬件、软件和联网,mysql簇的一个强大优点在于,它能运行在普通硬件上,除了需要较大的ram外在这点上没有特殊要求,这是因为实际的数据存储均是在内存中进行的。显然,多个cpu和更快的cpu能增强性能。对于簇进程来说,对内存的要求相对较少。 簇的软件要求程度适中。主机操作系统不需要任何特殊模块、服务、应用程序、或配置就能支持mysql簇。对于mac os x或solaris,标准安装就已足够。对于linux,标准的“即开即用”安装应是所需的全部。mysql软件要求很简单:mysql-max 5.1的生产版就是所需的全部,要想获得簇支持,必须使用mysql的-max版本。无需自己编译mysql就能使用簇。在本节中,我们假定你使用了与linux相适应的-max二进制版本。对于solaris或mac os x操作系统,相应的部分可通过mysql软件下载页面获得,/downloads/。,硬件、软件和联网,对于节点之间的通信,簇支持采用标准拓扑方案的tcp/ip联网,对于每台主机的预期最低要求是1块标准的100 mbps以太网卡,对于作为整体的簇,还需加上交换器、网络集线器或路由器以提供网络连通性。强烈建议,应在其自己的子网内运行mysql簇,不与非簇机器共享该子网,原因如下: 安全性:簇节点之间的通信未采用任何特殊加密或防护。对mysql簇内传输的唯一保护方法是,在受保护的网络上运行簇。如果打算将mysql簇用于web应用,簇应明确地位于防火墙后面,而且不应位于网络的非军事区(dmz)或其他地方。 效率:在专有的或受保护的网络上设置mysql簇,这样,簇就能独享簇主机之间的带宽。为mysql簇使用单独的交换器不仅能防止对簇数据的非法访问,而且还能确保簇节点不受网络上其他计算机之间信息传输的干扰。为了增强可靠性,可以使用双交换器和双卡,以防止网络出现单点故障,对于这类通信链路,很多设备驱动均支持故障切换功能。,对于每台运行存储或sql节点的mysql簇主机计算机,必须在其上安装mysql-max二进制版本。对于管理节点,没有必要安装mysql服务器二进制版本,但应安装mgm服务器端口监督程序和客户端二进制版本(分别是ndb_mgmd和ndb_mgm),具体操作可以参考mysql手册17.3.2. 安装,安装,对于我们的4节点、4主机mysql簇,需要编写4个配置文件,每个节点/主机1个。 每个数据节点或sql节点需要1个f文件,该文件提供了两类信息:connectstring(连接字符串),用于通知节点到哪里找到mgm节点;以及一行,用于通知该主机(容纳数据节点的机器)上的mysql服务器运行在ndb模式下。 关于连接字符串的更多信息,请参见mysql 手册节,“mysql簇连接字符串”。 管理节点需要config.ini文件,该文件通知节点有多少需要维护的副本,需要在每个数据节点上为数据和索引分配多少内存,数据节点的位置,在每个数据节点上保存数据的磁盘位置,以及sql节点的位置。,配置,数据节点所需的f文件相当简单。配置文件应位于/etc目录下,并能用任何文本编辑器进行编辑 (如有必要,创建该文件),例如: vi /etc/f 对于本示例中的每个数据节点和sql节点,f文件类似于: # options for mysqld process: mysqld ndbcluster # run ndb engine ndb-connectstring=0 # location of mgm node # options for ndbd process: mysql_cluster ndb-connectstring=0 # location of mgm node 输入上述内容后,保存文件并退出文本编辑器。在容纳数据节点“a”、数据节点“b”和sql节点的机器上分别执行上述操作。,配置存储节点和sql节点,配置mgm节点的第一步是创建目录,该目录用于存放配置文件,然后创建配置文件本身。例如(以根用户身份运行): mkdir /var/lib/mysql-cluster cd /var/lib/mysql-cluster vi config.ini 在此使用了vi来创建文件,不过,任何文本编辑器均应能胜任。,配置管理节点,对于我们的典型设置,config.ini文件应类似于: # options affecting ndbd processes on all data nodes: ndbd default noofreplicas=2 # number of replicas datamemory=80m # how much memory to allocate for data storage indexmemory=18m # how much memory to allocate for index storage # for datamemory and indexmemory, we have used the # default values. since the “world“ database takes up # only about 500kb, this should be more than enough for # this example cluster setup. # tcp/ip options: tcp default portnumber=2202 # this the default; however, you can use any # port that is free for all the hosts in cluster # note: it is recommended beginning with mysql 5.0 that # you do not specify the portnumber at all and simply allow # the default value to be used instead # management process options:,配置管理节点,ndb_mgmd hostname=0 # hostname or ip address of mgm node datadir=/var/lib/mysql-cluster # directory for mgm node logfiles # options for data node “a“: ndbd # (one ndbd section per data node) hostname=0 # hostname or ip address datadir=/usr/local/mysql/data # directory for this data nodes datafiles # options for data node “b“: ndbd hostname=0 # hostname or ip address datadir=/usr/local/mysql/data # directory for this data nodes datafiles # sql node options: mysqld hostname=0 # hostname or ip address # (additional mysqld connections can be # specified for this node for various # purposes such as running ndb_restore),配置管理节点,注释:簇管理节点的默认端口是1186,数据节点的默认端口2202。从mysql 5.0.3开始,该限制已被放宽,簇能够根据空闲的端口自动地为数据节点分配端口。,配置,完成配置后,启动簇并不很困难。必须在数据节点所在的主机上分别启动每个簇节点进程。尽管能够按任何顺序启动节点,但建议,应首先启动管理节点,然后启动存储节点,最后启动sql节点,具体的启动请参照mysql手册17.3.4. 首次启动,首次启动,要想关闭簇,可在mgm节点所在的机器上,在shell中简单地输入下述命令: shell ndb_mgm -e shutdown 要想重启簇,可简单地运行下述命令: 在管理主机上(本设置中为0): shell ndb_mgmd -f /var/lib/mysql-cluster/config.ini 在每台数据节点主机上(0和0): shell ndbd 在sql主机上(0): shell mysqld &,安全关闭和重启,数据节点的最大数目为48。 mysql簇中总的最大节点数为63。在该数值中包括所有的mysql服务器(sql节点),数据节点和管理服务器。 更多请参考mysql手册17.8. mysql簇的已知限制,mysql簇的已知限制,运行簇需要多少台计算机?为什么? 要想运行可行的簇,最少需要3台计算机。但在mysql簇中,推荐的最低计算机数目为4:1台负责运行管理节点,1台负责运行sql节点,2台用作存储节点。使用2个数据节点的目的是为了提供冗余性,管理节点必须运行在单独的机器上,这样,当1个数据节点失败时,仍能保证连续的仲裁服务。,mysql簇常见问题,簇
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养护安全培训照片墙课件
- 农业学安全培训课件
- 农业农村法律法规课件
- 化工企业安全培训脚本课件
- 农业农机安全培训会课件
- 银行展厅营销活动方案(3篇)
- 化学用品安全培训内容课件
- 创造宣言课件制作
- 内科消化性溃疡课件
- 先横后竖课件
- 职高课件模板
- 【生物】第四节 激素调节课件-2025-2026学年人教版生物八年级上册
- 卫生院安全生产培训课件
- 物流紧急事件应急预案方案
- 期中专题复习-词汇句型训练-2025-2026学年 译林版2024 英语八年级上册 原卷
- 2025年全国中小学校科普知识竞赛题库(+答案)
- 2.2创新永无止境教学课件 2025-2026学年度九年级上册 道德与法治 统编版
- 矿山爆破作业安全培训课件
- 2025-2026学年九年级英语上学期第一次月考 (四川成都专用) 2025-2026学年九年级英语上学期第一次月考 (四川成都专用)解析卷
- 高陡边坡稳定性控制技术及其工程实践
- 河南省委党校在职研究生入学考试真题及答案
评论
0/150
提交评论