Сервісний центр VPSGroup ремонт комп'ютерної техніки, заправка картриджів, ремонт оргтехніки, Київ, Виставковий центр, Васильківська, 55

Production Checkpoints в Windows Server 2016.

Механізм створення моментальних знімків з'явився ще в першій версії Hyper-V в Windows Server 2008 і довгий час залишався практично незмінним. Однак в Windows Server 2016 технологія знімків була перероблена, в результаті чого з'явилися так звані виробничі знімки (Production checkpoints).Сьогодні ми спробуємо розібратися, що вони з себе представляють і чим відрізняються від звичайних знімків.

Для початку в загальних рисах, що таке моментальні знімки і навіщо взагалі вони потрібні.

Примітка. Насправді моментальний знімок по англійськи - це snapshot, а checkpoint перекладається як "контрольна точка".Термін снапшот використовувався в більш ранніх версіях Hyper-V, а починаючи з Windows Server 2012 моментальні знімки перейменували в Чекпойнт. Щоб уникнути плутанини, далі в статті буде використовуватися слово знімок.

Отже, знімок представляє з себе якесь незмінне стан віртуальної машини на певний момент часу.Після створення знімка машина продовжує працювати в звичайному режимі, а при необхідності ви можете легко відкотити всі зміни і повернути ВМ в початковий стан. Важливо розуміти, що зберігається не тільки вміст віртуальних дисків, але і конфігурація ВМ, тому зміни в апаратної частини (збільшення пам'яті, додавання мережевого адаптера і т.п.) також можна скасувати за допомогою знімка.

В загальному випадку процедура створення знімка ВМ виглядає наступним чином:

1. В директорії, зазначеної в "Checkpoinf File Location", створюється копія конфігураційних файлів ВМ;
2. Для кожного підключеного до ВМ віртуального диска (VHDX) Створено різницевий диск (AVHDX).

Після цього віртуальна машина припиняє використання вихідних файлів конфігурації і починає працювати з їх копіями, тобто всі зміни в конфігурації записуються в нові файли, а вихідні залишаються незмінними. Те ж саме і з дисками - все зміни записуються на різницеві диски, батьківські використовуються тільки для читання.

З наявним знімком можна виконати такі дії:

• Застосувати (Apply) - повернення на точку створення знімка. Видаляються всі зміни конфігурації, що відбулися з часу створення знімка, різницеві диски перестворює заново. При цьому втрачається поточний стан ВМ;
• Видалити (Delete) - видалення знімка.Хоча насправді видалення - не зовсім коректне назву, більш правильно було б сказати злиття. При видаленні знімка різницеві диски зливаються з оригінальними, а збережена оригінальна конфігурація замінюється на поточну. Вміст Checkpoinf File Location видаляється. Самі дані при цьому не видаляються, але пропадає можливість повернення.

Відмінності

Все це може бути застосовано як до стандартних, так і до виробничих знімкам. А тепер про відмінності.

При створенні стандартного знімка, якщо машина знаходиться у включеному стані або збережена (save state), то стан оперативної пам'яті, процесора і поточні дискові операції зберігаються на диск.Для машин, створених в Server 2012, в директорії зі знімками додатково створюються файли BIN (вміст оперативної пам'яті) і VSV (стан файлів). Для ВМ, створених в Server 2016, поточний стан зберігається в файл VMRS.

Таким чином, стандартний знімок повністю зберігає стан віртуальної машини, включаючи відкриті файли, запущені програми і т.п.

При цьому сама гостьова система ніяк не бере участі в створенні знімка і навіть не підозрює про те, що з нею щось робили. Відповідно після застосування знімка машина продовжує роботу рівно з того місця, на якому він був зроблений. У деяких випадках це може викликати збої додатків всередині ВМ.Особливо це актуально для додатків, що використовують у своїй роботі транзакції, таких як SQL Server, Exchange і їм подібних.

Виробничі знімки, на відміну від стандартних, що не зберігають вміст оперативної пам'яті. Замість цього при їх створенні використовується технологія створення точних копій томів (Volume Shadow Copy, VSS).Для взаємодії з додатками всередині віртуальної машини використовується сервіс інтеграції Backup (volume shadow copy), тобто при створенні Чекпойнт використовується механізм резервного копіювання.

При створенні виробничого знімка гипервизор через сервіс інтеграції повідомляє гостьову операційну систему про свої дії.Усередині ВМ всі програми з підтримкою VSS коректно завершують поточні операції і зберігають дані. Потім відбувається створення знімка, після чого машина продовжує свою роботу.

Плюс використання VSS при створенні знімка полягає в тому, що у додатків немає незавершених дій (транзакцій і т.п.) і дані знаходяться в Консистентне стані. Крім того, після застосування виробничого знімка машина залишається виключеною, що також допомагає уникнути збоїв і втрати даних.

Примітка. Якщо в якості гостьової ОС використовується Linux, в яких немає служби VSS, то для створення виробничих знімків використовується заморозка файлової системи (file system freeze).

Трохи про VSS

Суть роботи VSS полягає в тому, щоб забезпечити можливість операцій з файлами, які в даний момент використовуються, при цьому не перериваючи роботу додатків. При роботі служба VSS використовує три основних компоненти:

VSS Writer - забезпечує взаємодію з додатком в процесі бекапа.Кожна програма з підтримкою VSS встановлює свій власний Writer;
VSS Requestor - служба, яка ініціює процес бекапа. Як Requestor може виступати програма резервного копіювання або операційна система;
VSS Provider - забезпечує взаємодію служби VSS з апаратної складової операційної системи (жорсткий диск, RAID-масив і т.п.).

Сам процес створення бекапа виглядає наступним чином:

• Операційна система за допомогою VSS Requestor звертається до всіх програм з підтримкою VSS;
• Кожен VSS Writer запускає процедуру підготовки - завершує поточні операції, зберігає дані і призупиняє роботу програми;
• Потім VSS Provider створює знімок томи і зберігає його;
• Після створення бекапа VSS Requestor повідомляє про це кожен VSS Writer і додатки продовжують роботу.

Налаштування

Якщо ВМ створюється в Windows Server 2016, для неї за умовчанням вибираються виробничі Чекпойнт, а якщо машина була імпортована з більш ранньої версії гипервизора - то стандартні. Налаштувати ці параметри і вибрати тип знімків можна у властивостях ВМ, в розділі Checkpoints.Додатково можна дозволити створення стандартних знімків при неможливості створення виробничих.



Налаштування можна виробляти і за допомогою PowerShell . Наприклад так ми включаємо стандартні знімки:

Set-VM -Name SRV1 -CheckpointType Standard

так виробничі:

Set-VM -Name SRV1 -CheckpointType ProductionOnly

а так - виробничі з можливістю створення стандартних:

Set-VM -Name SRV1 -CheckpointType Production

Приклад

а тепер на наочному прикладі подивимося відмінності між стандартним і виробничим знімком.Для цього візьмемо віртуальну машину і створимо на робочому столі текстовий файл test.txt. Потім відкриємо його в програмі Notepad, додамо пару рядків і залишимо файл відкритим.



Тепер за допомогою PowerShell включимо створення стандартних знімків:

Set-VM -Name SRV1 -CheckpointType Standard

Створимо знімок:

Checkpoint-VM -Name SRV1 -CheckpointName Standard

І застосуємо його:

Restore-VMCheckpoint -VMName SRV1 -Name Standard -Confirm: $ false



підключити до ВМ і побачимо, що файл відкритий на тому ж місці і записи в ньому присутні.



Тепер додамо в файл ще одну сходинку.



Змінимо тип знімків на виробничий:

Set-VM -Name SRV1 -CheckpointType ProductionOnly

Створимо новий знімок:

Checkpoint-VM -Name SRV1 -CheckpointName Production

І ще раз застосуємо його:

Restore-VMCheckpoint -VMName SRV1 -Name Production -Confirm: $ false



Тепер підключившись до ВМ ми бачимо, що вона виключена.



А коли ми включимо машину і відкриємо файл, то ніяких записів в ньому не буде. Що й не дивно, адже всі зміни зберігалися в оперативній пам'яті, на диск я їх не зберігав. А з підтримкою VSS у блокнота не склалося.



Висновок

Виробничі знімки забезпечують узгодженість даних (data consistency ), а стандартні - узгодженість додатків (application consistensy).Вибір типу знімка залежить виключно від конкретної ситуації. Наприклад для сервера баз даних краще використовувати виробничий знімок, а для звичайного файлового сервера краще підійде стандартний.

На закінчення скажу, що хоча виробничі знімки використовують технологію резервного копіювання, але у них відсутня основний принцип резервного копіювання - дублювання інформації .Тому моментальні знімки, як стандартні, так і виробничі, ні в якому разі не є заміною нормальному бекапіть.

Знімки дуже зручно використовувати для короткочасних робіт (установка програм, оновлення і т.п.), коли необхідно мати можливість оперативно відкотити зроблені зміни.Однак після того, як роботи успішно завершені всі знімки необхідно видалити. Використання знімків на постійній основі збільшує можливість відмови і знижує продуктивність дискової підсистеми віртуальної машини.

.