Jump to content

RudgerWolvram

Members
  • Posts

    1
  • Joined

  • Last visited

RudgerWolvram's Achievements

Newbie

Newbie (1/3)

0

Reputation

  1. I ran into a small issue with this. That issue is that I had dynamic disks instead of basic. Luckily I had about 45% space used on my DriveBender pool. If you happen to fall into this category (less than half space used. I used windows Robocopy with some Pwershell to clear the duplicates. Idea: Break down the DriveBender pool by stopping the service, (note this will cause the LanManServer or Server process to die because some brilliant Dev decided to make DriveBender dependent on the Server Service in windows.) I didn't uninstall DriveBender, I just killed the mount point, stopped the service and then set it to manual instead of automatic (this is all done in services.msc and the properties of the serivce). Fixing the dependencies is below. To Fix the dependancy problem, on an admin CMD run: sc qc LanmanServer This will return something like this: SERVICE_NAME: LanmanServer TYPE : 20 WIN32_SHARE_PROCESS START_TYPE : 2 AUTO_START ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : C:\WINDOWS\system32\svchost.exe -k netsvcs -p LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : Server DEPENDENCIES : SamSS : Srv2 : DriveBender SERVICE_START_NAME : LocalSystem Note the names of the Dependencies and copy them. SC doesn't allow single service dependency manipulation so you have to overwrite the whole thing, luckily it's fairly easy if you know, the syntax. In my instance I had 2 other services that depend on Server that are part of windows natively. It's just a matter of adding them in with the / syntax below. sc config LanmanServer depend="SamSS/Srv2" Then run the query to see that it worked. C:\WINDOWS\system32>sc qc LanmanServer [SC] QueryServiceConfig SUCCESS SERVICE_NAME: LanmanServer TYPE : 20 WIN32_SHARE_PROCESS START_TYPE : 2 AUTO_START ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : C:\WINDOWS\system32\svchost.exe -k netsvcs -p LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : Server DEPENDENCIES : SamSS : Srv2 SERVICE_START_NAME : LocalSystem note DriveBender is not there anymore. Now on to the date moving. I assigned drive letters to each of my Drives. Then I used the following robocopy to move all the data off one drive to another (being at 45% or less makes this easy as there is enough space to do the copy) if you also have disks that are all the same size or have enough free space to fit it. In my instance I had 4 2tb drives. For sanity I moved data off the odd numbered drives to even numbered drives. robocopy N:\ O:\ /e /j /COPY:DTSO /A-:HS /MT /r:1 /w:1 /reg /log:C:\temp\DP1-DP2_copy.log /E copies everything including empty /J users unbuffered IO, good for large files. /COPY: (D)ata(T)imestamps(S)ecurity(O)wner A is left off because of the System and Hidden file problem mentioned in this original post. /A-:HS tells it to remove the Hidden and System attributes on the files and folders in the copy. /MT for multithread, use /log to increase performance /R and /W is just setting Retry and Wait times, if this is used it retries forever. /REG writes the retry and wait times to the registry as the new default for robocopy. I do this just because no one wants to wait forever for a file to be unlocked and I don't want to do the /r /w every time /LOG is any path you want to store the log at, recommended as /MT will produce really weird output that doesn't any queuing on console output, so it's a jumbled mess. I did this for both drives, just copying everything, including duplicate data. However, you can run the powershell command below to remove all duplicates if you aren't afraid of a disk failure mid-migration and will free up space. You can run it against all of your drives similar to the bat file listed above. $Path = "N:\" # This path should be the root of whatever drive you want to clear. Set it each time for each drive. # Command to delete all duplicate data Get-ChildItem $path -Recurse -Force -Directory -Include 'FOLDER.DUPLICATE.$DRIVEBENDER' | Remove-Item -Recurse -Confirm:$false -Force -WhatIf # Remove the WhatIf to actually do the Delete but test it first to make sure it looks OK Then, Once the data has been moved, I used compmgmt.msc to kills the migrated drives, and re-build them as simple/basic volumes. Once they were simple/basic I went to the DrivePool console and created the pool with those 2 drives. You should have a D:\ named DrivePool, or whatever Drive letter was the next in line for use in windows. Then, it's just a copy back. In this instance my O: is one of the drives that contain 2 drives worth of data that has also been cleaned by the powershell command. D:\ is the new DrivePool. Note /r /w and /reg aren't there as they were set in the registry in the previous commands. But it is the same command as before. However, we will be copying from the GUID named folder from DriveBender to the root of the DrivePool. You will need to copy the folder name from your own DriveBender as it is unique for each install. Below is just an example that needs to be altered for your instance. robocopy O:\{A71B3760-F8BE-4BD8-965D-A819032005BC} D:\ /e /j /COPY:DTSO /A-:HS /MT /log:C:\temp\DP2-Storage_copy.log Once all the data has been copied into the pool, you can then rebuild the 2 remaining disks and add them to the pool as described above.
×
×
  • Create New...