За резервните копия в Proxmox VE

За резервните копия в Proxmox VE
В статията «Магия виртуализация: въведен курс в Proxmox VE» Успешно инсталирахме хипервизор на сървъра, свързахме го с хранилището, погрижихме се за основната сигурност и даже създадохме първата виртуална машина. Сега ще разгледаме как да реализираме най-базовите задачи, които трябва да изпълняваме, за да имаме възможност да възстановим работата на услугите в случай на срив.

Вградените инструменти на Proxmox позволяват не само извършване на резервно копиране на данни, но и създаване на набори от предварително конфигурирани образи на операционни системи за бързо разгръщане. Това не само помага при необходимост от създаване на нов сървър за всяка услуга за няколко секунди, но също така намалява времето на простои до минимума.

Няма да говорим за необходимостта от създаване на резервни копия, тъй като това е очевидно и отдавна е аксиома. Вместо това ще се спрем на някои неочевидни аспекти и особености.

Първо ще разгледаме как се запазват данните при процедурата по резервно копиране.

Алгоритми за резервно копиране

Започваме с това, че Proxmox разполага с добър набор от инструменти за създаване на резервни копия на виртуални машини. Той позволява лесно запазване на всички данни на виртуалната машина и поддържа два механизма за компресия, както и три метода за създаване на тези копия.

Първо ще разгледаме механизмите за компресия:

  1. Компресия LZO. Алгоритъм за без загуба на данни, създаден още през средата на 90-те години. Кодът е написан от Маркус Оберхаймер (реализиран в Proxmox с помощта на утилита lzop). Основната особеност на този алгоритъм е много бързото разпаковане. Следователно, всяко резервно копие, създадено с помощта на този алгоритъм, може при необходимост да бъде възстановено за минимално време.
  2. Компресия GZIP. При използване на този алгоритъм резервното копие ще бъде „на лето“ компресирано с помощта на утилита GNU Zip, използваща мощния алгоритъм Deflate, създаден от Фил Кац. Основният акцент е върху максималната компресия на данните, което позволява да се намали мястото на диска, заето от резервните копия. Главната разлика от LZO е, че процедурите по компресия/декомпресия отнемат значително повече време.

Режими на архивиране

Proxmox предлага на системния администратор три метода за резервно копиране. С тях може да се реши необходимата задача, определяйки приоритет между необходимостта от простои и надеждността на направеното резервно копие:

  1. Режим Снимка (Snapshot). Този режим може да се нарече и Live backup, тъй като за неговото използване не се изисква спиране на виртуалната машина. Използването на този механизъм не прекъсва работата на VM, но има два много сериозни недостатъка — могат да възникнат проблеми поради заключвания на файлове от операционната система и най-ниска скорост на създаване. Резервните копия, създадени чрез този метод, трябва винаги да се проверяват в тестова среда. В противен случай има риск, че при необходимост от спешно възстановяване, те могат да се провалят.
  2. Режим Suspend (Замразяване). Виртуалната машина временно „замразява“ своето състояние до приключване на процеса на резервно копиране. Съдържанието на оперативната памет не се изтрива, което позволява продължаването на работата точно от там, където е била спряна. Разбира се, това води до просто на сървъра по време на копирането на информация, но няма нужда от изключване/включване на виртуалната машина, което е доста критично за някои услуги. Особено, ако стартирането на част от услугите не е автоматично. Въпреки това, такива резервни копия също трябва да се развиват в тестова среда за проверка.
  3. Режим Stop (Спиране). Най-надеждният метод за резервно копиране, но изискващ пълно изключване на виртуалната машина. Изпраща се команда за нормално изключване, след спирането се извършва резервно копиране и след това се подава команда за включване на виртуалната машина. Броят на грешките при такъв подход е минимален и най-често е сведени до нула. Резервните копия, създадени по такъв начин, практически винаги се развиват коректно.

Изпълнение на процедурата по резервиране

За създаване на резервно копие:

  1. Преминаваме на необходимата виртуална машина.
  2. Избираме пункт Резервиране.
  3. Натискаме бутона Резервирай сега. Ще се отвори прозорец, в който можете да изберете параметрите на бъдещото резервно копие.

    За резервните копия в Proxmox VE

  4. Като хранилище посочваме това, което сме свързали в предишната част.
  5. След избора на параметри натискаме бутона Резервиране и изчакваме, докато резервното копие бъде създадено. За това ще говори надписът TASK OK.

    За резервните копия в Proxmox VE

Сега създадените архиви с резервни копия на виртуалните машини ще бъдат налични за изтегляне от сървъра. Най-простият и обикновен метод за копиране е SFTP. За това използвайте популярния кросплатформен FTP клиент FileZilla, който може да работи по SFTP протокол.

  1. В полето Хост въвеждаме IP адреса на нашия виртуализационен сървър, в полето Потребителско име въвеждаме root, в полето Парола — този, който е бил избран при инсталацията, а в полето Порт посочваме „22“ (или друг порт, който е зададен за SSH връзки).
  2. Натискаме бутона Бърза връзка и, ако всички данни са въведени правилно, то в активната панел ще видите всичките файлове, разположени на сървъра.
  3. Преминаваме в директорията /mnt/storage. Всички създадени резервни копия ще се съхраняват в поддиректорията «dump». Те ще имат формата:
    • vzdump-qemu-номер_машини-дата-време.vma.gz в случай, че е избран метод GZIP;
    • vzdump-qemu-номер_машини-дата-време.vma.lzo в случай, че е избран метод LZO.

Препоръчва се резервните копия да се изтеглят веднага от сървъра и да се съхраняват на безопасно място, например в нашето облачно хранилище. Ако разархивирате файл с разширение vma с помощта на утилита, включена в Proxmox, вътре ще намерите файлове с разширенията суров, conf и fw. В тези файлове се съдържа следното:

  • суров — образ на диска;
  • conf — конфигурация на VM;
  • fw — настройки на защитната стена.

Възстановяване от резервно копие

Нека разгледаме ситуация, при която виртуалната машина е случайно изтрита и е необходимо нейното спешно възстановяване от резервно копие:

  1. Отваряме хранилището, в което се намира резервното копие.
  2. Преминаваме на раздела Съдържание.
  3. Избираме нужната копия и натискаме бутона Възстановяване.

    За резервните копия в Proxmox VE

  4. Указваме целевото хранилище и ID, който ще бъде предоставен на машината след приключване на процеса.
  5. Натискаме бутона Възстановяване.

След като възстановяването приключи, VM ще се появи в списъка с налични.

Клониране на виртуална машина

Примерно, нека предположим, че в компанията е необходимо да се внесат промени в критична услуга. Тази промяна се реализира чрез множество корекции в конфигурационните файлове. Резултатът е непредсказуем и всяка грешка може да доведе до срив на услугата. За да не се засегне работещият сървър, се препоръчва клониране на виртуалната машина.

Механизмът за клониране ще създаде точна копия на виртуалния сървър, с която е позволено да се извършват всякакви изменения, без да се засяга работата на основната услуга. След това, ако промените бъдат успешно приложени, новата VM се стартира в работа, а старата се изключва. В този процес има особеност, за която винаги трябва да се помни. На клонираната машина IP-адресът ще бъде същият като този на оригиналната VM, тоест при нея стартиране ще възникне конфликт на адреси.

Нека обясним как да се избегне такава ситуация. Непосредствено преди изпълнението на клонирането, трябва да се направят промени в конфигурацията на мрежата. За целта е необходимо временно да се промени IP-адресът, но без да се рестартира мрежовия сервис. След като клонирането е завършено, на основната машина трябва да се върнат настройките обратно, а на клонираната машина да се зададе друг IP-адрес. По този начин ще получим две копия на един и същ сървър с различни адреси. Това ще позволи бързо да се пусне новата услуга в работа.

Ако тази услуга е уеб-сървър, достатъчно е само да промените А-записът при Вашия DNS-доставчик, след което клиентските запитвания по това доменно име ще бъдат насочвани към адреса на клонираната виртуална машина.

Между другото, Selectel предлага на всички свои клиенти услуга за хостинг на неограничен брой домейни на NS-сервери безплатно. Управлението на записите може да се извършва както чрез нашата контролна панел, така и чрез специално API. За повече информация прочетете тук в нашата база знания.

Клонирането на VM в Proxmox е много проста задача. За да я изпълните, е необходимо да следвате следните стъпки:

  1. Преминете към желаната машина.
  2. Изберете от менюто Повече пункт Клонирай.
  3. В отвореното прозорец попълнете параметъра Име.

    За резервните копия в Proxmox VE

  4. Извършете клонирането чрез натискане на бутона Клонирай.

Този инструмент позволява да се създаде копие на виртуалната машина не само на локалния сървър. Ако няколко сървъра за виртуализация са обединени в клъстер, с помощта на този инструмент можете веднага да преместите създаденото копие на необходимия физически сървър. Полезна функция е изборът на дисковото хранилище (параметър Target Storage), което е много удобно при преместване на виртуална машина от един физически носител на друг.

Формати на виртуални дискове

Нека да разгледаме по-подробно форматиращите хранилища, използвани в Proxmox:

  1. RAW. Най-разбираемият и прост формат. Това е файл с данни от твърдия диск "байт по байт" без компресия или оптимизация. Това е много удобен формат, тъй като лесно може да се монтира с помощта на стандартната команда mount в всяка linux система. Освен това, това е най-бързият "тип" хранилище, тъй като хипервизорът не трябва по никакъв начин да го обработва.

    Сериозен недостатък на този формат е, че колкото място сте определили за виртуалната машина, точно толкова място на твърдия диск ще заема файлът в RAW формат (независимо от реално заетото място в самата виртуална машина).

  2. Формат на изображение QEMU (qcow2). Вероятно най-универсалният формат за изпълнение на всякакви задачи. Неговото предимство е, че файлът с данни ще съдържа само реално заетото място в рамките на виртуалната машина. Например, ако е определено 40 Гб пространство, а реално е заето само 2 Гб, то всичкото останало пространство ще бъде налично за други виртуални машини. Това е много актуално в условия на икономия на дисково пространство.

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

    Следва да се помни, че всички операции при въвеждане и изход в този формат се обработват програмно, което води до забавяне при активно използване на дисковата подсистема. Ако целта е да развернете база данни на сървъра, по-добре е да изберете формат RAW.

  3. VMware image format (vmdk). Този формат е "роден" за хипервизора VMware vSphere и е включен в Proxmox за съвместимост. Той позволява миграция на виртуални машини от VMware в инфраструктурата на Proxmox.

    Използването на vmdk в постоянен режим не се препоръчва, тъй като този формат е най-бавният в Proxmox, поради което е подходящ само за миграция, не повече. Вероятно в обозримо бъдеще този недостатък ще бъде отстранен.

Работа с образи на дискове

В комплекта с Proxmox има много удобна утилита, наречена qemu-img. Една от нейните функции е конвертирането на образи на виртуални дискове. За да я използвате, просто отворете консолата на хипервизора и изпълнете командата във формата:

qemu-img convert -f vmdk test.vmdk -O qcow2 test.qcow2

В посочения пример, vmdk-образът на виртуалния носител VMware с име test ще бъде преобразуван в формат qcow2. Това е много полезна команда, когато е необходимо да се поправи грешка при първоначалния избор на формат.

Благодарение на същата команда може да се принудително създаде необходимия образ, използвайки аргумента създай:

qemu-img create -f raw test.raw 40G

Тази команда ще създаде образ test в формат RAW, с размер 40 Гб. Сега той е подходящ за свързване към всяка от виртуалните машини.

Промяна на размера на виртуалния диск

И накрая, ще покажем как да увеличим размера на образа на диска, ако по някакви причини вече не достига място. За това ще използваме аргумента resize:

qemu-img resize -f raw test.raw 80G

Сега нашият образ стана с размер 80 Гб. Можете да видите подробна информация за образа с помощта на аргумента Показване на полезна информация за образите:

qemu-img info test.raw

Не трябва да забравяте, че само разширяването на образа няма да увеличи автоматично размера на дяла — просто ще добави налично свободно пространство. За увеличаване на дяла използвайте командата:

resize2fs /dev/sda1

където /dev/sda1 — необходимият дял.

Автоматизация на създаването на резервни копия

Използването на ръчен метод за създаване на резервни копия е доста трудоемка задача и отнема много време. Затова Proxmox VE съдържа средство за автоматично резервно копиране по график. Нека разгледаме как да го направите:

  1. Използвайки уеб интерфейса на хипервизора, отваряме елемента Център за данни.
  2. Избираме пункт Резервиране.
  3. Натискаме бутона Добави.
  4. Задаване на параметрите за планиращия.

    За резервните копия в Proxmox VE

  5. Отбелязваме с отметка елемента Включи.
  6. Запазваме промените, използвайки бутона Създайте.

Сега планиращият ще стартира автоматично програмата за резервно копиране в точно указаното време, в зависимост от зададения график.

Заключение

Бяха разгледани обичайните методи за резервно копиране и възстановяване на виртуални машини. Използването им позволява безпроблемно запазване на всички данни и бързо възстановяване в случай на извънредна ситуация.

Разбира се, това не е единственият възможен начин за съхраняване на важни данни. Съществуват множество инструменти, например, Duplicity, с помощта на които могат да се създават пълни и инкрементни копия на съдържанието на виртуални сървъри под управление на Linux.

При изпълнение на процедури за резервно копиране винаги трябва да имате предвид, че те активно натоварват дисковата подсистема. Поради тази причина, е препоръчително да се извършват тези процедури в периоди на минимално натоварване, за да се избегнат закъснения при изпълнение на входно-изходни операции в машините. Следете статуса на закъсненията при дисковите операции директно от уеб интерфейса на хипервизора (параметър IO delay).

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster