Skip to main content
Version: 2.2.1

SoftExpert Suite Storage Architecture

SoftExpert Suite Windows Storage Architecture

This new installation model was fully designed from a study and created within a new project, seeking to solve issues that rendered previous versions more complex, gathering services into one single docker image that contains all requirements and necessary configurations for SoftExpert Suite to operate in the Windows version.

The new format uses Docker technology for Windows Server, which is composed of certain characteristics in its storage during the runtime of the Windows container.

Docker for Windows server, or also known as Windows Containers, uses a virtual disk to store changes that have occurred in the container at runtime; this virtual disk is identified as sandbox.vhdx.

What is sandbox.vhdx ?​

sandbox.vhdx is a virtual disk, of the differential type, created together with the Docker container for Windows Server. It primarily contains the basic information necessary for the container to function. sandbox.vhdx is responsible for storing the difference between the base information and the current state.

danger

The maximum size of sandbox.vhdx is set in accordance with the size of the host machine's disk, that is, it can be expanded as needed; however, it cannot be reduced. The size used is allocated, and the free space remains within the container.

Important: Being a differential-type virtual disk, sandbox.vhdx cannot be resized to a smaller size when used with the official tools made available by Microsoft due to resources in use being blocked, or due to an attempt to truncate the virtual disk data.

To learn more about differential-type VHDX, click here.

How does sandbox.vhdx behave?​

The behavior of sandbox.vhdx is similar to that of VHDX, created by Hyper-V, when a virtual machine is created with its disk size dynamically allocated, that is, there is an initial base size to store the necessary information, and it expands as the virtual machine/container populates information in the operating system. However, when the populated information is removed, VHDX does not return to its original size; it maintains the allocated space instead, but keeping it as free space within VHDX for use.

info

The local disk partition on the host machine, which contains the VHDX file, needs enough free disk space to expand the dynamic VHDX to its required size, as per information populated inside the container.

Here is a basic example for us to understand how the sandbox.vhdx allocation works:

Suppose that sandbox.vhdx has an initial size of 200MB, and at runtime, we create the storage.zip file with a size of 5GB inside the container; in this case, sandbox.vhdx will automatically be expanded to the size necessary to accommodate the storage.zip file, resulting in a size of 5.2GB.

Now, sandbox.vhdx is 5.2GB; we removed the storage.zip file from within the container, which was taking up 5GB of storage, resulting in only 200MB of space occupied; however, sandbox.vhdx will remain at 5.2GB of allocated size, making 5GB of the previously removed file available as free space for use, thus preventing unnecessary writing to reduce and expand VHDX again.

Now that there are 5GB of free space already allocated in sandbox.vhdx, if, for example, a 10GB storage2.zip file is created, sandbox.vhdx will be expanded to 10.2GB, as it will use the 5GB that were left of free space before.

How can I monitor the sandbox.vhdx storage?​

Monitoring can be done using native Windows Server tools, such as Disk Management, or the Windows Admin Center tool can be installed together with its Containers extension.

To learn more about Windows Admin Center, click here.