我不知道该怎么称呼这个问题,如果一个mod可以更改标题以更好地反映这个问题,请尝试一下。如果你不是国防部的话,请随意评论名字建议。谢谢:)
我正在尝试创建一个raid5模拟,使用Python列表作为hdd。我已经成功地模拟了raid4,其中所有奇偶校验都在一个磁盘上(参见this CodeReview post)。现在我尝试在所有磁盘上分配奇偶校验
RAID 4:奇偶校验在一个磁盘上,RAID 5:奇偶校验分布
我不知道如何将奇偶校验正确地插入到列表中
给定字节列表:b = [104, 101, 121, 32, 116, 104, 101, 114, 101, 32, 66, 111, 98, 98, 121, 33]
我需要它在hdd(hdd[0]
-hdd[3]
)之间平均分配,在末尾用0填充hdd[0] = [104, 32, 101, "p", 98, 33 ]
hdd[1] = [101, 116, "p", 32, 98, 0 ]
hdd[2] = [121, "p", 114, 66, 121, "p"]
hdd[3] = ["p", 104, 101, 111, "p", 0 ]
我认为这样做的方法是在将列表拆分到hdd之前将"p"
插入到列表中
我不知道怎么做,因为在它插入一个之后,列表会改变,在插入第4个"p"
之后,它会重置回第一个位置
我已经尝试过使用以下代码插入"p"
:
在这个例子中,hdd_num = 4
(它是hdd的数量)
for i, x in enumerate(input_bytes):
row = i // (hdd_num - 1)
hdd = hdds[i % hdd_num]
if hdd[0] == row:
input_bytes.insert(i+1, "p")
hdds[i % hdd_num].append(x)
我的方法是将代码分成可管理的部分,这些部分可以单独测试和推理。这里有一个建议
谢谢你让我走上正确的道路@Andrei。我最终得到了以下代码:
它使用了您的想法,即获取每行中的值,将异或结果插入行中的正确位置,然后将它们添加到硬盘中。谢谢
xor
函数如下:相关问题 更多 >
编程相关推荐