
В статията Успешно инсталирахме хипервизор на сървъра, свързахме го с хранилище, осигурихме елементарна сигурност и дори създадохме първата виртуална машина. Сега ще разгледаме как да реализираме най-базовите задачи, които трябва да изпълняваме, за да имаме възможност да възстановим работата на услугите в случай на срив.
Стандартните инструменти на Proxmox позволяват не само да се извършва резервно копиране на данни, но и да се създават набори с предварително настроени образи на операционни системи за бързо разгръщане. Това не само помага при необходимост да се създаде нов сървър за всяка услуга за секунди, но също така намалява времето на простоя до минимум.
Няма да говорим за необходимостта от създаване на резервни копия, тъй като това е очевидно и отдавна е аксиома. Ще се спрем на някои неочевидни неща и особености.
Първо, нека разгледаме как се запазват данните по време на процедурата за резервно копиране.
Алгоритми за резервно копиране
Започваме с факта, че Proxmox разполага с неплох инструментариум за създаване на резервни копия на виртуални машини. Той позволява лесно запазване на всички данни на виртуалната машина и поддържа два механизма за компресия, както и три метода за създаване на тези копия.
Нека да разгледаме първо механизмите за компресия:
- Компресия LZO. Алгоритъм за компресия на данни без загуби, измислен още в средата на 90-те години. Кодът е написан от (реализиран в Proxmox с утилитата lzop). Основна характеристика на този алгоритъм е много бързото разархивиране. Следователно всяка резервна копия, създадена с помощта на този алгоритъм, може при необходимост да бъде разгръщана за минимално време.
- Компресия GZIP. При използването на този алгоритъм резервната копия ще бъде „на летящо“ компресирана от утилитата GNU Zip, използваща мощния алгоритъм Deflate, създаден от . Основният акцент е върху максималното компресиране на данните, което позволява да се намали мястото на диска, заето от резервните копия. Главната разлика от LZO е, че процесите на компресия/декомпресия отнемат значително време.
Режими на архивиране
Proxmox предлага на избор на системния администратор три метода за архивиране. С тях може да се реши необходимата задача, определяйки приоритета между необходимостта от престой и надеждността на направената резервна копия:
- Режим Snapshot (Снимка). Този режим може да се нарече още Live backup, тъй като за неговото използване не е необходимо да се спира работата на виртуалната машина. Използването на този механизъм не прекъсва работата на VM, но има два много сериозни недостатъка — могат да възникнат проблеми поради блокировки на файловете от операционната система и най-ниска скорост на създаване. Резервните копия, създадени по този метод, трябва винаги да се проверяват в тестова среда. В противен случай има риск, че при необходимост от спешно възстановяване, те могат да се провалят.
- Режим Suspend (Приостановка). Виртуалната машина временно "замразява" своето състояние, до приключване на процеса на архивиране. Съдържанието на оперативната памет не се изтрива, което позволява да се продължи работата точно от точката, на която работата е била приостановена. Разбира се, това предизвиква престой на сървъра по време на копирането на информацията, но няма нужда от изключване/включване на виртуалната машина, което е доста критично за някои услуги. Особено, ако стартирането на част от услугите не е автоматично. Въпреки това, такива резервни копия също трябва да се разгръщат в тестова среда за проверка.
- Режим Stop (Остановка). Най-надеждният начин за архивиране, но изискващ пълно изключване на виртуалната машина. Изпраща се команда за нормално изключване, след като се спре, се извършва архивиране и след това се изпраща команда за включване на виртуалната машина. Броят на грешките при такъв подход е минимален и най-често достига нула. Резервните копия, създадени по този начин, практически винаги се разгръщат коректно.
Изпълнение на процедурата по архивиране
За създаване на резервна копия:
- Преминаваме на нужната виртуална машина.
- Избираме пункта Резервиране.
- Натискаме бутона Резервирайте сега. Ще се отвори прозорец, в който ще може да се изберат параметрите на бъдещата резервна копия.

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

Сега създадените архиви с резервни копия на виртуалните машини ще бъдат достъпни за сваляне от сървъра. Най-простият и банален начин за копиране е SFTP. За целта използвайте популярния кросплатформен FTP клиент FileZilla, който поддържа SFTP протокола.
- В полето Хост въвеждаме IP адреса на нашия виртуален сървър в полето Потребителско име въвеждаме root в полето Парола — това е паролата, която беше избрана при инсталацията, а в полето Порт посочваме «22» (или друг порт, който е зададен за SSH връзки).
- Натискаме бутона Бърза връзка и, ако всички данни са въведени правилно, в активната панел ще видите всички файлове, разположени на сървъра.
- Преминаваме в директорията /mnt/storage. Всички създадени резервни копия ще бъдат в поддиректорията «dump». Те ще имат вида:
- vzdump-qemu-номер_машина-дата-време.vma.gz при избора на метода GZIP;
- vzdump-qemu-номер_машина-дата-време.vma.lzo при избора на метода LZO.
Препоръчително е резервните копия да се свалят веднага от сървъра и да се съхраняват на безопасно място, например в нашето облачно хранилище. Ако разархивирате файла с разширение vma с помощта на утилитата, включена в пакета с Proxmox, вътре ще намерите файлове с разширения raw, conf и fw. В тези файлове се съдържа следното:
- raw — образ на диска;
- conf — конфигурация на VM;
- fw — настройки на защитната стена.
Възстановяване от резервно копие
Нека разгледаме ситуация, в която виртуалната машина е accidentally изтрита и е необходимо спешно възстановяване от резервно копие:
- Отваряме хранилището, на което се намира резервното копие.
- Преминаваме на таба Съдържание.
- Избираме нужното копие и натискаме бутона Възстановяване.

- Посочваме целевото хранилище и ID, който ще бъде присвоен на машината след завършване на процеса.
- Натискаме бутона Възстановяване.
След като възстановяването завърши, VM ще се появи в списъка на наличните.
Клониране на виртуална машина
За пример, нека предположим, че в компанията трябва да се направят промени в някаква критична услуга. Тази промяна се реализира чрез множество корекции в конфигурационните файлове. Резултатът е непредсказуем и всяка грешка може да предизвика срив на услугата. За да не се засегне работещият сървър, се препоръчва клониране на виртуалната машина.
Механизм на клониране ще създаде точно копие на виртуален сървър, с което можете да правите каквито и да е промени, без да засягате работата на основната услуга. След това, ако промени са успешно приложени, новата виртуална машина стартира, а старата се изключва. В този процес има особеност, за която винаги трябва да помните. На клонираната машина IP адресът ще бъде същият като на оригиналната виртуална машина, тоест при стартиране ще възникне конфликт на адреси.
Ще обясним как да избегнете такава ситуация. Непосредствено преди клонирането, е необходимо да се направят промени в конфигурацията на мрежата. За това е нужно временно да се промени IP адреса, но без да се рестартира мрежовата услуга. След клонирането на основната машина, настройките трябва да се върнат обратно, а на клонираната машина да се зададе друг IP адрес. По този начин получавате две копия на един и същи сървър на различни адреси. Това ще позволи бързо да включите новата услуга в работа.
Ако тази услуга е уеб сървър, просто трябва да промените A записа при вашия DNS доставчик, след което клиентските заявки за това домейно име ще бъдат насочени към адреса на клонираната виртуална машина.
Между другото, Selectel предоставя на всички свои клиенти услугата за хостинг на неограничен брой домейни на NS сървъри безплатно. Управлението на записите може да се извършва както чрез нашата контролна панел, така и чрез специално API. Повече за това можете да прочетете .
Клонирането на виртуални машини в Proxmox е много проста задача. За нейната реализация е необходимо да извършите следните стъпки:
- Да преминете към необходимата машина.
- Да изберете от менюто Повече пункт Клониране.
- В отворения прозорец да попълните параметъра Име.

- Да извършите клонирането, натискайки бутона Клониране.
Този инструмент позволява да направите копие на виртуална машина не само на локален сървър. Ако няколко виртуализационни сървъра са обединени в клъстер, с този инструмент можете веднага да преместите създаденото копие на необходимия физически сървър. Полезна функция е изборът на дисково хранилище (параметър Целево хранилище), което е много удобно при преместването на виртуална машина от един физически носител на друг.
Формати на виртуални носители
Ние ще разкажем повече за форматите на дисковете, използвани в Proxmox:
- RAW. Най-ясният и прост формат. Това е файл с данни от твърдия диск „байт за байт“ без компресия или оптимизация. Това е много удобен формат, тъй като лесно може да бъде монтиран с командата mount в която и да е linux система. Освен това, това е най-бързият „тип“ носител, тъй като хипервизорът не трябва да го обработва по никакъв начин.
Сериозен недостатък на този формат е, че колкото място сте определили за виртуалната машина, толкова място на твърдия диск ще заема файлът в RAW формат (без значение от реално заето място вътре във виртуалната машина).
- Формат на изображение QEMU (qcow2). Вероятно, най-универсалният формат за изпълнение на всякакви задачи. Неговото предимство е, че файлът с данни ще съдържа само реално заетото място вътре във виртуалната машина. Например, ако е определено 40 ГБ място, а всъщност са заети само 2 ГБ, останалото място ще бъде на разположение за други VM. Това е много актуално в условия на икономия на дисково пространство.
Небольшият недостатък на работата с този формат е следният: за да монтирате такъв образ в която и да е друга система, ще трябва първо да заредите , както и да използвате утилитата qemu-nbd, която ще позволи на операционната система да обръща файла като обикновено блочно устройство. След това образът ще стане достъпен за монтиране, разрязване на дялове, извършване на проверка на файловата система и други операции.
Трябва да се помни, че всички операции по вход-изход при използване на този формат се обработват софтуерно, което води до забавяне при активна работа с дисковата подсистема. Ако целта е да се развие база данни на сървъра, по-добре е да изберете формат RAW.
- Формат на изображение VMware (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. Това е много полезна команда, когато е необходимо да се поправи грешка при първоначалния избор на формат.
Благодарение на тази команда можете принудително да създадете необходимия образ, използвайки аргумента create:
qemu-img create -f raw test.raw 40GТази команда ще създаде образ test в формат RAW, размер 40 Гб. Сега той е годен за свързване към всяка виртуална машина.
Промяна на размера на виртуалния диск
Накрая, ще покажем как да увеличите размера на образа на диска, ако по някаква причина пространството на него е спряло да стига. За това ще използваме аргумента resize:
qemu-img resize -f raw test.raw 80GСега нашият образ е с размер 80 Гб. Можете да видите подробна информация за образа, като използвате аргумента info:
qemu-img info test.rawНе бива да забравяте, че просто разширяването на образа няма да увеличи размера на раздела автоматично — то просто ще добави налично свободно пространство. За да увеличите раздела, използвайте командата:
resize2fs /dev/sda1където /dev/sda1 — необходимия раздел.
Автоматизация на създаването на резервни копия
Използването на ръчен метод за създаване на резервни копия е много трудоемка задача и отнема много време. Затова Proxmox VE съдържа инструмент за автоматично резервно копиране по график. Нека разгледаме как да го направим:
- Използвайки уеб интерфейса на хипервизора, отваряме пункта Център за данни.
- Избираме пункта Резервиране.
- Натискаме бутона Добави.
- Задаваме параметрите за планиращия инструмент.

- Отбелязваме опцията Активиране.
- Запазваме промените, използвайки бутона Създаване.
Сега планиращият инструмент ще стартира автоматично програмата за резервно копиране в точно зададеното време, основано на зададения график.
Заключение
Разгледахме стандартните методи за резервно копиране и възстановяване на виртуални машини. Използването им позволява без особени проблеми да се запазят всички данни и бързо да се възстановят в случай на извънредна ситуация.
Разбира се, това не е единственият възможен начин за запазване на важни данни. Има много инструменти, например, , с които можете да създавате пълни и инкрементални копия на съдържанието на виртуални сървъри, базирани на Linux.
При извършване на процедури за резервно копиране винаги трябва да се има предвид, че те активно натоварват дисковата подсистема. Поради това е препоръчително да се извършват в моменти на минимално натоварване, за да се избегнат забавяния при изпълнение на операции за вход-изход вътре в машините. Статусът на забавянията при дисковите операции може да се следи директно от уеб интерфейса на хипервизора (параметър IO delay).
Източник: habr.com





