MariaDB列存储的数据冗余 看一看引擎盖下面


在这篇文章中,我们将仔细研究 MariaDB ColumnStore 数据冗余,这是 MariaDB AX 的一个新功能。这个功能使你在使用本地磁盘存储时,能够拥有高可用的存储和自动的PM故障切换。

MariaDB ColumnStore数据冗余利用了一个开源文件系统,称为 GlusterFS ,由RedHat维护。GlusterFS是一个开源的分布式文件系统,提供对数据的持续访问,并且能够扩展非常大的数据。为了启用数据冗余,你必须在运行postConfigure之前安装并启用GlusterFS。关于这个话题的更多信息,请参考 为MariaDB ColumnStore安装做准备。1.1.X . 故障转移是由MariaDB ColumnStore自动配置的,因此,如果一个物理服务器遇到服务中断,数据仍然可以从另一个PM节点访问。

在postConfigure过程中,会提示你输入每个dbroot的冗余副本的数量。

Enter Number of Copies [2-N]  

在具有数据冗余的多节点安装中, 为每个DBRoot创建复制的GlusterFS卷 。对外面的用户来说,这似乎和上面一样。在系统内部,DBRoot现在是一个Gluster卷,其中Gluster卷是一个Gluster砖块的集合,映射到位于这里的本地文件系统上的目录。

/usr/local/mariadb/columnstore/gluster/brick(n) (Default). 

这个目录将包含子目录brick1到brick[n],其中n=配置的副本。

注意 : 砖块在每个PM上是按顺序编号的,因为它们是由MariaDB ColumnStore创建的,彼此之间没有关系,也与DBRoot ID无关。

视觉上。


一个**M的安装,数据冗余副本=2

在mcsadmin getStorageConfig中,以文本形式这样显示。

Data Redundant Configuration

Copies Per DBroot = 2
DBRoot #1 has copies on PMs = 1 2 
DBRoot #2 has copies on PMs = 2 3 
DBRoot #3 has copies on PMs = 1 3 

副本的数量可以增加到和PM的数量一样多。对于一个**M的系统,这将会是这样的。


带有数据冗余副本的**M安装=3

需要注意的是,随着副本数量的增加,用于在PM之间分配冗余数据的网络资源量也会增加。在你的数据冗余要求允许的情况下,副本数量的配置应保持在较低水平。另外,如果硬件配置允许,可以在安装过程中用postConfigure配置一个专用网络,以帮助卸载gluster网络数据。

MariaDB ColumnStore通过使用GlusterFS将DBRoots挂载到其相关的数据目录中,将DBRoots分配给一个PM,并正常使用。

PM1。

mount -tglusterfs PM1:/dbroot1 /usr/local/mariadb/columnstore/data1

PM2:

mount -tglusterfs PM2:/dbroot2 /usr/local/mariadb/columnstore/data2

PM3:

mount -tglusterfs PM3:/dbroot3 /usr/local/mariadb/columnstore/data3

在这一点上,当对data(n)目录中的任何文件进行修改时,它被复制到所连接的砖块。只有指定的砖块被挂载为逻辑的DBRoots。未分配的砖块是等待故障转移事件的备用副本。

三个PM的数据冗余副本=2

当检测到一个PM的服务中断时,会发生故障切换。在一个正常的本地磁盘安装中,存储在该模块的dbroot上的数据将无法访问。有了数据冗余,在DBRoot被重新分配到第二块砖的时候,就会发生小的中断。

在我们的例子系统中,3号PM失去了电源。PM #1将和DBRoot1一起被分配到DBRoot3,因为它一直在维护DBroot3的复制砖。2号PM不会看到任何变化。

三台PM的数据冗余副本=2和PM #3的故障

当PM #3恢复时,DBRoot3和DBRoot2的数据变化将由GlusterFS在各卷的砖上同步。PM #3恢复运行,DBRoot3从PM #1上卸载并返回到PM #3上。

三个PM的数据冗余副本=2,PM #3恢复

这只是一个简单的例子,旨在说明具有数据冗余的MariaDB ColumnStore如何利用GlusterFS提供一个简单而有效的方法来保持你的数据在服务中断时可以访问。

我们很高兴提供数据冗余作为MariaDB ColumnStore 1.1的一部分,该版本作为MariaDB AX 的一部分可供 下载,这是一个用于现代数据分析和数据仓库的企业开源解决方案。