本文介绍GBase 8a数据库集群V95版本,虚拟集群(Virtual Cluster 简称VC)的安装,创建和使用。
目录导航
参考
环境
1管理+1调度+2计算节点集群
10.0.2.101 管理+调度+计算
10.0.2.115 计算
安装
与普通V95安装一样,如下只贴出配置文件和安装结果。
注意如下所有操作都在dbaUser下进行,一般是操作系统gbase用户。
安装准备工作,请参考 GBase 8a集群V95新安装注意事项
配置文件
[gbase@gbase_rh7_001 gcinstall]$ cat demo.options
installPrefix= /opt/gbase
coordinateHost = 10.0.2.101
coordinateHostNodeID = 101
dataHost = 10.0.2.101,10.0.2.115
#existCoordinateHost =10.0.2.101
#existDataHost =10.0.2.101
dbaUser = gbase
dbaGroup = gbase
dbaPwd = 'gbase1234'
rootPwd = ''
#rootPwdFile = rootPwd.json
#updateConf=demo.conf
安装结果
用gcinstall.py安装
./gcinstall.py --silent=demo.options
.........
10.0.2.101              install cluster on host 10.0.2.101 successfully.
10.0.2.115              install cluster on host 10.0.2.115 successfully.
Starting all gcluster nodes...
adding new datanodes to gcware...
[gbase@gbase_rh7_001 gcinstall]$
[gbase@gbase_rh7_001 gcinstall]$
[gbase@gbase_rh7_001 gcinstall]$ gcadmin
CLUSTER STATE:         ACTIVE
=============================================================
|           GBASE COORDINATOR CLUSTER INFORMATION           |
=============================================================
|   NodeName   | IpAddress  | gcware | gcluster | DataState |
-------------------------------------------------------------
| coordinator1 | 10.0.2.101 |  OPEN  |   OPEN   |     0     |
-------------------------------------------------------------
===========================================================
|        GBASE CLUSTER FREE DATA NODE INFORMATION         |
===========================================================
| NodeName  | IpAddress  | gnode | syncserver | DataState |
-----------------------------------------------------------
| FreeNode1 | 10.0.2.101 | OPEN  |    OPEN    |     0     |
-----------------------------------------------------------
| FreeNode2 | 10.0.2.115 | OPEN  |    OPEN    |     0     |
-----------------------------------------------------------
创建VC(createvc)
这部分是虚拟集群(Virtual Cluster)的部分。如果不单独创建,则使用vcname000001的默认vc。
注意:如果你不想使用VC功能,所有节点全是一个VC,和V86版本相容的【兼容模式】,请不要创建VC,直接跳转到后面的创建分布策略章节。与86的方法基本一致。
生成VC配置文件样本
gcadmin命令可以生成配置文件样本。
[gbase@gbase_rh7_001 gcinstall]$ gcadmin createvc e createvc.xml
[gbase@gbase_rh7_001 gcinstall]$ cat createvc.xml
<?xml version='1.0' encoding="utf-8"?>
<servers>
    <rack>
        <node ip="vc data node ip"/>
        <!--- ... -->
        <node ip="vc data node ip"/>
    </rack>
    <vc_name name="virtual cluster name no more than 64 bytes"/>
    <comment message="comment message no more than 60 bytes"/>
</servers>
[gbase@gbase_rh7_001 gcinstall]$
创建VC1
修改配置文件,将第一个计算节点IP 10.0.2.101写入,并编辑VC的名字和注释
[gbase@gbase_rh7_001 gcinstall]$ cat createvc.xml
<?xml version='1.0' encoding="utf-8"?>
<servers>
    <rack>
        <node ip="10.0.2.101"/>
    </rack>
    <vc_name name="vc01"/>
    <comment message="first vc with one node"/>
</servers>
执行createvc命令创建VC
[gbase@gbase_rh7_001 gcinstall]$ gcadmin createvc createvc.xml
parse config file createvc.xml
generate vc id: vc00001
add vc information to cluster
add nodes to vc
gcadmin create vc [vc01] successful
[gbase@gbase_rh7_001 gcinstall]$ 
创建VC2
相同的方法,将另一个IP修改好配置文件。
[gbase@gbase_rh7_001 gcinstall]$ cat createvc2.xml
<?xml version='1.0' encoding="utf-8"?>
<servers>
    <rack>
        <node ip="10.0.2.115"/>
    </rack>
    <vc_name name="vc02"/>
    <comment message="second vc with one node"/>
</servers>
创建VC
[gbase@gbase_rh7_001 gcinstall]$ gcadmin createvc createvc.xml
parse config file createvc.xml
generate vc id: vc00002
add vc information to cluster
add nodes to vc
gcadmin create vc [vc02] successful
[gbase@gbase_rh7_001 gcinstall]$
创建VC的结果
通过gcadmin命令,可以看到默认只显示了当前的VC信息了。
[gbase@gbase_rh7_001 gcinstall]$ gcadmin
CLUSTER STATE:         ACTIVE
=============================================================
|           GBASE COORDINATOR CLUSTER INFORMATION           |
=============================================================
|   NodeName   | IpAddress  | gcware | gcluster | DataState |
-------------------------------------------------------------
| coordinator1 | 10.0.2.101 |  OPEN  |   OPEN   |     0     |
-------------------------------------------------------------
===========================================================
|            GBASE VIRTUAL CLUSTER INFORMATION            |
===========================================================
|    VcName    | DistributionId |         comment         |
-----------------------------------------------------------
|     vc01     |                | first vc with one node  |
-----------------------------------------------------------
|     vc02     |                | second vc with one node |
-----------------------------------------------------------
2 virtual cluster: vc01, vc02
1 coordinator node
0 free data node
[gbase@gbase_rh7_001 gcinstall]$ 
创建分布策略(distribution)
包括创建分布策略配置文件,和创建2个步骤。
编辑策略配置文件gcChangeInfo.xml
配置文件里包含本VC里,数据节点的主备分布策略。如下是第一个VC的样子。
[gbase@gbase_rh7_001 gcinstall]$ vi gcChangeInfo.xml
[gbase@gbase_rh7_001 gcinstall]$ cat gcChangeInfo.xml
<?xml version="1.0" encoding="utf-8"?>
<servers>
 <rack>
  <node ip="10.0.2.101"/>
 </rack>
</servers>
第二个VC的配置文件
[gbase@gbase_rh7_001 gcinstall]$ cat gcChangeInfo2.xml
<?xml version="1.0" encoding="utf-8"?>
<servers>
 <rack>
  <node ip="10.0.2.115"/>
 </rack>
</servers>
[gbase@gbase_rh7_001 gcinstall]$
创建分布策略(distribution)
注意:如果不使用VC,是和V86相同的兼容模式,则如下参数里,不要执行vc参数。
创建VC1的分布策略
具体参数请参考产品安装手册。其中用户名和密码是【数据库】的用户密码,不是操作系统的。
[gbase@gbase_rh7_001 gcinstall]$ gcadmin distribution gcChangeInfo.xml p 1 d 0 db_user gbase db_pwd gbase20110531 vc vc01
gcadmin generate distribution ...
[warning]: parameter [d num] is 0, the new distribution will has no segment backup
please ensure this is ok, input [Y,y] or [N,n]: y
NOTE: node [10.0.2.101] is coordinator node, it shall be data node too
gcadmin generate distribution successful
[gbase@gbase_rh7_001 gcinstall]$ gcadmin
CLUSTER STATE:         ACTIVE
=============================================================
|           GBASE COORDINATOR CLUSTER INFORMATION           |
=============================================================
|   NodeName   | IpAddress  | gcware | gcluster | DataState |
-------------------------------------------------------------
| coordinator1 | 10.0.2.101 |  OPEN  |   OPEN   |     0     |
-------------------------------------------------------------
===========================================================
|            GBASE VIRTUAL CLUSTER INFORMATION            |
===========================================================
|    VcName    | DistributionId |         comment         |
-----------------------------------------------------------
|     vc01     |       1        | first vc with one node  |
-----------------------------------------------------------
|     vc02     |                | second vc with one node |
-----------------------------------------------------------
2 virtual cluster: vc01, vc02
1 coordinator node
0 free data node
[gbase@gbase_rh7_001 gcinstall]$ 
创建VC2的分布策略
[gbase@gbase_rh7_001 gcinstall]$ gcadmin distribution gcChangeInfo2.xml p 1 d 0 db_user gbase db_pwd gbase20110531 vc vc02
gcadmin generate distribution ...
[warning]: parameter [d num] is 0, the new distribution will has no segment backup
please ensure this is ok, input [Y,y] or [N,n]: y
gcadmin generate distribution successful
[gbase@gbase_rh7_001 gcinstall]$ gcadmin
CLUSTER STATE:         ACTIVE
=============================================================
|           GBASE COORDINATOR CLUSTER INFORMATION           |
=============================================================
|   NodeName   | IpAddress  | gcware | gcluster | DataState |
-------------------------------------------------------------
| coordinator1 | 10.0.2.101 |  OPEN  |   OPEN   |     0     |
-------------------------------------------------------------
===========================================================
|            GBASE VIRTUAL CLUSTER INFORMATION            |
===========================================================
|    VcName    | DistributionId |         comment         |
-----------------------------------------------------------
|     vc01     |       1        | first vc with one node  |
-----------------------------------------------------------
|     vc02     |       2        | second vc with one node |
-----------------------------------------------------------
2 virtual cluster: vc01, vc02
1 coordinator node
0 free data node
[gbase@gbase_rh7_001 gcinstall]$
初始化
登录数据库,选择VC,然后初始化initnodedatamap;
[gbase@gbase_rh7_001 gcinstall]$ gccli
GBase client 9.5.2.26.121440. Copyright (c) 2004-2021, GBase.  All Rights Reserved.
gbase> show vcs;
+---------+------+---------+
| id      | name | default |
+---------+------+---------+
| vc00001 | vc01 |         |
| vc00002 | vc02 |         |
+---------+------+---------+
2 rows in set (Elapsed: 00:00:00.00)
gbase> use vc vc01;
Query OK, 0 rows affected (Elapsed: 00:00:00.01)
gbase> initnodedatamap;
Query OK, 0 rows affected (Elapsed: 00:00:00.33)
gbase> use vc vc02;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)
gbase> initnodedatamap;
Query OK, 0 rows affected (Elapsed: 00:00:00.36)
gbase>
查看虚拟集群信息
通过 showcluster vc vcName 方法获得指定VC的情况。其它功能也都需要指定vc。
[gbase@gbase_rh7_001 gcinstall]$ gcadmin showcluster vc vc01
CLUSTER STATE:         ACTIVE
VIRTUAL CLUSTER MODE:  NORMAL
==========================================================
|           GBASE VIRTUAL CLUSTER INFORMATION            |
==========================================================
|    VcName    | DistributionId |        comment         |
----------------------------------------------------------
|     vc01     |       1        | first vc with one node |
----------------------------------------------------------
=========================================================================================================
|                                 VIRTUAL CLUSTER DATA NODE INFORMATION                                 |
=========================================================================================================
| NodeName |                IpAddress                 | DistributionId | gnode | syncserver | DataState |
---------------------------------------------------------------------------------------------------------
|  node1   |                10.0.2.101                |       1        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------
1 data node
[gbase@gbase_rh7_001 gcinstall]$ gcadmin showcluster vc vc02
CLUSTER STATE:         ACTIVE
VIRTUAL CLUSTER MODE:  NORMAL
===========================================================
|            GBASE VIRTUAL CLUSTER INFORMATION            |
===========================================================
|    VcName    | DistributionId |         comment         |
-----------------------------------------------------------
|     vc02     |       2        | second vc with one node |
-----------------------------------------------------------
=========================================================================================================
|                                 VIRTUAL CLUSTER DATA NODE INFORMATION                                 |
=========================================================================================================
| NodeName |                IpAddress                 | DistributionId | gnode | syncserver | DataState |
---------------------------------------------------------------------------------------------------------
|  node1   |                10.0.2.115                |       2        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------
1 data node
[gbase@gbase_rh7_001 gcinstall]$
总结
虚拟集群,只针对计算节点,不同的计算节点唯一属于某个虚拟集群,不能共享,来达到物理级别的资源隔离。
管理和调度集群是共享的,对外服务也是相同的。
不同的用户,可以指定默认的vc。