问题描述
数据库组件部署过程会使用ssh远程连接和zookeeper连接,而zookeeper是天翼云数据库组件元数据的存储和交互中心,ssh远程连接缓慢和zookeeper连接超时都会导致数据库组件部署和使用出现异常,这与DNS的解析超时有直接的关系。
问题解析
DNS服务开启,DNS客户端配置/etc/resolv.conf 不合理。
首先,ssh配置 UseDNS 默认是开启的,当客户端试图登录SSH服务器时,服务器端先根据客户端的IP地址进行DNS,PTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,验证与其原始IP地址是否一致,这是防止客户端欺骗的一种措施,但一般我们的是动态IP不会有PTR记录,打开这个选项不过是在白白浪费时间而已。另外,ssh还有一个配置GSSAPIAuthentication也会导致登陆慢,该配置项的含义是允许GSSAPI认证,属于ssh协议的一种认证方式,但由于客户端侧配置的DNS服务器不可达可会导致超时重试多次。
问题处理
1. 保证ZooKeeper节点和数据库组件各节点的/etc/hosts文件中,IP和主机名是否能一一对应正确。
2. 修改ssh配置,关闭UseDNS选项和 GSSAPI认证方式:
1) 修改 /etc/ssh/sshd_conifg
GSSAPIAuthentication no
GSSAPICleanupCredentials no
UseDNS no
保存。
2)重启sshd服务:service sshd restart
3. 修改/etc/resolv.conf
1)保证所有dns记录是可达的,把不可达的dns记录都删除
2)添加如下配置,减少超时时间和重试次数:
options timeout:1 attempts:1 rotate single-request-reopen
附:
测试ssh连接时间:
declare passwd='密码'
time sshpass -p $passwd ssh user@IP exit