| Author |
Message |
   
nicolas mella (Nmella)
| | Posted on Monday, Aug 8, 2005 - 18:29: | |
hi Stefan, I am trying to rebuild a RAID5 disk array. One of the drives is missing so I need to make the parity calculation. Using the XOR calculation is extremely slow. The max size for my variable calculation only support 8 bytes (the only way I know). Is there some other way ??? To make it faster ? (Turbo ON is also set). What I am doing is something like: (For each 32 sectors) { Read var1 8 NextObj Read var2 8 NextObj Read var3 8 NextObj Read var4 8 Assign var5(((var1^var2)^var3)^var4) SetVarSize var5 8 NextObj Write var5 NextObj }[2048] |
   
Stefan Fleischmann (Admin)
| | Posted on Monday, Aug 8, 2005 - 18:46: | |
The XOR calculation is very fast. It is the huge amount of small read operations I think that slows down the process. If you know a programming language, you could use the WinHex API to read e.g. 1000 sectors at a time, XOR the data in your own program, and the use the WinHex API to write the result. |
   
Mike Montgomery (Mikem22)
| | Posted on Monday, Aug 8, 2005 - 19:14: | |
I take it that this is a software RAID? if it is a Hardware RAID then the controller should rebuild upon insertion of a new drive into the empty slot where the failed drive was. This is much quicker than doing it manually as the parity is regenerated via hardware. It should be fairly easy in VB or C++ either using the WinHex API or the Windows API. But either way will take some time.. The WinHex API will probably make accessing the drives easier that the WIN API Mike |
|