Space Usage Calculation on the Storage Management and on the operating system do not match inspite of successful Server Space Management (SSM) Job.
Currently our design assumes that sparsing works perfectly and when the Recovery Solution Server communicates to the file system that some of the blocks are no longer required, and the UsedSpace is updated immediately. In fact some of the setups have different cluster block size (like 64K) that affects the ability of sparsing to process small data chunks. As a result:
- Recovery Server did not respect storage limits that are set in the Console.
- Recovery Server tried to write to a storage when the storage is already full.
NTFS sparsing use in Server Space Management (SSM) has been completely reworked and this hotfix is in the form of the following SQL Stored Procedures:
And the following binaries:
The hotfix can be applied in the following way:
- Stop and disable the Recovery Solution Server Service on the Recovery Solution Server computer.
- Browse to the %Program Files%\Altiris\Recovery Solution\Server folder.
- Replace the DSFile.dll, DSRawData.dll and ServerJobs.dll with the new ones from attachments. Replace them by copying the new files over existing ones.
- Load each SQL Stored Procedure to SQL Query Analyzer (SQL 2000 Server) or SQL Server Management Studio (SQL 2005 Server) and execute them against the AeXRSDatabase (default name of Recovery Solution Database).
- Start the Recovery Solution Server Service by setting it back to 'Manual' and restarting.
- Start Server Space Management Job.
- To force Server Space Management job for setting sparse blocks correctly for the old blobs use the following script:
update DiskFileVolume set State = State | 32.
“The SQL query mentioned above resets the flag (the 'State' column) for all of the blob files listed in the DiskFileVolume table. This will force the SSM job (when it runs for the next time) to review the blob structure and see if sparsing can be reapplied in better (improved) way. It will also update blob's statistics in the DiskFile (UsedSpace column).
It is not necessary to run this command although it is highly recommended if the goal is to fix the Used/Free space numbers in the Console for the Storage Management tab. If the statement is not executed a blob will be reworked in the future only when SSM touches it. The command simply forced the SSM job to review all the blobs. As a result the very next SSM job will run a bit longer than usual.”
Recovery Solution 6.2.2760 (SP2)