Jump to content
  • 0

Will this work? Drivepool & Flexraid upgrading with new Drive


580guy

Question

I am running a WHS2011 server using Stablebit Drivepool 1.3 and Flexraid snapshot parity for unduplicated shares.  I want to upgrade/replace an existing drive. 

 

This is how I would like to do it.

 

1. Stop Drivepool service, remove drive.

2. Install new hard drive

3. Manually create Folder: PoolPart.7ff9720d-58fa-4081-9ebc-70ae65a7a336  and make hidden

4. Restart Drivepool service.

5. If added to pool, wait for duplicate file re-build

6. copy back shares from old drive to new drive

 

My Question is, will this new drive be added into the pool?  After some research, I read this older blog on Stablebit:

http://blog.covecube.com/2011/03/stablebit-drivepool-technical-overview/

 

It is old, but I am assuming the basic structure and operation of drivepool hasn't changed from this?

It says there are 2 requirements to add a drive to the pool: Formatted in NTFS, and have a PoolPart folder.

 

The reason I want to do this, is that FlexRaid requires that exact path of the old drive to protect the underlying shares, and I am trying to avoid a 20+ hour update after I copy back all my files from the old drive to the new drive.  If I use the Stablebit GUI Add-in, it will create the PoolPart.xxxxxxxx but the xxxxxxx won't be the same as the old number recorded in FlexRaid Data Configuration.  I would like the new drive to use the exact same PooPart.xxxxxx path as the old drive.

 

Can I manually create the PoolPart folder in this manner?

 

Currently waiting for new drive to arrive, and am trying to plan accordingly.

Appreciate any insight or help with this.

 

 

 

 

 

 

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Well, drive arrived Saturday.  So, tried this method, and it worked, sort of.  I manually created the PoolPart.xxxx folder with the Drivepool service stopped.  I restarted the service, but the drive was not added to the pool.  I was only running this one drive, and had all my other disks off.  Again, running WHS2011, so this is the System drive C, with another partition (D). I rebooted, and the drive (D) was added to a pool!  I noticed the Drive letter of the pool was G, instead of Z (as I like to use).  I changed it to Z thru Disk Management.  I then shut down, turned on my other 10 drives, and booted up. 

 

But now I have 2 drive pools, one with 10 drives (previous pool) and one with only the new drive.

 

Doesn't seem to be a way to get the new drive into the previous pool using the same PoolPart.xxxx folder name that is also used in FlexRaid to protect those unduplicated shares in it's array.

 

Kinda stumped.  Might have to start all over and try something else.  If I just add the drive to a pool letting Stablebit create a new PoolPart.xxxxx folder, then I have to change it in FlexRaid too.  I will have to "remove" the DRU, which will result in many hours recalculating the new parity for the missing files.  Then add the new PoolPart.xxxx name, which will result in many hours again, recalculating new parity for the "new" files appearing because of the new PoolPart.xxxx folder name.  If I could get Stablebit to just recognize the "old" PoolPart.xxxx folder and place the new drive into my existing pool, I would avoid all this.

 

I didn't forsee this problem using FlexRaid along with Stablebit.  I haven't had a drive fail yet running these together, but I can see lots of hassles now that I am just trying to upgrade a good drive with a newer faster one.

 

I know a few here run FlexRaid, although some of the posts are old now, and possibly they have moved on to something else.

 

Sure would appreciate any input or guidance.  Hate having the Media Server down.

 

I

Link to comment
Share on other sites

  • 0

Sorry for not getting back to you sooner! 

 

What you describe is normal. We use some hidden metadata to help identify the pool parts. That's why you're seeing the seperate pool. 

 

 

Try removing the contents from the pool (move the files form the "Poolpart" folder, into the root of the drive). Then, delete the (now empty) PoolPart.xxxx folder.

Add the disk to the pool, and then try renaming the PoolPart folder to the original name, and move the contents back into the pool..

 

The other method to "fix" this is ... well, requires writing Alternate Data Streams, and I'm not exactly sure how to do that (alex, the developer may, but the above process should ... well do that effectively, anyways).

 

Regards

Link to comment
Share on other sites

  • 0

Thanks, Drashna for your reply.

 

However, nothing much worked.  If I rename the PoolPart.xxxx folder, the drive goes into a second pool.  Tried this many times, and always the same.  So, decided to re-create my FlexRaid snapshot array, but this time I am setting up some hard links on C drive, pointing to the PoolPart.xxxx folders on each drive in the pool, with the MKLINK command from a Dos shell.  That way I can always change my link if a drive is upgraded/replaced (new PoolPart.xxx folder created) and leave FlexRaid config the same, as it just uses the link named DRU1 etc which points to the PoolPart.xxxx folder on that drive.  Same for all my other drives. Will take around 40 hours or so to create the new array, but I think it will be better for the future. I was just trying to avoid this just for ugrading a single drive.

 

Thanks again for your help.

Link to comment
Share on other sites

  • 0

Here is what I did to run FlexRaid Snapshot parity along with Stablebit Drivepool to help with drive replacements in your pool.

 

When you replace a drive in your drivepool, a new PoolPart.xxxx folder is created automatically by Drivepool.   FlexRaid's Data config is pointing to the "old" Poolpart.xxxx folder of the removed drive.  While FlexRAID can restore the files to the new drive, they will be restored to the "old" PoolPart.xxxx folder, and it's parity will not be current.  You can move the files to the new PoolPart.xxx folder, but FlexRaid is still looking at the old one when updating and maintaining parity. To make it current, you will have to REMOVE the DRU from FlexRaid data configuration (which takes hours to recalculate parity to remove the drive from the snapshot array), then add the new PoolPart.xxx path back to the DRU (which takes more hours recalculating parity to add the drive back into the snapshot array) or use the DRU rename command in FlexRAID to rename the DRU to the new Folder (still takes hours to recalculate parity). 

 

I tried renaming the "new" Poolpart.xxxx to the "old" Poolpart.xxxx of the old drive as suggested by Drashna, but Drivepool will then add the drive to a NEW POOL and you will have TWO drivepools.

 

So, I was trying to find a way to get FlexRAID to "point" to the new PoolPart.xxxx folder.

 

The solution is to create a hard link with the MKLINK command from the command line.

 

C:\>mklink
Creates a symbolic link.

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      Creates a directory symbolic link.  Default is a file
                symbolic link.
        /H      Creates a hard link instead of a symbolic link.
        /J      Creates a Directory Junction.
        Link    specifies the new symbolic link name.
        Target  specifies the path (relative or absolute) that the new link
                refers to.
 

I created a directory junction for each PoolPart.xxxx folder for each DRU on the C drive.

 

post-54-0-77913400-1427381064_thumb.jpg

 

Example:

 

Drive D: (DRU1) PoolPart.ded39be4-44bd-4122-b772-34e15fd05d40

 

Open a command line then create a link to this PoolPart Folder:

C:\>mklink DRU1SF-D  /J D:\PoolPart.ded39be4-44bd-4122-b772-34e15fd05d40\ServerFolders

 

A file (directory junction) called DRU1SF-D will be created on your C drive.  (you can name it anything you want, but that is what FlexRAID will use).  I called mine DRU1SF-D, DRU2SF-E, DRU3SF-F, etc.   That tells me it's for DRU1, ServerFolders, and the drive letter, etc, etc,.

 

Now go to FlexRAID data configuration and use the "path"  C:\DRU1 as your path for this DRU. The same for the other DRU's you have.

 

post-54-0-12348400-1427381075_thumb.jpg

 

Do this for each DRU you have.  This way, if you have to replace a drive, and a new PoolPart.xxxx is created, you just need to delete and re-create a link to point to this new PoolPart.xxxx folder and leave the FlexRaid data configuration unchanged.

 

You could create the link file on each DRU, but FlexRAID advises against having hard links on the DRU as it might think the DRU is larger than it really is.  So I prefer to keep the links on C drive, which is not in any array or pool.

 

I hope this helps others who may run into this problem running this configuration.

 

As I type this, I am stil creating the new array.  (going to take over 40 hours).  I will advise how it ends up.  But I am confident this will work.

Link to comment
Share on other sites

  • 0

I know my post above is from a couple of years ago, but just wanted to confirm that it DOES INDEED work if there are any out there using this combination.  I had my first drive failure in my server of 21 drives.  I know I have been extremely lucky as I have drives that have over 6 1/2 years of 24/7 operation and are still going strong. Anyhow....

 

The drive that failed, didn't fail completely.  I had been receiving warnings from Stablebit Scanner about remapping sectors for the last several months.  I decided to wait and see how long the drive would go before it failed completely. This drive had about 4 1/2 years of service.  In the end there were 2 files which became unreadable and I decided to pull the drive and replace it.

 

Rather than remove it from the pool normally and allow Stablebit scanner to migrate files to other drives in the pool, I just physically removed the drive from the server.  I did this because so as not to disturb the array parity I had with Flexraid.

 

Then removed the "missing" drive with Stablebit Drivepool.

Put in a new drive, made sure same drive letter assigned by WHS 2011, and waited for duplication to finish restoring files.

I then took the Old Drive, renamed the poolpart.xxxx folder to prevent it from rejoining the pool, and copied my unduplicated ServerFolders back to the new drive, with the exception of the 2 unreadable files.

 

Then, deleted old symbolic link, and created a new one with the same name pointing to the new PoolPart.xxxx folder of the new drive.

Restored the 2 bad files from Flexraid.

Done! Parity is still unchanged for the new disk, avoiding a lengthy update to get the new disk files into the parity array.

 

Of course had the drive failed totally without being able to access any files at all, then I would just allow Flexraid to restore it completely.  But, since I was able, I think that copying the old drive's contents was slightly faster so I did it this way.

 

Just wanted to confirm this works great if there are any others that are using this combination of Stablebit Drivepool and Flexraid parity for data protection.

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...