如何解决修改IP过程中Linux系统很慢的问题
问题
在修改IP时,需要先修改节点Linux系统中的IP。如果因为需要修改LdapServer服务的业务IP而修改Linux系统IP,重启网络服务后可能导致集群所有节点执行操作很慢。
登录系统后,执行su - omm、ntpq -pn或者id admin命令,如果上述命令执行后,超过3s才返回结果,说明系统执行操作很慢。
回答
修改了Linux系统IP后但未修改集群IP配置时,LdapClient中保留了LdapServer服务端旧的业务IP,需要在重启网络服务后修改IP配置文件之前手动修改所有节点的配置。修改后配置文件将自动生效。
操作步骤
- 先获取配套的SetupTool工具包,并使用WinScp软件,使用root用户将工具包上传至集群内任意节点(例如上传至“/opt”目录),并执行如下命令解压缩工具包:
tar -zxvf FusionInsight_SetupTool_6.5.1.tar.gz
- 使用PuTTY,以root用户登录该工具包所在节点,切换目录到工具包中的工具路径(例如“/opt/FusionInsight_SetupTool/preinstall/tools/cluster/”)。
cd /opt/FusionInsight_SetupTool/preinstall/tools/cluster/
- 检查集群中节点的OS类型。
- SUSE系统,执行4。
- RedHat/CentOS/Euler,执行5。
- 拷贝如下命令:
main() { local argv="${1}" if [ "${argv}" == "modify" ];then cp /etc/nsswitch.conf /etc/nsswitch.conf_bak sed -i "s/ldap//g" "/etc/nsswitch.conf" elif [ "${argv}" == "restore" ];then mv /etc/nsswitch.conf_bak /etc/nsswitch.conf fi } source /home/omm/.profile main "$@"- 拷贝如下命令:
main() { if [ "${argv}" == "modify" ];then cp /etc/nsswitch.conf /etc/nsswitch.conf_bak sed -i "s/sss//g" "/etc/nsswitch.conf" elif [ "${argv}" == "restore" ];then mv /etc/nsswitch.conf_bak /etc/nsswitch.conf fi } source /home/omm/.profile main "$@"- 将4或者5拷贝的命令保存到以modifynss.sh命名的脚本中,脚本请放置在工具包根目录“preinstall/tools/cluster/”路径中。
- 拷贝如下命令:
main() { local ip1="${1}" local ip2="${2}" if [ -z "$ip1" -a -z "${ip2}" ];then echo "IP paramters should not be null." exit 1 fi local basepath=$(ls "${BIGDATA_HOME}/" | grep "FusionInsight_BASE_") local path=$(ls "${BIGDATA_HOME}/${basepath}/" | grep "SlapdClient") local file="${BIGDATA_HOME}/${basepath}/"${path}/etc/ENV_VARS local server_list_lines=$(grep -w "LDAP_SERVER_LIST" "${file}" | grep -v "#") local server_list_lines_replace="LDAP_SERVER_LIST=${ip1},${ip2}" local upg_list_lines=$(grep -w "LDAP_SERVER_LIST_UPGRADE" "${file}" | grep -v "#") local upg_list_lines_replace="LDAP_SERVER_LIST_UPGRADE=${ip1},${ip2}" if [ -n "${server_list_lines}" ];then sed -i "s#${server_list_lines}#${server_list_lines_replace}#g" "${file}" fi if [ -n "${upg_list_lines}" ];then sed -i "s#${upg_list_lines}#${upg_list_lines_replace}#g" "${file}" fi } source /home/omm/.profile main "$@"- 将7拷贝的命令保存到以modify.sh命名的脚本中,脚本请放置在工具包根目录“preinstall/tools/cluster/”路径中。
- 以root用户,在工具包“preinstall/tools/cluster/”路径下面执行命令:
vi cluster.ini
修改其中的g_hosts=""参数值,将集群的所有节点IP(节点IP可以通过安装模板获取到)添加到其中,修改后保存退出编辑。
- 以root用户,在工具包“preinstall/tools/cluster/”路径下面执行如下命令分发执行脚本到各节点。
./clusterscp.sh put /opt/FusionInsight_SetupTool/preinstall/tools/cluster/modifynss.sh /tmp/
./clusterscp.sh put /opt/FusionInsight_SetupTool/preinstall/tools/cluster/modify.sh /tmp/
- 以root用户,在工具包“preinstall/tools/cluster/”路径下面执行如下命令。
./clustercmd.sh "sh /tmp/modifynss.sh modify"
./clustercmd.sh "sh /tmp/modify.sh LDAPIP1 LDAPIP2"
其中LDAPIP1和LDAPIP2分别是新的LdapServer服务的业务IP。例如:./clustercmd.sh "sh /tmp/modify.sh 10.0.0.9 10.0.0.12"。
- 等待5分钟,以root用户,在工具包“preinstall/tools/cluster/”路径下面执行如下命令,观察查询出来的IP是否为LDAPIP1和LDAPIP2。
./clustercmd.sh "cat /etc/ldap.conf | grep URI"(非SUSE系统该命令不需要执行)
./clustercmd.sh "cat /etc/openldap/ldap.conf | grep URI"
- 是,执行13。
- 否,等待5分钟,继续执行12。
- 以root用户,在工具包“preinstall/tools/cluster/”路径下面执行如下命令:
./clustercmd.sh "sh /tmp/modifynss.sh restore"
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论
- 拷贝如下命令:




