您的位置:首页 > 其它

如何解决虚拟机频繁分离和附加磁盘导致的识别错误

2017-10-19 17:16 651 查看

问题描述

CentOS 6.5 (2.6.32-431.29.2.el6.x86_64)中正常启动时附带两块数据磁盘 A 和 B,大小为 10G 和 50G,分别对应 OS 中的 sdc 和 sdd。开机状态下,在很短时间内先后将磁盘 A 和 B 分离,再将磁盘 B 附加上去。此时系统中使用 fdisk,看到磁盘 B(50G)已经映射为盘符 sdc,但磁盘信息还是磁盘 A(10G)的信息。且无法对 B 磁盘的文件系统进行正常操作,如 mount。

操作前

从平台层面观察数据磁盘信息,注意磁盘名,LUN ID 和 Disk size 的对应。



复制
#fdisk -l

系统层面扫描到的磁盘信息



复制
#dumpe2fs

文件系统信息。



复制
#lsblk

查看块设备。注意 MAJ:MIN 和 SIZE 代表的主要:次要驱动号和磁盘尺寸。



操作后

在门户中连续执行分离磁盘 A 和 B,再附加磁盘 B 的操作。



从平台层面观察数据磁盘信息,注意磁盘名,LUN ID 和 Disk size 的变化,这表示该虚拟机只有一块 50GB 的数据磁盘。



系统内运行
mount
fdisk
查看挂载和磁盘信息。

sdd 还挂载在 /data 上。但已经无法正常工作,任何操作会报 IO 错误。

fdisk
显示数据磁盘 sdc 的大小还是磁盘 A 的信息(我们挂载的是磁盘 B)。 立即访问http://market.azure.cn





而对应该成为 sdc 的 B 磁盘进行挂载会发现读取不到文件系统信息。



#lsblk
信息也未更正。



问题分析

对磁盘进行分离和附加的操作间隔时间太小,该案例中 3 分钟内完成了三次操作;导致内核对磁盘的信息未得到及时更新。误认为被附加回的磁盘还是原来的磁盘,但因为磁盘的几何构造发生了变化,因此导致冲突。文件系统也无法正确识别出来。

解决方法

通过下面命令强制对该设备进行刷新,使内核重新读取其构造信息。

复制
echo 1 > /sys/class/scsi_device/<device>/device/rescan


Note
device 为磁盘的 SCSI 地址。

这里我们的测试结果。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐