Forum Discussion

-Maurice's avatar
-Maurice
Level 4
13 years ago

Move multiple indexvolumes using "Manage Indexes" "Change location"

Hello community,

a few points to the envorinment of my "issue"

Environment

4 EV Server each with one Vault Store

Version EV 10.0.1 / Exchange 2010

 

I have one customer which has round 9k index volumes located on one EV server. 5k mailboxe archives from vaultstore1 and 3k mailboxes from vaultstore2. All these Indexvolumes are hosted on one server. Is there a smart way to iniate a move indexvolume of these 3k archive to the EVServer02?

These 3k indexes should be moved due to load-balacing reasons.

Within the change location wizard I'm able to search for mailboxes which are on a specific vault store. So far so good.

BUT i can only select ONE archive which i want to move. Why it isn't possible to select multiple archives... i have no idea why engineering put a limit on the number of archives which can be selected in this dialog.

So, the question is: Is there a way to automate this process, or to select multiple archive to change the location?

 

Many thanks in advance

 

Regards

Maurice

 

 

  • The process I outlined is for moving the indexes of all archives in a particular vault store irrespective of the index locations. Even if the indexes are spread across multiple drives, when you query for the FolderName and IndexrootPath from tables IndexVolume and IndexRootPathEntry, you get the list of folders with paths for the particular vault store.

    Then you can use robocopy or similar tools to copy only those folders from the Query results to the new EV server. Then follow the remaining procedure for updating the IndexRootPathEntry, IndexServiceEntry and StorageServiceEntryID.

    I would not suggest the procedure if you are not comfortable with EV SQL databases.

     

    I also think you can further customize the query to indentify the index folders for individual Archive instead of a VaultStore as a whole. I have to check it out in lab whether that is possible, however I can guarantee for all indexes of archives in a particular vault store.

     

    Edit: In the above process, you do not have to copy the index volumes to exact locations on the new servers. If you index is spread across multiple locations, you can copy them to a single location in new server. eg: You current index for that vault store is spread across I:\Index1, I:\Index2, J:\Index1. You have to move them to single location \\newserver\I$\Index1. This makes the update statement simple.

  • Hi,

    thanks for the reply. I saw this technote already.

    Change the index location for all archives

    The first part of changes the location of all index volumes in a particular "Index location" which will end up in an a mixed index volumes on both servers for vaultstore1/2. indeed this could help to distribute the load and move a subset of volumes to another server, even if mixed archive - will mean the archive is hosted on another server as the indexing service.

    Change the index location for one archive

    Is again only for ONE archive, which means the customer has to go through this process 3k times. which is not a smart way

     

    The main goal is to move the indexvolumes for vaultstore2 to the second EV server.

    Cheers Maurice

  • Hi Maurice,

    Unfortunately, there's no way except the 2 points mentionned above. I already asked the same question to Symantec employee and got the same answer.

    For one of my customers, we were thinking about creating new standalone indexing servers... but when I found that it can only be done one by one or move all at once, we decided to give up moving archives' indexes and thus give up with standalone indexing servers.

    Maybe we could expect something better from 10.0.2...

  • Hi Maurice,

     

    If I read it correctly, You want to move indexes of all archives in a particular vault store to a different server. It is possible, but Symantec does not have a certified procedure. But I have done it myself with assistance from Symantec.

    The steps included would be:

    1. Identify index folders to be moved. You have to query the IndexRootPathEntry for all IndexRootPath and folderName for all archives on that vaultstore.

    2. Use that result to create a script to copy those folders along with contents to your new location (New server).

    3. Identify the IndexRootPathEntryID for your new location (It should on your Dir database once that new location is added to Indexing service)

    4. Update the IndexrootPathEntry for all archives on that VaultStore with new IndexRootPathEntryID.

    The above procedures were only for migrating index locations.

    You have to do similar operation for Storage by updating the StorageServiceEntryID and collections by updating StagingRootPath and PartitionRootPath.

  • Hi Switch,

    The process you described is documented here, which I already mentioned in my post above.

    http://www.symantec.com/business/support/index?page=content&id=TECH51450

    What Maurice wants to achieve is slightly tricky where she just wants to move the selected archive's indexes and NOT all that are located within an entire 'Index Location's, if I understand her correctly. I believe the 3K indexes that Maurice needs to move to another server is spreading across the Index Locations on EV server 1 and some of the indexes on server1 need tto stay put as their associated archives are located on here. Am I correct Maurice?

    Maurice,

    You may want to take it up with Support and see what they have to say?

  • The process I outlined is for moving the indexes of all archives in a particular vault store irrespective of the index locations. Even if the indexes are spread across multiple drives, when you query for the FolderName and IndexrootPath from tables IndexVolume and IndexRootPathEntry, you get the list of folders with paths for the particular vault store.

    Then you can use robocopy or similar tools to copy only those folders from the Query results to the new EV server. Then follow the remaining procedure for updating the IndexRootPathEntry, IndexServiceEntry and StorageServiceEntryID.

    I would not suggest the procedure if you are not comfortable with EV SQL databases.

     

    I also think you can further customize the query to indentify the index folders for individual Archive instead of a VaultStore as a whole. I have to check it out in lab whether that is possible, however I can guarantee for all indexes of archives in a particular vault store.

     

    Edit: In the above process, you do not have to copy the index volumes to exact locations on the new servers. If you index is spread across multiple locations, you can copy them to a single location in new server. eg: You current index for that vault store is spread across I:\Index1, I:\Index2, J:\Index1. You have to move them to single location \\newserver\I$\Index1. This makes the update statement simple.

  • Hi Switch,

    I did a similar procedure in the past for an older version of EV to move FSA indexing volumes to a dedicated server. I wasn't aware that this modification in the SQL database will also work for the 64bit Indexing volumes. Guess I need to kickoff a IVSync to update the indexing Metadata in on the EV server.

    I will try this in my VMs and give you all an update about this topic.

    Thanks all for your replies

    Maurice

  • Thats exactly what i'm trying to do. Move all 3k indexes for VaultStore2 into one dedicated IndexingLocation. SQL- and Powershell Scripts are ready and tested in my Lab. Keep fingers crossed ;)

  • First of all, the reallocation of the index volumes worked as expected using direct updates in the directory database.

    As promised, a short update on this with a highlevel description of the tasks I performed.

     

    Added a new IndexingLocation to copy the volumes from evserver01 and i set the backupmode for all indexing locations.

    Created a SQL query to get the list of index volumes which needs to be moved (this was the most of the work)

    This query was then used in a PS script to construct the source volume path and to initiate the copy-item command to copy each indexvolumes to the newly created indexinglocation.

    Note: The query used the following values

    dbo.IndexVolume.IndexRootPathEntryId, dbo.IndexRootPathEntry.IndexRootPath, dbo.IndexVolume.FolderName

    After i checked that the volumes are copied succsessfully the the destination location. Then I used another SQL script to update the IndexRootPathEntryId for these indexing volumes. I triggered a IVSync to update the Metadata on the EVservers on all servers

    After this was done, i created a "basic" Index Verify Task to check all the indexing volumes on EVServer02 to doublecheck that everything is fine.

    Overall this whole procedure took around less then eight hours, starting from script creation, Lab testing, execution and verify (was started in the evening and completed during the night)

     

    Cheers Maurice

    PS: PowerShell is just great! It's so powerful and easy to use too.

    PPS: I don't like to share these scripts here in public, because you can may damage your environment if you are not aware of - how these scripts and queries are working together and are depended from each other. If you are interested in these scripts and you have a use case, just send me a private message here and I will get in touch with you.