Управление дисковым пространством сервера на лету: опыт 1cloud

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

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

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

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

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

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

e89fd05a423d46599de13feb95b273cd.png

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

c6f77f96045b48cbb5d6005fc96775e1.png

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

Часть, которая не требует большого количества IOPS, как, например операционная система — ее можно разместить на SAS; Часть, которая чувствительна к IOPS, разместить в виде дополнительного диска на SSD. Но, к сожалению, версия vCloud Director 5.5, которую мы сейчас используем, не позволяет задать отдельную StoragePolicy для конкретного диска, а только на уровне всей виртуальной машины. Соответственно, мы приняли решение выпустить релиз панели с возможностью миграции всей «виртуалки» на SSD.Планы Функция динамического расширения дискового пространства работает в «продакшне» не так давно, и еще остаются некоторые моменты, которые требуется улучшить.В частности, для решения описанной выше проблемы невозможности заказа дополнительных SSD-дисков, запланировали работы по обновлению версии управляющего ПО до версии 5.6. Сразу после этого в панели 1cloud появится возможность заказа дополнительных дисков и на SAS, и на SSD.

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

© Habrahabr.ru