本文主要介绍在专有云V3环境中,OSS物理机关机维修和系统重新克隆的解决方案。
说明:适用于专有云V3.1~V3.8.1版本,并且KV版本为kv_sprint8.4。
说明:
- 如果目标机器是KV_Master,需要先替换KV_Master机器。
- OSS物理机发生故障,每次只能下线一台,请合理安排窗口期。
- 在机器下线过程中,需要对盘古ChunkServer上的数据做备份,请预留出足够的时间做变更。
- 如果KV_Master不为3台或者5台,或者checkready检查异常,需要联系阿里云技术支持获取帮助。
- 如果出现不符合预期的情况,请联系阿里云技术支持获取帮助。
在专有云V3环境中,遇到OSS物理机发生故障时,需要将故障机器下线进行修复,重新克隆后,再进行上线。
登录天基控制台。
在左侧集群页签下搜索oss,选择AdvanceOssCluster-A-2018XXXX-daXX集群,单击集群后的集群运维中心。
选择oss-chiji服务,单击服务器后面的Terminal,登录oss-chiji服务的主机。
执行以下命令,查看目标机器IP是否在此命令的输出中。
/apsara/deploy/mcu gas
系统显示类似如下,如果目标机器的IP出现在图中ip这一行,暂停操作,请联系阿里云技术支持。
执行如下命令,检查集群机器和磁盘状态。如果机器状态为disconnected,并且机器上的磁盘状态为OK或者宕机,则可以带外重启,其他情况不可直接带外重启机器。
puadmin lscs |grep [$IP] -A [$Number]
说明:
[$IP]为集群机器IP地址。
[$Number]为机器上磁盘个数。
系统显示类似如下。
依次执行以下三条命令,确保三种类型的abnchunk都不存在,如果abnchunk存在,请联系阿里云技术支持处理。
puadmin fs -abnchunk -t none puadmin fs -abnchunk -t onecopy puadmin fs -abnchunk -t lessmin
系统显示类似如下。
执行以下命令,检查checkready。如果有apperror错误请终止操作,请联系阿里云技术支持进行处理。
for i in ` /apsara/deploy/kuadmin --interactive=false --command=listapp | grep -v : ` ; do /apsara/deploy/ku --interactive=false --command=checkready --appname=$i ;done;
系统显示类似如下。
tj_show -r kvengine.KVServerRole# | wc -l
puadmin lscs | grep ttl | wc -l
登录oss-chiji服务的机器,切换到admin用户,执行以下命令,关闭健康检查。
ssh [$IP] cat /cloud/app/oss-server/OssServer#/oss_server/current/oss_rpcbindport | xargs -i /apsara/deploy/rpc_caller --Server=tcp://[$IP]:{} --Method=/fuxi/SetGlobalFlag --Parameter={\"oss_DisableCheckOssStatus\":true}
说明:
[$IP]为维修机器真实IP地址。
如果机器已经异常,则此步骤可能失败,跳过即可。
执行以下命令,添加KV黑名单。
/apsara/deploy/kuadmin --interactive=false --command=addblacklist --appname="" --param1=tcp://[$IP]:10280
系统显示类似如下。
执行以下命令,查看缩容机器是否添加到KV黑名单。
/apsara/deploy/kuadmin --interactive=false --command=getblacklist
系统显示类似如下。
执行以下命令,获取应用程序列表。
/apsara/deploy/kuadmin --interactive=false --command=listapp
系统显示类似如下。
以上6个APP都执行以下命令,验证checkready是否通过。
/apsara/deploy/ku --interactive=false --command=checkready --appname=[$APP_Name]
说明:[$APP_Name]为以上得到的6个APP的名称。
系统显示类似如下,说明正常。
以上得到的6个APP都执行以下下命令,验证待重启机器上已经没有分区。
/apsara/deploy/ku --interactive=false --command=getserverparts --appname=[$APP_Name] --param1=tcp://[$IP]:10280
系统显示类似如下,说明正常。
登录oss-chiji服务的主机,执行以下命令,获取所有KVServerRole机器列表。
tj_show -r kvengine.KVServerRole#
登录天基控制台,在左侧集群页签下搜索oss,选择AdvanceOssCluster-A-2018XXXX-daXX集群,单击集群后的集群配置文件。
选择kvengine>resource_role.conf文件,查看KVServerRole#的参数Number数值,添加机器列表,将Number数值修改为与机器列表的总数,单击预览并提交。
说明:列表中不包含待下线的机器。
登录oss-chiji服务的主机,执行以下下命令,开启fuxi手动加黑名单功能。
r sgf fuximaster "{\"fuxi_Enable_BadNodeManager\":false}"
系统显示类似如下。
执行以下命令,查看fuxi黑名单。
/apsara/deploy/rpc_wrapper/rpc.sh blacklist cluster get
执行以下命令,添加需要下线的机器到黑名单。
/apsara/deploy/rpc_wrapper/rpc.sh blacklist cluster add [$Hostname]
说明:[$Hostname]为需要下线机器的主机名。
系统显示类似如下。
执行以下命令,查看fuxi黑名单中是否有该机器。
/apsara/deploy/rpc_wrapper/rpc.sh blacklist cluster get
系统显示类似如下。
如果只是机器宕机,没有更换设备或者更换磁盘操作,则忽略RMA操作和Clone流程,直接通过带外重启机器,重启成功直接跳至机器启动后恢复流程。
如果需要更换机器内存条、CPU、主板等硬件设备,则只执行RMA操作。
如果是更换操作系统盘,则需要先进行RMA操作,再进行克隆操作。
登录OPS1服务器,如何登录服务器请参见专有云如何登录OPS服务器。
执行以下命令,修改故障机器action状态为pending。
curl "http://127.0.0.1:7070/api/v5/SetMachineAction?hostname=[$Hostname]" -d '{"action_name":"rma", "action_status":"pending"}'
系统显示类似如下。
{ "err_code": 0, "err_msg": "", "data": [ { "hostname": "[$Hostname]" } ] }
action_description@mtime
的值。
curl "http://127.0.0.1:7070/api/v5/GetMachineInfo?hostname=[$Hostname]&attr=action_name,action_status,action_description@mtime"
系统显示类似如下。
{ "err_code": 0, "err_msg": "", "data": { "action_description": "", "action_description@mtime": 1516168642565661, "action_name": "rma", "action_name@mtime": 1516777552688111, "action_status": "pending", "action_status@mtime": 1516777552688111, "hostname": "[$Hostname]", "hostname@mtime": 1516120875605211 } }
curl "http://127.0.0.1:7070/api/v5/AddAuditLog?object=/m/[$Hostname]&category=action" -d '{"category":"action", "from":"tianji.HealingService#", "object":"/m/[$Hostname]", "content": "{\n \"action\" : \"/action/rma\",\n \"description\" : \"/monitor/rma=error, mtime: 1516168642565661\",\n \"status\" : \"pending\"\n}\n" }'
说明:mtime为上一步获取的
action_description@mtime
值。
系统显示类似如下。
curl "http://127.0.0.1:7070/api/v5/GetMachineInfo?hostname=[$Hostname]"
系统显示类似如下。
curl "http://127.0.0.1:7070/api/v5/GetMachineInfoPackage?hostname=[$Hostname]&attr=sr.id,sr.action_name,sr.action_status"
说明:
pending表示正在审批的SR。
approved、doing和done表示已经审批完。
没有action的表示还未审批。
等机器的信息变为approved和doing状态后,即可将此服务器进行关机操作。
维修完毕后,保证网线全部连接正常,启动服务器即可。
说明:
若不需要克隆机器,在执行机器上线操作后,进行机器启动后恢复流程操作。
若需要克隆机器,则从重新克隆装机开始进行操作。
登录OPS1服务器,执行以下命令,将RMA状态设置为done。
curl "http://127.0.0.1:7070/api/v5/SetMachineAction?hostname=[$Hostname]&action_name=rma" -d '{"action_name":"rma","action_status":"done", "force":true}'
说明:随后天基开始启动应用,注意观察天基状态。
curl "http://127.0.0.1:7070/api/v5/SetMachineAction?hostname=[$Hostname]&action_name=rma&action_status=doing" -d '{"action_name":"clone", "action_status":"approved", "action_description":"", "force":true}'
注意:如果机器Action状态是系统显示类似如下。RMA| approved
下线状态,则执行以下命令。curl "http://127.0.0.1:7070/api/v5/SetMachineAction?hostname=[$Hostname]&action_name=rma&action_status=approved" -d '{"action_name":"clone", "action_status":"approved", "action_description":"", "force":true}'
{
"err_code": 0,
"err_msg": "",
"data": [
{
"hostname": "[$Hostname]"
}
]
}
说明:整个克隆过程大约40分钟左右。
curl "http://127.0.0.1:7070/api/v5/GetMachineInfo?hostname=[$Hostname]&attr=state,hostname"
/apsara/deploy/puadmin lscs | grep tcp系统显示类似如下,状态为SHUTDOWN。
/apsara/deploy/puadmin cs -stat tcp://[$IP]:10260 --set=NORMAL系统显示类似如下。
/apsara/deploy/rpc_wrapper/rpc.sh blacklist cluster remove [$Hostname]
/apsara/deploy/rpc_wrapper/rpc.sh blacklist cluster get系统显示类似如下。
/apsara/deploy/kuadmin --interactive=false --command=listapp系统显示类似如下。
/apsara/deploy/ku --interactive=false --command=checkready --appname=[$APP_Name]系统显示类似如下。
ssh [$IP] 'ps -ef|grep kv_server'系统显示类似如下。
/apsara/deploy/kuadmin --interactive=false --command=addblacklist --appname="" --param1=tcp://[$IP]:10280 --param2=0系统显示类似如下。
/apsara/deploy/kuadmin --interactive=false --command=getblacklist系统显示类似如下。
/apsara/deploy/ku --interactive=false --command=checkready --appname=[$APP_Name]系统显示类似如下。
/apsara/deploy/ku --interactive=false --command=getserverparts --appname=[$APP_Name] --param1=tcp://[$IP]:10280系统显示类似如下,表示正常。
登录天基控制台,查看OSS集群服务是否到终态。
暂无回滚方法。
ll -rt /apsara/apache/logs系统显示类似如下。
sudo rpm -qa|grep -i tengine系统显示类似如下。
执行以下命令,修复Tengine的RPM包。
sudo chmod -x /cloud/app/oss-server/TEngine#/oss_tengine/current/start && sudo rpm -e tengine-proxy-2.1.10-20170607114914.el7u2.x86_64
系统显示类似如下。
sudo rm -rf /opt/taobao/tengine/ && sudo rm -rf /opt/taobao/install/tengine-2.1.10-\20170607114914.el7u2/ && sudo rpm -ivh /cloud/app/oss-server/TEngine#/oss_tengine/current/rpms/tengine-proxy-2.1.10-20170607114914.el7u2.x86_64.rpm && sudo chmod +x /cloud/app/oss-server/TEngine#/oss_tengine/current/start
执行以下命令,确认有access_log日志文件生成。
ll -rt /apsara/apache/logs
系统显示类似如下。
执行以下命令,查看日志文件信息。
tail /apsara/apacha/logs/access_log.20180829
系统显示类似如下。
等待Tengine服务正常启动,并输出访问日志,然后继续观察。
在文档使用中是否遇到以下问题
更多建议
匿名提交