本文介绍在盘古系统中,出现abnchunk却无法恢复正常的处理方案。
专有云V2,盘古
说明:适用于ChunkServer机器为4台规模小集群,其它规模的集群不适用此方案,请联系阿里云技术支持。
无风险。
专有云部分集群的ChunkServer数量很少(只有四台,比如天基集群),可能会造成类型为小于最小副本数(lessmin)的abnchunk无法恢复正常。原因是LogFile的Chunk出现版本两高两低,或者机器异常掉电等原因导致Chunk写坏,变成无效副本 。如果文件的拷贝数目是(3,3),这种情况下有效副本数是两份,无效副本也是两份,在副本未达到安全的情况下(副本数小于lessmin),无效副本无法删除,又没有新的ChunkServer可以复制有效副本,造成lessmin的副本一直存在。
如果当前环境已部署盘古汇聚控制台,请参见Web界面操作。如无该控制台,请参见命令行操作。
Web界面操作
http://[$IP]:8620/
说明:在专有云V2环境[$IP]为DMSAG的IP地址,在V3环境[$IP]为OPS1机器的IP地址。
命令行操作
依次执行以下三条命令,确保只存在类型为lessmin的abnchunk。
/apsara/deploy/puadmin fs -abnchunk -t none
/apsara/deploy/puadmin fs -abnchunk -t onecopy
/apsara/deploy/puadmin fs -abnchunk -t lessmin
如果发现abnchunk,则如下图所示。第一列是下面要操作要用到的ChunkID。
Web界面操作
选择数据管理>数据安全>lessmin,即可获得FileID。
命令行操作
获取FileID,取ChunkID以“_”分隔的前面的部分。如下图红框部分既是FileId。
执行以下命令,确认是否存在无效Chunk。
puadmin gfi [$FileID] -d
如下图所示,该文件的副本数为(3,4)。其中有一台机器上的副本已经失效,显示PANGU_EXPIRED_CHUNK_LOCATION
,这种情况就属于无效Chunk。
/apsara/deploy/puadmin lscs|grep tcp也可在集群运维的Chunkserver运维页面获取。
/apsara/deploy/puadmin cs -meta tcp://[$IP]:10260 --chunk=[$ChunkID]
说明:[$IP]为机器的IP地址。
说明:如果以上两种检查都没有发现问题,则需要联系阿里云技术支持,本文档不适用。
执行puadmin gfi [$FileID] -d
命令查看文件类型,如调整副本数的文件类型是Raid normal file
和Random access file
则不适用此方案。
确定文件名称。
执行以下命令。
/apsara/deploy/puadmin fs -abnchunk -t lessmin返回结果如下图所示,取红框部分的FileID。
执行以下命令,获取文件名称。
/apsara/deploy/puadmin whois [$FileID]
系统显示类似如下。
说明:设置完新的副本数之后,盘古开始删除无效的副本,一般来说专有的集群在半个小时到一个小时之间。
/apsara/deploy/pu setreplica pangu://localcluster/[$File] [$Min] [$Max]示例如下图所示 。
说明:
- [$File]为
puadmin whois
命令的返回值。- [$Min]为当前正常的副本数,比如当前有4个副本,2个有效,2个无效,那就可以设置成2。
- [$Max]可以保持之前的不变,或者与[$Min]相等。
存在无效Chunk的情况,执行以下命令。
puadmin gfi [$FileID] -d
如果不在有Chunk显示类似的PANGU_EXPIRED_CHUNK_LOCATION
信息,则表示已经删除完毕。
Chunk版本不一致,执行以下命令,依次去ChunkServer上确认版本信息。
/apsara/deploy/puadmin cs -meta tcp://[$IP]:10260 --chunk=[$ChunkID]
当返回PANGU_CHUNKSERVER_CHUNK_NOT_FOUND
时,表明该Chunk副本已经在此ChunkServer上被删除,如下图所示。
如果无效副本长时间无法删除,有可能此文件正在访问,请通过以下命令进行确认。
/apsara/deploy/puadmin fs -lock | grep [$FileID]
系统返回结果如下,说明所示文件被打开的,请等待文件关闭,或联系阿里云技术支持。
确认无效副本已经删除之后,执行以下命令,将文件恢复到原来正常的副本数。
/apsara/deploy/pu setreplica pangu://localcluster/[$File] [$Min] [$Max]
/home/admin
目录。lessmin_abnchunnk_to_2_2_XXX.sh
脚本文件用来降低副本数,lessmin_abnchunnk_to_3_3_XXX.sh
脚本文件用来恢复副本数。
cd /home/admin/pangu_availability_management/pangu_diagnosis/tools
./abnchunk_analyze.py lessmin
chmod +x *.sh
./lessmin_abnchunnk_to_2_2_XXX.sh
注意:需最少等待1小时。
./lessmin_abnchunnk_to_3_3_XXX.sh
puadmin fs -abnchunk -t lessmin
参见实施步骤,确认无效Chunk已删除。
无需回滚,盘古只删除无效的Chunk。
在文档使用中是否遇到以下问题
更多建议
匿名提交