Twitter

With today’s growing storage needs, DevOps teams regularly discover that they have outgrown the previously provisioned storage for their various services. Provisioning additional storage in today’s solutions would require DevOps to open a ticket for IT or storage admins to perform the task, which would end up taking hours, or even days. At the admin level, provisioning additional storage would require either migrating data to new larger volumes or performing multiple steps which could require additional time from the underlying storage arrays. That is downtime for some services that enterprises cannot afford.

Consider a business-critical MySQL server that was provisioned with a 50GB volume because the DevOps user didn’t think they would need more space any time soon. But then there was a burst of orders that came in, causing the database to run out of space and hence causing the company to not be able to fulfil any new orders.

At Portworx, our solution is to provide a programmatic way for DevOps to instantly increase the size of already-provisioned volumes without having to take either the application or the the underlying volumes offline. It involves running just one command which provisions more storage on the existing PX nodes, increases the size of the block device and then resizes the filesystem, all in a matter of seconds.

Here’s how you can check if your volume is full and then increase its size.

1. Run the volume inspect command.This should tell you the capacity of the volume and how much is used.

px_test@ubuntu3:~$ sudo  /opt/pwx/bin/pxctl v i mysql_volume

            Volume                       :  658175664581050143
            Name                         :  mysql_volume
            Size                         :  14 GiB
            Format                       :  ext4
            HA                           :  3
            IO Priority                  :  LOW
            Creation time                :  Feb 25 22:52:17 UTC 2017
            Shared                       :  no
            Status                       :  up
            State                        :  Attached: 643ca9a6-972e-41d3-8a84-a2b27b21a1cc
            Device Path                  :  /dev/pxd/pxd658175664581050143
            Reads                        :  32
            Reads MS                     :  44
            Bytes Read                   :  352256
            Writes                       :  61
            Writes MS                    :  104
            Bytes Written                :  58744832
            IOs in progress              :  0
            Bytes used                   :  14 GiB
            Replica sets on nodes:
                        Set  0
                                    Node  :  192.168.56.101
                                    Node  :  192.168.56.106
                                    Node  :  192.168.56.105

You can see that the volume above is full, since all the space is used up.

2. Run the resize command to increase the size of the volume per your new requirement.

px_test@ubuntu3:~$ sudo  /opt/pwx/bin/pxctl volume resize mysql_volume –size 100
Resize Volume: Volume mysql_volume resized to 100GB

3. Run volume inspect again and you’ll see that the size of the volume has been increased.

px_test@ubuntu3:~$ sudo  /opt/pwx/bin/pxctl v i mysql_volume
            Volume                       :  658175664581050143
            Name                         :  mysql_volume
            Size                         :  100 GiB
            Format                       :  ext4
            HA                           :  3
            IO Priority                  :  LOW
            Creation time                :  Feb 25 22:52:17 UTC 2017
            Shared                       :  no
            Status                       :  up
            State                        :  Attached: 643ca9a6-972e-41d3-8a84-a2b27b21a1cc
            Device Path                  :  /dev/pxd/pxd658175664581050143
            Reads                        :  32
            Reads MS                     :  44
            Bytes Read                   :  352256
            Writes                       :  122
            Writes MS                    :  232
            Bytes Written                :  117497856
            IOs in progress              :  0
            Bytes used                   :  14GiB
            Replica sets on nodes:
                        Set  0
                                    Node    :  192.168.56.101
                                    Node    :  192.168.56.106
                                    Node    :  192.168.56.105

Check it out in action:

What’s the bottom line? With Portworx, DevOps can can reallocate storage for a running database with no support ticket or downtime. How cool is that?

Learn more about Portworx features and integration with MySQL in this three-minute video.

Share
Subscribe for Updates

About Us
Portworx is the leader in cloud native storage for containers.

Dinesh Israni

Dinesh Israni

Dinesh Israni is a Principal Software Engineer at Portworx with over 12 years of experience building Distributed Storage solutions. Currently, he is working on developing cloud native storage technology and is the lead for the open source project STORK. He is working on integrating cloud native solutions with container orchestrators like Kubernetes and DC/OS, helping customers deploy their cloud native applications more efficiently at scale.

link
Twitter
August 23, 2017 How To
MySQL Kubernetes: Deploying and Running MySQL on Kubernetes Using Statefulsets and Kops
Kai Davenport
Kai Davenport
link
openshift
February 14, 2018 How To
How to Run an HA MySQL Database on OpenShift
Michael Ferranti
Michael Ferranti
link
Graphic-154
March 30, 2017 How To
PX Release 1.1.6: ASG Support for Containers, Multi-AZ Deployments, Volume Aggregation, and a New UI
Venkat Ramakrishnan
Venkat Ramakrishnan