Capacity Planning - или как правильно делать виртуализацию
Слово «виртуализация» в 2008 году было модным как никогда раньше. И независимые разработчики ПО (ISV), и независимые разработчики аппаратного обеспечения (IHV) наперебой уговаривали потенциальных клиентов попробовать виртуализацию. Безусловно, виртуализация несет в себе множество преимуществ, таких как снижение затрат на «железо» и электропитание оборудования, повышение гибкости серверов, упрощение развертывания новых систем и многое другое…
Однако посетив немало семинаров и конференций по теме виртуализации (как от «железячников», так и от производителей ПО) и пообщавшись с поставщиками виртуализационных решений, я понял, что никто не уделяет должного внимание такой проблеме, как Capacity Planning, что представляет собой расчет необходимых аппаратных мощностей для переноса существующих и будущих систем в виртуальную среду.
Начнем с того, что Capacity Planning – это целая методология, позволяющая в рамках нескольких методов спланировать будущую ИТ-инфраструктуру таким образом, чтобы она была:
· производительной
· отказоустойчивой
· безопасной
· гибкой
· масштабируемой
При этом производительной она должна быть не только в режиме штатного функционирования, но и в период плановых (ежегодный отчет) или внеплановых («понаехали вдруг») нагрузок. Выражение Capacity Planning применимо, конечно же, и к физической инфраструктуре, а поскольку виртуальная инфраструктура является продолжением ее развития, все требования, предъявляемые ранее, должны учитываться (например, необходимо устанавливать антивирусы в каждой виртуальной машине).
Итак, что нужно учитывать при планировании мощностей для виртуальной инфраструктуры:
1. Мы размещаем несколько виртуальных серверов на одном физическом, а не в соотношении 1 к 1.
2. Поскольку несколько виртуальных машин размещено на одном физическом, необходимо предусмотреть запас аппаратных мощностей на случай отказа одного из физических серверов. Этот запас должен основываться на некоторых расчетах. Например, такое понятие как «емкость на отказы» (Failover Capacity), говорит нам о том, какое максимальное количество отказов физических хост-серверов может выдержать виртуальная инфраструктура, так чтобы виртуальные машины продолжили функционировать в штатном режиме. Более подробно про такие расчеты в методологии VMware можно прочитать здесь: http://www.vmgu.ru/articles/VMware-HA-cluster/0/.
3. Из пункта 1 следует также, что необходимо очень большое внимание уделить нагрузкам виртуальных машин на аппаратные компоненты (сетевые адаптеры, CPU, дисковая подсистема, память) и грамотно учесть будущие рабочие и пиковые нагрузки, собрав данные о загрузках существующих системы в течении достаточного времени (обычно не менее месяца).
4. Опять таки, из пункта один следует, что нельзя «тупо» размещать виртуальные машины как кубики по серверам. Некоторые виртуальные серверы должны существовать вместе на одном хосте (связки приложений, которые не должны терять сетевого соединения ни в коем случае), а некоторые, наоборот, должны существовать только на разных хостах (основная и резервная системы).
5. Надо понимать, что поскольку несколько виртуальных машин находятся на общем для всех хостов виртуализации хранилище (в целях обеспечения «живой» миграции, отказоустойчивости и балансировки нагрузки), особое внимание нужно уделить такому параметру, как загрузка канала ввода-вывода (нагрузка на систему хранения).
6. Выбор аппаратной платформы для хост-серверов виртуализации – ключевой фактор при расчете инвестиций в проект. В качестве платформы можно использовать как blade-, так и rack-серверы, при этом от модели сервера зависит коэффициент консолидации виртуальных систем. Поэтому нужно рассматривать несколько вариантов платформ и выбирать наиболее оптимальное соотношение цена/коэффициент консолидации.
7. Почти всегда bottleneck для виртуальных машин на хост-серверах виртуализации – оперативная память. Это значит, что когда вы распишете память виртуальных машин по серверам, у вас, как правило, останутся хорошие запасы мощностей по CPU, Disk I/O и Network Bandwidth. К несчастью, увеличение памяти, по сравнению с другими компонентами, обходится дороже всего. Кроме того, помните, что на некоторых платформах виртуализации (например, VMware ESX) есть механизмы оптимизации памяти. В частности, на том же VMware ESX, есть 2 отличных механизма – transparent page sharing, устраняющий дубликаты одинаковых страниц памяти, и memory overcommitment, позволяющий отдавать ресурсы памяти тем машинам, которым они действительно нужны.
8. «Раки по 3 рубля, но маленькие, раки по 5 рублей, но большие». Лучше берите по 3 рубля, но больше раков. Это значит то, что если у вас есть возможность поставить 3 сервера с 16 ГБ памяти (48 ГБ) или 4 сервера с 12 ГБ (48 ГБ) выбирайте второй вариант. Это даст больше запас по обеспечению отказоустойчивости и создаст меньшую среднюю нагрузку на процессор хост-сервера.
9. Помните, что есть уже зарекомендовавшие себя лучшие практики от производителей платформ виртуализации, а также производителей «железа», таких как VMware и HP. Например, VMware проверяла на каком-то определенном оборудовании, сколько пользователей может обслуживать виртуальный сервер с Microsoft Exchange. Не ленитесь, поищите отзывы о сайзинге типовых приложений в виртуальных машинах.
10. Используйте различные калькуляторы и программы для проверки корректности своих расчетов и суждений. Например, вот такой калькулятор от HP можно использовать для грубого сайзинга виртуальных машин по хост-серверам HP ProLiant: http://g3w1656g-vip.houston.hp.com/sb/installs/VMWare_Sizer.zip. А что касается VMware, у нее есть целая методология обследования ИТ-инфраструктуры на предмет перевода ее из физической среды в виртуальную. Этот сервис называется Virtualization Assessment и предоставляется только авторизованными консультантами VMware (VAC). Это, конечно, стоит денег, однако даст гарантию того, что виртуальная инфраструктура не начнет умирать от нагрузок на первой же неделе, а, с другой стороны, не будет лишнего переизбытка мощностей, за которые платятся деньги.
Подводя итог, можно сказать, что на данный момент только компания VMware всерьез думает над проблемами переноса существующей ИТ-инфраструктуры в виртуальную среду, остальные же рекомендуют «не париться» и планировать в виртуальной среде только новые мощности.
Так вот, правильно планировать виртуальную инфраструктуру – это думать и считать, причем считать нужно не один раз. Вроде того, как «семь раз отмерь – один виртуализуй».
Leave a Reply