Flocker Driver/Plugin for Storage Arrays

Data persistence and portability use cases such as moving database containers between hosts and reattaching existing data volumes from shared storage environments can be challenging. When a Docker container moves with a standard volume driver, its data volume stays in place and the container starts with an empty volume.

In order to make moving Docker containers and data volumes together easy, ClusterHQ developed Flocker. Flocker is an open-source container data volume manager for Dockerized applications that gives DevOps teams the ability to run containerized stateful services such as databases in production.

Calsoft Whitepaper: An Analysis of Three Transaction Processing Architectures

In this paper, issues involved in using multiprocessors for high performance transactions processing applications are investigated. A comparison is made between the best “Shared Disks” with “Shared Nothing” and “Shared Everything” architectures.

Download

According to ClusterHQ, a Docker data volume that is tied to a single server, a Flocker data volume, called a dataset, is portable and can be used with any container in your cluster. Flocker manages Docker containers and data volumes together.

The Flocker Driver/plugin for Docker allows you to provision Flocker volumes directly from within Docker. This means you don’t have to use a separate tool to manage your persistent data volumes.

While creating a container with a data volume, we just specify the –volume-driver=flocker flag, and then specify a name and mountpoint, e.g. -v my-volume:/mount/point.

Flockerctl

Flockerctl is the CLI tool for controlling the flocker services, it has commands like listing nodes, creating volumes and moving them around. Using the flockerctl we can also provision the volumes for docker.

Flockerctl version:

We can check the version of flocker using following command

[root@flocker-Node1 ~]# flockerctl version
prototype version 0.0.1

List the Nodes:

[root@flocker-Node1 ~]# flockerctl list-nodes
SERVER     ADDRESS
bf5d33ee   192.168.5.35
08ad1785   192.168.5.36

Create Volumes:

[root@flocker-Node1 ~]# flockerctl create -n bf5d33ee -m name=Test -s 15G

created dataset in configuration, manually poll state with ‘flocker-volumes list’ to see it show up.

List Volumes:

[root@flocker-Node1 ~]# flockerctl ls
DATASET                                SIZE     METADATA    STATUS         SERVER
8af507ae-5c24-4d55-9d39-c16ff7fce7b9   15.00G   name=Test   attached ✅   bf5d33ee (192.168.5.35)

Map Volume to the Docker container:

[root@flocker-Node1 ~]# docker run -it -v /flocker/8af507ae-5c24-4d55-9d39-c16ff7fce7b9:/Calsoft --name=Yogesh123 centos /bin/bash
or
[root@flocker-Node1 ~]# docker run -it -v sanity:/data --volume-driver flocker --name=Yogesh12345 centos /bin/bash

Move volume from one node to other node:

[root@flocker-Node1 ~]# flockerctl ls
DATASET                                SIZE     METADATA      STATUS         SERVER

0e4398e0-6926-40b2-91e9-bd5099e28494   75.00G   name=sanity   attached ✅   bf5d33ee (192.168.5.35)
8af507ae-5c24-4d55-9d39-c16ff7fce7b9   15.00G   name=Test     attached ✅   bf5d33ee (192.168.5.35)
 [root@flocker-Node1 ~]# flockerctl move -d 0e4398e0-6926-40b2-91e9-bd5099e28494 -t 08ad1785

initiated move of dataset, please check state to observe it actually move.

 [root@flocker-Node2 ~]flockerctl ls
DATASET                                SIZE     METADATA      STATUS         SERVER
0e4398e0-6926-40b2-91e9-bd5099e28494   75.00G   name=sanity   attached ✅   08ad1785 (192.168.5.36)
8af507ae-5c24-4d55-9d39-c16ff7fce7b9   15.00G   name=Test     attached ✅   bf5d33ee (192.168.5.35)

Destroying Volumes:

[root@flocker-Node2 ~]#flockerctl destroy -d 0e4398e0-6926-40b2-91e9-bd5099e28494

marked dataset as deleted. poll list manually to see it disappear.

Container Ecosystem Services

Calsoft has deep expertise in containerization of Storage and Networking products. With our in-depth understanding of various containerization technologies like Docker, Kubernetes, Apache Mesos and Coreos, we have helped ISVs to design and develop solutions in and around these technologies.

 
Share:

Related Posts

Product Lifecycle Management in Software Development using Large Language Models

Product Lifecycle Management in Software Development using Large Language Models

The data of any organization is of extreme value. But what happens when that data is not trustworthy and accessible to your teams? You will face challenges…

Share:
Challenges and Best Practices in DevSecOps Security

Challenges and Best Practices in DevSecOps Security

Explore the challenges in DevSecOps security, including managing privileged credentials targeted by cyber attackers, and discover effective solutions.

Share:

Understanding Types and Trends of Data Storage Technologies

Explore the forms of data storage, latest data storage technologies and trends crucial for optimizing data management.

Share:
Kubernetes Introduction and Architecture Overview

Kubernetes: Introduction and Architecture Overview

Containers are taking over and have become one of the most promising methods for developing applications as they provide the end-to-end packages necessary to run your applications….

Share:
How to Perform Hardware and Firmware Testing of Storage Box

How to Perform Hardware and Firmware Testing of Storage Box

In this blog will discuss about how to do the Hardware and firmware testing, techniques used, then the scope of testing for both. To speed up your testing you can use tools mentioned end of this blog, all those tools are available on internet. Knowing about the Hardware/Firmware and how to test all these will help you for upgrade testing of a product which involve firmware

Share:
Cloud Application Development

Challenges of Cloud Application Development

Explore the challenges and solutions of cloud application development, including benefits, performance issues, and overcoming vendor lock-in for seamless cloud integration.

Share: