Мы продолжаем рассказывать о том, как строится фронтент и бэкенд инфраструктура хостинг-провайдера и описывать способы облегчения работы с ней для клиентов. В сегодняшнем топике речь пойдет о реализованной в системе 1cloud возможности динамического расширения и уменьшения дискового пространства виртуальных серверов.

В предыдущих сериях:


Проблема: расширить, но не уменьшить


В предыдущих версиях нашей панели управления существовала возможность расширения дискового пространства прямо во время работы — клиент мог заказать виртуальный сервер с одним диском, а потом увеличить это число (для этого требовалась перезагрузка сервера).

Минусом всей этой конфигурации была невозможность «отката» назад (плюс упомянутая перезагрузка) — когда потребность в дополнительном дисковом пространстве отпадала (например, проведены работы по миграции или завершены работы, которые требовали дополнительного дискового пространства), отказаться от него было невозможно, и за все даже неиспользуемые ресурсы приходилось платить. Эту проблема нужно было решить.

Что делать


С этой целью была разработана возможность в любой момент времени добавить в виртуальный сервер или удалить из него дополнительные диски. Помимо этого, в процессе работы можно увеличивать емкость этих дополнительных дисков.

Разработка новой функциональности заняла не очень много времени (1,5 — 2 человеконедели в терминах управления проектами) и сопровождалась стандартным процессом внесения изменений — сначала были доработаны интерфейсы панели управления и внешнего сайта, затем наступила пора написания методов для работы с vCloud Director (создание, изменение, удаление дисков). Далее нужно было доработать обработчик заданий и тщательно протестировать работу системы (и, в частности, выявлению влияния новой функции на другие возможности системы вроде работы со снапшотами и бэкапами).

Как это работает


Операция добавления, удаления или изменения дополнительного диска не требует перезагрузки сервера, то есть оптимизировать дисковое пространство можно на уже работающей виртуальной машине.
Для этого клиенту нужно зайти в настройки сервера в панели администрирования и в графическом интерфейсе конфигуратора указать желаемые параметры дискового пространства:



Изначально виртуальный сервер можно создать и с SSD-диском.



В процессе работы можно осуществлять миграцию сервера с SAS на SSD и обратно:



Не все так просто


Как это обычно бывает, жизнь вносит свои коррективы в любой проект, столкнулись с определенными сложностями в процессе создания новой функции и мы.

Очевидно, что в большинстве случаев не целесообразно переносить всю виртуальную машину на SSD, а гораздо эффективнее разбить ее на две части:

  1. Часть, которая не требует большого количества IOPS, как, например операционная система — ее можно разместить на SAS;
  2. Часть, которая чувствительна к IOPS, разместить в виде дополнительного диска на SSD.

Но, к сожалению, версия vCloud Director 5.5, которую мы сейчас используем, не позволяет задать отдельную StoragePolicy для конкретного диска, а только на уровне всей виртуальной машины. Соответственно, мы приняли решение выпустить релиз панели с возможностью миграции всей «виртуалки» на SSD.

Планы


Функция динамического расширения дискового пространства работает в «продакшне» не так давно, и еще остаются некоторые моменты, которые требуется улучшить.

В частности, для решения описанной выше проблемы невозможности заказа дополнительных SSD-дисков, запланировали работы по обновлению версии управляющего ПО до версии 5.6. Сразу после этого в панели 1cloud появится возможность заказа дополнительных дисков и на SAS, и на SSD.

На сегодня все, спасибо за внимание. Будем рады ответить на вопросы в комментариях. Подписывайтесь на наш блог — в следующих постах мы продолжим рассказывать о различных аспектах построения и оптимизации хостинг-инфраструктуры.

Комментарии (6)


  1. MrFrizzy
    16.04.2015 17:21

    С этой целью была разработана возможность в любой момент времени добавить в виртуальный сервер или удалить из него дополнительные диски. Помимо этого, в процессе работы можно увеличивать емкость этих дополнительных дисков.

    Разработка новой функциональности заняла не очень много времени (1,5 — 2 человеконедели в терминах управления проектами) и сопровождалась стандартным процессом внесения изменений — сначала были доработаны интерфейсы панели управления и внешнего сайта, затем наступила пора написания методов для работы с vCloud Director (создание, изменение, удаление дисков). Далее нужно было доработать обработчик заданий и тщательно протестировать работу системы (и, в частности, выявлению влияния новой функции на другие возможности системы вроде работы со снапшотами и бэкапами).


    Ожидал именно технического описания в статье…


  1. homecreate
    16.04.2015 21:13
    -1

    «Создать виртуальный сервер за 2 минуты»

    Что-то мне это напоминает… А проверяли, что за 2, а не за 3 минуты? :)

    Фактически реализованы только скрипты (+gui) поверх vCloud? Или что-то ниже уровнем таки делалось?


    1. alexlash
      16.04.2015 21:49

      И что же напоминает? И что должно было делаться?


      1. homecreate
        16.04.2015 21:51

        Вот я и спрашиваю потому, что не понял из статьи, что же именно было сделано. Может, какие-то интересные действия над хранилищами уровнем ниже были проделаны, которые не стыдно было бы утащить к себе


        1. alexlash
          16.04.2015 21:53

          Ну просто интересно стало, что напомнило конкретно :) Про хранилища да, интересно


          1. homecreate
            16.04.2015 21:54

            Судя по реакции людей, шутка оказалась несмешная, усугублять не буду