Proxmox восстановить удаленный диск
В статье «Магия виртуализации: вводный курс в Proxmox VE» мы успешно установили на сервер гипервизор, подключили к нему хранилище, позаботились об элементарной безопасности и даже создали первую виртуальную машину. Теперь разберем как реализовать самые базовые задачи, которые приходится выполнять, чтобы всегда иметь возможность восстановить работу сервисов в случае сбоя.
Штатные инструменты Proxmox позволяют не только выполнять резервное копирование данных, но и создавать наборы предварительно настроенных образов операционных систем для быстрого развертывания. Это не только помогает при необходимости создать новый сервер для любого сервиса за несколько секунд, но также и уменьшает время простоя до минимального.
Рассказывать о необходимости создания бэкапов мы не будем, поскольку это очевидно и уже давно является аксиомой. Остановимся на некоторых неочевидных вещах и особенностях.
Сначала рассмотрим каким образом сохраняются данные при процедуре резервного копирования.
Заключение
Proxmox Backup Server стал тем кусочком паззла, которого не хватало для полноценной среды виртуализации Enterprise-уровня. Один раз настроив выполнение бэкапов по расписанию, можно будет не переживать, что виртуальные машины или контейнеры пропадут, например, при сбое носителей информации. Восстановить их теперь — тривиальная задача, практически не требующая никаких лишних телодвижений. Подняли новый хост, добавили репозиторий и запустили восстановление.
Добавим к этому, что разработчики активно расширяют возможности своего ПО и не бросают пользователей на произвол судьбы, составляя грамотную документацию и помогая в рамках коммьюнити-форума.
Есть сервер: Raid 10 из 4 дисков по 2 Тб. Стоит Proxmox 5. Было на нем 7 виртуальных серверов. DC1, DC2, Mail, PBX, 1c-SQL, RDP, шлюз. потребовалось мне на один сервак добавить еще одну сетевуху (на шлюз). и после перезагрузки он встал колом - не загрузился. после ресета его жесткого как-то он загрузился, но исчезли файлы настроек виртуалок. веб морда грузится - но хранилище только local. Соответственно не монтируется хранилище кластера и нет виртуалок. Хотя разделы на диске есть живые. Как можно (если можно) восстановить сиё чудо враждебной техники. PS С линуксом не очень. (((
можешь еще в разделjob это кинуть. евро за 100 тебе все починят
lvscan ACTIVE '/dev/pve/swap' [8,00 GiB] inherit ACTIVE '/dev/pve/root' [96,00 GiB] inherit ACTIVE '/dev/pve/data' [3,52 TiB] inherit ACTIVE '/dev/pve/vm-102-disk-1' [80,00 GiB] inherit ACTIVE '/dev/pve/vm-103-disk-1' [120,00 GiB] inherit ACTIVE '/dev/pve/vm-103-disk-2' [1,22 TiB] inherit и т.д.
ну все отлично. ось все видит. все виртуалки живы. теперь надо аккауратно их либо вытащить в виде образов , либо восстановить прокмоксину.
сорри, но я уже в дверях стою)
как мне с тобой связаться можно? поговорить.
можешь еще в разделjob это кинуть. евро за ** тебе все починят
Может это и правильное решение.
Но хочется самому всё это пройти, т.к. это теперь моё хозяйство и мне его содержать. Учиться никогда не поздно.
Помогите, плиз! Все комменты типа - брасай всё и беги. нафиг! Мне НУЖНО восстановить эту хрень. Я еще жить хочу и семью кормить.
Я прекрасно понимаю, что никому неохота возиться с «детским садом» и пошагово объяснять, что делать, но всё-таки.
Может кто поможет? Пошагово.
Сегодня «Пятница 13-е» - надеюсь, что это хороший знак. )))
Вот эти LV по размерам похожи на твои виртуалки
ACTIVE '/dev/pve/vm-102-disk-1' [80,00 GiB] inherit ACTIVE '/dev/pve/vm-103-disk-1' [120,00 GiB] inherit ACTIVE '/dev/pve/vm-103-disk-2' [1,22 TiB] inherit
у тебя образы вм хранятся в lvm, сделай из них raw образы через dd, и создай пустые виртуалки в raw формате, а потом просто подмени образы теми которые ты создал ранее. Есть вопросы?
у тебя образы вм хранятся в lvm, сделай из них raw образы через dd, и создай пустые виртуалки в raw формате, а потом просто подмени образы теми которые ты создал ранее. Есть вопросы?
Вопросов очень много. На сколько я понял - восстановить прежнее состояние всей виртуальной машины в принципе возможно. Наверное мне нужно переустановить Proxmox. Потому как текущий поломан (он не дает создать ВМ). Но установить его не с iso а из Debian.
И потом создать ВМ и подкинуть к ним образы. .
можно просто удалить файлы прокса и по новой службы запустить и оно заработает как чистая установка
Интересно, образы так и были в LVM? Я просто не совсем понимаю. Proxmox работал с lvm образами или он их конвертил в raw?
можно просто удалить файлы прокса и по новой службы запустить и оно заработает как чистая установка
Как мне это сделать?
Вернее как мне узнать какие файлы прокса?
Создал тему в Job.
Proxmox работал с lvm образами или он их конвертил в raw?
А чем они отличаются?
У тебя опыт работы админом есть вообще?
Зачем он ? Ведь всё знают, что админом быть много ума не надо и если что-то не получается, то на форуме тебе помогут. Даже гуглить не надо уметь.
Точно. Я вообще-то так, грузчиком тут работаю. ну а раз комп умею включать, значит всё, уже суперпуперсисадмин! Вот тебе руль - рули! А я что, сразу на форум. Вдруг помогут. :)
Накатывай с нуля 9-й дебиан, затем по инструкции с вики проксмокса сам проксмокс.
Так только диски виртуалок потрутся.
Там диски LVM тома. С чего они потрутся если не разбирать lvm, а переформатировать 2 тома: root & data?
С того что это потенциально можно сделать.
база sqlite с конфигами, которая монтируется в файловую систему через fuse в /etc/pve
а зачем так делать? =)
Я совершенно серьёзно спросил. Думаю, чем и как я могу тебе помочь и стоит ли браться.
Опыт есть. Только с линуксом он не очень большой. :)
С линуксом в основном с букварем.
Всем спасибо! Тема закрыта.
Решение было такое.
Пересоздание заново ВМ и приаттачивания к ним дисков.
Еще раз всем спасибо за советы.
отлично. кто помог?
теперь сделай что-то похожее на файловый сервер с размером хранилища превышающего сумму все дисков виртуалок в 7 раз минимум.
это может быть qnap, synology или просто комп в дисками. расшарь это хранилище по smb или dav или nfs. подцепи его как сторедж. в проксе и настрой бэкап всех виртуалок ночью каждый день. выстави максимальный срок хранения 7 дней. еще можно отдельнл типа неделя месяц год.
constin ★★★★ ( 14.07.18 00:56:24 )
Последнее исправление: constin 14.07.18 00:56:37 (всего исправлений: 1)
Я в принципе хочу вынести все эти серверы (виртуальные) каждый на отдельную физическую тачку. (по мне так надежнее)
Правильно. Вдруг какой-нибудь урод захочет бакапы настроить. Пусть подолбится как следует.
Имиджмейкера уже вызвали?
из всей этой занимательной эпопеи я понял одну штюк: проксмокс - ни пальцем, ни клавишей, ни байтом на диске! Ковырять нельзя.
Во блин, хрень какая!
Да всё там можно. Только надо понимать, что делаешь.
Подниму тему.
Был у меня proxmox, стоял на 2-х hdd в raid1 на zfs.
Раздобыл я 4 hdd, и захотел raidz-1. Собрал (на разделах), добавил пару ssd под log и l2arc. Но вот беда, загрузчик скопированный на любой диск отказывался грузиться. На помощь пришла флешка, с которой загрузчик смог нормально работать…
Шли годы, с годами шёл аптайм, но вот однажды рядом с сервером взорвался аккумулятор от ups`а, да так, что тот ups так-же стоявший рядом, не пережил этого перформанса. Аптайм прекратился…
После включения сервера, выяснолось, что флешка всё. Всё она скорее всего была уже давно. Воткнул я новую флешку (которая была куплена года два назад, чтоб заменить загрузочную, да всё руки не доходили), поставил на неё свежий proxmox. И вот пришла пора импортировать пул
zpool import -f -m rpool2
, а он мне в ответ:
cannot mount '/': directory is not empty
Понял я, что proxmox при импорте пытается смонтировать корень, который занят, вот только хз, что с этим делать.
Есть сервер: Raid 10 из 4 дисков по 2 Тб. Стоит Proxmox 5. Было на нем 7 виртуальных серверов. DC1, DC2, Mail, PBX, 1c-SQL, RDP, шлюз. потребовалось мне на один сервак добавить еще одну сетевуху (на шлюз). и после перезагрузки он встал колом - не загрузился. после ресета его жесткого как-то он загрузился, но исчезли файлы настроек виртуалок. веб морда грузится - но хранилище только local. Соответственно не монтируется хранилище кластера и нет виртуалок. Хотя разделы на диске есть живые. Как можно (если можно) восстановить сиё чудо враждебной техники. PS С линуксом не очень. (((
Лучше всего обратиться к тому, кто отвечает за этот сервер.
Теперь я за него отвечаю. Если не возможно никак восстановить, я конечно всё убью и сделаю заново, только время . (((
Storage с машинами добавь обратно в веб интерфейсе для начала.
В /etc/pve кажется должна быть смонтирована фс с коньфигами. Надо ее починить, смонтировать взад и все заведется.
стораж не монтируется - пишет create storage failed: can't aquire cfs lock 'file-storage_cfg': pve cluster filesystem not online. (500)
Уже читал - бэкапов нет.
Если бы кто смог подключиться ко мне посмотреть - реально восстановить или нет. чтоб я зря время не терял. (((
При попытке qmrestore пишет Cluster not ready - no quorum?
Проверь файл, погугли как чинить sqlite3. В крайнем случае будет пустая конфигурация, которую можно восстановить руками.
Да самое страшное, что бэкапов нет и файлов с конфигами там где они должны быть нет. как будто потерто. я уже лайвСД загружал - утилиту testdisk. их даже в удаленных не нашел. Я вообще не могу понять как они могли так бесследно исчезнуть. (((
Вы всегда можете написать заявление «по собственному. » и больше не заниматься тем в чём «не очень».
По теме: какого чёрта полез в продакшен без бэкапа?
Ты вообще читаешь, что тебе пишут? Сделай, чтобы файл монтировался, а конфиги можно написать заново, они там наверняка были несложные.
А не скрипт-ликвидатор тебе предыдущий подложил?
КАк-то странно.
файлов с конфигами там где они должны быть нет
Чувак, файлов с конфигами нет, потому что их никогда не было. Есть база sqlite с конфигами, которая монтируется в файловую систему через fuse в /etc/pve и выглядят как пачка файлов. Нештатные, а иногда и штатные ребуты, в неудачные моменты sqlite довольно легко ломают, но он также довольно легко чинится. Почини базу, ребутнись и все взлетит.
Вот тут твои конфиги:
/var/lib/pve-cluster/config.db
Ладно техническая сторона, может и восстановишь, вон знающие советуют.
Но ты лучше организационно-социальную расскажи!
Как ты на такое подписался и, блеять, кто тебе доверил всё это?
Пипец же!
Ты впервые в /b//admin/?
Ну вот тут постоянно приходят за пошаговыми объяснениями «куда нажать» или, в крайнем случае, «что ввести в консоль».
Да фиг знает. Думать же надо, если у тебя там 1С и прочее.
Или предыдущего «ящера» вызывать на консультацию, или бежать, если предыдущий Эрзент не получил бабла и сам у бежал.
в душе неепу, как работает этот самый проксмос и зачем он нужен, предположу только, что надо по новой добавить ВМ и приаттачить к ним образы/разделы прежних дисков.
в каждой ситуации есть плюсы. например эта научит тебя делать бекапы.
pve cluster filesystem not online. (500)
ээ, служба mdadm что ли какая?
не хочу зафлуживать, но ответом работодателя может быть и: дорого же.
хотелось бы выудить у аффтара социальный аспект докатывания до такой жизни :-)
Олсо, если /etc/pve не пустой, туда тоже ничего монтироваться не будет по-умолчанию. Смотри что делает инит-скрипт pve-cluster, в общем.
Там как-то так:
sqlite > ceph > fuse > /etc/pve
pve-cluster при наличии кворума монтирует sqlite в папочку с конфигами, оттуда уже конфиги для виртуалок подхватываются
Хм. На сколько целесообразно вообще такое применять в малых предприятиях, если вероятность такого «упадка, как у автора» велика?
Ну, фик знает. Подозреваю, что устанавливал не автор. Эта штука вообще должна быть кластером из нескольких нод, но я ее часто вижу в разных местах в виде standalone серверов :) в примерно вот таком вот состоянии, как у автора.
Я думаю у тебя развалился кластер после того как ты не подумавши добавил сетевую карту и кластерная fs просто не смогла смонтироваться.
Сервак-то в кластере один? Или было несколько? Больше 2-ух? Если несколько, то они должны друг друга видеть. Убедись, что сломанный сервак видит остальные, верни ему кворум.
Если один, то чини базу, но вообще странно, он без кластера кворум не должен пытаться собирать. По-крайней мере раньше так было.
Если там был один сервер, то почему ты пишешь про хранилище кластера? И про добавление сетевухи на «один из серверов»?
И не паникуй, ты конечно ппц, какой раздолбай, что полез в продакшен без бекапов, но с вероятностью в 99% там все восстановится.
хм. не очень надёжная схема хранения конфигов, хотя, может я не вижу всей картины.
не ясно - там кластер из нескольких нод или таки один сервер с raid. если сервер один, то на «Cluster not ready - no quorum» можно не обращать внимания.
каким образом огранизовано хранилище тоже не ясно.
по этому пути пусто.
Сервер один, но видимо была попытка создания кластера, он не перезагружался уже очень давно. Совсем не понятно почему удалились файлы настроек при перезагрузке, но это уже не важно. Мне уже похрен на то КАК это произошло. теперь задача ЭТО починить. И если кому очень интересно - прошлый админ умер. А теперь по делу: Разделы с дисками виртуалок есть. Я их вижу по команде lsblk. Эксперимента ради я на другой (тестовой) машине установил Proxmox и развернул на нем три ВМ. Хочу понять какие файлы где должны быть и их содержимое. Например содержимое файла /var/lib/pve-cluster/config.db Может мне удастся все-таки восстановить виртуалку.
Я в принципе хочу вынести все эти серверы (виртуальные) каждый на отдельную физическую тачку. (по мне так надежнее) и не будет ситуации, когда (все яйца в одной корзине). Можно ли, . думаю, что можно. как-то смонтировать эти разделы и вытащить из них информацию - скопировать на внешний диск и потом вкатить на физическую машину.
Например содержимое файла /var/lib/pve-cluster/config.db
Возьми с другого компа, добавляй виртуалки с существующими дисками.
так создать по новой и приаттачить пробовал?
darkenshvein ★★★★★ ( 13.07.18 10:59:22 )
Последнее исправление: darkenshvein 13.07.18 10:59:30 (всего исправлений: 1)
а что пишет locate -i config.db ?
и на всякий случай уж locate -i *.db
хочу вынести все эти серверы (виртуальные) каждый на отдельную физическую тачку. (по мне так надежнее)
Ага, и точно так же не будешь делать резервных копий.
Так надо же ситуацию описывать. А то получились танцы с бубном и никто понять не может, какого лешего всё так происходит.
Я в принципе хочу вынести все эти серверы (виртуальные) каждый на отдельную физическую тачку. (по мне так надежнее)
и сделаешь большую глупость. Сейчас 2018 год. Все сервисы по возможности должны быть виртуализированны. У прокмокса есть замечательный мезанизм бэкапов и восстановлений.
Теперь по проблеме. По хорошему тебе не нужны конфиги виртуалок. Тебе нужны их диски. С большой вероятностью это просто файлы. ёа если нет и там было хралилище в виде пула, то тебе надо работать с ним напрямую и эксопртировать имиджи.
Имея файлы ты создаешь виртуалку на любом другом проксе или просто kvm, даешь отдаешь ей диск и все. все будет работать.
Можно ли, . думаю, что можно. как-то смонтировать эти разделы и вытащить из них информацию
Да! этим и надо заняться. но не надо выкатывать их на физическую машину, это регресс.
Найди специалиста и пусть он тебе поможет.
Со специалистами в нашем Жоподрищенске очень туго. Их нет. Теперь по существу: текущий проксмокс раздела с дисками не видит, т.е. он его не примонтирует. Может нужно переустановить поверх Proxmox? А не затрет ли он инфу о разделах?
текущий проксмокс раздела с дисками не видит
Что значит «не видит»?
Может нужно переустановить поверх Proxmox? А не затрет ли он инфу о разделах?
Давай забудем на время восстановления слово Proxmox. Proxmox это посути набор скриптов и сервисов на debian. Те у тебя там дебиан.
И рассмотрим самый плохой для нас вариант. Типа там lvm и zfs-pool.
К сожалению, я через 15 минут уезжаю в отпуск до понелльника. Но тут есть куча людей, которые могут разобрать эту ситуацию.
Нужно изменить вопрос с «ой, все пропало» на «помогите восстановить имиджи виртуалок»
Но для начала надо понять, каким спопобом они храняться в данном инсталле.
А не затрет ли он инфу о разделах?
Если ставишь не дебиан и поверх него прокмокс, а сразу с iso прокмокса, то затрет.
Я же говорю - из под вебинтерфейса проксмокса не видно хранилиша с дисками виртуалок. видно только хранилище local. Если я поверх переустановлю Proxmox он затрет хранилище с дисками виртуалок?
Заключение
Нами были рассмотрены штатные способы резервного копирования и восстановления виртуальных машин. Их использование позволяет без особых проблем сохранять все данные и экстренно восстановить их в случае нештатной ситуации.
Конечно, это не единственный возможный способ сохранения важных данных. Существует множество инструментов, например, Duplicity, с помощью которых можно создавать полные и инкрементные копии содержимого виртуальных серверов на базе Linux.
При выполнении процедур резервного копирования всегда следует учитывать, что они активно нагружают дисковую подсистему. В связи с этим выполнять эти процедуры рекомендуется в моменты минимальной нагрузки, чтобы избежать задержек при выполнении операций ввода-вывода внутри машин. Следить за статусом задержек дисковых операций можно непосредственно из веб-интерфейса гипервизора (параметр IO delay).
Копаясь на хабре наткнулся на крик о помощи. Кому лень под ссылку, в двух словах опишу: у человека упал кластер, ноды на веб-морду не пускают при том, что сами виртуалки пашут штатно. В связи с тем, что у меня была похожая ситуация, очень хочется помочь страждущему, потому как представляю его состояние сейчас, каково это, когда САМЫЙ ГЛАВЫНЫЙ СЕРВЕР на котором крутиться вся инфраструктура предприятия начинает выделываться, или того хуже, отказывает.Но к сожалению рид-онли статус не позволяет комментировать посты, и это и вторая причина написания статьи, получить уже инвайт.
Сразу оговорюсь, это был мой первый опыт работы с виртуализацией такого уровня да ещё и на Linux, поэтому не пинайте сильно, а если где ошибусь, отпишите в комментах — поправлю.
В двух словах о моей ситуации:
1 Нода: Prox. IP 192.168.1.1
2 тома LVE: Data и Backup на RAID50 массиве из 6 дисков.
6 ВМ для различных нужд от кешируюшего прозрачного прокси до контроллера домена. (ОС Debian 6, Win2008, XP)
Железка не столь важна.
Симптомы: Веб морда не открывается. Виртуалки пашут штатно, по RDP и SSH пускают.
1) Бекап ВМ штатными средствами KVM.
2) Сохраняем бекапы на сетевое хранилище.
2) Переустановка Proxmox
3) Восстановление машин
Уже позже я сообразил, что два первых пункта можно объединить и бекапить сразу на NAS в NFS-папку.
Второй пункт
не должен представить проблем. Любой способ копирования, тот же UltraVNC позволяет отлично сливать любые файлы с удалённой машины а МС на флешку локально. (Это для ленивых. Настоящие гуру конечно воспользуются консолью)
Третий пункт.
Всё так же элементарно как с установкой любой десктопной ОС. Псевдографический интерфейс на человеческом английском языке, где белым по синему всё подробно описано и объяснено. Самый сложный нюанс выбрать файловую систему для будущих томов и прописать сетевые настройки. (И самое главное не забыть пароль на root)
Четвертое посложнее.
Рецепт был выкопан в сети, опять же к слову, описание коего гуглиться второй ссылкой на первой страницы после официального сайта Proxmox.
Ссылку на него не привожу за ненадобностью а рецепт в кратце опишу.
Вот что представляет собой файл конфигурации:
name: mail
ide2: local:iso/debian-505-amd64-CD-1.iso,media=cdrom
vlan0: virtio=82:15:30:A4:65:E7
bootdisk: virtio0
virtio0: local:516/vm-516-disk-1.raw
ostype: l26
memory: 1024
onboot: 1
sockets: 1
vlan1: virtio=42:45:F5:F2:95:A8
cores: 1
boot: cad
freeze: 0
cpuunits: 2000
acpi: 1
kvm: 1
lock: backup
(По файлу думаю всё ясно и объяснять, что тут что не нужно)
Меняем имя файла образа:
mv vm-disk-virtio0.raw vm-516-disk-1.raw
Копируем его в указаное в конфигурации место.
Меняем имя файла конфигурации:
mv qemu-server.conf 516.conf
Копируем его в папку /etc/qemu-server/ и комментируем последнюю строчку lock: backup.
Все, запускаем виртуальную машину.
В середине июля этого года мы рассказывали о том, что была представлена бета-версия Proxmox Backup Server (PBS). В день холостяков, 11.11.2020 в 11:11, Proxmox Server Solutions GmbH опубликовали релиз версии 1.0.1, что не прошло незамеченным. Взглянем детально, как использовать PBS и для чего он подходит.
Основной упор при создании PBS был сделан на совместимость и удобство работы с Proxmox VE (PVE). Разработчики постарались максимально упростить процесс интеграции и сделать так, чтобы все элементы интерфейса и подход к управлению резервным копированием были интуитивно понятны пользователям PVE.
Короткое, но емкое вводное видео о возможностях Proxmox Backup Server:
Прежде всего установим Proxmox Backup Server. С момента выхода beta-версии инсталлятор остался точно таким же.
Доступные варианты файловых систем в инсталляторе
Примечательно то, что система может сама собрать ZFS-массив и установиться сразу на него. Также для выбора доступна традиционная для Linux файловая система EXT4.
Вариант с XFS не рекомендуем, поскольку у нее имеется ряд существенных недостатков, таких как невозможность уменьшить размер существующей файловой системы, а также сложность восстановления данных при возникновении сбоев.
После установки и перезагрузки появляется возможность зайти в веб-интерфейс управления PBS. Отметим, что не все действия можно выполнить непосредственно из него, часть придется выполнять через CLI. Вероятно, с развитием продукта ситуация в корне поменяется.
Внешний вид веб-интерфейса управления
Главная страница достаточно информативна. Удобные индикаторы, показывающие в реальном времени нагрузку на сервер, данные по занятому дисковому пространству, наиболее длительные операции за последний месяц, а также запущенные задания резервного копирования.
Восстановление контейнера
Сделать бэкап — это лишь половина успеха. Гораздо важнее из него восстановиться. Удаляем наш LXC-контейнер с Ubuntu и попробуем выполнить процедуру восстановления. Для этого в веб-интерфейсе PVE переходим на наш Storage в раздел Content и выбираем файл бэкапа.
Выбор опций восстановления
Для восстанавливаемого контейнера выбираем место размещения, новый ID (по умолчанию будет стоять тот, который был на момент резервного копирования), а также скоростной лимит чтения данных. Это позволит не перегрузить входящий канал сервера виртуализации. Нажимаем Restore и запускаем наш контейнер.
Контейнер восстановлен и запущен
Контейнер успешно восстановлен. На нашем тестовом стенде процедура бэкапа заняла чуть более 9 секунд и восстановилась за 14. Скорость будет зависеть как от выбранных опций, так и от характеристик обоих серверов.
Восстановление из резервной копии
Рассмотрим ситуацию, когда виртуальную машину случайно удалили и требуется ее экстренное восстановление из резервной копии:
- Открываем хранилище, на котором лежит резервная копия.
- Переходим на вкладку Содержимое.
- Выбираем нужную копию и нажимаем кнопку Восстановление.
Создание пользователей
Управление пользователями в Proxmox Backup Server
Перед тем как переходить к бэкапам, нужно первым делом сконфигурировать доступы. Советуем сразу зайти в Configuration — Access Control и создать пользователей для хранилища. Для демонстрации мы изначально создали пользователя test@pbs, которого станем использовать для подключения. Обратите внимание, что при вводе имени пользователя часть '@pbs' обязательна, в противном случае будет выдаваться ошибка о неверно введенных данных.
Теперь переходим к созданию нужных репозиториев (Datastore в терминологии PBS). Это дает возможность четко распределить бэкапы по необходимым системному администратору критериям, а также распределить права доступа. Для создания нам потребуется директория, расположенная на одном из примонтированных дисков.
Выполнение процедуры резервирования
Для создания резервной копии:
- Переходим на нужную виртуальную машину.
- Выбираем пункт Резервирование.
- Нажимаем кнопку Резервировать сейчас. Откроется окно, в котором можно будет выбрать параметры будущей резервной копии.
- В поле Хост вводим IP-адрес нашего сервера виртуализации, в поле Имя пользователя вводим root, в поле Пароль — тот, который был выбран при установке, а в поле Порт указываем «22» (либо любой другой порт, который был задан для SSH-подключений).
- Нажимаем кнопку Быстрое соединение и, если все данные были введены правильно, то в активной панели Вы увидите все файлы, расположенные на сервере.
- Переходим в директорию /mnt/storage. Все создаваемые резервные копии будут лежать в поддиректории «dump». Они будут иметь вид:
- vzdump-qemu-номер_машины-дата-время.vma.gz в случае выбора метода GZIP;
- vzdump-qemu-номер_машины-дата-время.vma.lzo в случае выбора метода LZO.
- raw — образ диска;
- conf — конфигурация VM;
- fw — настройки файервола.
Бэкап данных с любого Linux-хоста
Помимо виртуальных машин и контейнеров, заявлено, что Proxmox Backup Server позволяет бэкапить любые Linux-хосты целиком. Проверим это на практике. Будет использован тот же PBS-сервер. Для корректного выполнения нам потребуется на бэкапируемом хосте выполнить ряд дополнительных действий по установке агента под названием proxmox-backup-client. В роли тестовой машины у нас будет компьютер с той же самой Ubuntu 16.04.
Утилиты proxmox-backup-client в репозиториях Ubuntu нет, поэтому для начала добавим 3 репозитория. Два из них нужны для разрешения зависимостей утилиты, а еще один содержит нужный нам клиент:
В конец добавляем строки:
Выходим из редактора Ctrl + X и отвечаем y на вопрос о сохранении данных. Вытягиваем и устанавливаем ключики репозиториев:
Обновляем список источников приложений:
Осталось лишь выполнить бэкап. Для примера мы забэкапим корневую директорию нашей тестовой машины:
Успешно выполненный бэкап хоста
Режимы архивирования
Proxmox предлагает на выбор системному администратору три метода резервного копирования. С помощью них можно решить требуемую задачу, определив приоритет между необходимостью простоя и надежностью сделанной резервной копии:
- Режим Snapshot (Снимок). Этот режим можно еще назвать как Live backup, поскольку для его использования не требуется останавливать работу виртуальной машины. Использование этого механизма не прерывает работу VM, но имеет два очень серьезных недостатка — могут возникать проблемы из-за блокировок файлов операционной системой и самая низкая скорость создания. Резервные копии, созданные этим методом, надо всегда проверять в тестовой среде. В противном случае есть риск, что при необходимости экстренного восстановления, они могут дать сбой.
- Режим Suspend (Приостановка). Виртуальная машина временно «замораживает» свое состояние, до окончания процесса резервного копирования. Содержимое оперативной памяти не стирается, что позволяет продолжить работу ровно с той точки, на которой работа была приостановлена. Разумеется, это вызывает простой сервера на время копирования информации, зато нет необходимости выключения/включения виртуальной машины, что достаточно критично для некоторых сервисов. Особенно, если запуск части сервисов не является автоматическим. Тем не менее такие резервные копии также следует разворачивать в тестовой среде для проверки.
- Режим Stop (Остановка). Самый надежный способ резервного копирования, но требующий полного выключения виртуальной машины. Отправляется команда на штатное выключение, после остановки выполняется резервное копирование и затем отдается команда на включение виртуальной машины. Количество ошибок при таком подходе минимально и чаще всего сводится к нулю. Резервные копии, созданные таким способом, практически всегда разворачиваются корректно.
Форматы виртуальных накопителей
Расскажем подробнее об используемых в Proxmox форматах накопителей:
-
RAW. Самый понятный и простой формат. Это файл с данными жесткого диска «байт в байт» без сжатия или оптимизации. Это очень удобный формат, поскольку его легко смонтировать стандартной командой mount в любой linux-системе. Более того это самый быстрый «тип» накопителя, так как гипервизору не нужно его никак обрабатывать.
Небольшим минусом работы с этим форматом является следующее: чтобы примонтировать такой образ в любой другой системе, потребуется вначале загрузить особый драйвер nbd, а также использовать утилиту qemu-nbd, которая позволит операционной системе обращаться к файлу как к обычному блочному устройству. После этого образ станет доступен для монтирования, разбиения на разделы, осуществления проверки файловой системы и прочих операций.
Добавление сервера в роли хранилища
Добавление хранилища можно выполнить или непосредственно из веб-интерфейса Proxmox VE (Datacenter — Storage — Add) или вручную. Мы воспользуемся консолью и проделаем следующие шаги. Добавляем наш Datastore командой:
Немного разберем, что делает эта команда:
- pvesm add pbs — добавление хранилища (Storage в терминологии PVE);
- PVE_STORAGE_NAME — это имя будет отображаться в веб-интерфейсе PVE и может отличаться от имени хранилища;
- --server PBS_SERVER_ADDRESS — указываем хостнейм или IP-адрес сервера PBS (при необходимости можно указать и другой порт подключения через --port);
- --datastore STORAGE_NAME — тут указываем имя существующего datastore на сервере PBS.
Тут все также логично. Нам нужно указать реквизиты для подключения к хранилищу. Именно для этого мы предварительно создавали пользователя и распределяли права доступа. Осталось лишь прописать «отпечаток пальца» сервера для установки доверенного соединения.
Так выглядит правильно подключенное хранилище сервера PBS
После выполненных действий мы увидим наше хранилище в списке доступных для хранения данных бэкапов виртуальных машин и контейнеров, а также статистику заполненности. Пора сделать первый бэкап.
Бэкап виртуальной машины
Процедура бэкапа полноценной виртуальной машины ничем не отличается от процедуры бэкапа контейнера, разве что времени занимает больше. Мы для теста создали машину с ID 100 и развернули на ней Ubuntu 16.04, после чего выполнили резервное копирование.
Успешно выполненный бэкап виртуальной машины из веб-интерфейса PVE
Со стороны Proxmox Backup Server это выглядело следующим образом:
Успешно выполненный бэкап виртуальной машины из веб-интерфейса PBS
Как и в случае с контейнером, процедура восстановления проста и тривиальна. Указываем, какой бэкап, куда разворачиваем и будем ли включать машину после завершения процедуры.
Создание Datastore и указание прав доступа
Управление дисками в Proxmox Backup Server
Заходим в раздел Administration — Storage / Disks. Выбираем нужный диск и инициализируем его нажатием кнопки Initialize Disk with GPT. Теперь переходим в раздел Directory — Create:Directory и создаем директорию для хранения данных. Здесь указываем имя репозитория и абсолютный путь к созданной директории. Если поставить галочку Add as Datastore, то новый репозиторий сразу будет подключен как сущность для хранения данных.
Осталось лишь указать пользователей, которые имеют право использовать этот репозиторий, и их уровень доступа. Для этого кликаем на имя созданного репозитория, переходим в раздел Permissions и нажимаем кнопку Add — User Permission. Выбираем нужного пользователя и его роль, затем подтверждаем нажатием Add. На этом предварительная подготовка закончена.
Изменение размера виртуального диска
И в заключение покажем как увеличить размер образа диска, если по каким-то причинам места на нем перестало хватать. Для этого воспользуемся аргументом resize:
Теперь наш образ стал размером 80 Гб. Посмотреть подробную информацию об образе можно с помощью аргумента info:
Не стоит забывать, что само расширение образа не увеличит размер раздела автоматически — просто добавит доступное свободное пространство. Для увеличения раздела воспользуйтесь командой:
где /dev/sda1 — нужный раздел.
Добавляем PBS-сервер в Proxmox VE
Перед тем как добавлять сервер резервного копирования в среду виртуализации Proxmox VE, потребуется выполнить ряд предварительных действий непосредственно на сервере Proxmox Backup Server.
Восстановление отдельных файлов из бэкапа
Часто бывает так, что восстанавливать данные целиком не требуется, нужно лишь вытащить определенный файл или директорию. Сделать это в два щелчка можно прямо из веб-интерфейса PBS:
Пример скачивания отдельного файла из бэкапа
Алгоритмы резервного копирования
Начнем с того, что Proxmox имеет неплохой штатный инструментарий для создания резервных копий виртуальных машин. Он позволяет легко сохранить все данные виртуальной машины и поддерживает два механизма сжатия, а также три метода создания этих копий.
Разберем вначале механизмы сжатия:
- Сжатие LZO. Алгоритм сжатия данных без потерь, придуманный еще в середине 90-х годов. Код был написан Маркусом Оберхеймером (реализуется в Proxmox утилитой lzop). Основной особенностью этого алгоритма является очень скоростная распаковка. Следовательно, любая резервная копия, созданная с помощью этого алгоритма, может при необходимости быть развернута за минимальное время.
- Сжатие GZIP. При использовании этого алгоритма резервная копия будет «на лету» сжиматься утилитой GNU Zip, использующей мощный алгоритм Deflate, созданный Филом Кацем. Основной упор делается на максимальное сжатие данных, что позволяет сократить место на диске, занимаемое резервными копиями. Главным отличием от LZO является то, что процедуры компрессии/декомпреcсии занимают достаточно большое количество времени.
Автоматизация создания резервных копий
Использование ручного способа создания резервных копий — задача весьма трудоемкая и занимает много времени. Поэтому Proxmox VE содержит в себе средство для автоматического резервного копирования по расписанию. Рассмотрим, как это сделать:
- Используя веб-интерфейс гипервизора, открываем пункт Датацентр.
- Выбираем пункт Резервирование.
- Нажимаем кнопку Добавить.
- Задаем параметры для планировщика.
Бэкап LXC-контейнера
Тестовый контейнер с Ubuntu
Для теста мы из стандартного шаблона создали и запустили контейнер СТ100 с запущенной внутри операционной системой Ubuntu 16.04. Теперь переходим в раздел Backup, выбираем нужный Storage и нажимаем кнопку Backup Now. Выбираем тип резервного копирования (об этом можно детально прочитать в одной из предыдущих статей) и выполняем резервное копирование.
Успешно выполненный бэкап из web-интерфейса PVE
Зайдя на сервер PBS, мы также увидим, что у нас теперь есть информация о выполненном задании резервного копирования.
Успешно выполненный бэкап из web-интерфейса PBS
Сохранение «отпечатка пальца» сервера
По умолчанию PBS поставляется с самоподписанным сертификатом SSL. Чтобы в дальнейшем установить доверенное соединение между клиентом и сервером PBS, следует считать его отпечаток и сохранить для последующего использования.
Заходим в Administration — Shell и снимаем «отпечаток пальца» сервера:
Ответом на команду будет строка вида:
В дальнейшем мы будем использовать этот отпечаток для установки соединения.
Клонирование виртуальной машины
Для примера, предположим, что в компании требуется внести изменения в какой-либо критичный сервис. Такое изменение реализуется через внесение множества правок в конфигурационные файлы. Результат при этом непредсказуем и любая ошибка способна вызвать сбой сервиса. Чтобы подобный эксперимент не затронул работающий сервер, рекомендуется выполнить клонирование виртуальной машины.
Механизм клонирования создаст точную копию виртуального сервера, с которой допустимо проводить любые изменения, при этом не затрагивая работу основного сервиса. Затем, если изменения будут успешно применены, новая VM запускается в работу, а старая выключается. В этом процессе есть особенность, о которой всегда следует помнить. На клонированной машине IP-адрес будет точно таким же, как и у исходной VM, то есть при ее запуске возникнет конфликт адресов.
Расскажем, как избежать такой ситуации. Непосредственно перед выполнением клонирования, следует внести изменения в конфигурацию сети. Для этого необходимо временно изменить IP-адрес, но не перезапускать сетевой сервис. После выполнения клонирования на основной машине следует вернуть настройки обратно, а на клонированной машине задать любой другой IP-адрес. Тем самым мы получим две копии одного и того же сервера на разных адресах. Это позволит быстро ввести новый сервис в работу.
Если этим сервисом является веб-сервер, то достаточно только изменить А-запись у Вашего DNS-провайдера, после чего запросы клиентов по этому доменному имени будут направляться уже на адрес клонированной виртуальной машины.
Кстати, Selectel предоставляет всем своим клиентам услугу размещения любого количества доменов на NS-серверах бесплатно. Управление записями осуществляется как с помощью нашей панели управления, так и с помощью специального API. Подробнее об этом читайте в нашей базе знаний.
Клонирование VM в Proxmox является очень простой задачей. Для ее выполнения необходимо выполнить следующие действия:
- Перейти на нужную нам машину.
- Выбрать из меню More пункт Clone.
- В открывшемся окне заполнить параметр Имя.
Главное не забыть обновления
Если подписки нет — ничего страшного. Пропишем в систему no-subscription репозиторий и обновимся с него.
Для Proxmox Backup Server:
Для Proxmox Virtual Environment:
Выходим Ctrl + X и отвечаем y. Теперь можно обновить пакеты вышеуказанной командой и приступить к интеграции PBS.
Работа с образами дисков
В комплекте c Proxmox есть очень удобная утилита, под названием qemu-img. Одной из ее функций является конвертирование образов виртуальных дисков. Чтобы воспользоваться им, достаточно открыть консоль гипервизора и выполнить команду в формате:
Благодаря этой же команде можно принудительно создать нужный образ, используя аргумент create:
Такая команда создаст образ test в формате RAW, размером 40 Гб. Теперь он годится для подключения к любой из виртуальных машин.
Читайте также: