#1 Global Leader in Data Protection & Ransomware Recovery

Unable to collect files information from datastore in a timely manner due to high vCenter server load

KB ID: 1653
Product: Veeam ONE | 6.0 | 6.5 | 7.0 | 8.0 | 9.0 | 9.5 | 10
Published: 2012-07-06
Last Modified: 2021-03-29
mailbox
Get weekly article updates
By subscribing, you are agreeing to have your personal information managed in accordance with the terms of Veeam's Privacy Notice.

Cheers for trusting us with the spot in your mailbox!

Now you’re less likely to miss what’s been brewing in our knowledge base with this weekly digest

error icon

Oops! Something went wrong.

Please try again later.

Challenge

Veeam ONE Reporter collects data from datastores using “SearchDatastoreSubFolders_Task” tasks that are pre-defined by VMware. Some of the datastores might become unavailable or experience performance issues. Subsequently, Veeam ONE Reporter may be unable to complete data collection tasks against these datastores.


The following error messages appear in the SchedulingService.log file:


XX/XX/XXXX XX:XX:XX [info] : xxxxx.xxxxx.xxxxx: Exporting virtual machine files  
XX/XX/XXXX XX:XX:XX [warning] : xxxxx.xxxxx.xxxxx: Failed to collect VM files: Datastore [**datastore_name**] timeout is exceeded
Unable to collect files information from datastore [**datastore_name**] in a timely manner due to high vCenter server load.
...
Unable to collect files information from datastore [XXXXXX] in a timely manner due to high vCenter server load.

The collection job in Veeam ONE Reporter will finish with a "Warning" status. Additionally, the session log may contain the following entry:
 
XX/XX/XXXX XX:XX:XX [warning]: xxxxx.xxxxx.xxxxx: There were errors while collecting VM files: Failed in retrieve some VM files because of the timeout is exceeded.

Cause

Veeam ONE Reporter uses a 900 secondtimeout in order to wait for 10 datastore search tasks (default number) to complete.

Any performance or access issues affect the entire collection process, and the collection job finishes with a "Warning" status.
 
The error messages above mean that some issues have occurred on datastores. Due to lack of response, we’ve failed datastore scan tasks and are unable to collect data from some of the datastores. Basically, the problem is either on the datastore’s or on VMware’s side, but we may try to find a workaround for this issue and apply changes to the collection process on Veeam ONE Reporter’s side in order to increase the time to wait until all datastore tasks are completed.
 
NOTE: This workaround just lets you run the “SearchDatastoreSubFolders_Task” task with the new timeout specified to make sure the datastore collection process does complete.

Solution

Here is how to tune the product in order to make your datastore search tasks complete successfuly:
   1) Find a suitable timeout value for completing all the “SearchDatastoreSubFolders_Task” tasks.
   2) Apply registry changes and set a proper timeout value.

STEP 1:
Find a suitable timeout value for completing all the “SearchDatastoreSubFolders_Task” tasks in each particular scenario by running the PowerShell script (available below in "More Information" section) using VMware vSphere PowerCLI. This shows how much time it takes to complete all mentioned datastore tasks. You can download VMware vSphere PowerCLI package for free by the following link:
http://www.vmware.com/support/developer/PowerCLI/index.html
 
Instructions on how to run the script:
   1) Open PowerCLI and connect to your VMware vCenter server using the "connect-viserver" command.
   2) Specify the credentials to connect to VMware vCenter server.
   3) Change the current directory to the directory where the script is located (use "cd" command).
   4) Run the script and wait until it's finished.
 
The following is an example of the output in the same VMware vSphere PowerCLI window. The script will run the task against every datastore that is registered under the VMware vCenter server.
 
Error messages such as the following might appear:
   Trying to collect *.vmdk and *.flat files from **datastore_name** ( **datastore_id** )
   Exception calling "SearchDatastoreSubFolders" with "2" argument(s): "Datastore'
   [**datastore_name**]' is not accessible."
   At {path_to_the_script}:\Veeam_BrowseDatastores.ps1:45 char:41

 
These errors mean that there are some problems with the datastores. But from the output, you should see how much time it takes to complete scanning all datastores.
 
STEP 2:
Increase the timeout Veeam ONE Reporter uses to complete the entire datastore search process:
   1) Log on to the server with Veeam ONE Reporter installed.
       Open Registry Editor and navigate to the Veeam ONE Reporter registry folder:
       For both x86bit and x64bit systems - HKEY_LOCAL_MACHINE\SOFTWARE\Veeam\Reporter Enterprise
   2) Create the following registry key:
       Name – GetVmSnapshotTimeout
       Type – DWORD
       Value – XXXXX *.
         * Equal to or more than time it takes to complete scanning all datastores according to script's output.
            The value is calculated in seconds and should be specified in DECIMAL format.

More Information

Here is the script mentioned above:
 
write-host (Get-Date).TimeOfDay Getting datastores...
 
$dss = get-datastore
write-host (Get-Date).TimeOfDay $dss.Count datastores found
 
$fqf = New-Object VMware.Vim.FileQueryFlags
$fqf.FileSize = $true
$fqf.FileType = $true
$fqf.Modification = $true
$fqf.FileOwner = $true
 
$fq1 = New-Object VMware.Vim.FileQuery
 
$ss1 = New-Object VMware.Vim.HostDatastoreBrowserSearchSpec
$ss1.details = $fqf
$ss1.sortFoldersFirst = $true
$ss1.MatchPattern += "*.*"
 
 
$ss2 = New-Object VMware.Vim.HostDatastoreBrowserSearchSpec
$ss2.details = $fqf
$ss2.sortFoldersFirst = $true
$ss2.MatchPattern += "*delta.vmdk"
$ss2.MatchPattern += "*flat.vmdk"
 
 
$ss1.Query = $fq1
 
foreach($ds in $dss)
{
 $dsv = $ds | get-view
 
 if($ds.Accessible -ne $true)
 {
   write-host (Get-Date).TimeOfDay Skip files collecting because $dsv.Summary.Name"("$dsv.Summary.Datastore.Value")" is not accessible.
 }
 
 else
 {
   $dsb = get-view $dsv.browser
   $rp = "["+$dsv.summary.Name+"]"
 
   write-host (Get-Date).TimeOfDay Trying to collect *.vmdk and *.flat files from $dsv.Summary.Name"("$dsv.Summary.Datastore.Value")"
   $sr2 = $dsb.SearchDatastoreSubFolders($rp, $ss2) 
   write-host (Get-Date).TimeOfDay Completed. $sr2.Count files found on $dsv.Summary.Name"("$dsv.Summary.Datastore.Value")"
 
   write-host (Get-Date).TimeOfDay Trying to collect other files from $dsv.Summary.Name"("$dsv.Summary.Datastore.Value")"
   $sr1 = $dsb.SearchDatastoreSubFolders($rp, $ss1) 
   write-host (Get-Date).TimeOfDay Completed. $sr1.Count files found on $dsv.Summary.Name"("$dsv.Summary.Datastore.Value")"
 }
}
 
To submit feedback regarding this article, please click this link: Send Article Feedback
To report a typo on this page, highlight the typo with your mouse and press CTRL + Enter.

Spelling error in text

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Thank you!

Thank you!

Your feedback has been received and will be reviewed.

Oops! Something went wrong.

Please try again later.

You have selected too large block!

Please try select less.

KB Feedback/Suggestion

This form is only for KB Feedback/Suggestions, if you need help with the software open a support case

By submitting, you are agreeing to have your personal information managed in accordance with the terms of Veeam's Privacy Notice.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Verify your email to continue your product download
We've sent a verification code to:
  • Incorrect verification code. Please try again.
An email with a verification code was just sent to
Didn't receive the code? Click to resend in sec
Didn't receive the code? Click to resend
Thank you!

Thank you!

Your feedback has been received and will be reviewed.

error icon

Oops! Something went wrong.

Please try again later.