部署方式、硬件规划、操作系统配置与安装部署
虽然使用一台物理机就可以安装和运行Indievow系统,但这样的环境多用于学习和测试。为了充分发挥分布式系统的优势,建议使用3台以上的物理机环境。由于集群中不同类型的节点所消耗的主要系统资源不同,在规划Indievow数据库集群时,通常将MG和TG安装在同一台物理机上,将DG和CG安装在同一台物理机上。
安装Indievow数据库系统所需的软硬件环境如表1-1所示。
<div class="img-descr">表1-1:Indievow数据库系统软硬件配置需求</div>
<table style="border-collapse: collapse; width: 100%; border: 1px solid;">
<thead class="ant-table-thead">
<tr>
<th class="ant-table-cell" colspan="3" style="text-align: center; padding: 8px; border: 1px solid #d9d9d9;">MG/TG</th>
<th class="ant-table-cell" style="text-align: center; padding: 8px; border: 1px solid #d9d9d9;">DG/CG</th>
</tr>
</thead>
<tbody class="ant-table-tbody">
<tr class="ant-table-row">
<td class="ant-table-cell" rowspan="6" style="border: 1px solid #d9d9d9; vertical-align: middle; text-align: center; padding: 8px;">
最低配置
</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">数量</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">1</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">3</td>
</tr>
<tr class="ant-table-row">
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">系统</td>
<td class="ant-table-cell" colspan="2" style="text-align: center; border: 1px solid #d9d9d9; padding: 8px;">Red Hat Enterprise Linux Server release 6.2(64bit)及以上版本</td>
</tr>
<tr class="ant-table-row">
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">CPU</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">8核 * 1</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">8核 * 1</td>
</tr>
<tr class="ant-table-row">
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">内存</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">48G</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">48G</td>
</tr>
<tr class="ant-table-row">
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">磁盘</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">300GB*4</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">300GB*4</td>
</tr>
<tr class="ant-table-row">
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">网络</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">千兆口*1</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">千兆口*1</td>
</tr>
<tr class="ant-table-row">
<td class="ant-table-cell" rowspan="6" style="border: 1px solid #d9d9d9; vertical-align: middle; text-align: center; padding: 8px;">
推荐配置
</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">数量</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">3</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">3</td>
</tr>
<tr class="ant-table-row">
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">系统</td>
<td class="ant-table-cell" colspan="2" style="text-align: center; border: 1px solid #d9d9d9; padding: 8px;">Red Hat Enterprise Linux Server release 6.2(64bit)及以上版本</td>
</tr>
<tr class="ant-table-row">
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">CPU</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">6核 * 2</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">6核 * 2</td>
</tr>
<tr class="ant-table-row">
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">内存</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">128G</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">64G</td>
</tr>
<tr class="ant-table-row">
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">磁盘</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">300GB*12(15K或SSD) RAID卡*1</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">300GB*10(15K或SSD) SAS卡*1</td>
</tr>
<tr class="ant-table-row">
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">网络</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">千兆口*2</td>
<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">千兆口*2</td>
</tr>
</tbody>
</table>
注:也可使用具有相同内核的CentOS操作系统,支持Red Hat 7操作系统;
Indievow分布式数据库系统支持多种部署方式,见表2-2。用户可以根据需要选择合适的部署方式,并且能够在使用过程中进行灵活的调整。
<div class="img-descr">表1-2:Indievow数据库系统的部署方式</div>
| 部署方式 | 说明 |
|---|---|
| 单机 | 安装在一台服务器上,只启动 1 个 MG、1 个 TG、1 个 CG 和 1 个 DG 进程。这种方式能够保证 Indievow 正常地运行,但无法体现出分布式系统的优势,通常只用于学习和测试的场景。 |
| 单机房 (单 MG/TG) | 安装在同一机房的多台服务器上,其中一台服务器上启动 MG 和 TG 进程,其它每台服务器上启动 CG 和 DG 进程。这种方式无法处理 MG/TG 节点宕机的场景,只能用于对可用性要求不高的应用系统。 |
| 单机房 (多 MG/TG) | 安装在同一机房的多台服务器上,其中多台服务器分别启动主备 MG/TG 节点(通常为 1 主 2 备),其它每台服务器上启动 CG 和 DG 进程。这种方式可以满足大多数应用系统对可靠性和可用性的需求。 |
| 多机房 | 安装在多个机房的多台服务器上,通常每个机房中都部署有 MG、TG、CG 和 DG。这种方式能够满足应用系统对异地容灾的需求,当主机房发生故障时,可以自动将备机房切换为主机房,继续对外提供服务。 |
在安装Indievow数据库之前,数据库管理员首先应当对系统的资源和环境进行规划,包括服务器的使用,IP地址和端口、安装目录、数据目录和磁盘挂载点等内容。
数据库管理员可以根据示例表1-3对Indievow系统所使用的服务器进行规划,包括服务器所属集群,IP地址、网卡名称、安装用户、安装目录、所运行服务、使用端口等信息。
<div class="img-descr">表1-3:Indievow数据库系统服务器使用规划示例</div>
| 服务器 一 | |
| IP 地址 | 192.168.1.2 |
| 网卡名称 | eth0 |
| 安装用户 | admin |
| 用户密码 | INDIEVOW@123 |
| 安装目录 | /home/admin/indievow |
| 应用名称 | indietest |
| 服务器 二 | |
| IP 地址 | 192.168.1.3 |
| 网卡名称 | eth0 |
| 安装用户 | admin |
| 用户密码 | INDIEVOW@123 |
| 安装目录 | /home/admin/indievow |
| 应用名称 | indietest |
| 服务器 三 | |
| IP 地址 | 192.168.1.4 |
| 网卡名称 | eth0 |
| 安装用户 | admin |
| 用户密码 | INDIEVOW@123 |
| 安装目录 | /home/admin/indievow |
| 应用名称 | indietest |
数据库管理员需要规划和管理每台服务器上不同服务存储数据的目录位置,并且需要根据数据规模、使用频率、访问性能等需求将数据目录与相应的磁盘挂载点关联起来。Indievow系统中的服务需要持久化到磁盘上的内容包括日志和数据,表1-4是一个目录规划的示例。
<div class="img-descr">表1-4:Indievow数据库服务目录使用规划示例</div>
| 数据库服务 | 类型 | 存储位置 |
|---|---|---|
| MG | 数据 | /home/admin/indievow/data/mg |
| 日志 | /home/admin/indievow/data/log/mg_commitlog | |
| TG | 数据 | /home/admin/indievow/data/tg_data/raid0/store0 /home/admin/indievow/data/tg_data/raid0/store1 /home/admin/indievow/data/tg_data/raid1/store0 /home/admin/indievow/data/tg_data/raid1/store1 …… /home/admin/indievow/data/tg_data/raidn/store0 /home/admin/indievow/data/tg_data/raidn/store1 |
| 日志 | /home/admin/indievow/data/tg_commitlog | |
| DG | 数据 | /home/admin/indievow/data/1 /home/admin/indievow/data/2 …… /home/admin/indievow/data/n |
Indievow系统中的TG服务和DG服务分别需要存储大规模的增量数据和静态数据,建议不与操作系统和其它服务共享磁盘,而使用单独的磁盘来存储这些服务的数据。数据库管理员需要对每台服务器上的磁盘挂载点进行规划,并且能够与目录规划相对应。
例如,在一台运行了DG的服务器上,规划8块磁盘用于专门存储DG的数据,数据库管理员可以在Indievow的安装目录下创建DG的数据目录,如下:
/home/admin/indievow/data/1
/home/admin/indievow/data/2
...
/home/admin/indievow/data/8
然后将8块磁盘的挂载点设为:
/data/1
/data/2
...
/data/8
最后在挂载点目录与数据目录之间建立链接:
ln -s /data/1 /home/admin/indievow/data/1
ln -s /data/2 /home/admin/indievow/data/2
...
ln -s /data/8 /home/admin/indievow/data/8
为了能够正常运行Indievow数据库系统,数据库管理员需要对安装环境进行必要的配置,包括设置网卡、内核参数、时间同步、环境变量等。
grep -i HugePages /proc/meminfo cat /sys/kernel/mm/transparent_hugepage/enabled
如下图所示,AnonHugePages 为 0,enabled 为 [never] 说明 THP 已关闭,否则
执行:
在 GRUB_CMDLINE_LINUX 一行最后添加 transparent_hugepage=never,如下图所示:
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
如果使用的是 BIOS,执行以下命令:
grub2-mkconfig -o /boot/grub2/grub.cfg
如果使用的是 UEFI,执行以下命令,注意替换成不同操作系统
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
或
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
或
grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg
或
grub2-mkconfig -o /boot/efi/EFI/uos/grub.cfg
reboot
配置操作系统内核参数的操作步骤如下:
# for INDIEVOW
net.core.somaxconn = 2048
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.ip_local_port_range = 10240 65535
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
vm.swappiness = 0
sysctl -p /etc/sysctl.conf
INDIEVOW 数据库系统通常运行于 PC 服务器集群之上,对于集群中服务器间的时钟误差有较为严格的要求,可以通过 chrony 时钟同步来保证所有的服务器时间一致。在系统运行期间,如果发生服务器重启的情况,需要关注时钟同步服务是否正常。使用NTP时钟同步需要关闭所有服务器的防火墙(或者开放NTP服务相应端口)。
使用 NTP 时钟同步需要关闭所有服务器的防火墙和 SELinux(或者开放NTP服务相应端口):
1、关闭防火墙的命令为:
service iptables stop
chkconfig iptables off
或
systemctl stop firewalld
systemctl disable firewalld
2、关闭 SELinux:
setenforce 0
vi /etc/selinux/config
将 SELINUX=enforcing 改为 SELINUX=disabled
安装 chrony 服务
安装 chrony
yum install -y chrony
systemctl start chronyd #启动 chrony 服务
systemctl status chronyd #查看服务状态
systemctl enable chronyd #设置开机同步时间
开启 chrony 服务端
如果没有现成可用的时钟同步服务器,可以在 INDIEVOW 数据库集群中任选一
台服务器作为时钟同步服务器,在其上开启 chrony 服务,操作步骤如下:
1.以 root 用户登录 NTP Server 服务器;
编辑修改“vi /etc/chrony.conf”文件,主要内容如下 ;
设置 server IP
server {ip} iburst
#根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,
在系统重启后为系统做出最佳时间补偿调整。
driftfile /var/lib/chrony/drift
makestep 1.0 3
将启用一个内核模式,在该模式中,系统时间每 11 分钟会拷贝到实
时时钟(RTC)。
rtcsync
指定一台主机、子网,或者网络以允许或拒绝 NTP 连接到时钟服务器
的机器
allow all
local stratum 10
指定日志文件的目录。
logdir /var/log/chrony
2.执行以下命令,重启 chronyd 服务;
systemctl restart chronyd
3.执行以下命令,设置 NTP 服务开机自动启动;
systemctl enable chronyd
4.执行以下命令,查看 NTP Server 服务是否启动;
systemctl status chronyd
开启 chrony 客户端
配置文件修改:vim /etc/chrony.conf
修改 server 即可,删掉其他的,添加要同步时间的源服务器 ip,格式
如下:
server x.x.x.x iburst
重启 chronyd 服务并设为开机启动,开启网络时间同步功能
systemctl enable chronyd
systemctl restart chronyd
timedatectl set-ntp true
chrony 常用命令
查看时间同步源:chronyc sources -v
立即手工同步:chronyc -a makestep
查看时间同步源状态:chronyc sourcestats -v
设置硬件时间,硬件时间默认为
UTC:timedatectl set-local-rtc 1
#将你的硬件时钟设置为本地时区
设置当前系统为 Asia/Shanghai 上海时区:
timedatectl set-timezone Asia/Shanghai
启用 NTP 时间同步:
timedatectl set-ntp yes
校准时间服务器:
chronyc tracking
最后需要注意的是,配置完/etc/chrony.conf 后,需重启 chrony 服务,
否则可能会不生效。
Linux操作系统默认所使用堆栈和文件数的限制值较小,为了正常运行Indievow数据库服务,需要放大对资源的限制,操作步骤如下:
admin soft stack 819200
admin hard stack 819200
admin soft nofile 655350
admin hard nofile 655350
admin soft nproc 655360
admin hard nproc 655360
其中 admin 为 INDIEVOW 安装用户名
注意:UOS 系统可以通过添加对 core 文件的大小添加无限制来解决可能出现的
因 core 文件太大而被截断的问题。被截断后的 core 文件可能无法查看到信息。
1.修改/etc/security/limits.conf,在里面设置上 core 文件大小无限制
2.重启机器,重启机器后建议设置下 core 文件生成路径和格式,方便查找。( 可 在 root 下 执 行 echo “ /tmp/core.%E.%t.%p ” >/proc/sys/kernel/core_pattern。这样崩溃时会在/tmp 目录下产生 core 文件,格式为”core.程序绝对路径.时间.进程 ID”)
在所有Indievow服务器中创建安装用户的操作步骤如下:
useradd -d /home/admin -s /bin/bash -m admin
passwd admin
chmod u+w /etc/sudoers
root ALL=(ALL) ALLadmin ALL=(ALL) ALL
chmod u-w /etc/sudoers
为了正常运行Indievow数据库系统,需要对安装用户admin的环境变量进行配置,操作步骤如下:
export LD_LIBRARY_PATH=/home/admin/indievow/lib:/usr/local/lib64:/usr/:/usr/lib/:/usr/local/lib:/lib
export PATH=~/indievow/bin:$PATH
ulimit -c unlimited
source ~/.bashrc
在所有的Indievow服务器中选择一台作为本机,配置该服务器到所有服务器的免登录(包括本机到本机)。配置免登录后,该服务器在连接其他服务器时无需输入密码。
假设本机的IP地址为“192.168.1.4”,配置免登录的操作步骤如下:
ssh-keygen -t rsa -P ''
ssh-copy-id admin@192.168.1.2
ssh-copy-id admin@192.168.1.3
ssh-copy-id admin@192.168.1.4
ssh-copy-id admin@192.168.1.5
配置免登录完成后,在本机中输入“ssh admin@192.168.1.X”;
将Indievow数据库的安装文件复制到”~/install”目录下;
cd ~/install
sudo rpm –ivh mysql-5.1.73-7.el6.x86_64.rpm(如已有mysql客户端则不必安装)sudo rpm -ivh snappy-1.1.2-1.x86_64.rpmsudo rpm -ivh lzo-2.06-0.x86_64.rpm
执行一下命令,安装Indievow数据库:
sudo rpm –ivh indievow-1.0.44.x86_64.rpm --prefix=/home/admin/indievow
注:如果不加prefix参数,默认安装在/home/admin/indievow目录下;
本样例安装挂载使用了4块数据盘到/data/1..4,数据目录:~/indievow/data最终结构如下
data
├── 1 -> /data/1/admindata/dg_data
├── 2 -> /data/2/admindata/dg_data
├── 3 -> /data/3/admindata/dg_data
├── 4 -> /data/4/admindata/dg_data
├── mg
├── mg_commitlog -> /data/1/admindata/commitlog/mg_commitlog
├── tg_commitlog -> /data/1/admindata/commitlog/tg_commitlog
└── tg_data
├── raid0
│ ├── store0 -> /data/1/admindata/tg_data/1
│ └── store1 -> /data/2/admindata/tg_data/2
└── raid1
├── store0 -> /data/3/admindata/tg_data/3
└── store1 -> /data/4/admindata/tg_data/4
sh RebuildDir.sh -m performence -u 4 -c 4 –d indiehdfs
参数含义:
-m: 创建数据目录的模式:[test|performence] (performance使用/data/1..n作为数据挂载点,test使用~/data作为数据挂载点,默认test)
-u: MG/TG服务所使用的挂载磁盘数目(默认 4)
-c: DG/CG 服务所使用的挂载磁盘数目(默认 4)
-d: 应用名(默认为kwtest)
注:sh RebuildDir.sh –h 查看更多参数选择;
在每台服务器上正确安装Indievow软件并且创建数据目录之后,就可以启动数据库服务。
进入Indievow安装目录:cd ~/indievow
主MG启动命令格式:
bin/manEng -r 192.168.1.2:2500 -R 192.168.1.2:2500 -i eth0 -U 3 -u '3' -C 0 -K 1 -G 1
备MG启动命令格式:
bin/manEng -r 192.168.1.3:2500 -R 192.168.1.2:2500 -i eth0 -C 0
参数含义:
-r:所启动 MG 服务的 IP 地址和端口;
-R:系统主 MG 服务的 IP 地址和端口;
-i:绑定的网卡名;
-C:系统中所属逻辑集群 ID,必须为数字;V5.* 版本后 -C 需要从 0 开始, V3 版本及以前,从 1 开始
-U:指定系统中 MG 服务的数量;
-u:指定系统中每个 paxos 组 TG 服务的数量, 每个 group 可以设置不同的值,格式为"x,x,x,x,x,x,x"),中间可以用逗号或者分号隔开
-s:指定备 MG 以 slave_only 模式启动,slave_only 模式的 MG 不会被选为主 MG;
-G:指定 paxos 组个数,必须为数字;
-K:指定 cluster 个数,必须为数字;
命令格式:
bin/transEng -r 192.168.1.2:2500 -p 2700 -m 2701 -i eth0 -C 0 -g 0
参数含义:
-r:系统主 MG 服务的 IP 地址和端口;
-p:所启动 TG 服务的端口号;
-m:所启动 TG 服务的内部端口号;
-i:绑定的网卡名;
-C:系统中所属逻辑集群 ID,必须为数字;V5.* 版本后 -C 需要从 0 开始,V3 版本及以前,从 1 开始
-g:paxos 组 id,必须为数字;与 MG 启动参数-G 参数对应,从 0 开始;
命令格式:
bin/datEng -r 192.168.1.2:2500 -p 2600 -n kwtest -i eth0 -C 0
参数含义:
-r:系统主 MG 服务的 IP 地址和端口;
-p:所启动 DG 服务的端口号;
-n:指定应用名,应当与建 DG 数据目录时所设定的应用名一致;
-i:绑定的网卡名;
-C:系统中所属逻辑集群 ID,必须为数字;
CG启动命令格式:
bin/calEng -r 192.168.1.2:2500 -p 2800 -z 2880 -i eth0 -C 0
参数含义:
-r:系统主 MG 服务的 IP 地址和端口;
-p:所启动 CG 服务的端口号;
-z:所启动 CG 的数据库服务端口号;
-i:绑定的网卡名;
-C:系统中所属逻辑集群 ID,必须为数字;V5.* 版本后-C 需要从 0 开始,V3 版本及以前,从 1 开始
以一个逻辑集群组成的Indievow数据库系统为例,集群号为1,使用三台服务器,在每台服务器上都启动MG、TG、CG和DG服务,其中主MG所在的服务器上启动CG被设置为。指定主MG为192.168.1.4:2500。
以admin用户登录所有服务器,在安装目录/home/admin/indievow下执行启动命令。
Server 1(主MG所在服务器)
bin/manEng -r 192.168.1.2:2500 -R 192.168.1.2:2500 -i eth0 -U 3 -u '3' -C 0 -K 1 -G 1
bin/transEng -r 192.168.1.2:2500 -p 2700 -m 2701 -i eth0 -C 0 -g 0
bin/datEng -r 192.168.1.2:2500 -p 2600 -n kwtest -i eth0 -C 0
bin/calEng -r 192.168.1.2:2500 -p 2800 -z 2880 -i eth0 -C 0
Server 2
bin/manEng -r 192.168.1.3:2500 -R 192.168.1.2:2500 -i eth0 -C 0 -K 1
bin/transEng -r 192.168.1.2:2500 -p 2700 -m 2701 -i eth0 -C 0 -g 0
bin/datEng -r 192.168.1.2:2500 -p 2600 -n kwtest -i eth0 -C 0
bin/calEng -r 192.168.1.2:2500 -p 2800 -z 2880 -i eth0 -C 0
Server 3
bin/manEng -r 192.168.1.4:2500 -R 192.168.1.2:2500 -i eth0 -C 0 -K 1
bin/transEng -r 192.168.1.2:2500 -p 2700 -m 2701 -i eth0 -C 0 -g 0
bin/datEng -r 192.168.1.2:2500 -p 2600 -n kwtest -i eth0 -C 0
bin/calEng -r 192.168.1.2:2500 -p 2800 -z 2880 -i eth0 -C 0
如果有其它服务器加入到集群中,可以在这些服务器上启动DG和CG服务,命令如下:
bin/datEng -r 192.168.1.2:2500 -p 2600 -n kwtest -i eth0 -C 0
bin/calEng -r 192.168.1.2:2500 -p 2800 -z 2880 -i eth0 -C 0
注:MG和TG已经达到设定数目;
在所有服务器上执行完毕命令后,在确认所有服务进程都已启动,在任意一台服务的安装目录下执行以下命令确认所有角色均在线,且已选出主TG:
bin/mg_admin -r 192.168.1.2 -p 2500 stat -o all_server
确认点,状态正常必须同时满足下述两个条件:
1 输出各类服务的节点和规划启动的一致
2 transEngs 角色有一台的 stat:master,其余为 stat:sync若stat 报错-12 或者上述条件未同时满足,请等待数秒后,重新执行 stat 命令。
确认启动正常后,在任意一台服务的安装目录下执行以下命令进行数据库系统的初始化:
bin/mg_admin -r 192.168.1.2 -p 2500 -t 600000000 boot_strap
以三个逻辑集群组成的Indievow数据库系统为例,集群号分别为1、2、3,可以分别部署在三个机房中。每个逻辑集群使用两台服务器,启动MG、TG、CG和DG共五个服务,其中MG/TG/部署于一台服务器,CG/DG部署于另一台服务器,指定主MG为182.119.80.62:8000。
以admin用户登录所有服务器,在安装目录/home/admin/indievow下执行启动命令。
集群1:
Server1
bin/manEng -r 192.168.1.2:2500 -R 192.168.1.2:2500 -i bond0 -U 3 -u '3' -C 0 -K 3 -G 1
bin/transEng -r 192.168.1.2: 2500 -p 2700 -m 2701 -i bond0 -C 0 -g 0
bin/datEng -r 192.168.1.2: 2500 -p 2600 -n kwtest -i bond0 -C 0
bin/calEng -r 192.168.1.2: 2500 -p 2800 -z 2880 -i bond0 -C 0
集群2
Server2
bin/manEng -r 192.168.1.3: 2500 -R 192.168.1.2:2500 -i bond0 -C 1 -K 3
bin/transEng -r 192.168.1.2: 2500 -p 2700 -m 2701 -i bond0 -C 1 -g 0
bin/datEng -r 192.168.1.2: 2500 -p 2600 -n kwtest -i bond0 -C 1
bin/calEng -r 192.168.1.2: 2500 -p 2800 -z 2880 -i bond0 -C 1
集群3:
Server3
bin/manEng -r 192.168.1.4:2500 -R 192.168.1.2:2500 -i bond0 -C 2 -K 3
bin/transEng -r 192.168.1.2:2500 -p 2700 -m 2701 -i bond0 -C 2 -g 0
bin/datEng -r 192.168.1.2:2500 -p 2600 -n kwtest -i bond0 -C 2
bin/calEng -r 192.168.1.2:2500 -p 2800 -z 2880 -i bond0 -C 2
在任意一台服务的安装目录下执行以下命令确认所有角色均在线,且已选出主 TG:
bin/mg_admin -r 192.168.1.2 -p 2500 stat -o all_server
确认点,状态正常必须同时满足下述两个条件:
1 输出各类服务的节点和规划启动的一致
2 transEngs 角色有一台的 stat:master,其余为 stat:sync若stat 报错-12 或者上述条件未同时满足,请等待数秒后,重新执行 stat 命令。
确认启动正常后,在任意一台服务的安装目录下执行以下命令进行数据库系
统的初始化:
bin/mg_admin -r 192.168.1.2 -p 2500 -t 600000000 boot_strap
在数据库系统初始化完成后,可以执行以下命令连接 INDIEVOW 数据库:
indievow -h192.168.1.2 -P2880 -uadmin -padmin
参数含义:
-h:CG所在服务器的IP地址;
-P:启动CG服务命令
-u:Indievow数据库用户名,admin为预置超级用户;
-p:Indievow数据库用户的密码,admin用户的缺省密码为admin
上传 view_tenant.sql 到服务器上,在 view_tenant.sql 所在文件夹下登录数据库。
indievow -h192.168.1.2 -P2880 -uadmin -padmin -e"source view_tenant.sql"
将 scripts 压 缩 包 上 传 到 数 据 库 主 目 录 $HOME/indievow , 执 行 unzip scripts.zip 解压缩,配置 crontab 定时任务,以下为凌晨 1 点执行定时清理任务的示例:
设置 crontab 定时任务
source ~/.bashrc && cd $HOME/indievow && bash scripts/file_expire_v2.sh >> log/file_expire_v2.log
source ~/.bashrc && cd $HOME/indievow && bash scripts/file_expire_tg_commitlog.sh >> log/file_expire_tg_commitlog.log
source ~/.bashrc && cd $HOME/indievow && rm -f data/{1..4}/Recycle/*
source ~/.bashrc && cd $HOME/indievow && rm -f data/tg_data/raid{0..1}/store{0..1}/trash/*