• Geode滚动升级手册


    1 先备份

    确保新软件与locatorserver上的旧软件一起在节点上。

    1. 连接到主locator

    2. 导出configuration

    export cluster-configuration --zip-file-name=./cluser-config-backup.zip
    
    • 1
    1. 备份locatorserver的启动脚本。
      您必须自己执行此操作,确保跟踪定位器端口,服务器端口,客户端主机名等内容。
      例如通过进入gfsh来查看:
    gfsh>connect --jmx-manager=${主locator的IP}
    gfsh>list members
    gfsh>status server --name=${server_name}
    
    #例如:
    gfsh>connect --jmx-manager=127.0.0.1
    Connecting to Manager at [host=127.0.0.1, port=1099] ..
    Successfully connected to: [host=127.0.0.1, port=1099]
    
    gfsh>list members
      Name   | Id
    -------- | ----------------------------------------------------------------
    locator1 | 192.168.68.17(locator1:23350:locator)<ec><v0>:1024 [Coordinator]
    locator2 | 192.168.68.18(locator2:62538:locator)<ec><v1>:1024
    server3  | 192.168.68.20(server3:26242)<v4>:1024
    server4  | 192.168.68.21(server4:10821)<v5>:1024
    server1  | 192.168.68.17(server1:23563)<v2>:1025
    server2  | 192.168.68.18(server2:62712)<v3>:1025
    
    gfsh>status server --name=server1
    Server in /opt/geode_work/server1 on T1[40401] as server1 is currently online.
    Process ID: 23563
    Uptime: 95 days 19 hours 51 minutes 50 seconds
    Geode Version: 1.7.0
    Java Version: 1.8.0_121
    Log File: /opt/geode_work/server1/server1.log
    JVM Arguments: -Dgemfire.locators=T1[10334],T2[10334] -Dgemfire.start-dev-rest-api=false -Dgemfire.use-cluster-configuration=true -XX:OnOutOfMemoryError=kill -KILL %p -Dgemfire.launcher.registerSignalHandlers=true -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806
    Class-Path: /opt/apache-geode-1.7.0/lib/geode-core-1.7.0.jar:/opt/apache-geode-1.7.0/lib/geode-dependencies.jar
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    或者ps -ef | grep geode | grep -v grep来查看启动参数

    最好通过ps -ef | grep geode | grep -v grep来查看,并备份起来!,例如:

    ps -ef | grep geode | grep -v grep

    root     14903 14815 20 15:05 pts/2    00:01:45 /usr/java/jdk1.8.0_121/jre/bin/java -server -classpath /opt/apache-geode-1.8.0/lib/geode-core-1.8.0.jar:/opt/apache-geode-1.8.0/lib/geode-dependencies.jar -Dgemfire.locators=T1[10334],T2[10334] -Dgemfire.enable-cluster-configuration=true -Dgemfire.load-cluster-configuration-from-dir=false -Dgemfire.launcher.registerSignalHandlers=true -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806 org.apache.geode.distributed.LocatorLauncher start locator1 --port=10334
    
    root     23563     1  0  2018 ?        17:59:22 /usr/java/jdk1.8.0_121/jre/bin/java -server -classpath /opt/apache-geode-1.7.0/lib/geode-core-1.7.0.jar:/opt/apache-geode-1.7.0/lib/geode-dependencies.jar -Dgemfire.locators=T1[10334],T2[10334] -Dgemfire.start-dev-rest-api=false -Dgemfire.use-cluster-configuration=true -XX:OnOutOfMemoryError=kill -KILL %p -Dgemfire.launcher.registerSignalHandlers=true -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806 org.apache.geode.distributed.ServerLauncher start server1 --server-port=40401
    
    • 1
    • 2
    • 3
    1. 导出数据
      这是为了防止出现问题。

    注意: 停止locatorserver最好在一个管理机器上通过gfsh来执行!
    connect --jmx-manager=${master_locator_ip}
    stop locator --name=${locator_name}
    stop server --name=${server_name}


    2 拷贝新版本的geode压缩文件到各个节点并解压

    # 所有节点
    # 复制`apache-geode-${version}.zip`到目录`/opt/`
    # 然后执行
    cd /opt
    # unzip ./apache-geode-${new_version}.zip
    # rm ./apache-geode-${new_version}.zip
    
    tar zxvf ./apache-geode-${new_version}.tgz
    rm ./apache-geode-${new_version}.tgz
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3 重启locator

    注意: 启动locatorserver要在各自的节点上执行!

    3.1 停止旧的主locator

    gfsh>stop locator --name=${locator_name}
    
    • 1

    停止主locator要特别注意,经常停止不了,要用ps来查看ps -ef | grep "LocatorLauncher" | grep -v grep,如果不能正常停止就用kill -9 ${locator的PID}来强行停止

    3.2 修改 /etc/profile, 把新版的geode路径更改到你的 PATH 环境变量里:

    执行 vi /etc/profile,修改成:

    #wjw_add
    export JAVA_HOME=/usr/java/default
    export PATH=$JAVA_HOME/bin:/opt/apache-geode-${new_version}/bin:$PATH
    
    • 1
    • 2
    • 3

    启动新的gfsh, 并检查版本

    cd /opt/geode_work/
    source /etc/profile
    gfsh version --full
    
    • 1
    • 2
    • 3

    3.3 启动新的主locator

    gfsh>start locator --name=${主locator_name} --各种参数 
    
    • 1

    3.4 检查新的主locator是否正常

    gfsh>connect --jmx-manager=${主locator_ip}
    
    • 1

    3.5 重启所有剩下的locator.

    #1
    stop locator --name=${locator_name}
    
    #2
    vi /etc/profile
    
    #3
    cd /opt/geode_work/
    source /etc/profile
    gfsh version --full
    
    #4
    gfsh
    start locator --name=${主locator_name} --各种参数 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    4 重启server

    4.1 停止旧版本的server:

    注意: 要在主locator节点上的gfsh里执行:

    gfsh>stop server --name=${server_name}
    
    • 1

    ps来查看ps -ef | grep "ServerLauncher" | grep -v grep

    4.2 修改 /etc/profile, 把新版的geode路径更改到你的 PATH 环境变量里:

    执行 vi /etc/profile,修改成:

    #wjw_add
    export JAVA_HOME=/usr/java/default
    export PATH=$JAVA_HOME/bin:/opt/apache-geode-${new_version}/bin:$PATH
    
    • 1
    • 2
    • 3

    启动新的gfsh, 并检查版本

    cd /opt/geode_work/
    source /etc/profile
    gfsh version --full
    
    • 1
    • 2
    • 3

    4.3 启动新版本的server:

    注意: 要在各个server节点上执行:

    gfsh>start server --name=${server_name} --各种参数 
    
    • 1

    4.4 重启所有剩下的server.

    #1
    stop server --name=${server_name}
    
    #2
    vi /etc/profile
    
    #3
    cd /opt/geode_work/
    source /etc/profile
    gfsh version --full
    
    #4
    gfsh
    start server --name=${server_name} --各种参数 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    5 升级客户端

    6 附录

    6.1 禁用TCP SYN Cookies

    大多数默认Linux安装使用SYN cookie来保护系统免受泛滥TCP SYN数据包的恶意攻击(例如DDOS)。

    此功能与稳定和繁忙的Geode群集不兼容。 SYN Cookie保护会被正常的Geode流量错误地激活,严重限制带宽和新的连接速率,并破坏SLA。 安全实现应该通过将Geode服务器集群置于高级防火墙保护之下来寻求防止DDOS类型的攻击。

    要永久禁用SYN cookie:

    1. 编辑/etc/sysctl.conf文件以包含以下行:

      net.ipv4.tcp_syncookies = 0
      
      
      • 1
      • 2

      将此值设置为零将禁用SYN Cookie。

    2. 重新加载sysctl.conf

      sysctl -p
      
      
      • 1
      • 2

    6.2 检查locatorserver:

    gfsh>list members
    ...
    
    gfsh>describe member  --name=${locator_name}
    ...
    
    gfsh>describe member  --name=${server_name}
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    6.3 检查region:

    gfsh>list regions
    ...
    
    gfsh>describe region --name=${region_name}
    ...
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    6.4 WEB控制台pulse地址:

    http://${主locator的IP}:7070/pulse/
    
    • 1

    <<<<<<<<<<<< ⌛ >>>>>>>>>>>>

  • 相关阅读:
    代码随想录day31
    Tauri+Vite+Vue3创建项目步骤
    10.9作业
    [npm]package.json文件
    如何做好测试?(一)不就是功能测试和性能测试?
    UMA Frame Buffer Size 核显显存与CSGO帧率
    ✪✪✪宁波国家实验室认可✪✪✪
    Kotlin高仿微信-第17篇-单聊-转账
    【Linux】安装VMWare虚拟机(安装配置)和配置Windows Server 2012 R2(安装配置连接vm虚拟机)以及环境配置
    Linux Shell 实现一键部署vmtools
  • 原文地址:https://blog.csdn.net/wjw465150/article/details/126904207