DataKeeper allows users to extend and shrink their DataKeeper volumes dynamically while retaining mirror settings. Once the resize is complete, a partial resync will be performed.

Note: This resize procedure should be performed on only one volume at a time.

Restrictions

  • DataKeeper does not support changing the disk type of the physical disk where a mirrored volume is located (for example, Basic Disk to Dynamic Disk — mirror must be deleted prior to creating your dynamic disk).
  • DataKeeper does not support third-party partition resizing products.
  • DataKeeper does not support volume resizing on shared volumes configured on Dynamic Disks. Windows cannot reliably use a shared Dynamic Disk.

Non-Shared Volume Procedure

Example configurations for using this procedure include the following:

Disk-to-Disk
One-to-One
One-to-Many ‘Multiple Targets’
Many-to-One

To resize your DataKeeper volume in a non-shared volume configuration, perform the following steps.

  1. Pause all mirrors and unlock all target volumes via the Pause and Unlock mirror option in the DataKeeper UI.

Note: A mirror must be in a “mirroring” state in order to Pause or Unlock it.

  1. Using the Windows Disk Management utility, increase (or decrease if allowed by the Operating System) the volume size on the source system by selecting “Extend Volume” or “Shrink Volume” in the Resizing Wizard. * Once the resize is completed in Disk Management, verify the Total Capacity in bytes has met the following requirements:

The Source and Target Total Capacity must be the same size
or
The Target can be LARGER than the Source

Note: The Windows Disk Management utility will take longer to start on the target node based on the number of drives. Because the Windows operating system has error condition retries built in when a volume is locked, the speed with which it starts on the “locked” target node is affected.

Note: After the resizes on the source and target you will need to run a Rescan in Disk Management. Then, you will need to run the following on each system in the cluster so that DataKeeper sees the new volume size:

• Go to a command prompt (run as administrator)

• cd %extmirrbase%

• emcmd . updatevolumeinfo <enter-volume-letter>

  1. Verify the Source and Target are the same size or the Target is larger using one of the following methods.

Method 1

Review the Total Capacity of the Source/Target in Disk Management.

  • View the “unlocked” drives in Disk Management. The Total Capacity (in bytes) must be equal on the Source and Target or the Target must be larger.
  • Select the drive, choose Properties and view Capacity. Capacity equals Total Capacity as also reflected in the emcmd . getvolumeinfo output.

If any of the aforementioned steps are NOT yielding the proper sizes after resizing, please perform any of the following:

• In Disk Management, Offline the Disk in question (e.g. Disk 1, Disk 2), then Online the Disk. This will update the partition tables to reflect the correct sizes.

• Reboot the Target to reflect the size changes.

• Use DISKPART to ensure the resize changes get accurately propagated:

From an elevated Administrator command prompt:

• type DISKPART

DISKPART> list volume

DISKPART> select volume #

Note: # is the number of the affected volume which can be found with list volume.

DISKPART> extend filesystem

Now the file system size should match the new partition size.

• Type “Exit” to return to your command prompt

Upon completion, from the DataKeeper UI, select “Continue and Lock All Mirrors”.

Method 2

To ensure that the Source and Target are the same size or the Target is larger, perform the following:

Use the getvolumeinfo command:

emcmd <system> getvolumeinfo <volume letter> 1

Example: C:\Program Files (x86)\SIOS\DataKeeper>emcmd Sourceservername getvolumeinfo e 1

Output:

—- LEVEL 1 INFO —-

Volume Root = E:

Last Modified = Sun Jan 10 23:21:40 2021

Mirror Role = SOURCE

Label = SQL Data

FileSystem = NTFS

Total Space = 4291817472

Num Targets = 1

Attributes : 0h

—————————————————

In order to filter the other Volume attributes and only display “total space” for the source use “findstr Total

Please refer to the following example:

Filter for the Source Example
C:\Program Files (x86)\SIOS\DataKeeper>emcmd Sourceservername getvolumeinfo e 1 |findstr Total

Output:
Total Space = 4291817472

Filter for the Target Example

C:\Program Files (x86)\SIOS\DataKeeper>emcmd Targetservername getvolumeinfo e 1 |findstr Total

Output:
Total Space = 4291817472

If the Target is Locked, Access is Denied or Not Available then your output will reflect:

Output:
Total Space = N/A

Note: The Total Space will sometimes yield a Total Space value when locked.

Method 3

From an elevated Administrator command prompt, execute the following:

emcmd . updatevolumeinfo <volume letter>

Method 4 (DISKPART)

After resizing a Mirror, there may be a discrepancy in the sizes in Disk Management and File Explorer, thus you’ll need to extend the filesystem

using the DiskPart utility:

Pause and unlock Mirror(s)

From an elevated Administrator command prompt:

type DISKPART

DISKPART> list volume

DISKPART> select volume #

Where # is the number of the affected volume which can be found with list volume.

DISKPART> extend filesystem

Now the file system size should match the new partition size.

Type “Exit” to leave DISKPART and return to your command prompt
Upon completion, from the DataKeeper UI, select “Continue and Lock All Mirror(s)”

Volume information is now identical in Disk Management and File Explorer

  1. Continue and Lock the mirrors after volumes have been resized. The mirroring process should resume and a partial resync should occur.

Shared Volume Procedure – Basic Disk

This resizing procedure will work on shared volumes if the shared volume is configured on a Basic Disk. Example configurations for using this procedure include the following:

N-Shared-Disk Replicated to One
N-Shared-Disk Replicated to N-Shared-Disk
N-Shared-Disk Replicated to Multiple N-Shared-Disk Targets

If there is free space on the disk, the volume can be extended to use the additional space.

  1. Pause all mirrors and unlock all target volumes via the Pause and Unlock mirror option in the DataKeeper UI.
  1. Shut down (power off) all shared source and/or shared target systems. (Note: Current source and current target systems should not be shut down.)
  1. Change the volume sizes as noted above in the Non-Shared Volume procedure.
  1. Continue and Lock the mirrors after resizing has completed.
  1. Power on all shared systems. The new volume configuration will automatically be recognized.

Error Handling:

  1. After performing the Continue and Lock, if the GUI abnormally maintains the “Paused” mirror state, check the system logs on both source and target nodes.
  1. DataKeeper will prevent a mirror resync from starting if the target volume is smaller than the source volume. If the system logs show such an error, the target volume must be unlocked manually via the UNLOCKVOLUME command, and the volume must again be resized making sure that the volume size of the target is greater than or equal to the size of the source volume. Then proceed with the Continue and Lock step above.
  1. DataKeeper, upon continuing the mirror, will reallocate the bitmap file and in-memory bitmap buffer using the new volume size. In the event DataKeeper is unsuccessful in reallocating the bitmap buffer – due to insufficient memory resources on the source or target – the mirror will be placed into a ‘Broken’ state which will require a FULL resync.
  1. Once resizing a volume has begun, there is no way to back out of the resizing feature and the associated error handling as DataKeeper will have to reallocate the bitmap file and in-memory bitmap buffer. Any failure of this reallocation procedure will break the mirror and force a FULL resync.

Feedback

Was this helpful?

Yes No
You indicated this topic was not helpful to you ...
Could you please leave a comment telling us why? Thank you!
Thanks for your feedback.

Post your comment on this topic.

Post Comment