精华内容
下载资源
问答
  • 存储跨中心双活方案设计阶段十大难点解析 No.1【脑裂风险】存储跨中心双活方案设计阶段该如何尽量避免脑裂? No.2【性能影响】存储跨中心双活方案设计阶段如何尽量降低对整体性能的影响? No.3【数据一致性风险】跨...
  • golden_gate双活方案

    2018-04-09 23:03:57
    详细介绍了oracle双活的解决方案,使用golden gate去实现oracle的双活容灾。
  • 双活数据中心方案

    2019-02-19 15:33:38
    本文主要讨论基于DNS和GSLB技术实现数据中心异地双活 转载他人资源
  • MySQL高可用双活方案

    千次阅读 2019-12-02 18:11:10
    2.1 双活同步条件 2.1.1 自增主键 2.1.2 同步用户 2.1.3 启用BinLog 2.2 配置复制任务 2.2.1 单向复制任务 2.2.2 反向复制任务 2.3 启动复制任务 1 需求概述 多地业务系统直接读写某地A的MySQL中心...

    1 需求概述
    2 技术方案
        2.1 双活同步条件
            2.1.1 自增主键
            2.1.2 同步用户
            2.1.3 启用BinLog
        2.2 配置复制任务
            2.2.1 单向复制任务
            2.2.2 反向复制任务
        2.3 启动复制任务

     

    1 需求概述

    多地业务系统直接读写某地A的MySQL中心数据库数据,中心数据库数据实时同步到异地B的备份中心。当某地业务系统访问A地中心数据库失败时,则切换到B地备份数据库读写数据。对于B地备份中心产生的业务数据,需要实时回传至A地中心数据库库,确保A地业务中心与B地备份中心数据一致。

    目前业务中心数据库采用MySQL 5.6,系统已运行多年,表主键基本采用自增列,表之间存在主外键依赖关系。


    2 技术方案

    在异地备份中心部署北京灵蜂Beedup数据库复制软件,软件采用日志解析方式捕获数据库变化数据,并将变化数据同步到目标库,实时保持数据库数据一致。

    2.1 双活同步条件

    2.1.1 自增主键

    由于中心及备份数据库都会产生业务数据,导致中心或备份库产生的自增主键在跨库复制时会与目标库已有数据产生冲突,针对自增主键冲突问题有以下两种处理方式:
    一、直接复制
    调整数据库配置文件my.ini中的参数auto_increment_offset 和auto_increment_increment ,使得不同数据库产生的自增值不同,包含自增值的业务数据直接复制到目标库。
    二、目标库计算
    自增值在复制时由目标库重新计算产生,相关外键表数据在复制时自动调整外键值,以保持与主表数据的主外键依赖关系。
    由于自增值在复制前后会发生变化,需要在每张包含自增列的表中额外增加列origin_id bigint null,该列由Beedup自动创建并对应用系统透明,仅在数据同步到目标端时记录原来的自增值。

    2.1.2 同步用户

    对于主从库双向同步,需要在主从库单独建立同步用户,该用户仅用于Beedup连接数据库,不可用于其它场景。
    以同步用户sync为例,创建用户及权限分配语句如下:
    CREATE USER 'sync'@'%' IDENTIFIED BY 'xxxxx';
    GRANT SELECT,PROCESS,SUPER, REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'sync'@'%';

    2.1.3 启用BinLog

    开启主从数据库二进制日志并设置日志格式为row。
    编辑my.ini文件
    log-bin="xxxxxx"
    binlog_format="ROW"

    2.2 配置复制任务

    Beedup复制任务用于将主库数据变化实时复制到从库。对于数据库双向复制,需要配置2个复制方向相反的任务,第一个任务用于复制业务中心变化到备份中心,第二个任务用于从备份中心复制变化到业务中心。

    2.2.1 单向复制任务

    配置业务中心到备份中心复制任务,操作如下。
    选择工具栏[新建]按钮,在任务属性对话框中依次设置主库及从库连接参数。

    对于业务中心到备份中心复制,勾选[全量复制]。

    选择[过滤]按钮,在[过滤选项]对话框设置忽略用户sync。

    如果自增值在复制时由目标库重新计算产生,则选择[集成]按钮,在[集成选项]对话框设置辅助列。

    注意:如果自增值可以直接复制,则无需设置集成选项。

    选择[确定]按钮关闭[任务属性]对话框,完成业务中心到备份中心的复制任务配置。

    2.2.2 反向复制任务

    配置备份中心到业务中心复制任务,操作如下。
    选择工具栏[新建]按钮,弹出任务属性对话框,依次设置主库及从库连接参数。

    对于备份中心到业务中心复制,取消 [全量复制] 勾选。

    选择[过滤]按钮,在[过滤选项]对话框设置忽略用户sync。

    如果自增值在复制时由目标库计算产生,则选择[集成]按钮,在[集成选项]对话框设置辅助列。

    注意:如果自增值可以直接复制,则无需设置集成选项。
    选择[确定]按钮关闭[任务属性]对话框,完成备份中心到业务中心的复制任务配置。

    2.3 启动复制任务

    依次选中任务sync和sync_inverse,然后选择工具栏[启动]按钮。

     

     

     

    展开全文
  • Oracle RAC集群存储双活方案部署

    千次阅读 2020-12-01 09:42:26
    刚给客户配置完双机双柜存储双活,双活就是双节点RAC+底层双存储.记录一下 详细磁盘规划如下: 存储1 存储2 第三方仲裁 OCR_1盘 OCR_2盘 采用NFS (DATA1 DATA2 DATA3 DATA4)(故障组1) (DATA5 DATA6 DATA7 ...

    刚给客户配置完双机双柜存储双活,双活就是双节点RAC+底层双存储.记录一下

    存储双活方案介绍:
    在这里插入图片描述

    详细磁盘规划如下:

    存储1存储2第三方仲裁
    OCR_1盘OCR_2盘采用NFS
    (DATA1 DATA2 DATA3 DATA4)(故障组1)(DATA5 DATA6 DATA7 DATA8)(故障组2)

    存储采用多路径.查看当前多路径链路状态及盘情况

    [root@his01 ~]# multipath -ll
    MS2500G2-5 (3600b3421abe826ed18eeda0d3d0000da) dm-6 MacroSAN,LU
    size=1.0G features='1 queue_if_no_path' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=50 status=active
    | `- 0:0:1:4 sdl 8:176 active ready running
    `-+- policy='round-robin 0' prio=10 status=enabled
      `- 1:0:1:4 sdv 65:80 active ready running
    MS3000G2-5 (3600b3421137e245d4b53d171fdf100d2) dm-8 MacroSAN,LU
    size=1.0G features='1 queue_if_no_path' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=50 status=active
    | `- 0:0:0:4 sdg 8:96  active ready running
    `-+- policy='round-robin 0' prio=10 status=enabled
      `- 1:0:0:4 sdq 65:0  active ready running
    MS2500G2-4 (3600b3429b29dc86d944dd270fd0000da) dm-12 MacroSAN,LU
    size=500G features='1 queue_if_no_path' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=50 status=active
    | `- 1:0:1:3 sdu 65:64 active ready running
    `-+- policy='round-robin 0' prio=10 status=enabled
      `- 0:0:1:3 sdk 8:160 active ready running
    MS3000G2-4 (3600b342259b42f2df415d0a2ed5d00d2) dm-7 MacroSAN,LU
    size=500G features='1 queue_if_no_path' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=50 status=active
    | `- 0:0:0:3 sdf 8:80  active ready running
    `-+- policy='round-robin 0' prio=10 status=enabled
      `- 1:0:0:3 sdp 8:240 active ready running
    MS2500G2-3 (3600b3428a361741d4419d14d7d0000da) dm-4 MacroSAN,LU
    size=500G features='1 queue_if_no_path' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=50 status=active
    | `- 0:0:1:2 sdj 8:144 active ready running
    `-+- policy='round-robin 0' prio=10 status=enabled
      `- 1:0:1:2 sdt 65:48 active ready running
    MS3000G2-3 (3600b3423382ec30d51b1d6375de500d2) dm-10 MacroSAN,LU
    size=500G features='1 queue_if_no_path' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=50 status=active
    | `- 1:0:0:2 sdo 8:224 active ready running
    `-+- policy='round-robin 0' prio=10 status=enabled
      `- 0:0:0:2 sde 8:64  active ready running
    MS2500G2-2 (3600b34293ffd77ad2885dd57cd0000da) dm-11 MacroSAN,LU
    size=500G features='1 queue_if_no_path' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=50 status=active
    | `- 1:0:1:1 sds 65:32 active ready running
    `-+- policy='round-robin 0' prio=10 status=enabled
      `- 0:0:1:1 sdi 8:128 active ready running
    MS3000G2-2 (3600b34249eed7dbda56bd28ebd6400d2) dm-5 MacroSAN,LU
    size=500G features='1 queue_if_no_path' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=50 status=active
    | `- 0:0:0:1 sdd 8:48  active ready running
    `-+- policy='round-robin 0' prio=10 status=enabled
      `- 1:0:0:1 sdn 8:208 active ready running
    MS2500G2-1 (3600b342bffd0345d78b1d492ad0000da) dm-3 MacroSAN,LU
    size=500G features='1 queue_if_no_path' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=50 status=active
    | `- 0:0:1:0 sdh 8:112 active ready running
    `-+- policy='round-robin 0' prio=10 status=enabled
      `- 1:0:1:0 sdr 65:16 active ready running
    MS3000G2-1 (3600b342207dc3a0dd34ade09cd6c00d2) dm-9 MacroSAN,LU
    size=500G features='1 queue_if_no_path' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=50 status=active
    | `- 1:0:0:0 sdm 8:192 active ready running
    `-+- policy='round-robin 0' prio=10 status=enabled
      `- 0:0:0:0 sdc 8:32  active ready running
    

    磁盘权限绑定:

    vi /etc/udev/rules.d/12-dm-permissions.rules
    ENV{DM_NAME}=="MS2500G2-1", OWNER:="grid", GROUP:="oinstall", MODE:="660"
    ENV{DM_NAME}=="MS2500G2-2", OWNER:="grid", GROUP:="oinstall", MODE:="660"
    ENV{DM_NAME}=="MS2500G2-3", OWNER:="grid", GROUP:="oinstall", MODE:="660"
    ENV{DM_NAME}=="MS2500G2-4", OWNER:="grid", GROUP:="oinstall", MODE:="660"
    ENV{DM_NAME}=="MS2500G2-5", OWNER:="grid", GROUP:="oinstall", MODE:="660"
    ENV{DM_NAME}=="MS3000G2-1", OWNER:="grid", GROUP:="oinstall", MODE:="660"
    ENV{DM_NAME}=="MS3000G2-2", OWNER:="grid", GROUP:="oinstall", MODE:="660"
    ENV{DM_NAME}=="MS3000G2-3", OWNER:="grid", GROUP:="oinstall", MODE:="660"
    ENV{DM_NAME}=="MS3000G2-4", OWNER:="grid", GROUP:="oinstall", MODE:="660"
    ENV{DM_NAME}=="MS3000G2-5", OWNER:="grid", GROUP:="oinstall", MODE:="660"  
    

    NFS服务器配置:

    服务端配置:
    [root@shuanghuozhongcai /]#yum install -y nfs-utils
    
    [root@shuanghuozhongcai /]# cat /etc/exports 
    /ocrvote3 192.168.0.0/24(rw,sync,no_wdelay,insecure_locks,no_root_squash)
    
    节点1客户端挂载:
    [root@his01 ~]#showmount -e 192.168.0.75
    Export list for 192.168.0.75:
    /ocrvote3 192.168.0.0/24
    [root@his01 ~]#mount -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,noac,vers=3,timeo=600,actimeo=0 192.168.0.75:/ocrvote3 /ocrvote
    
    vi /etc/fstab
    192.168.0.75:/ocrvote3 /ocrvote nfs rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,noac,vers=3,timeo=600,actimeo=0 0 0
    
    
    节点2客户端挂载:
    [root@his02 ~]#showmount -e 192.168.0.75
    Export list for 192.168.0.75:
    /ocrvote3 192.168.0.0/24
    [root@his02 ~]#mount -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,noac,vers=3,timeo=600,actimeo=0 192.168.0.75:/ocrvote3 /ocrvote
    
    vi /etc/fstab
    192.168.0.75:/ocrvote3 /ocrvote nfs rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,noac,vers=3,timeo=600,actimeo=0 0 0
    

    NFS做OCR/Voting file参数配置如下:Mount Options for Oracle files when used with NFS on NAS devices (文档 ID 359515.1)

    在NFS共享文件夹中dd一块磁盘做第三块表决盘:

    [root@his01 ~]# dd if=/dev/zero  of=/ocrvote/ocrvote3 bs=1M count=1024
    1024+0 records in
    1024+0 records out
    1073741824 bytes (1.1 GB) copied, 47.6771 s, 22.5 MB/s
    

    创建OCR磁盘组:

    MS2500G2-5 存储1
    MS3000G2-5 存储2
    ocrvote3 NFS
    在这里插入图片描述

    创建DATA磁盘组:

    存储1 MS2500G2的四块盘做故障组F1
    存储2 MS3000G2的四块盘做故障组F2
    在这里插入图片描述
    在这里插入图片描述

    关于ASM建立故障组与非建立故障组的冗余模式分析

    磁盘与故障组信息查询:

    
    [grid@his01 ~]$ asmcmd lsdg
    State    Type    Rebal  Sector  Block  AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
    MOUNTED  NORMAL  N   512   4096  1048576   4096000  4095766           512000         1791883              0             N  DATA/
    MOUNTED  NORMAL  N   512   4096  1048576      3072     2146             1024             561              0             Y  OCR/
    
    select name,path from v$asm_disk_stat order by name;
    NAME                           PATH
    ------------------------------ ------------------------------
    DATA_0000                      /dev/mapper/MS2500G2-1
    DATA_0001                      /dev/mapper/MS2500G2-2
    DATA_0002                      /dev/mapper/MS2500G2-3
    DATA_0003                      /dev/mapper/MS2500G2-4
    DATA_0004                      /dev/mapper/MS3000G2-1
    DATA_0005                      /dev/mapper/MS3000G2-2
    DATA_0006                      /dev/mapper/MS3000G2-3
    DATA_0007                      /dev/mapper/MS3000G2-4
    OCR_0000                       /ocrvote/ocrvote3
    OCR_0001                       /dev/mapper/MS2500G2-5
    OCR_0002                       /dev/mapper/MS3000G2-5
    
    故障组查询:
    select name,path,failgroup from v$asm_disk order by name;
    NAME            PATH                           FAILGROUP
    --------------- ------------------------------ ------------------------------
    DATA_0000       /dev/mapper/MS2500G2-1         F1
    DATA_0001       /dev/mapper/MS2500G2-2         F1
    DATA_0002       /dev/mapper/MS2500G2-3         F1
    DATA_0003       /dev/mapper/MS2500G2-4         F1
    DATA_0004       /dev/mapper/MS3000G2-1         F2
    DATA_0005       /dev/mapper/MS3000G2-2         F2
    DATA_0006       /dev/mapper/MS3000G2-3         F2
    DATA_0007       /dev/mapper/MS3000G2-4         F2
    OCR_0000        /ocrvote/ocrvote3              OCR_0000
    OCR_0001        /dev/mapper/MS2500G2-5         OCR_0001
    OCR_0002        /dev/mapper/MS3000G2-5         OCR_0002
    

    存储双活方案部署完成.

    关于ASM建立故障组与非建立故障组的冗余模式分析

    展开全文
  • 主要介绍了MySQL 双活同步复制四种方案,主从复制分成三步,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 针对金融行业双活数据中心建设,从需求分析、架构设计、实现方式、应急演练等方面进行讲解
  • 华为存储双活解决方案技术白皮书
  • 浅析PowerHA HyperSwap双活方案.docx
  • IBM DS8000 PowerHA HyperSwap 双活 IBM DS8000 PowerHA HyperSwap 双活
  • Oracle RAC同城双活方案.docx
  • DB2数据库PureScale双活方案设计.docx
  • 存储跨中心双活方案设计.docx
  • 基于Oracle数据库双活方案对比分析.docx
  • 存储跨中心双活方案设计指南.docx
  • es双活方案

    千次阅读 2019-07-30 14:43:08
    参考:http://www.yunxiaobai.net/archives/489 另外:ES7.1.1中支持了CCR跨集群复制,但是该功能属于xpack中,非免费使用。

    参考:http://www.yunxiaobai.net/archives/489

    另外:ES7.1.1中支持了CCR跨集群复制,但是该功能属于xpack中,非免费使用。

    展开全文
  • 双活数据中心网络方案(纯网络层面双活),华为的数据中心PPT版本。
  • 详细描述了如何实现SQL SERVER数据库的双活,包括最高等级的数据零丢失容灾,全自动(不需要修改客户代码的)负载均衡读写分离等功能。
  • DB2数据库(PureScale)双活方案设计要点.docx
  • Lenovo v5030存储Hyperswap双活方案实施要求.docx
  • HyperSwap架构的核心业务系统存储双活方案.docx
  • DELLEMC可以提供业界最先进的双活数据中心,并配合原有数据备份实现本地数据保护,可以根据备份策略,将所有数据按照时间点进行全备份,后续根据需要,配合DELLEMC Recoverpoint连续数据保护方案,关键数据可以根据...
  • 金融行业异地双活方案.pptx
  • 互联网金融异地双活方案.pptx
  • DB2数据库(PureScale)双活方案设计要点

    千次阅读 2018-09-07 07:59:00
    基于以上目标,在Db2 pureScale的数据库双活方案设计里面,我们遵循对等双活和对应用透明的原则,克服困难,最大化双活的高可用性优点,改善性能相关的缺点。 总体设计 3.如何选择双中心站点和仲裁站点的定位,仲裁...

    640?wx_fmt=jpeg

    640?wx_fmt=gif&wxfrom=5&wx_lazy=1

    分享专家: 孔再华 数据库架构师

    文章来源: 转自talkwithtrend 公众号

    具有丰富的数据库环境问题诊断和性能调优的经验,擅长DB2 PureScale 集群产品的项目咨询和实施。


    在两地三中心建设过程中,我们发现采用传统的容灾技术碰到3个问题。


    1. 切换时间太长,即使通过自动化实现,主切备和备切主都需要花费几十分钟时间。

    2. 操作风险太大,比如核心系统切换涉及到20步以上的操作步骤和上百条命令,每条命令都有出错的可能。

    3. 建设成本太高,同城机房按照1比2甚至1比1 的比例进行建设,服务器平时完全闲置,除了一次性投入,每年还要耗费大量的维护费用。


    因此相对于传统容灾方式,我们希望建设一个双活平台,解决降低RTO时间、降低成本和降低切换风险等需求。


    在双活平台的选型过程中,基于当前需求是传统型业务(非互联网类型)做迁移,当前数据库base是DB2和Oracle,从平台角度发起而不想对业务开发进行改造,最终实现双机房对等双活等因素,我们最终发现Db2 pureScale GDPC方案最适合。


    这个方案特点明显: 高可用性,可扩展性和对应用透明。那么选好型后,怎么落地成了最关心的问题。因为双活技术的复杂性,在方案设计的每个环节都需要慎重考虑,选择最合适的方式,最终形成自己需要的方案(以下为内容分享)。


    1.为什么要基于Db2 pureScale做数据库双活?优势和意义是什么?


    为了保证数据多中心部署0丢失,降低容灾切换时间,减少人为操作风险,降低成本。双活系统就是要将这几个方面做到极致。


    在选型的过程中发现其实没有太多选择,能做到这一点的成熟软件和技术只有Db2pureScale集群技术和OracleRAC技术。这里说说我们为什么要用Db2pureScale而不是OracleRAC。


    从业界经验来说,OracleExtendRAC是面向同城双活的数据库产品,然而从各方了解都不推荐使用,即便是使用了这个技术的案例里面,灾备机房节点也只是作为热备,没有提供对等的服务,这个是与我们建设双活的应用目标有差距的。而DB2 GDPC(地理位置上分开的pureScale集群)方案从设计之初就是为了做对等双活,国内也已经有上线案例。从厂商支持力度上来说,IBM主推这个技术并且支持好,Oracle相比差一点。从底层技术来说,IBM的pureScale在可扩展性,对应用透明等特点上是优于Oracle的。所以建议选择Db2GDPC方案来建设双活环境。


    2. 基于Db2 pureScale的数据库双活方案设计,要遵循哪些重要原则?


    如果将数据库双活平台作为未来的常规建设,应用越来越多的系统,那么在建设初期,我们就要设定好平台的目标:


    1、通用性:基于LUW开放平台,支持部署在任何厂商的存储、服务器和操作系统上。不能选择一体机,大型机等不通用的设备。


    2、无差别性: 双中心交易对等,同城之间同时处理业务请求,无主次之分。只有这样的系统才能面对失去单数据中心的风险。


    3、高可用性:最下化降低同城切换时间,同城站点出问题不会影响全局业务。业务切换需要在最短时间内完成。


    4、可维护性:基础设置重大变更不停机,可以通过滚动升级的方式完成维护操作。


    5、可迁移性:平台对业务系统透明,开发无需改动代码,即可快速部署到该平台。同样该平台部署的系统也可平滑迁移出来。


    6、安全稳定运行,该平台可以实现5个9的运行目标。


    基于以上目标,在Db2 pureScale的数据库双活方案设计里面,我们遵循对等双活和对应用透明的原则,克服困难,最大化双活的高可用性优点,改善性能相关的缺点。


    总体设计

    3.如何选择双中心站点和仲裁站点的定位,仲裁站点需要什么条件?


    首选需要说明DB2GDPC方案逻辑上需要三个站点,其中两个站点作为双活的数据中心,第三个站点作为仲裁站点。


    双站点的定位和条件:


    1.双活站点之间需要可靠的 TCP/IP 链接相互通信,还需要RDMA(具有 RoCE 或 Infiniband)网络链接。具有成员和 CF 的两个站点是生产站点,它们处理数据库事务。这两个生产站点相距应该不超过 50 公里,通过 WAN 或暗光纤(必要时还使用距离范围扩展器)来连接这两个站点,并且在它们之间配置了单个 IP 子网。距离更短将获得更高性能。在工作负载相当少的情况下,可以接受更远的距离(最多可达 70 或 80 公里)。


    2.双站点的CF和成员节点是对等的。每个生产站点都有一个 CF 以及相同数目的主机/LPAR 和成员。


    3.每个生产站点都有它自己的专用本地 SAN 控制器。SAN 已分区,以便可从这两个生产站点直接访问用于 DB2 pureScale 实例的 LUN。在站点之间需要 LUN 之间的一对一映射,所以第一个站点上的每个 LUN 都在第二个站点上具有相同大小的对应 LUN。而GPFS同步复制用作存储器复制机制。


    4.对于RDMA网络支持RoCE和infiniband。个人建议使用RoCE,通用性和可部署性强。如果使用 RoCE 进行成员/CF 通信:使用多个适配器端口进行成员和 CF 通信,以适应其他带宽和提供冗余。对于以完全冗余方式配置的总共四个交换机,在每个站点中使用双交换机。将每个成员和 CF 中的其他绑定的专用以太网网络接口设置为 GPFS 脉动信号网络。也就是我们说的私有TCP网络。如果使用 Infiniband 进行成员/CF 通信:

    仅支持每个成员和 CF 具有单个适配器端口以及每个站点具有单个交换机。此接口用于成员和 CF 通信以及 GPFS 脉动信号网络。


    第三个站点的定位和条件:


    1. 单个主机(非成员主机,也非 CF 主机),专用于集群仲裁职责,与集群中的其他主机位于相同操作系统级别。可以使用虚拟机。


    2. 不需要访问两个生产站点中的 SAN。


    3.不需要RDMA通信,也不需要私有网络(RoCE的情况下使用到的TCP私网)。


    需要为集群中的每个共享文件系统都需要仲裁盘,这个文件系统的仲裁盘就是从这个第三站点划分出来的。没有用户数据存储在这些设备上,因为这些设备仅用来存储文件系统配置数据以用于恢复,并且充当文件系统磁盘配额的仲裁磁盘。这些设备的大小需求为最小需求。通常,50 到 100 MB 的设备在大多数情况下能够满足需求。此设备可以是本地物理磁盘或逻辑卷 (LV)。


    请遵循下列准则来配置 LV:


    在同一卷组 (VG) 中创建逻辑卷。为卷组至少分配一个物理磁盘。实际数目取决于所需要的逻辑卷数,而逻辑卷数又取决于共享文件系统数。如果有可能,请使用两个物理卷以提供冗余。


    有限的条件下,例如只有两个数据中心,仲裁站点可以放在所谓的主中心机房里,但是硬件上要和其他节点分开。这个主中心机房的定位就是可能于此关联的其他重要系统在这个机房,访问更直接和快速。在存在这种定位的情况下,主CF节点,跑批的成员节点建议放在这个机房里。


    通信网络设计

    4. 如何规划和设计集群内部通信网络? 


    在整个DB2GDPC的方案里面,仲裁站点仅仅需要TCPIP网络通即可,不需要SAN,RDMA,私网等,所以需要重点关注双活站点的CF和成员节点的网络设计。


    1. 双站点DWDM通信硬件:建议冗余,租用不同运营商线路。


    2. 以太网对外服务:以太网卡建议做冗余,采用双网卡绑定,建议是主备模式。每个以太网的交换机也建议冗余,使用类似VPC等虚拟绑定技术。交换机间互联线路要求冗余。


    640?wx_fmt=jpeg

    3. RoCE网络和私网:RoCE网卡自带两口,可以连接到不同的交换机上,但是这两个口对于网卡吞吐量没有影响。建议每个节点采用多网卡,每张网卡链接在不同的RoCE交换机上。RoCE网卡是不能做绑定的,都是实际的物理地址。所有的RoCE网络都划在一个VLAN里面。这里还要关注一个私网,专门给GPFS走心跳和数据的网络,是TCPIP协议。


    这个私网建议做多口绑定,也是主备模式,每个口连接到不同的RoCE交换机上,与RoCE网络划分在同一个VLAN里面。交换机的建议和以太网交换机差不多,每个站点冗余绑定。


    640?wx_fmt=png

    共享存储设计

    5. 如何设计存储网络,仲裁站点需要存储吗? NSD server怎么配置?


    通过一张图来了解多站点GPFS复制拓扑。GPFS复制通过建立文件系统的两个一致的副本来提供存储器级别的高可用性;每个副本在另一个副本发生故障时都可用于恢复。


    640?wx_fmt=gif


    GPFS为文件系统的第一个副本和第二个副本提供了两个单独的存储控制器。这些存储控制器分别称为冗余组 1 和冗余组 2。GPFS将数据和文件系统元数据都存储在冗余组中。


    RSCT 和GPFS集群使用多数节点配额而不是仲裁磁盘配额。对于具有三个地理位置分散的站点的 GDPC,主站点和辅助站点具有相同数目的成员,并且每个站点中都有一个 CF。第三个站点中存在单个仲裁主机。仲裁主机是包含所有文件系统仲裁磁盘的文件系统仲裁冗余组的所有者。这些磁盘仅包含文件系统描述符信息(例如,文件系统配置元数据)。


    仲裁站点仲裁主机只需要通过 TCP/IP 访问同一集群中的其他主机。它不需要访问冗余组 1 和冗余组 2 中的数据。在仲裁主机上面,每个共享文件系统都需要独立的文件系统仲裁磁盘用于文件系统配额以及进行恢复。每个磁盘最少需要 50 MB。它可以是本地物理磁盘或逻辑卷 (LV)。


    扩展: 因为GPFS复制时通过在本机直接通过SAN访问远程磁盘来写实现同步。当站点1和2之间网络出现问题的时候,数据复制需要停40秒(磁盘超时属性)。这个在很多时候是不能容忍的,尤其出现网络质量差的情况下。所以我在这个地方做了些改进并在生产验证。如图中的db2logfs文件系统是用来放置数据库日志的,当数据库日志的io停止的时候数据库也是会hang住,所以我将db2logfs相关远程盘的主机映射都去掉,这样强制db2logfs在复制的使用tcp网络。


    资源设计

    6. 如何分配成员和CF节点的资源。在DB2 pureScale GDPC数据库双活技术方案设计的资源设计环节中,我们该如何划分及分配成员和CF节点的资源? 从哪些点方面进行入手考虑(例如并发访问量、数据量等),需要特别关注哪些什么(例如写读比例、写一致性、读一致性等)?


    CF和成员节点的内存主要就是CPU和内存的分布,还有就是RDMA通信网卡资源。


    我们至今还没有遇到网卡带宽瓶颈。即便是在双活环境出现CF和成员通信瓶颈也不是因为带宽,而是Db2集群内部通信的机制导致。所以对于RDMA网卡,冗余满足高可用即可。


    成员CPU的估算是基于工作负载来的,直接比较的对象是单机的数据库资源配置。因为成员相对于传统单机数据库有更多的消耗,所以在同样一个节点的负载需求情况下,建议成员CPU要比单机更多一些。 CF的CPU需求和RDMA卡有关系。IBM官方推荐一个CF的RDMA卡口对应6-8个CPU核心。


    成员节点的内存也是相对于同样工作负载下单机的数据库内存配置来比较的。因为成员和CF之间有了更多的锁,所以主要区别就在于成员节点的locklist需求变得更大,个人建议调整为单机数据库的两倍吧。CF的内存消耗主要是GBP和GLM这两大块。给大家一个公式:GBP大小是LOCAL BUFFERPOOL总页面数*1.25KB*MEMBER数量。GLM就是所有member节点locklist总和吧。解决这两大块的估算再加一些就是整个CF的内存配置需求量了。


    访问设计

    7. 客户端采用什么方式连接数据库节点?


    在双活环境,怎么最大化负载均衡并不是最主要的考虑因素,最大化性能才是需要考虑的。因为跨站点的通信延时,所以要尽量避免跨中心访问。所以客户端应该采用偏好链接的方式来访问数据库节点。


    每个应用服务器配置自己的数据源,通过Client Affinity的方式连接到数据库成员节点,有效避免跨站点访问。一旦成员节点出现故障,ACR可以自动将应用服务器连接到其他存活的成员节点。 

    在这个基础上,还有几点需要注意:


    1、跑批节点放在主CF同机房member上。

    2、启动数据库的时候第一个启动的成员节点要选择和主CF在同一机房。因为有些数据库的自动管理工作是在第一个启动的member上完成的。


    8.基于Db2 pureScale做数据库双活,对于重要业务需求的实现程度如何?方案的优点有哪些?


    基于Db2 pureScale的数据库双活平台在我行已经上线三年,期间陆续迁入了6套优先级比较高的系统。整个运行过程算是达到了预期。也经历过网络故障等实际考验,表现都如预期。所以这个高可用性和可维护性都得到了验证。


    但是这个方案在满足数据0丢失,可用性非常高的情况下,还是牺牲了部分性能。因为距离的原因,写盘和通信都不可避免延长。所以迁入地系统在跑批的时候明显比以前长,这也是没办法的。


    9.基于Db2 pureScale的数据库双活方案,有哪些局限?有什么可以继续改进的地方呢?


    在这个方案里面,我觉得从技术上还有比较多的地方需要改进。一方面热点数据问题,虽然我们通过分区表随机索引等方式打散热点数据,但是还是需要从数据库技术层面给出更好的改进。


    另一方面是节点之间的通信,因为延时的缘故,还需要从技术上继续减少交互。同时带宽不是问题,通信的并发性也需要从技术上去解决。相信如果上述几个方面能够得到改进,这个方案将会得到更大的运用空间。


    本号技术实战和总结(20+)

    请识别小程序获取电子书详细信息


    640?wx_fmt=jpeg



    温馨提示:

    请搜索“ICT_Architect”“扫一扫”二维码关注公众号,点击原文链接获取更多电子书详情

    640?wx_fmt=png&wxfrom=5&wx_lazy=1

    求知若渴, 虚心若愚

    640?wx_fmt=gif&wxfrom=5&wx_lazy=1

    展开全文
  • 银行跨数据中心数据库双活方案设计应遵循哪些原则.docx
  • 基于Oracle RAC 双活方案实施,如何规避脑裂风险- 最佳实践.docx
  • 主流存储双活方案的仲裁方式与两地三中心扩展比较分析.docx
  • 银行跨数据中心数据库双活方案设计规范.docx
  • XX市第三人民医院-数据库双活方案.docx

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,211
精华内容 9,284
关键字:

双活方案