SequoiaDB集群的搭建(一)

本文详细介绍了如何搭建SequoiaDB高性能集群,包括环境准备、配置主机名、关闭防火墙、调整系统参数,以及启动和管理SequoiaDB的各个组件。通过配置,可以实现对总数据吞吐和性能的要求,但牺牲一定的可靠性。同时,文章还提到了SequoiaDB Web服务器的启动和监控管理,便于数据库管理和操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 搭建集群环境

分为高可用和高性能两种选择

高可用部署方式适用于对可靠性要求高,但数据量不大、总吞吐要求不高的应用场景。在该部署中,在三台物理服务器上,都部署有数据节点和编目节点,三个数据节点组成一个副本组,三个编目节点组成副本集群。协调节点部署在业务应用的服务器上,也可以将应用/协调节点合部到数据库服务器上。这种部署方式得优势就是高可靠性,任意一个物理服务器故障,数据的读写都不会受到影响。但数据容量与单个服务器的容量相同,且硬件成本相对较高。



高性能

高性能部署方式适用于对总数据吞吐/性能要求高,硬件成本低,但对可靠性要求不高的场景。该部署方式,在三台物理机服务上都部署有编目节点和数据节点,三个编目节点组成一个副本组,每个数据节点单独组成一个副本组(只有一个副本)。协调节点与应用部署在分离的服务器上,或者也可以部署到数据库服务器上。这种部署模式可以充分利用所有服务器的存储容量,总的存储容量等于3个服务器的容量总和。但可靠性较低,任意一台服务器故障,都会导致部分数据无法读取和写入。



下面我们采用的是高性能:

下载地址:http://www.sequoiadb.com/index.php?p=downserver

2. 环境准备

  • 配置主机名

    配置项配置方法验证方法
    配置主机名1. 使用 root 权限登陆,执行 hostname sdbserver1(sdbserver1为主机名称,可根据需要修改。);

    • 对于 SUSE:

      2. 打开 /etc/HOSTNAME 文件;

      vi /etc/HOSTNAME

      3. 修改文件内容,配置为主机名称;

      sdbserver1  (主机名称)

      4. 按 :wq 保存退出;

    • 对于 RedHat:

      2. 打开 /etc/sysconfig/network 文件;

      vi /etc/sysconfig/network

      3. 将 HOSTNAME 一行修改为 HOSTNAME = sdbserver1,其中 sdbserver1 为新主机名;

      4. 按 :wq 保存退出;

    • 对于 Ubuntu:

      2. 打开 /etc/hostname 文件;

      vi /etc/hostname

      3. 修改文件内容,配置为主机名称;

      sdbserver1

      4. 按 :wq 保存退出;
    执行 hostname 命令,确认打印信息是否为“sdbserver1”
    配置物理机之间通过主机名可连接
    • 使用 root 权限,打开 /etc/hosts 文件

      vi /etc/hosts

    • 修改 /etc/hosts,将服务器节点的主机名与IP映射关系配置到该文件中

      192.168.20.200  sdbserver1

      192.168.20.201  sdbserver2

      192.168.20.202  sdbserver3

    • 保存退出

    1. ping sdbserver1(本机主机名)可以 ping 通

    2. ping sdbserver2(远端主机名)可以 ping 通
  • 关闭防火墙

    配置项配置方法验证方法
    关闭防火墙关闭防火墙操作,需要管理员权限。

    • 对于 SUSE:

      1. SuSEfirewall2 stop;

      2. chkconfig SuSEfirewall2_setup;

    • 对于 RedHat:

      1. service iptables stop;

      2. chkconfig iptables off;

    • 对于 Ubuntu:

      1. ufw disable;

    • 对于 SUSE:

      chkconfig -list | grep fire;

    • 对于 RedHat:

      service iptables status;

    • 对于 Ubuntu:

      ufw status;

Note: 每台作为数据库服务器的机器都需要配置。

Linux 推荐配置

  • 调整 ulimit

    在配置文件 /etc/security/limits.conf 中设置:

    #<domain>      <type>    <item>     <value>
    *               soft      core       0
    *               soft      data       unlimited
    *               soft      fsize      unlimited
    *               soft      rss        unlimited
    *               soft      as         unlimited

    参数说明:

    core:数据库出现故障时产生 core 文件用于故障诊断,生产系统建议关闭;

    data:数据库进程所允许分配的数据内存大小;

    fsize:数据库进程所允许寻址的文件大小;

    rss:数据库进程所允许的最大 resident set 大小;

    as:数据库进程所允许最大虚拟内存寻址空间限制;

    在配置文件 /etc/security/limits.d/90-nproc.conf 中设置:
    #<domain>      <type>    <item>     <value>
    *               soft      nproc     unlimited

    参数说明:

    nproc:数据库所允许的最大线程数限制;
    Note: 1. 每台作为数据库服务器的机器都需要配置; 2. 更改配置后需重新登录使得配置生效。
  • 调整内核参数

    1. 使用下列命令输出当前 vm 配置,并将其归档保存:

    cat /proc/sys/vm/swappiness
    cat /proc/sys/vm/dirty_ratio
    cat /proc/sys/vm/dirty_background_ratio
    cat /proc/sys/vm/dirty_expire_centisecs
    cat /proc/sys/vm/vfs_cache_pressure
    cat /proc/sys/vm/min_free_kbytes

    2. 添加下列参数至 /etc/sysctl.conf 文件调整内核参数:

    vm.swappiness = 0
    vm.dirty_ratio = 100
    vm.dirty_background_ratio = 40
    vm.dirty_expire_centisecs = 3000
    vm.vfs_cache_pressure = 200
    vm.min_free_kbytes = <物理内存大小的8%,单位KB>
    Note: 当数据库可用物理内存不足 8GB 时不需使用 vm.swappiness = 0;上述 dirty 类参数只是建议值,具体系统设置时请按原则(控制系统的 flush 进程只采用脏页超时机制刷新脏页,而不采用脏页比例超支刷新脏页)进行设置。

    3. 执行如下命令,使配置生效:

    /sbin/sysctl -p
    Note: 每台作为数据库服务器的机器都需要配置。
  • 数据库目录结构

    用户应尽可能使数据目录,索引目录与日志目录存放在不同物理磁盘中,以减少顺序 I/O 与随机 I/O 之间的竞争。

2. 在每个节点进行安装

(1)本节按照高可用部署为例,介绍配置和启动步骤;

  (2)以下操作步骤假设 SequoiaDB 程序安装在 /opt/sequoiadb 目录下;

  (3)sdb服务进程全部以 sdbadmin 用户运行,请确保所有数据库目录都赋予 sdbadmin 读写权限。

  • 步骤一:检查 SequoiaDB 的配置服务状态
    在每台数据库服务器上检查 SequoiaDB 配置服务状态:
    service sdbcm status
    确认系统提示“sdbcm is running”表示服务正在运行,否则请执行如下命令重新配置服务程序:
    service sdbcm start
  • 步骤二:启动一个临时协调节点(该节点只是为了创建其它节点而临时使用,后面会删除)
    1. 切换到 sdbadmin 用户
    su sdbadmin
    2. 在任意一台数据库服务器上(以下步骤都只需要在这台服务器上操作),启动 SequoiaDB Shell 控制台
    /opt/sequoiadb/bin/sdb
    3. 连接到本地的集群管理服务进程 sdbcm
    var oma = new Oma("localhost", 11790)
    4. 创建临时协调节点
    oma.createCoord(18800, "/opt/sequoiadb/database/coord/18800")
    5. 启动临时协调节点
    oma.startNode(18800)
  • 步骤三:通过命令配置和启动编目节点

    1. 连接到临时协调节点,在 shell 命令中输入:

    > var db = new Sdb("localhost",18800)
    其中18800为协调节点端口号
    2. 创建一个编目节点组
    > db.createCataRG("sdbserver1", 11800, "/opt/sequoiadb/database/cata/11800")

    其中

    sdbserver1:第一个服务器主机名;

    11800:为编目节点服务端口(该端口配置不要与随机端口冲突,以下其它端口的配置也需要注意);

    /opt/sequoiadb/database/cata/11800:为编目节点的数据文件存放路径;
    Note: 请确保存放路径的权限,如果 SequoiaDB 采用的默认安装,那么给路径赋予 sdbadmin 权限,下同。
    3. 等待5秒,开始添加另外两个编目节点
    > var cataRG = db.getRG("SYSCatalogGroup");
    > var node1 = cataRG.createNode("sdbserver2", 11800,"/opt/sequoiadb/database/cata/11800")
    > var node2 = cataRG.createNode("sdbserver3", 11800,"/opt/sequoiadb/database/cata/11800")
    4. 启动编目节点组
    > node1.start()
    > node2.start()
    Note: 创建节点的第一个参数必须为“主机名”,而不能使主机的 IP。
  • 步骤四:通过命令配置和启动数据节点
    1. 创建数据节点组
    > var dataRG = db.createRG("datagroup")
    2. 添加数据节点
    > dataRG.createNode("sdbserver1", 11820, "/opt/sequoiadb/database/data/11820")
    > dataRG.createNode("sdbserver2", 11820, "/opt/sequoiadb/database/data/11820")
    > dataRG.createNode("sdbserver3", 11820, "/opt/sequoiadb/database/data/11820")
    Note: 创建节点的第一个参数必须为“主机名”,而不能是主机的 IP。
    3. 启动数据节点组
    > dataRG.start()
  • 步骤五:部署启动协调节点
    1. 创建协调节点组
    var rg = db.createCoordRG()
    2. 创建协调节点
    rg.createNode("sdbserver1", 11810, "/opt/sequoiadb/database/coord/11810")
    rg.createNode("sdbserver2", 11810, "/opt/sequoiadb/database/coord/11810")
    rg.createNode("sdbserver3", 11810, "/opt/sequoiadb/database/coord/11810")
    3. 启动协调节点
    rg.start()
  • 步骤六:删除临时协调节点
    1. 连接到本地的集群管理服务进程 sdbcm
    var oma = new Oma("localhost", 11790)
    2. 删除临时协调节点
    oma.removeCoord(18800)
3. web查看

SequoiaDB Web 监控

启动 SequoiaDB Web 服务器

通过启动 SequoiaDB 后台的 Web 服务,也可以对数据库做各种操作,并且方便管理。

  • 进入 /opt/sequoiadb/bin 目录
  • 执行命令:
    ./sdbwsart -S <server name:port>

    server name :指定服务器IP地址,如 192.168.10.10

    port :指定服务器端口号,如 8080

    最后在浏览器中输入 http://192.168.10.10:8080,即可访问数据库管理页。

监控管理

PHP 监控支持 IE9+、chrome、firefox 等主流浏览器。

  • 1. 启动 PHP 服务
    1.1 在安装了 SequoiaDB 的主机上,执行 sequoiadb 目录下 bin/sdbwsart。例如:
    /opt/sequoiadb/bin/sdbwsart

    1.2 在浏览器输入 【步骤1.1】 的地址 http://192.168.1.215:8080/

  • 2. 连接监控页面

    2.1 在连接管理 <连接地址> 输入地址,点击 <连接测试>,连接成功后,点击 <连接>;

  • 3. 创建集合空间、集合、插入数据

    3.1 创建集合空间,点击 <工具栏> 的按钮,输入 <集合空间名>,点击 <确定>;

    3.2 创建集合,点击集合空间 foo 的 <属性>,点击 <工具栏> 的按钮,输入 <集合名>,点击 <确定>;

    3.3 插入数据,点击集合 bar 的 <数据>,点击 <工具栏> 的按钮,输入 json 记录,点击 <确定>;

    3.4 格式化 Json 记录,点击 <工具栏> 的按钮。

  • 4. 集群管理

    4.1 查看集群,点击导航 <集群管理>。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值