January 1, 201016 yr There used to be instructions for this on the wiki, but I can't seem to find it nowadays. I saw one talking about using a second machine, but that isn't the one I remember. Anyway, I am trying to replace a couple smaller IDE drives with one larger SATA drive. I already removed one the of IDE drives, installed the new one and started a data rebuild. After that, what's the best/fastest way to remove the other IDE drive and get it's data on to the new one?
January 1, 201016 yr There used to be instructions for this on the wiki, but I can't seem to find it nowadays. I saw one talking about using a second machine, but that isn't the one I remember. Anyway, I am trying to replace a couple smaller IDE drives with one larger SATA drive. I already removed one the of IDE drives, installed the new one and started a data rebuild. After that, what's the best/fastest way to remove the other IDE drive and get it's data on to the new one? You said you already installed the new drive, so, before removing the old drives, just use the mc command on the console to coppy all the stuff to the new disk.
January 1, 201016 yr Author But seeing as how the new drive will have enough space, is there some way to just remove the other drive and do another data rebuild? If I copied the contents via MC, wouldn't parity have to be rebuilt after I remove the last IDE drive?
January 1, 201016 yr But seeing as how the new drive will have enough space, is there some way to just remove the other drive and do another data rebuild? No, because then you would have two missing drives... If I copied the contents via MC, wouldn't parity have to be rebuilt after I remove the last IDE drive? Yes, absolutely. It is one of the few times when after un-assigning the last IDE drive you would need to press the button labeled "restore" to set a new initial configuration and force a new complete build of parity on the remaining assigned drives. Joe L.
January 1, 201016 yr Author But seeing as how the new drive will have enough space, is there some way to just remove the other drive and do another data rebuild? No, because then you would have two missing drives... Joe L. I'm talking about after the first drive is replaced and it's data rebuild is complete. Right now, I have already replaced the first IDE drive with the new SATA drive, a data rebuild has been completed and I've done a parity check to ensure that everything is fine. My system is currently in a normal state. If I now unassign the other IDE drive, my system shows one missing drive, not two. According to the main page, if I start the array as is, it will still be expecting a new disk to be installed at some point which is not what I want. The only other option is restore and I'm always a little confused as to what exactly it does, but I'm assuming it will rebuild the parity based off the data on my existing disks. If so, then that's not what I want either because the data from the now missing disk doesn;t exist anywhere else except in parity. Isn't there a way to just rebuild the datat from the missing disk onto the existing disk with enough free space to hold it?
January 1, 201016 yr I'm talking about after the first drive is replaced and it's data rebuild is complete. Right now, I have already replaced the first IDE drive with the new SATA drive, a data rebuild has been completed and I've done a parity check to ensure that everything is fine. My system is currently in a normal state. If I now unassign the other IDE drive, my system shows one missing drive, not two. According to the main page, if I start the array as is, it will still be expecting a new disk to be installed at some point which is not what I want. The only other option is restore and I'm always a little confused as to what exactly it does, but I'm assuming it will rebuild the parity based off the data on my existing disks. If so, then that's not what I want either because the data from the now missing disk doesn;t exist anywhere else except in parity. Isn't there a way to just rebuild the datat from the missing disk onto the existing disk with enough free space to hold it? There is no logic for that type of thing built in, nor am I really sure that I would want that... would have to think about it a little bit more. You will have to move the data from the disk you are going to remove, to the new disk, then assigning the old disk and hit the restore button. Hitting restore will save the new disk configuration and start a new parity calculation. Once that is done you will again be protected from a drive failure.
January 1, 201016 yr Author OK, Thanks. It seems redundant to have to manually copy over the contents and then rebuild parity when the parity is already correct right now. There may be some drawbacks that I'm missing, but it would seem more efficient to be able to unassign the drive I want to remove and then have unraid detect that there is an existing drive with enough free space to rebuild the data to and allow me to choose between doing so or adding a new drive. As time goes by, I would think that replacing multiple small drives with a single bigger one will be something more and more unraid users will be wanting to do. Anyway, thanks for your help.
January 1, 201016 yr OK, Thanks. It seems redundant to have to manually copy over the contents and then rebuild parity when the parity is already correct right now. There may be some drawbacks that I'm missing, but it would seem more efficient to be able to unassign the drive I want to remove and then have unraid detect that there is an existing drive with enough free space to rebuild the data to and allow me to choose between doing so or adding a new drive. As time goes by, I would think that replacing multiple small drives with a single bigger one will be something more and more unraid users will be wanting to do. Anyway, thanks for your help. Unfortunately, it does not work that way. The only way to remve a drive is to press the button labeled "restore" whis actually save a new initial configuration based on the assigned and working drives. By un-assigning the drive you are removing, it will not be in the new configuration when you press "restore" Pressing that button will immediately invalidate parity and start a new calculation, identical to an initial calculation, but without the old drive. So, to remove a drive you must stop the array, un-assign it, press "restore" start the array, and completely recalculate parity. You will be un-protected from a second disk failure during the parity calculation. There is a un-supported way to zero the drive you will be removing, and keep parity protection, and have minimal un-protected time. It is described in the wiki. Be very careful if you attempt it to reference the CORRECT drive, as one mistake and you will be writing zeros to a drive you want to keep, not the one you want to remove, and all your data on that disk will be gone, and no possible way to un-do.
January 1, 201016 yr Author I understand that is currently the only way to do it , but is there any reason why my proposed idea wouldn't work or would be bad? If the data from a removed drive is is also in parity AND there is enough free space on an existing drive, would it not be theoretically possible for the data to be rebuilt on the existing drive? If it is theoretically possible, then it wouldn't it be a good thing to include in unraid? It would be faster than copying the data and then rebuilding parity plus everything could be done inside the unraid GUI. I'm not well versed in this stuff, so is there a reason why this wouldn't be possible?
January 1, 201016 yr I understand that is currently the only way to do it , but is there any reason why my proposed idea wouldn't work or would be bad? If the data from a removed drive is is also in parity AND there is enough free space on an existing drive, would it not be theoretically possible for the data to be rebuilt on the existing drive? That is where you are wrong. The data is NOT in the parity drive. The parity drive only has a number calculated in combination with ALL the other data disks to be an even number. It has that calculation for each bit position on the disk. Th is is not your data, but a method that could be used to re-create any SINGLE missing disk. With two mssing, as you are attempting to do in one shot, there is no way to know how to set the disk being rebuilt. So, not theoretically possible with a single parity drive in raid-4 configuraton as used in unRAID. If it is theoretically possible, then it wouldn't it be a good thing to include in unraid? It would be faster than copying the data and then rebuilding parity plus everything could be done inside the unraid GUI. I'm not well versed in this stuff, so is there a reason why this wouldn't be possible? Read up on how parity works n the bit level. You'll see how it works. Here's an example. I place 10 coins under a towel. I tell you that there are an even number of "heads" upward. I remove 1 coin and ask you to look at the remaining and tell me if it should be a "head" or a "tail". If you count the remaining visible "heads" and see an even number remaining, you can "deduce" the one removed must have been tails. If you saw an odd number of heads, the one I removed must have been a "head" unRAID does this for each bit in turn to reconstruct a replaced disk. Notice it does not work on files...but on bits on disks. Now, repeat the experiment, but this time I remove two coins. Again I ask you to "deduce" the ones I removed based on the remaining. You see an even number of "heads" so.... what did I remove... Did I remove two tails... or two heads??? Both would result in an even number of "heads" remaining. About the only combinations you can discount are I removed a head and a tail, as that would be an odd number of "heads" Same problem if I said the total number of heads was "odd" I can remove two.. and you cannot tell the specific value of a given coin, because there are multiple combinations that can keep the total odd. Each coin represents a bit on a different drive.
January 1, 201016 yr There is a way to replace 2 drives with 1 larger one without rebuilding parity. 1 - Replace one of the drives (the larger one perhaps) with the new larger drive, and allow unRAID to rebuild it 2 - Copy (or move) the contents of the other drive to the new larger drive. 3 - Follow these instructions to remove the other drive from the array.
January 1, 201016 yr There is a way to replace 2 drives with 1 larger one without rebuilding parity. 1 - Replace one of the drives (the larger one perhaps) with the new larger drive, and allow unRAID to rebuild it 2 - Copy (or move) the contents of the other drive to the new larger drive. 3 - Follow these instructions to remove the other drive from the array. I basically described this in my prior post, I just did not give the link to the wiki. There is a un-supported way to zero the drive you will be removing, and keep parity protection, and have minimal un-protected time. It is described in the wiki. Be very careful if you attempt it to reference the CORRECT drive, as one mistake and you will be writing zeros to a drive you want to keep, not the one you want to remove, and all your data on that disk will be gone, and no possible way to un-do. It is not faster, as originally requested... It just minimizes the time parity is not available to protect the remaining drives.
January 1, 201016 yr Author Joe L. - You keep saying I'm trying to remove 2 drives. While that is the net result of what I am doing, that is not what I am ultimately trying to do right now. I have already removed one IDE drive, replaced it with a new SATA drive and rebuilt the drive data. Just as if I were replacing a failed drive. The drive I removed was 400GB and I replaced it with a 1TB drive. That part is completed and the array is ion a normal state. What I am now trying to do, is remove a 320GB IDE drive and rebuild it's contents onto the remaining space of the 1TB drive I installed above. So, as of right now, I would only be removing one drive, not two. So unraid would only need to re-create a single missing drive in this instance.
January 1, 201016 yr Author I have already started copying the data to the SATA drive. I'll read the link bjp999 p[osted and see if I understand what it's doing. I'm not big on doing something if I don't understand what it does. Ultimately, I suppose the back and forth in this discussion is due mostly to my lack of understanding how parity and unraid works. I'll read up on it more and hopefully I'll get a better grasp of it. Thanks for all you help!
January 2, 201016 yr unRAID's allows you to rebuild one drive so long a ALL the other drives in the array are present. It does not allow you to remove even one drive. It would be theoretically possible for unRAID to allow the removal of a single (or even multiple) drives. It would be messy, however, to recover should the process be interrupted. It would likely also require the array to be offline. And no such feature is currently available. The process of zeroing a drive is the only way currently documented to remove a drive from the array without having to rebuild parity. It has the distinct disadvantage of losing the contents of the drive being removed (whose contents would be a good backup until the array is tested and stable again.) In general I'd suggest not reducing the number of drives in an array.
Archived
This topic is now archived and is closed to further replies.