Containers

Zadara Container Service (ZCS) makes it possible to run arbitrary processing tasks from directly inside the storage. This is possible due to Zadara’s convergence of Docker Container technology into the Zadara Engines. The benefit of data processing inside the storage, rather on a connected Server, is the direct, low latency access to the data Volumes.

Adding ZCS Engines

In order to run ZCS Containers within a VPSA a ZCS engine is needed in addition to the IO engine. The ZCS engine contains the compute resources of the VPSA’s Virtual Controllers that are allocated for the Docker Container.

The ZCS can be added when the VPSA is originally created, as described in Creating a VPSA, or it can be added at a later time.

To add a ZCS engine go to the Zadara Provisioning Portal, select the relevant VPSA, click Change Engines and select the engine size that fits the needs of the application that will run in the Container.

image114

Creating a Container

A Docker Container provides a layer of abstraction and automation of operating-system-level virtualization on Linux. It uses the resource isolation features of the Linux kernel to allow independent “containers” to run within a single Linux instance, avoiding the overhead of starting and maintaining virtual machines. Zadara’s VPSA is utilizing this technology to allow user applications to run within VPSA in an effective and controlled manner. For more details on Docker Containers please refer to the Docker documentation at https://docs.docker.com

A Container can access any Volume from its hosting VPSA, excluding NAS Volumes defined as “SMB Only” (see Creating and Deleting a Volume). A Container can be attached to a single Block Volume or to multiple NAS Shares.

When creating a Container you will need to specify its operating environment such as Memory Pool assignment, Volumes it can access and communication ports.

To create a Container open the VPSA GUI > Containers and click Create .

image120

In the dialog that opens up do the following:

image121

  • Give the Container a name.

  • Select the Image for this Container.

Note

You must provide a full Container Image. Container files are not supported.

  • Assign Volumes that this Container can access.

  • Select the Port Ranges this Container will use.

Note

Available external ports range is defined in the system settings as described here Container Service.

  • Set environment variables

  • Set arguments to the entry point (see below)

  • Set links to other Containers, so that this Container will only run while the others are running too.

  • Select a Memory Pool or leave it empty to use the default Memory Pool.

  • Entry point is the program or the deamon to execute in the Container.

  • Select whether the Container will start immediately following its creation.

  • Allow the Container to use the public IP of the VPSA (if any).

Creating a Container from an existing one

You can avoid repeatedly entering the same Container parameters over and over again for each Container created. When creating a Container similar to an existing one you can use the Load from Existing option and just modify parameters as required.

image122

Monitoring Containers

The Containers details are shown in the following South Panel tabs:

image123

Properties

Each Container includes the following properties:

Property

Description

ID

An internally assigned unique ID

Name

Name that was given at creation time

Comment

User free text. Can be used as label, reminder, ect…

Image ID

An internally unique ID of the Container Image

Image Name

Name of the Container Image

Memory Pool ID

An internally unique ID of the assigned Memory Pool

Memory Pool Name

The name of the assigned Memory Pool

Status

Normal / Failed / Creating / Deleting

Started

Yes /No

IP

IP address assigned to the container

Use Public IP

Yes / No

Entry Point

The entry point program/daemon

Volumes

The Volumes tab lists the Volumes that the selected Container can access.

Port Ranges

The Port Ranges tab lists all of the Ports that are assigned to the selected Container.

Environment Variables

This tab lists all of the Environment Variables to be used in the Container.

Args

The Args tab lists all of the Arguments for the entry point execution.

Links

The Links tab lists all of the Links from the selected Container to other Containers. These other Containers must run for the selected Container to run.

Logs

The Logs tab lists all of the event log messages related to that Backup Job.

Metering

The Metering Charts provide live metering of the Container’s memory consumption (Only appears when the Container is running).

Note

It is not possible to update/edit the configuration of an existing Container. The Container must be deleted and recreated with the required settings.