DRS 介绍

日志服务器DRS是一个独立的服务进程。其本身没有初始数据,所以不需要像DSS和dmserver一样需要init进程进行初始化。DRS通过ini文件启动,ini文件由管理员自己配置。

6.1 概述

日志服务器DRS接收各个DS的写日志请求,交给对应日志刷盘线程。日志刷盘线程首先将日志刷盘归档,然后添加入全局的日志队列,同时生成日志任务,加入任务队列。多个任务线程摘取任务队列中的日志任务,各自进行日志记录扫描,并针对DSS节点分区进行地址映射变换。任务被拆分处理完成后,唤醒等待的填充线程。由填充线程将日志队列中拆分完成的日志,依次填充到各个DSS节点对应的缓存中。如果缓存填满,则发送到对应DSS节点。

此外,DRS还需要处理DS端的其它一些IO相关请求。这些请求全部都添加入任务队列,由任务线程进行处理。其中一些读写之外的文件操作(如创建、删除文件等),DRS自身并不需要处理,而是作为中转,转发给DCS处理,然后又把响应转回给DS。

DRS系统任务处理流程图如下:

单节点DRS系统任务处理流程

图6.1 单节点DRS系统任务处理流程

6.2 日志分组

当数据库服务器DS数目过多时,DRS作为计算节点和存储节点的中转,为了避免存在多个计算节点向单个DRS发送日志请求从而导致DRS运行压力过大,DMTDD还提供了日志分组的功能。日志分组就是将日志来源DS划分为不同的日志组,每个DS仅属于一个组。最多只支持16个日志组。每个日志组中,配置一个DRS服务器,提供日志分发及数据读写服务。通过日志分组,可以减小单个DRS的工作压力,提升整个系统并发处理效率。

日志分组结构图如下:

日志分组结构图

图6.2 日志分组结构图

下面以日志分为两组,每个日志组配置一个DRS为例,介绍日志组的功能。其中不同颜色的线条代表的含义如下:

  1. 红线表示原始REDO日志流
  2. 黑线表示DS/DRS之间的I/O等请求和响应
  3. 绿色表示DRS拆分过的日志流
  4. 蓝线表示DSS把数据反馈给DS
  5. 紫线为DCS向DRS推送拓扑信息及DRS的异常信息反馈

两节点DRS的系统结构如下:

两节点DRS系统结构图

图6.3 两节点DRS系统结构图

6.3 DRS的主备模式

Group内DRS配置方式有2种:单NORMAL DRS和主备DRS。由于DRS运行过程中难免会出现故障,为了保证可靠性,建议将DRS配置为主备模式。

DRS的主备模式细分为两种情况:一是“一主一备一DRAS”模式,二是“一主二备”模式。DRS采用“一主一备一DRAS”模式时,DRAS是可选模块。DRS采用“一主二备”时,是不需要搭建DRAS的。

在两地三中心场景中,请使用“一主二备”模式。其他应用场景中,均推荐使用“一主一备一DRAS”模式。

6.3.1 一主一备一DRAS

“一主一备一DRAS”模式下,每个日志组包含一个主DRS、一个备DRS和一个DRAS。其中DRAS是可选模块。当主DRS发生故障时,备DRS可以接替主DRS继续提供服务。当备DRS出现异常时,DRAS接替备DRS继续接收来自主DRS的日志进行备份归档。

DRAS模式的日志层结构图

图6.4 “一主一备一DRAS”模式的日志层结构图

主DRS在收到DS的日志后同时在备DRS和本地进行归档,如果备DRS故障,主DRS则需要把日志发送到DRAS进行归档。一旦主备DRS之间产生通讯故障,即认为对方已经故障,需要向DCS进行模式状态切换的裁决,由DCS决定自身应该以什么模式什么状态继续提供服务。

DRAS会在主DRS故障重启或者备DRS切换为主DRS过程中提供日志同步的作用,保证DRS可以恢复到日志处理的最新状态,避免数据的丢失。

6.3.2 一主二备

“一主二备”模式下,每个日志组包含一个主DRS和二个备DRS。这种模式中,不包含DRAS。当主机故障时,其中一个备机可以自动切换为主机提供服务,并保证日志至少有2个备份。

一主二备模式的日志层结构图

图6.5 “一主二备”模式的日志层结构图

此模式下,当有2台DRS异常时,系统停止服务,需要人工干预进行系统恢复。此时,DBA可通过手动切换主备环境为NORMAL环境,提供单机DRS的服务。

6.4 DRS启动命令

./dmdrs HELP

格式: ./dmdrs KEYWORD=value

例程: ./dmdrs PATH=/opt/drs/drs.ini

关键字说明

--------------------------------------------------------------------------

PATH 		drs.ini文件路径

TRACE 		是否开启TRACE(0),可选值:0/1/L/R/W/F/C/O/M

HELP 		打印帮助信息

6.4.1 启动参数说明

DMTDD的DRS在启动前,必须先通过DMDCSTOOL将其注册到已创建的RLOG GROUP中,否则DMTDD会认为DRS非法,DRS启动失败。

DRS的启动命令包括如下参数:

表6.1 dmdrs启动参数
参数 说明
PATH drs.ini文件路径
TRACE 是否开启TRACE(0),可选值:0/1/L/R/W/F/C/O/M

示例如下:

./dmdrs path=/opt/drs/drs.ini

6.4.2 INI文件说明

DRS当前提供的ini参数见本文档配置说明-DRS.INI

微信扫码
分享文档
扫一扫
联系客服