1 先备份
确保新软件与locator
和server
上的旧软件一起在节点上。
-
连接到主
locator
-
导出
configuration
export cluster-configuration --zip-file-name=./cluser-config-backup.zip
- 备份
locator
和server
的启动脚本。
您必须自己执行此操作,确保跟踪定位器端口,服务器端口,客户端主机名等内容。
例如通过进入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
或者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
- 导出数据
这是为了防止出现问题。
注意: 停止
locator
和server
最好在一个管理机器上通过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
3 重启locator
注意: 启动
locator
和server
要在各自的节点上执行!
3.1 停止旧的主locator
gfsh>stop locator --name=${locator_name}
停止主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
启动新的gfsh
, 并检查版本
cd /opt/geode_work/
source /etc/profile
gfsh version --full
3.3 启动新的主locator
gfsh>start locator --name=${主locator_name} --各种参数
3.4 检查新的主locator
是否正常
gfsh>connect --jmx-manager=${主locator_ip}
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} --各种参数
4 重启server
4.1 停止旧版本的server
:
注意: 要在主locator
节点上的gfsh
里执行:
gfsh>stop server --name=${server_name}
用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
启动新的gfsh
, 并检查版本
cd /opt/geode_work/
source /etc/profile
gfsh version --full
4.3 启动新版本的server
:
注意: 要在各个server
节点上执行:
gfsh>start server --name=${server_name} --各种参数
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} --各种参数
5 升级客户端
6 附录
6.1 禁用TCP SYN Cookies
大多数默认Linux安装使用SYN cookie来保护系统免受泛滥TCP SYN数据包的恶意攻击(例如DDOS)。
此功能与稳定和繁忙的Geode群集不兼容。 SYN Cookie保护会被正常的Geode流量错误地激活,严重限制带宽和新的连接速率,并破坏SLA。 安全实现应该通过将Geode服务器集群置于高级防火墙保护之下来寻求防止DDOS类型的攻击。
要永久禁用SYN cookie:
-
编辑
/etc/sysctl.conf
文件以包含以下行:net.ipv4.tcp_syncookies = 0
将此值设置为零将禁用SYN Cookie。
-
重新加载
sysctl.conf
:sysctl -p
6.2 检查locator
和server
:
gfsh>list members
...
gfsh>describe member --name=${locator_name}
...
gfsh>describe member --name=${server_name}
...
6.3 检查region
:
gfsh>list regions
...
gfsh>describe region --name=${region_name}
...
6.4 WEB控制台pulse
地址:
http://${主locator的IP}:7070/pulse/
<<<<<<<<<<<< ⌛ >>>>>>>>>>>>