磁盘有时也不可靠

实验服务器的磁盘是最近买的,当卖家问我要普通的还是高级的, 我选择了普通,现在追悔莫及。

今天的分析更加详细。首先发现每次实验,出错的文件都不一样,所以应该不是临界条件的问题。下表总结了出错的位置,原始数据是数据的正确格式,第一次备份和第二次备份分别代表两次连续备份,我恢复出两次备份的数据与原始数据进行比较,发现错误都是某个字符发生了变化:
文件名 原始数据 第一次备份 第二次备份
linux-2.6.34.1.tar ; ; ?
linux-2.6.34.5.tar a a e
linux-2.6.35.1.tar (space) (space) $
linux-2.6.35.2.tar u u w
linux-2.6.35.3.tar c
i
c
i
g
k
linux-2.6.35.5.tar s s S
linux-2.6.36.0.tar i i m
linux-2.6.36.1.tar x
r
x
r
|
v
linux-2.6.36.2.tar l | l
linux-2.6.37.2.tar (space) (space) $
linux-2.6.37.3.tar e e g
linux-2.6.38.0.tar s s w
linux-2.6.38.5.tar , $ ,
linux-2.6.38.7.tar 1 1 5
linux-2.6.39.1.tar a a e
linux-2.6.39.2.tar 1 1 5
linux-3.0.11.tar (space) (space) $
linux-3.0.13.tar C C G
linux-3.0.20.tar 0 0 4
linux-3.0.22.tar (space) (space) $
linux-3.0.26.tar > > 6
linux-3.0.28.tar a a e
linux-3.0.4.tar (space) (space) $
linux-3.0.5.tar s
a
s
a
w
c
linux-3.0.9.tar ; ; ?
linux-3.1.2.tar E E D
linux-3.1.5.tar l l |
linux-3.2.10.tar _ _ W
linux-3.2.13.tar a a e
linux-3.2.16.tar d d l
linux-3.2.2.tar C C G
linux-3.2.4.tar (space) (space) $
linux-3.2.6.tar p p r
linux-3.3.5.tar c c g

表中红色的文件,指的是第一次备份发生错误,而第二次备份没有错误。共37个错误中,有32个是因为第二次备份错误。进一步分析这些字符的ASCII码,如下表:
字符变化 ASCII码变化 二进制变化 次数
;->? 3B,3F 0010,1011
0010,1111
2
a->e 61,65 0110,0001
0110,0101
4
(space)->$ 20, 24 0010,0000
0010,0100
6
u->w 75, 77 0111,0101
0111,0111
1
c->g 63, 67 0110,0011
0110,0111
2
i->k 69, 6B 0110,1001
0110,1011
1
s->S 73, 53 0111,0011
0101,0011
1
i->m 69, 6D 0110,1001
0110,1101
1
x->| 78, 7C 0111,1000
0111,1100
1
r->v 72, 76 0111,0010
0111,0110
1
l->| 6C, 7C 0110,1100
0111,1100
2
e->g 65, 67 0110,0101
0110,0111
1
s->w 73, 77 0111,0011
0111,0111
2
,->$ 2C, 24 0010,1100
0010,0100
1
1->5 31, 35 0011,0001
0011,0101
2
C->G 43, 47 0100,0011
0100,0111
2
o->4 30, 34 0011,0000
0011,0100
1
>->6 3E, 36 0011,1110
0011,0110
1
a->c 61, 63 0110,0001
0110,0011
1
E->D 45, 44 0100,0101
0100,0100
1
_->W 5F, 57 0101,1111
0101,0111
1
d->l 64, 6C 0110,0100
0110,1100
1
p->r 70, 72 0111,0000
0111,0010
1

所有字符的变化都是因为一个bit发生了反转,由此几乎可以肯定不是原型系统的bug。综合几点因素考虑:
  • 所有的错误都是bit反转;
  • 第二备份的反转的概率比第一次要高得多
  • 备份较小数据量不会发生反转;

得到以下结论:磁盘上的数据是正确的,读取少量数据也是正确的,但是读取大量数据则可能出现bit反转,而连续读取相同区域的数据,bit反转变得更加严重。

在另一台服务器的测试也结束了,没有出错,基本可以肯定这台服务器的磁盘有一点小故障了。

磁盘也不是那么可靠。

posted on 2013-09-10 16:22  OpenNaive  阅读(217)  评论(0编辑  收藏  举报

导航