• IRIS的镜像配置(1)


    因为篇幅太长, 我把它分为3篇贴在社区

    配置前的准备

    配置Mirror前要准备三件事儿:

    1. 规划网络连接。
    2. 在所有的服务器中启动ISCAgent服务。
    3. 准备服务器的SSL/TLS证书。可选, 但非常推荐。

    我假设您在动手前一定已经对Mirror的原理和架构已经不陌生了,对镜像成员,DR(灾备)成员, Arbiter, ISCAgent等术语已经自动切换的概念有大概的认识。如果不是这样,请先阅读在线文档,或者这篇文章。

    规划网络连接

    Mirror应该配置两个网断:一个用于IRIS和外部的通信;另一个用于两个Mirror成员间的内部通信,也就是数据的同步。 尽管不是必须的,但Mirror作为一个高可用方案,为了保证服务器之间的内部通信不受和外部连接的干扰,把内部通信放在单独的网段是通常的做法,尤其是在生产环境。

    下图来自IRIS的在线文档:其中绿色所示的是IRIS提供服务的网段,IRIS到所有外部系统的连接,ECP应用服务器,和Arbiter在工作在这个网段。紫色的“Data Center Private LAN for Mirror Communication"用于内部通信,准确的说, 用于journal的同步。为了方便, 我会在后面的步骤中简单的把这两个网段简单的称为外网网段内网网段

    Mirror的网络链接

    也是来自在线文档,上图的IP地址配置像这个样子。(请忽略C栏和D栏,它们是DR服务器的地址)

    mirror网络配置

    在安装配置Mirror之前, 您需要检查的是:

    ( Agent address用的是公网地址,但书上有句话:When attempting to contact this member’s agent, other members try this address first. Critical agent functions (such as those involved in failover decisions) will retry on the mirror private and superserver addresses (if different) when this address is not accessible. Because the agent can send journal data to other members, journal data may travel over this network. )

    • ServerA, ServerB, Arbiter三台机器的在绿色网段可以相互访问。ServerA, ServerB的1972端口可以访问,Arbiter的2188端口可以访问。
    • ServerA, ServerB在紫色网段可以互相访问2188端口。
    • Virtual IP绑定在Server A, 并且IRIS的服务和连接通过Virtual IP提供。

    下面是我用的两个服务器的网络配置,因为不方便使用(懒的修改)上图的地址,我自己做的地址配置如下

    Virtual IP Address
    Arbiter Address172.16.58.100
    Member-Specific Mirror AddressserverAserverB
    SuperServer Address172.16.58.101172.16.58.102
    Mirror Private Address172.16.159.101172.16.159.102
    Agent Address172.16.58.101172.16.58.102

    其中172.16.58.0网段为外网网段; 172.16.159.0网段为内网网段。 在操作系统上查看IP, 是这个样子:

    servera

    1. #servera上的端口配置
    2. [root@servera mgr]# ip -4 -br addr
    3. lo UNKNOWN 127.0.0.1/8
    4. ens33 UP 172.16.58.101/24
    5. ens36 UP 172.16.159.101/24
    6. [root@servera mgr]# firewall-cmd --list-ports
    7. 1972/tcp 52773/tcp 2188/tcp
    8. [root@servera ~]#
    9. #serverb上的端口配置
    10. [root@serverb isc]# ip -4 -br addr
    11. lo UNKNOWN 127.0.0.1/8
    12. ens33 UP 172.16.58.102/24
    13. ens36 UP 172.16.159.102/24
    14. [root@serverb isc]# # firewall-cmd --list-ports
    15. 1972/tcp 52773/tcp 2188/tcp

    在所有的镜像成员启动ISCAgent服务

    无论是同步成员,异步成员,还是Arbiter,它们之间的通信都依赖ISCAgent服务。在操作系统上,它是一个独立于IRIS的服务,IRIS的默认安装也没有把它设置为自动启动,所以您需要在安装IRIS的机器,也就是同步,异步成员上手工启动这个服务。至于Arbiter,您可以理解Arbiter就是一个装了ISCAgent服务的机器,可以是任何一台客户的机器,装上ISCAgent, 能帮助IRIS主备成员自动切换判断,它就是Arbiter了。简单说, 您需要

    1. 在Mirror的所有成员上启动ISCAgent
    2. 在一台机器上安装ISCAgent并启动,它从此就是这个Mirror的Arbiter了。

    Arbiter需要和IRIS服务器用相同的操作系统吗?没必要。很多客户的IRIS装在Linux上,而Arbiter是一个Windows机器, 跑着和IRIS无关的业务, 都不用是Server版的Windows。

    默认配置下, ISCAgent通过TCP的2188端口和远端连接,启动ISC Agent后请检查防火墙,保证2188端口访问是可以访问的。

    下面是具体的配置细节。

    在Mirror的所有成员上启动ISCAgent

    IRIS服务器不需要单独安装ISCAgent。 你需要做的是启动服务,并服务器重启后ISCAgent能自动启动。

    • Windows: 进入管理工具—服务,选择ISCAgent,将启动类型改为自动。点启动ISCAgent,并确认服务已启动。

    • Linux: 使用systemctl启动iscagent, 并加入系统自启动列表。
    1. [root@servera isc]# systemctl start ISCAgent
    2. [root@servera isc]# systemctl status ISCAgent
    3. ● ISCAgent.service - InterSystems Agent
    4. Loaded: loaded (/etc/systemd/system/ISCAgent.service; disabled; vendor preset: disabled)
    5. Active: active (running) since Fri 2022-04-15 10:26:20 CST; 11s ago
    6. Process: 3651 ExecStart=/usr/local/etc/irissys/ISCAgent (code=exited, status=0/SUCCESS)
    7. Main PID: 3653 (ISCAgent)
    8. CGroup: /system.slice/ISCAgent.service
    9. ├─3653 /usr/local/etc/irissys/ISCAgent
    10. └─3654 /usr/local/etc/irissys/ISCAgent
    11. Apr 15 10:26:20 servera systemd[1]: Starting InterSystems Agent...
    12. Apr 15 10:26:20 servera systemd[1]: Started InterSystems Agent.
    13. Apr 15 10:26:20 servera ISCAgent[3653]: Starting
    14. Apr 15 10:26:20 servera ISCAgent[3654]: Starting ApplicationServer on *:2188
    15. [root@servera isc]#systemctl enable ISCAgent
    16. Created symlink from /etc/systemd/system/multi-user.target.wants/ISCAgent.service to /etc/systemd/system/ISCAgent.service.
    17. [root@servera isc]#

    Arbiter(仲裁服务)

    你需要到WRC的下载网址下载ISCAgent的软件。下面是在Linux下安装ISCAgent的过程。

    1. [root@serverc isc]# cd ISCAgent-2022.1.0.164.0-lnxrh7x64
    2. [root@serverc ISCAgent-2022.1.0.164.0-lnxrh7x64]# ls
    3. agentinstall cplatname dist package tools
    4. [root@serverc ISCAgent-2022.1.0.164.0-lnxrh7x64]# ./agentinstall
    5. Your system type is 'Red Hat Enterprise Linux (x64)'.
    6. Please review the installation options:
    7. ------------------------------------------------------------------
    8. ISCAgent version to install: 2022.1.0.164.0
    9. ------------------------------------------------------------------
    10. Do you want to proceed with the installation ? yes
    11. Starting installation...
    12. Installation completed successfully
    13. [root@serverc ISCAgent-2022.1.0.164.0-lnxrh7x64]

    安装后同上一小节使用systemctl命令启动。

    准备服务器的SSL/TLS证书

    您的每个服务器需要准备两个证书:一个本机的证书, 一个是CA的证书。(如果是公开证书也要吗,openssl应该是没有,除非自己去下载)。 如果您使用的是IRIS自带的PKI签发的self-signed证书,那么每台服务器不仅仅要自己的证书,非CA所在的服务器要:“获取证书颁发机构证书”(‘Get Certificate Authority Certificate’)。这个选项“证书颁发机构客户端的”从证书颁发机构获取证书页面。

    举例: servera, serverb为镜像成员。

    1. [root@servera mgr]# ls *.cer *.key
    2. iris.key iscCA.cer iscCASigned.cer iscCASigned.key

    忽略iris.key。 其他的iscCA.cer是CA的证书, iscCASigned.cer是servera的证书, iscCASigned.key是servera的私钥。

    同样, 在serverb:

    1. [root@serverb ~]# cd /isc/iris/mgr
    2. [root@serverb mgr]# ls *.cer *.key
    3. iris.key iscCA.cer iscCASignedserverb.cer iscCASignedserverb.key
    4. [root@serverb mgr]#

    增加gmheap的大小

    建议在配置Mirror时增加 generic memory heap 的尺寸。这个后面再补充。

    后面我们进入正式的Mirror的配置工作。Mirror的配置和把数据库添加入镜像。

  • 相关阅读:
    pytest 的使用===谨记
    国海证券:36氪(KRKR):新经济内容平台龙头,多元变现可期
    【Vue 快速入门系列】生命周期函数简要介绍
    Unit2_1:动态规划DP
    如何将 JavaScript Excel XLSX 查看器添加到Web应用程序
    c#设计模式-行为型模式 之 状态模式
    画画用电容笔还是触控笔?电容笔10大品牌排行榜
    那些不用写代码也能做游戏的工具
    STM32串口详解
    Spring 编程常见问题之一(专栏学习笔记)
  • 原文地址:https://blog.csdn.net/InterSystems/article/details/126908723