gds_ctl
背景信息
gds_ctl是一个批量控制GDS启停的脚本工具,一次执行可以在多个节点上启动/停止相同端口的GDS服务进程,并在启动时为每一个进程设置看护程序,用于看护GDS进程。
注意事项
- 执行脚本前需切换到GDS用户,必须在普通用户下执行脚本gds_ctl。
- 脚本需要在python 3环境下运行。
- gds_ctl继承了GDS主要命令行参数,除-p以及-h外,其他参数意义不变。在gds_ctl中,-p只需指定端口即可。
- 使用gds_ctl批量操作的节点必须是此前使用gds_install安装部署的节点。
语法
- 启动命令
gds_ctl start --host [/path/to/hostfile | ipaddr1,ipaddr2...] -p PORT -d DATADIR -H ALLOW_IPs [gds other original options]
- 停止命令
gds_ctl stop --host [/path/to/hostfile | ipaddr1,ipaddr2...] -p PORT
- 重启命令
gds_ctl restart --host [/path/to/hostfile | ipaddr1,ipaddr2...] -p PORT
参数说明
- --host
兼容GDS原参数
- -d dir
- -l log_file
与-R参数一起使用,可支持日志自动切分。当设置-R参数后,GDS会根据设置的值重新生成新的文件,以此来避免单个日志文件过大。
生成规则:GDS默认只识别后缀是log的文件重新生成日志文件。
例如,当-l参数指定为 gds.log,-R指定为20MB时,当gds.log达到20MB后就会新创建一个 "gds-2020-01-17_115425.log"文件。
当-l指定的日志文件没有以log为后缀,例如:" gds.log.txt", 则新创建的日志文件名为" gds.log-2020-01-19_122739.txt"。
GDS启动时会检测-l参数设置的日志文件是否存在,如果存在则根据当前日期时间新生成一个日志文件,不会覆盖之前的日志文件。
- -H address_string
设置允许哪些主机连接到GDS,参数需为CIDR格式,仅支持linux系统。需要配置多个不同网段时,使用“,”分隔。例如:-H 10.10.0.0/24,10.10.5.0/24。
- -e dir
默认值:数据文件目录。
- -E size
取值范围:0<size<1TB,请使用正整数+单位的形式进行取值设置,单位支持KB、MB和GB。
- -S size
取值范围:1MB<size<100TB,请使用正整数+单位的形式进行取值设置,单位支持KB、MB和GB。如果使用KB,取值需要大于1024KB。
- -R size
取值范围:1MB<size<1TB,请使用正整数+单位的形式进行取值设置,单位支持KB、MB和GB。如果使用KB,取值需要大于1024KB。
默认值:16MB。
- -t worker_num
取值范围:0<worker_num≤200,正整数。
默认值:8。
推荐值:普通文件导入导出场景取值:CPU核数*2;管道文件导入导出场景取值:64。
当管道文件导入导出场景并发较大时,该值应不低于业务并发数。
- -s status_file
- -D
- -r
- --enable-ssl
- --ssl-dir cert_file
- --debug-level
设置GDS端的debug日志级别,以控制GDS debug相关的日志输出。
取值范围:0、1、2。
- 0:仅打印导入导出相关的文件列表,日志量小,推荐在系统处于正常状态时使用设置。
- 1:打印日志的完整信息,增加各节点的连接信息、session转换信息和一些数据统计。推荐仅在故障定位时开启。
- 2:打印详细的交互日志以及所属状态,输出较大量的debug日志信息,以帮助故障定位分析。推荐仅在故障定位时开启。
- --pipe-timeout
取值范围:大于1s。请使用正整数+单位的形式进行取值设置,单位支持s、m和h。如:1小时可以设置为3600s、60m或者1h。
默认值:1h/60m/3600s
- 该参数的设置是为了避免人为或程序自身问题造成管道文件的一端长时间不读取或者不写入,导致管道另一端的读取或写入操作hang住。
- 该参数表示的超时时间不是指GDS一个导入导出任务的最长时间,而是GDS对管道文件的每一次read/open/write的最大超时时间,当超过--pipe-timeout参数设置时间会向前端报错。
示例
启动一个GDS进程,其数据文件存放在“/data” 目录,IP为192.168.0.90,监听端口为5000。
gds_ctl start --host 192.168.0.90 -d /data/ -p 5000 -H 10.10.0.1/24 -D
启动一批GDS进程,其数据文件存放在“/data” 目录,IP为192.168.0.90、192.168.0.91、192.168.0.92,监听端口为5000。
gds_ctl start --host 192.168.0.90,192.168.0.91,192.168.0.92 -d /data/ -p 5000 -H 0/0 -D
批量关闭位于192.168.0.90、192.168.0.91、192.168.0.92节点上,端口是5000的GDS进程:
gds_ctl stop --host 192.168.0.90,192.168.0.91,192.168.0.92 -p 5000
批量重启位于192.168.0.90、192.168.0.91、192.168.0.92节点上,端口是5000的GDS进程:
gds_ctl restart --host 192.168.0.90,192.168.0.91,192.168.0.92 -p 5000