У нас уже есть серия статей про снапшоты виртуальных машин, добавим к ней еще одну. Мы не освещали тот факт, что для бизнес-критичных приложений (Tier 1) поддержка снапшотов может не предоставляться со стороны производителя программного обеспечения. Это еще один факт из серии "почему снапшоты это плохо".
Давайте обратимся к статье блоггера Matt Liebowitz, который привел цитаты из официальных источников Microsoft про предоставление поддержки для приложений Exchange и SQL, работающих в виртуальных машинах.
Some hypervisors include features for taking snapshots of virtual machines. Virtual machine snapshots capture the state of a virtual machine while it's running. This feature enables you to take multiple snapshots of a virtual machine and then revert the virtual machine to any of the previous states by applying a snapshot to the virtual machine. However, virtual machine snapshots aren't application aware, and using them can have unintended and unexpected consequences for a server application that maintains state data, such as Exchange. As a result, making virtual machine snapshots of an Exchange guest virtual machine isn't supported.
Virtualization Snapshots for Hyper-V or for any virtualization vendor are not supported to use with SQL Server in a virtual machine. It is possible that you may not encounter any problems when using snapshots and SQL Server, but Microsoft will not provide technical support to SQL Server customers for a virtual machine that was restored from a snapshot.
Конечно же, интереснее всего не сами снапшоты виртуальных машин в VMware vSphere или Hyper-V, которые редко используются в производственных средах, а то, что для резервного копирования эти снапшоты используются любым продуктом для резервного копирования, который архивирует работающую виртуальную машину целиком (например, Veeam Backup and Replication). Иначе просто нельзя забрать файл виртуального диска, в который идет запись.
Таким образом, мы получаем, что для Microsoft Exchange и SQL поддержку пользователи могут не получить, особенно это касается случаев восстановления резервных копий, которые могут некорректно работать. Учитывая, что приложения эти, зачастую, являются одними из самых критичных для предприятия - вопрос поддержки оказывается весьма актуальным.
Также, важно отметить, что поддержка приложением резервного копирования функций VSS writer (в том же Veeam) не гарантирует вам поддержки со стороны Microsoft, что также логично, поскольку последняя не может отвечать за сторонних разработчиков.
Ну и Мэт отмечает, что для тех пользователей, у кого есть Microsoft Premier support agreement, техподдержка Microsoft попробует сделать усилия, чтобы решить проблему со снапшотами если она вдруг возникнет.
И последний, но немаловажный момент: в Veeam Backup and Replication, начиная с 5-й версии, есть функция SureBackup, позволяющая проверить резервные копии на работоспособность и готовность к восстановлению, без реального восстановления в продуктивную среду. Вот для таких случаев как тестирование Tier 1 приложений может и пригодиться эта штука.
О снапшотах виртуальных машин VMware vSphere мы уже много писали (например, можно пискать по тэгу "Snapshot"). Постараемся в этой заметке просуммировать информацию о том, что из себя представляют файлы снапшотов виртуальных машин vSphere 5 и как они обрабатываются.
Для того, чтобы снять снапшот виртуальной машины (virtual machine snapshot), можно кликнуть на ней правой кнопкой в vSphere Client и выбрать соответствующий пункт "Take Snapshot" из контекстного меню:
Далее появится окно снятия снапшота ВМ:
Обратите внимание на опцию "Snapshot the virtual machine's memory". Если эту галку убрать, то снапшот не будет содержать состояние памяти виртуальной машины, т.е. при откате к нему ВМ будет в выключенном состоянии. Плюс такого снапшота - он создается намного быстрее, поскольку не надо сохранять память машины в отдельный файл.
Вторая опция - это возможность "заморозки" файловой системы виртуальной машины на время создания снапшота. Она доступна только при условии установленных в гостевой ОС VMware Tools, в составе которых идет Sync Driver. Эта функциональность нужна для создания консистентного состояния виртуальной машины для снапшота на уровне файловой системы, что особенно необходимо при создании резервных копий (используют все системы резервного копирования для виртуализации, например, Veeam Backup and Replication). Данная возможность (quiesce) поддерживается не всегда - об условиях ее применения можно прочитать тут.
После создания снапшота заглянем в Datastore Browser на хосте VMware ESXi через vSphere Client:
Выделенные зеленым объекты - это абстрации двух снапшотов виртуальных машин. Чтобы понять, что собой представляют эти абстрации, откроем каталог с виртуальной машины в консоли (Putty по SSH):
Здесь мы уже видим, что снапшот на самом деле - это набор из четырех файлов:
<имя ВМ>-[шесть цифр]-delta.vmdk - файл данных диска отличий от базового диска
<имя ВМ>-[шесть цифр].vmdk - заголовочный файл
<имя ВМ>.vmsd - текстовый файл с параметрами снапшота (связи в дереве, SCSI-нода, время создания и т.п.)
<имя ВМ>.vmsn - файл с сохраненной памятью виртуальной машины
Самый главный файл - это, конечно, <имя ВМ>-[шесть цифр]-delta.vmdk. Он содержит блоки данных хранимые в формате так называемых redo-логов (он же дочерний диск - child disk). Он же sparse-диск, то есть диск, который использует технологию Copy-On-Write (COW) при работе с данными. Идея технологии copy-on-write — при копировании областей данных создавать реальную копию только когда ОС обращается к этим данным с целью записи. Таким образом, этот виртуальный диск содержит только измененные от родительского диска области данных (delta).
По умолчанию размер COW-операции составляет 64 КБ, что эквивалентно 128 секторам (подробнее). Но сам снапшот растет блоками данных по 16 МБ. То есть запись 64 КБ данных исходного диска может породить прирост 16 МБ данных в диске снапшота.
Следующий интересный тип файла - <имя ВМ>.vmsd. Это обычный текстовый файл, который можно открыть в редакторе и увидеть все отношения между родительским и дочерними дисками, а также другую интересную информацию:
Ну и последнее - это память виртуальной машины, хранящаяся в файле <имя ВМ>.vmsn. Его, понятное дело, может не быть, если вы создавали снапшот выключенной ВМ или убрали галку, о которой написано в самом начале.
По умолчанию снапшоты складываются в папку на VMFS-томе, где лежит виртуальная машина. Но это размещение можно сменить, поменяв рабочую папку (Working Directory) в настройках виртуальной машины через vSphere Client или в vmx-файле, для чего нужно добавить или поменять строчку:
workingDir="/vmfs/volumes/SnapVolume/Snapshots/"
Кстати, эта же папка задает и размещение файла подкачки ВМ (*.vswp). Если вы его хотите оставить на прежнем месте, нужно добавить строчку:
sched.swap.dir = "/vmfs/volumes/VM-Volume1/MyVM/"
Ну и напоследок, какие операции поддерживаются для виртуальных машин со снапшотами:
Операция
Требования и комментарии
Storage vMotion
Для хостов ESX/ESXi 4.1 или более ранних - не поддерживатся. Для ESXi 5.0 или более поздних - поддерживается.
vMotion
Поддерживается. Файлы снапшотов должны быть доступны на целевом хосте. Необходима версия hardware version 4 или более поздняя (ESX/ESXi 3.5 и выше).
Cold migration
Поддерживается для хостов ESX/ESXi 3.5 или более поздних.
Fault Tolerance
Не поддерживается. Для создания снапшота нужно отключить FT.
Hot clone
Поддерживается, но снапшотов не должно быть больше 31 штуки.
Cold clone
Поддерживается. Однако целевая ВМ будет без снапшотов.
Более подробную информацию о снапшотах можно найти в KB 1015180.
Ну и небольшая подборка ссылок по траблшутингу снапшотов в VMware vSphere:
Помните, мы писали, что снапшоты виртуальных машин в VMware vSphere - это плохо? Но иногда без них не обойтись - например, системы резервного копирования (например, Veeam Backup and Replication) вынуждены делать снапшоты, чтобы не прерывать работу виртуальной машины во время бэкапа.
Цель этой заметки - показать, что в VMware vSphere при работе со снапшотами все сделали несколько лучше, чем в предыдущей версии. Во-первых, смотрим это видео:
Мысль видео такова: если у вас некорректно завершилась операция по консолидации снапшотов, то в VMware vSphere 5 вам предлагается опция по консолидации, доступная из контекстного меню виртуальной машины:
То есть, теперь не надо терзать командную строку в случае появления проблем со снапшотами виртуальных машин.
Во-вторых, появилась опция по поиску виртуальных машин, нуждающихся в консолидации снапшотов, доступная из vSphere Client. Чтобы найти такие машины, нужно выбрать хост или кластер, перейти на вкладку "Virtual Machines" и по правой кнопке выбрать пункт "Needs Consolidation":
Ну и, в-третьих, в vSphere 5 полностью поддерживается "горячее" перемещение виртуальных машин между хранилищами средствами Storage vMotion, а также, само собой, между хостами средствами обычного vMotion.
О решении StarWind Enterprise iSCSI для создания отказоустойчивых хранилищ VMware vSphere и Microsoft Hyper-V мы уже писали немало (для этого есть специальный раздел на нашем сайте) и будем писать еще, пока все кому оно нужно его не купят. А нужно оно очень многим, так как позволяет создать отказоустойчивый кластер хранения на базе существующей инфраструктуры Ethernet при минимальных инвестициях (не надо покупать FC-хранилища, устройства коммутации SAN и прочее).
Сегодня мы поговорим о типе диска Snapshot and CDP Device в StarWind Enterprise iSCSI. Во-первых, вам нужно прочитать первую часть статьи, где описаны основные режимы работы дисков со снапшотами, которые поддерживает продукт.
Диски типа Snapshot and CDP Device можно создать, когда вы выбираете опцию создания виртуального образа Advanced Virtual, а затем Snapshot and CDP Device:
CDP - это Continuous Data Protection, т.е. непрерывная защита данных ваших виртуальных машин. В этом режиме поддерживаются мгновенные снимки хранилища (snapshots), которые защитят вас от утраты каких-либо важных данных по вине пользователя - вы всегда сможете откатиться к снимку, созданному в определенный момент времени.
Какие опции мы имеем (кстати, обратите внимание, что StarWind можно использовать и для Citrix XenServer, где он находится в официальном HCL):
Во-первых, у нас есть три режима работы диска Snapshot and CDP Device...(нажимаем читать дальше и комментировать)
Часто разговаривая с заказчиками и пользователями платформ виртуализации от VMware, я вижу, что у многих из них весьма широко применяются снапшоты (snapshots), в том числе для целей "резервного копирования". Эти снапшоты живут долго, их файлы разрастаются и поростают плесенью. Потом инфраструктура начинает тормозить, а пользователи не знают почему. И как это не казалось бы странным - удаление всех снапшотов у всех виртуальных машин решает их проблемы, с которыми они уже свыклись.
Сегодня я вам расскажу, чтоб вы наконец запомнили: снапшоты это в целом плохо и лишь иногда хорошо. На эту страницу мы с вами будем отсылать наших клиентов и пользователей виртуальных машин, которыми могут оказаться люди, не участвующие в процессе администрирования VMware vSphere, но пользующиеся функционалом снапшотов (например, веб-разработчики).
Начнем с того, когда снапшоты могут помочь (я имею в виду, конечно, руками делаемые снапшоты, а не автоматические, которые делает, например, Veeam Backup). Снапшоты в VMware vSphere оказываются полезны в очень ограниченных условиях (например, для проверки корректности работы обновления приложения или патча операционной системы). То есть эта та точка сохранения состояния виртуальной машины, к которой можно будет вернуться через небольшой промежуток времени. Ни в коем случае нельзя рассматривать снапшоты как альтернативу резервному копированию основных производственных систем, в силу множества проблем, о которых пойдет речь ниже.
Что плохого в снапшотах виртуальных машин на VMware ESX:
1. Снапшоты неконтролируемо растут (блоками по 16 МБ). Помимо базового диска ВМ фиксированной емкости вы имеете еще один файл отличий виртуального диска, который растет как ему вздумается (предел роста одного снапшота - размер базового диска). Особенно быстро растут снапшоты для ВМ с приложениями с большим количеством транзакций (например, почтовый сервер или сервер СУБД). Со снапшотами вы не имеете контроля над заполненностью хранилищ.
2. Большое количество снапшотов (особенно цепочки, в которых может быть до 32 штук) вызывает тормоза виртуальной машины и хост-сервера ESX (в основном замедляется работа с хранилищем). Проверено на практике. Даже VMware пишет так: "An excessive number of snapshots in a chain or snapshots large in size may cause decreased virtual machine and host performance". В качестве примера можно привести тот факт, что при аллокации блоков снапшота происходит блокировка LUN (в этом режиме он доступен только одному хосту, остальные ждут). Когда снапшот делается - машина подвисает из-за сброса памяти на диск.
3. Снапшоты не поддерживают многие технологии VMware, созданные для автоматизации датацентров. К ним относятся VMware Fault Tolerance, Storage VMotion и другие. Когда одни машинки в чем-то участвуют, а другие не участвуют - это нехорошо в рамках концепции динамической инфраструктуры.
4. Снапшоты вызывают специфические проблемы при операциях с ВМ. Например, расширение диска виртуальной машины со снапшотом приводит к потере данных и непонятками, что дальше с такой машиной делать. Сто раз уже пользователи влипали (вот как вытянуть себя за волосы). Интересно также восстановить из снапшота машину с IP-адресом, который на данный момент уже используется в сети.
5. Со снапшотами бываютбаги, а бывает, что они просто "by design" тупят.
1. Контролируйте наличие снапшотов у виртуальных машин и их размеры, своевременно удаляйте их совместно с владельцами систем. Делать это можно, например, с помощью RVTools.
2. Не храните снапшоты больше 24-72 часов. Этого времени достаточно, чтобы оттестировать обновление ПО или патч ОС (ну и, конечно, сделать бэкап).
3. На сервере VMware vCenter можно настроить алармы на снапшоты виртуальных машин. Сделайте это. Дрючьте пользователей за необоснованные снапшоты.
4. Не позволяйте делать больше 2-3 снапшотов для виртуальной машины в принципе, если это делается в производственной среде. На своих выделенных для тестирования ресурсах (изолированных) пусть разработчики делают что хотят.
5. Если вы используете ПО для резервного копирования через снапшоты ВМ (например, Veeam Backup), помните, что бывает некоторые невидимые в vSphere Client снапшоты (Helpers) остаются на хранилище. Поглядывайте за машинами из командной строки.
В прошлой заметке мы писали о том, какие типы дисков бывают в продукте StarWind Enterprise, позволющем создать отказоустойчивую инфраструктуру хранения данных виртуальных машин серверов VMware ESX или Microsoft Hyper-V.
Сегодня мы посмотрим на мастер создания виртуального диска с поддержкой мгновенных снимков (снапшотов), который будет предоставлять доступ хост-серверам виртуализации по iSCSI. Снапшоты могут оказаться полезными при разработке и тестировании (временные снапшоты хранилищ виртуальных машин), а также для защиты данных от утери или сбоев в виртуальной инфраструктуре.
Для данного типа диска важен параметр Operation Mode, который задает режим его работы. Этот диск в StarWind Enterprise может работать в одном из четырех режимов:
Growing Image (Thin Provisioning) - образ диска на физическом устройстве будет создан минимального объема (тонкий диск). Для серверов ESX он будет виден как полноценное хранилище указанного объема, а сам файл образа будет расти по мере его наполнения данными. Снапшот хранилища можно сделать только вручную. Для этого из контекстного меню для устройства на iSCSI Target надо выбрать пункт Create Snapshot. Этот режим работы диска подходит для создания снимков хранилища при тестировании каких-нибудь обновлений или глобальных изменений в прикладных системах виртуальных машин.
Auto-Restored Snapshot - данный тип диска как раз подходит для разработки и тестирования. В таком режиме хранилище виртуальных машин во время одной сессии iSCSI будет изначально работать в режиме снапшота, а при окончании сессии - снапшот откатится к изначальному состоянию. Представьте, например, что вы тестируете связку систем на хранилище, но не хотите вносить изменения в эталонный виртуальный диск. Для такого диска можно задать лимит хранимых снапшотов (опция Limit maximum number of stored snapshots).
Snapshot and CDP - в таком режиме StarWind будет автоматически создавать снапшоты хранилищ с заданным интервалом времени (опция Snapshot auto creation with interval of (minutes)). Такой тип диска полезен для постоянной защиты данных (Continuous Data Protection, CDP) хранилищ виртуальных машин от их утери или порчи. В случае сбоя можно откатиться к нужному снапшоту.
Read-Only - такой диск будет доступен только для чтения, и для него нельзя будет создать снапшот. Этот диск подходит для создания хранилищ с какими-нибудь дистрибутивами или шаблонами, куда не потребуется вносить изменения.
Теперь что касается восстановления хранилищ из снапшотов. Пока восстанавливать их из интерфейса StarWind нельзя (как, например, дерево снапшотов в VMware vSphere). Чтобы восстановить хранилище, вам понадобится пересоздать iSCSI Target и указать существующих виртуальный диск снапшота в папке с данным диском. В скором времени нам обещают восстановление снапшотов из GUI продукта StarWind.
Скачать пробную версию ПО StarWind Enteprise HA можно по этой ссылке. Купить StarWind можно в компании VMC.
У многих пользователей часто возникают проблемы со снапшотами виртуальных машин. С одной стороны, они полезны при разработке и тестировании, но, с другой - вредны по причинам того, что они разрастаются, о них забывают, и, зачастую, они мешают функционированию виртуальной инфраструктуры VMware vSphere.
Есть способ ограничить количество снапшотов виртуальных машин в конфигурационном файле .vmx. Для этого откройте vSphere Client и в Configuration Parameters для виртуальной машины добавьте строчку:
snapshot.maxSnapshots = "n"
где n - число допустимых снапшотов (их не может быть больше 496, значение 0 - запретит снапшоты, даже для администраторов).
Если пользователь попробует сделать снапшот, ему будет выведено такое сообщение:
Очень много вопросов поступает относительно того, для чего нужны снапшоты виртуальных машин (snapshots) на серверах VMware ESX. По-сути снапшоты - это зло, но иногда они оказываются полезны в очень ограниченных условиях (например, для проверки корректности работы обновления приложения или патча операционной системы). То есть эта та точка сохранения состояния виртуальной машины, к которой можно будет вернуться через небольшой промежуток времени. Ни в коем случае нельзя рассматривать снапшоты как альтернативу резервному копированию основных производственных систем, в силу множества проблем.
Одной из них является неочевидное поведение снапшотов при их удалении (применении к основному диску ВМ). В этом случае вам может понадобиться значительный объем свободного дискового пространства на томе VMFS, особенно когда у вас есть несколько снапшотов. Например, у вас есть виртуальная машина с 3-мя снапшотами следующих размеров:
Вы нажимаете кнопку Delete All в Snapshot Manager в vSphere Client, после чего происходит такая ситуация: Snapshot 3 "склеивается" со Snapshot 2, но при этом сам Snapshot 3 остается на томе VMFS:
При этом занятое дисковое пространство увеличивается на величину Snapshot 3 и составляет 90 ГБ. Далее, то, что получилось в Snapshot 2 (50 ГБ) склеивается со Snapshot 1 (10 ГБ), при этом Snapshot 2 и Snapshot 3 остаются. То есть дисковое пространство, занимаемое файлами виртуальных дисков и снапшотов на томе VMFS увеличивается до 140 ГБ:
Только после всего этого, результирующий Snaphot 1 (60 ГБ - сумма всех снапшотов) применяется к основному файлу виртуального диска VMDK. При этом сам виртуальный диск flat в размере не меняется, поскольку он фиксирован (изменяется только содержимое блоков). И только затем все снапшоты удаляются (все 140 ГБ).
Таким образом, на хранилище VMFS нам понадобится 80 ГБ дополнительного свободного пространства, если мы хотим, чтобы операция прошла успешно (зато потом освободится 60 ГБ от снапшотов).
Компания Virsto Software выпустила интересную программу Virsto One для серверов виртуализации Microsoft Hyper-V R2, позволяющую оптимизировать хранилища для виртуальных машин.
Возможности и функции продукта Virsto One:
Уменьшение занятого виртуальными машинами Hyper-V пространства за счет оптимизации виртуальных машин и шаблонов
Возможность создания "тонких" дисков виртуальных машин, использование снапшотов, клонов и создание бэкапов
Контроль производительности дисковой подсистемы виртуальных машин
Утилита Virsto One поставляется как плагин к Microsoft Windows Server 2008 R2 и имеет интеграцию с PowerShell.
Скачать Virsto One для Hyper-V можно по этой ссылке.
Уже совсем скоро выйдет VMware Workstation 7, а пока можно скачать Release Candidate. Помимо прочих полезных нововведений, в VMware Workstation 7 есть такая интересная функция как AutoProtect для виртуальных машин:
AutoProtect позволяет делать мгновенные снимки состояния виртуальной машины (snapshots), которы будут производиться с заданным интервалом. Например, на картинке выше для виртуальной машины на VMware Workstation 7 включен AutoProtect таким образом, что снапшоты делаются каждые полчаса, а всего максимально хранится 10 снапшотов (политика снимков расписана на скриншоте). Понятное дело, ни в коем случае нельзя считать возможность AutoProtect заменителем бэкапа виртуальных машин, скорее это аналог функции "автосохранение" в Microsoft Word.
Чтобы понять, какие у вас есть снапшоты в инфраструктуре VMware VI / vSphere, сколько они занимают и какой давности, можно воспользоваться бесплатной утилитой MCS Snapshotview 1.1... Таги: VMware, vSphere, Snapshots, ESX