Infinidb 使用笔记1

来源:互联网 发布:上海家博会数据 编辑:程序博客网 时间:2024/05/20 14:27
最近在研究 Infinidb,记录之。

安装

安装方式很多,可以选择从源码直接编译安装, 源码的下载路径在:
https://github.com/infinidb
里面有infinidb 和 mysql 两个目录,可以只下 infinidb.
具体的安装说明在
https://github.com/infinidb/infinidb的 README.md中有。

需要注意的是
1. 源码编译的过程非常的久,我机器上差不多快1小时。
2. 编译过程中可能碰到如下错误

    libtoolCDPATH: command not found
原因是 automake的 文件可能使用旧版本的 libtool生成的(github上的),解决办法就是重新生成一下就好:
依次执行:
cd mysql
automake --add-missing
aclocal
autoreconf
libtoolize
然后就可以  ./configure --prefix=...

3. 如果编译的使用指定了 prefix 那么编译出的可执行文件是生成在 prefix目录里的,在那里会有一个Calpont的文件夹。但安装的时候还是需要把这个文件夹移动到  /usr/local 下,否则无法正确执行postConfigure 进行安装。(这个限制似乎是写在代码里的。。。)

除了源码,可以使用简单的 RPM 安装。直接从社区 http://www.infinidb.org/ 上找到下载,应该有4个 RPM包:
[root@host-10-0-32-13 ~]# rpm -qa | grep infi
infinidb-mysql-4.0.1-1.x86_64
infinidb-libs-4.0.1-1.x86_64
infinidb-storage-engine-4.0.1-1.x86_64
infinidb-platform-4.0.1-1.x86_64


配置

安装完之后就是配置,直接执行 /usr/local/Calpont/bin/postConfigure就可以了。
具体步骤可以参看手册  CalpontInfiniDBInstallGuide_401-1.pdf,这里主要是列出一些需要注意的地方:

1. 安装前确保安装所涉及到的机器上没有infinidb相关的 rpm和进程(主要是对于重新安装而言),否则可能会出现锁,或者其他奇怪的问题。
2. 如果选择 multiple 模式,需要注意 separate 和 combine 是两个完全不同的模式,separate是MPP模式,而combine的安装出来的多个PM是完全独立的。
3. 选择 multiple + separate 模式安装配置时,需要注意:一般而言本机是 PM1,所以在配置 PM1的interface的时候要填写本机的 IP,否则安装会失败,并且出现各种奇怪的问题。
4. 安装过程中所有涉及到的机器都要安装 expect 库
5. 选择 multiple + separate 模式安装配置时,填写的 ip 必须是本机 ifconfig 里可以看到的ip,否则MPP集群的高可靠就无法正确运行。(这主要是对于一些云平台的机器而言,如 openstack,可以为云主机绑定一个ip对平台以外的用户提供服务,但这个 ip 在本机 ifconfig 里是看不到的。)
6. 选择 multiple + separate 模式安装配置时,如果想启用数据的高可用,那么安装过程中数据目录必须选择external 的模式,这种模式下 infinidb会自动用 mount 和 umount来自动挂载和卸载远程文件目录来实现高可用。
   以使用 nfs 为例,nfs的服务端配置这里略过:
   a. 首先在 nfs 服务端为每个 DBRoot分配一个目录,如 172.16.72.100:/raid0/data/dennisd1
   b. 在每个PM的机器上配置 /etc/fstab中添加所有 DBRoot 对于的 nfs 远程目录,如:

172.16.72.100:/raid0/data/dennisd1   /usr/local/Calpont/data1  nfs   noatime,nodiratime,auto 0 0
172.16.72.100:/raid0/data/dennisd2   /usr/local/Calpont/data2  nfs   noatime,nodiratime,auto 0 0

   c. 确保执行 postConfig之前,所有 PM 节点上所有 DBRoot 的远程目录都被 umount 了

这样在一个 PM 出问题的时候,它所挂载的远程目录会自动挂载到别的 PM 去,这样确保数据访问的高可用。

高可靠

multiple + separate 模式下的Infinidb自动保证集群的高可靠,即无单点。
如 OAM PM 挂了, 会自动切换到它的 Hot Standby上。(从cc的getprocessstatus中可以看出)
如 primary UM 挂了, DDL和DML process会在 Cold Standby上启动。
每次切换大约需要30s~1min。

关于Infinidb使用的后面记录吧。。。

转载请注明转自高孝鑫的博客

0 0