本文主要介绍在使用SMC迁移时,迁移任务出错提示“S6_* 磁盘分区创建快照出错”的问题描述、问题原因及其解决方案。
问题描述
在SMC迁移时,迁移任务出错提示“S6_* 磁盘分区创建快照出错”。其中S6_*可能的错误码如下:
S6_8
S6_1
问题原因
块复制迁移过程中,SMC客户端会在源系统内部自动创建磁盘分区快照设备,用于数据同步。源系统SMC客户端进行磁盘分区创建快照时出错,可能原因如下:
Windows:
磁盘分区空间不足。
系统安装有第三方安全杀毒软件。
磁盘分区卷影副本配置的存储使用限制大小不足。
系统卷影副本快照服务Volume Shadow Copy服务异常。
Linux
磁盘分区空间不足。
系统可用内存不足300 MB。
磁盘分区快照设备异常。
解决方案
不同操作系统对应的解决方案如下:
Windows
打开事件查看器检查是否有vss、volsnap、disk相关来源异常,并根据报错进行处理。
如果报错提示磁盘空间不足,或VSS卷影副本快照无法增长。
检查磁盘分区剩余空间是否不足,建议预留10% ~ 15%空间。
磁盘卷影副本配置的存储使用限制大小是否不足,建议适当调大使用限制或选择没有限制后再试。
如果报错拒绝访问,错误码
0x80070005
,需检查系统内是否安装有第三方安全杀毒软件,建议放开磁盘备份权限或者禁用该类软件后再试。检查系统卷影副本快照服务Volume Shadow Copy服务是否正常。
Linux
检查
/dev/smcss9
设备是否存在,执行dmesg | grep smcss
检查是否有报错。检查系统剩余内存是否满足300 MB。
检查磁盘分区剩余空间是否不足,建议预留10%~15%空间。
在SMC客户端安装目录下执行
./Check/client_check --ssclear smcss
,清理残留快照设备后再试。查找SMC客户端安装目录的具体操作,请参见查看SMC客户端。
(条件必选)若错误信息中存在“io scheduler not support”,按如下步骤更换磁盘使用的IO调度器。
确定出问题的磁盘序号。
找到错误信息中的msg部分,如:msg=CreateSnapshot 0-x Failed,0-x表示第1块磁盘,1-x表示第2块磁盘,2-x表示第3块磁盘,以此类推。
根据步骤i确定的序号来查询磁盘设备名称。
执行
lsblk
命令,确定对应序号的磁盘设备名称(序号从0开始)。根据步骤ii确定的磁盘名称查看磁盘使用的IO调度器。
以磁盘vdb为例,执行
cat /sys/block/vdb/queue/scheduler
命令,查看此磁盘使用的IO调度器。回显信息如下图,[] 中的是vdb磁盘当前所使用的IO调度器,即bfq。
说明回显信息列出了所有IO调度器,总共有四个:mq-deadline、kyber、bfq、none。
更换当前调度器(bfq)为其他调度器。
将调度器更换为除了bfq以外的其它调度器。以更换为
mq-deadline
为例:执行
sudo echo mq-deadline > /sys/block/vdb/queue/scheduler
。执行
cat /sys/block/vdb/queue/scheduler
命令,查看此磁盘当前使用的IO调度器,可看到IO调度器由bfq更换为了mq-deadline。
问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端。