
# gds_check
#### 背景信息
gds_check用于对GDS部署环境进行检查，包括操作系统参数、网络环境、磁盘占用情况等，也支持对可修复系统参数的修复校正，有助于在部署运行GDS时提前发现潜在问题，提高执行成功率。
#### 注意事项
- 执行脚本前需设置环境变量，可参考《开发指南》中"导入数据\>通过外表并行导入\>安装配置和启动GDS"章节。
- 脚本需要在Python 3环境下运行。
- 必须在root用户下执行脚本。
- 必须指定-t、--host参数。
- 当--host指定网络地址0.0.0.0或127.0.0.1时，不会检查MTU和网卡多队列。
- 网卡多队列的检查、修复要求网卡至少是万兆。
- --host参数指定的所有节点的密码必须保持一致，才能保证脚本成功进行远程检查。
- 执行修复时，对配置劣于推荐值的参数，建议设置为OS中配置项的推荐值，具体见下表：
  表1OS配置项 
  | **参数**                       | **推荐值**      |
  |:---|:---|
  | net.core.somaxconn           | 65535        |
  | net.ipv4.tcp_max_syn_backlog | 65535        |
  | net.core.netdev_max_backlog  | 65535        |
  | net.ipv4.tcp_retries1        | 5            |
  | net.ipv4.tcp_retries2        | 12           |
  | net.ipv4.ip_local_port_range | 26000\~65535 |
  | MTU                          | 1500         |
  | net.core.wmem_max            | 21299200     |
  | net.core.rmem_max            | 21299200     |
  | net.core.wmem_default        | 21299200     |
  | net.core.rmem_default        | 21299200     |
  | max handler                  | 1000000      |
  | vm.swappiness                | 10           |
     
  表2磁盘检查 
  | 检查项      | 警告            |
  |:---|:---|
  | 磁盘空间使用率  | 大于等于70%且小于90% |
  | inode使用率 | 大于等于70%且小于90% |
     
  表3网络检查 
  | 检查项     | 报错                      |
  |:---|:---|
  | 检查网络连通性 | 包100%丢失                 |
  | 检查网卡多队列 | 开启网卡多队列且绑定不同CPU，支持fix修改 |
     
  
 
#### 语法
- 检查命令
  ```
  gds_check -t check --host [/path/to/hostfile | ipaddr1,ipaddr2...] --ping-host [/path/to/pinghostfile | ipaddr1,ipaddr2...] [--detail]
  ```
  
- 修复命令
  ```
  gds_check -t fix --host [/path/to/hostfile | ipaddr1,ipaddr2...] [--detail]
  ```
  
 
#### 参数说明
- -t 操作类型，表示检查/修复。
  取值：check，fix。
  
- --host 需要检查/修复的节点IP列表。
  取值：IP列表，支持文件和字符串两种形式。
  - 文件形式：每一行一个IP地址，如： 192.168.1.200
    192.168.1.201
    
  
  - 字符串形式：半角逗号分隔，如： 192.168.1.200,192.168.1.201
    
   
- --ping-host 在各检查节点上进行网络ping检查的目标地址。
  取值：IP列表，支持文件和字符串两种形式，一般是DN、CN、网关的IP地址。
  - 文件形式：每一行一个IP地址，如： 192.168.2.200
    192.168.2.201
    
  
  - 字符串形式：半角逗号分隔，如： 192.168.2.200,192.168.2.201
    
   
- --detail 显示检查/修复项详细信息，并存入日志。
  
- -V 显示版本信息。
  
- -h, --help 显示帮助信息。
  
 
#### 示例
执行检查，--host、--ping-host均为IP字符串形式：
```
gds_check -t check --host 192.168.1.100,192.168.1.101 --ping-host 192.168.2.100
```
执行检查，--host为字符串，--ping-host为文件形式：
```
gds_check -t check --host 192.168.1.100,192.168.1.101 --ping-host /home/gds/iplist
cat /home/gds/iplist
192.168.2.100
192.168.2.101
```
执行检查，--host为文件形式，--ping-host为字符串：
```
gds_check -t check --host  /home/gds/iplist --ping-host 192.168.1.100,192.168.1.101
```
执行修复，--host为字符串：
```
gds_check -t fix --host 192.168.1.100,192.168.1.101
```
执行检查，打印详细信息，并存入日志：
```
gds_check -t check --host 192.168.1.100 --detail
```
执行修复，打印详细信息，并存入日志：
```
gds_check -t fix --host 192.168.1.100 --detail
```
