Jump to content
  • 0

Replacing a bad disk under a Drivepool/Snapraid setup


Wargazm

Question

I am using Drivepool and Snapraid concurrently.  Here is the way I have my disks set up:

 

one 300GB disk - OS boot disk

five disks of various sizes - Content for pool, protected by Snapraid

two 4TB disks - Snapraid parity

 

One of the five content disks was a 2TB WD drive that went bad, so I replaced it with a 3TB WD dive and used snapraid to recover the drivepool data that had been written to the disk.  the recovery went well, but now Drivepool isn't adding the drive back into the pool silently as I had thought it would.  

 

So I am not sure how to proceed.  The data is all on the new drive, I just want Drivepool to pick up the drive and continue on using the new drive as if everything was normal.

 

Any help would be much appreciated!  Thanks in advance.

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Update: I restarted the computer, and the drive that I recovered via Snapraid (the new 3TB drive) is being seen by DrivePool as a completely new pool.  Is it safe to just remove the drive from this new pool and re-add it to my old pool?  

Link to comment
Share on other sites

  • 0

As it is the "last disk" in the pool, it may not let you.

 

Worst case here, enable "show hidden files", and move the contents out of the hidden "PoolPart.xxxx" folder into the root of the disk. Then delete the now empty PoolPart folder. You may need to restart the service or the system, but then add the new disk to the old pool. Then move the contents into the new PoolPart folder.

Link to comment
Share on other sites

  • 0

I ended up removing the disk, copying the files to the pool until the disk was empty, then adding the newly emptied disk back into the pool.  This had the unfortunate side-effect of requiring me to re-sync all of my snapraid parity data, however.  Not a big deal, but I'd like to avoid that in the future.

 

What's the correct way to replace a disk, for future reference?  If one of my drives blows up tomorrow, I should be able to recover my data with snapraid.  But then I have to tell Drivepool to pick up that new disk as a drop-in replacement for the one that blew up.  I don't know how to do that.

Link to comment
Share on other sites

  • 0

Well, that's why we don't officially support SnapRAID or the like. It can cause issues, as you've seen.

 

Normally, the correct way to replace a disk is to remove it from the pool, and then add the new disk.

But obviously, snapRAID complicates that. I'm not sure, but I don't believe that SnapRAID supports ADS, which we use to store some data about the Pool (such as duplication setting), as well as info about the pool. So if it doesn't that would account for the issues you've experienced, and there weren't be any sort of real solution... other than what you've done already.

Link to comment
Share on other sites

  • 0

I see.  Just a few more questions:

 

1. What is ADS?

2. Would this procedure work?

  1. Drive dies, or is about to die.  
  2. Disconnect the drive
  3. Click remove in Drivepool
  4. Reconnect new drive, use Snapraid to recover the data, which will be in a PoolPart.xxx directory.
  5. Add new drive to pool.  Drivepool creates a new, empty PoolPart.yyy on the drive
  6. Move data directly from PoolPart.xxx to PoolPart.yyy. (this is the step I'm unsure about, can I mainpulate data in those directories directly and have DrivePool work?)
  7. Done
Link to comment
Share on other sites

  • 0

  1. Alternate Data Streams. Aka, that information about files, that you can normally edit, but can see the affect of (such as the "unblock" button on the properties tab when you download files)
  2. Yes. That would work. Though, that's basically what you did.

    And yes, you can access the PoolPart folders directly. We generally recommend against it, except in specific circumstances. But that folder is where the actual "pool" resides. Though depending on how SnapRAID works exactly, theoretically you shouldn't need #5-7... but as I said, that depends on SnapRAID. 

Link to comment
Share on other sites

  • 0
Wargazm, on 26 May 2014 - 9:01 PM, said:

 

I see.  Just a few more questions:

 

1. What is ADS?

2. Would this procedure work?

  1. Drive dies, or is about to die.  
  2. Disconnect the drive
  3. Click remove in Drivepool
  4. Reconnect new drive, use Snapraid to recover the data, which will be in a PoolPart.xxx directory.
  5. Add new drive to pool.  Drivepool creates a new, empty PoolPart.yyy on the drive
  6. Move data directly from PoolPart.xxx to PoolPart.yyy. (this is the step I'm unsure about, can I mainpulate data in those directories directly and have DrivePool work?)
  7. Done

 

Yesterday, I ran into the same situation like you. Did all that, step 1 to 6 and some more:

 

7. snapraid --test-force-content-text test-rewrite (to convert the content file to text )

 

8. uedit d0\SnapRAID.content (where d0 is the first disk of snapraid array)

    the content file is big, several G, so you better edit it without temporary file

 

9. in ultraedit replace all "PoolPart.xxx" with "PoolPart.yyy" and exit

 

10. snapraid test-rewrite (convert back to binary)

 

11. snapraid diff (to check parity)

 

12. if no complain from snapraid, yes, you are DONE.

 

next time, better not, hope this will save u hours

Link to comment
Share on other sites

  • 0
Wargazm, on 26 May 2014 - 9:01 PM, said:

 

I see.  Just a few more questions:

 

1. What is ADS?

2. Would this procedure work?

  1. Drive dies, or is about to die.  
  2. Disconnect the drive
  3. Click remove in Drivepool
  4. Reconnect new drive, use Snapraid to recover the data, which will be in a PoolPart.xxx directory.
  5. Add new drive to pool.  Drivepool creates a new, empty PoolPart.yyy on the drive
  6. Move data directly from PoolPart.xxx to PoolPart.yyy. (this is the step I'm unsure about, can I mainpulate data in those directories directly and have DrivePool work?)
  7. Done

 

there is alternate way, and i like this much better.

 

7. rename "PoolPart.xxx" to something else like "PoolPart.xxx.del"

 

8. rename "PoolPart.yyy" to "PoolPart.xxx"

 

9. in Disk Manager make your new drive "offline"

    ignore that DrivePool complain about disk disconnected...

 

10.  in Disk Manager make your new drive "online"

 

11. in drivepool, there will be two item for the new drive, one is normal, yet another one says "missing" 

      remove the missing one

 

12. Done

 

13. Optional step. delete the empty folder "PoolPart.xxx.del"

      make sure it is empty before deletion, if not sure, leave it there won't hurt

 

I did not fully test this, if someone have sucess on this or have modified procedure, please share.

in my post yesterday, snapraid files were touched. five minutes.

today's procedure, ADS files are put back under the original poolpart folder name. one minute

 

thanks

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...