В современном мире, с постоянно растущими объемами информации резервные копии являются важным элементом инфраструктуры и залогом ее устойчивости. Также они стали отдельным объектом атак и интереса злоумышленников, поэтому очень важно иметь более одной резервной копии и хранить второй экземпляр в отдельной физической локации. И если мы говорим о виртуальной инфраструктуре Proxmox, то самое время познакомиться со штатной возможностью Proxmox Backup Server - работой в режиме удаленного хранилища.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Резервное копирование виртуальных сред сопряжено с рядом ограничений и компромиссов. В первую очередь это достаточно большие объемы данных, а также требуемая глубина копирования и возможность быстрого восстановления. Все это требует держать сервер резервного копирования рядом с инфраструктурой, соединённым быстрыми каналами связи. В тоже время по соображениям безопасности копии крайне желательно хранить на удаленной площадке. И не только потому, что в случае серьёзной аварии, например, пожара или затопления мы можем потерять как рабочие, так и резервные копии, но и потому, что бекапы сегодня являются отдельной мишенью интереса злоумышленников, наравне с рабочими данными.
Поэтому оптимальной стратегией будет размешать основной рабочий сервер в составе инфраструктуры, что позволит быстро выполнять резервное копирование или восстановление. а на удаленной площадке держать резервный сервер, который будет синхронизироваться с основным по отдельному расписанию. Это позволит иметь две независимые копии, что существенно повысит безопасность и устойчивость вашей инфраструктуры.
Такая возможность штатно присутствует в Proxmox Backup Server и называется Remote, она позволяет синхронизировать хранилища (Datastore) локального экземпляра с удаленным экземпляром Proxmox Backup Server и проводить синхронизацию между ними. При этом никакой особой настройки сервера не требуется, любой локальный экземпляр Proxmox Backup Server может выступать удаленным хранилищем для другого сервера и наоборот. Скажем если у вас есть сервера резервного копирования в офисе и филиале, то вы можете настроить их так, что каждый их них будет использовать своего партнера как удаленный сервер, все упирается только в наличие места в хранилище.
Если вы не знакомы с Proxmox Backup Server и не устанавливали, и не настраивали его ранее, то советуем предварительно ознакомиться с нашей статьей:
Установка и настройка Proxmox Backup Server
Далее мы будем подразумевать, что сервера у вас установлены и настроены. Режим удаленного хранилища работает по принципу синхронизации хранилищ (Datastore), при этом настройки локального и удаленного хранилища могут различаться, например, разной глубиной хранения, разной частотой верификации и т.д. и т.п. Также можно выбирать ведущую роль, инициировать синхронизацию может как основной, так и удаленный сервер. Это позволяет достаточно гибко организовать данный процесс в зависимости от требований безопасности и удобства администрирования.
Настройка удаленного хранилища с ведущим основным сервером
Наиболее простой, но менее безопасный способ, так как основной сервер имеет доступ к удаленному хранилищу и в случае его компрометации злоумышленники могут получить туда доступ. В тоже время он наиболее удобен для администрирования, так как все настройки делаются в одном месте и вам не нужен административный доступ к удаленному серверу.
Настройка удаленного сервера
Прежде всего создадим на удаленном сервере отдельное хранилище, для этого перейдите в раздел Datastore - Add Datastore, этот процесс ничем не отличается от создания локального хранилища. Что касается настроек, то их следует указать либо как в основном хранилище, либо изменить по собственному усмотрению, как мы уже говорили выше, вы можете сократить или увеличить количество хранимых копий, в зависимости от вашей политики резервного копирования и доступного дискового пространства. Также мы советуем выбирать название хранилища таким образом, чтобы сразу было понятно, что это удаленная копия. Например, мы используем префикс remote.
Затем нам нужно создать нового пользователя, который будет иметь доступ к этому хранилищу, мы крайне не рекомендуем использовать для этого уже существующих пользователей и тем более суперпользователя root. Для этого перейдите в Configuration - Access Control - User Management, после чего укажите желаемое имя пользователя и его пароль.
Затем здесь же переходим на вкладку Permissions и выдаем созданному пользователю права DatastoreAdmin для созданного хранилища (хранилищ). В зависимости от политик безопасности вы можете использовать как отдельных пользователей для каждого хранилища, так и одного для всех, но соблюдая условие, что удаленный пользователь не имеет прав к локальным хранилищам.
На этом настройка удаленного сервера закончена.
Настройка локального сервера
На локальном сервере переходим в раздел Configuration - Remotes и подключаем удаленное хранилище. В поле Remote ID указываем желаемое имя хранилища, а в поле Auth ID - имя пользователя для доступа к нему, ниже указываем адрес сервера и пароль, также нам потребуется отпечаток сертификата удаленного сервера (Fingerprint), его можно получить на главной странице веб-интерфейса (Dashboard).
Напоминаем, что подключаете вы не удаленный сервер, а только набор хранилищ, доступные указанному при подключении пользователю и если хранилищ и пользователей у вас несколько, то необходимо добавить в этом разделе несколько записей.
После чего переходим в локальное хранилище, которое мы хотим синхронизировать и переходим на закладку Sync Jobs, там по кнопке Add доступно два варианта: Pull Sync Job - получить с удаленного сервера и Push Sync Job - отправить на удаленный сервер. Выбираем последний вариант. В открывшемся окне выбираем удаленный набор хранилищ - Target Remote и указываем доступное хранилище Target Datastore на удаленном сервере. Затем в поле Sync Schedule указываем расписание обмена и ограничение скорости Rate Limit, мы настоятельно советуем не пропускать эту настройку, если вы не хотите, чтобы синхронизация полностью положила вам внешний канал.
Отдельно коснемся настройки Remove vanished - при ее включении в удаленном хранилище также будут удаляться копии, которые отсутствуют в локальном. Может показаться, что это хорошая идея, но на самом деле лучше настроить отдельное задание очистки удаленного хранилища, так как если по какой-то причине вы или кто-то еще удалит все локальные копии, то они также будут удалены и в удаленном хранилище.
Настройка удаленного хранилища с ведущим удаленным сервером
С точки зрения безопасности данная схема является предпочтительной, так как локальный сервер не имеет никакого доступа к удаленному и даже при его компрометации удаленному набору резервных копий ничего не угрожает, но требует наличия административного доступа к обоим серверам.
Настройка локального сервера
Настройка локального сервера как таковая не требуется, разве что вы хотите ограничить права доступа, для того чтобы получать копии с удаленного сервера вам не нужно право записи и поэтому можно создать пользователей, ограниченных в правах только чтением.
В этом случае их настройка аналогична подобной для удаленного сервера: на каждое хранилище / группу хранилищ нам потребуется пользователь с правами не ниже, чем DatastoreReader. Это серьезно увеличивает безопасность, так как при возможной компрометации удаленного сервера ваши локальные копии не смогут быть удалены, в отличии от доступа с ролью DatastoreAdmin.
Настройка удаленного сервера
Точно также переходим в Configuration - Remotes и подключаем удаленный набор хранилищ с локального сервера. Все настройки аналогичны настройке локального сервера в прошлом сценарии, только теперь нам потребуется отпечаток сертификата локального сервера.
После чего создаем хранилище для синхронизации с хранилищем локального сервера. Никаких пользователей создавать не нужно, равно как и устанавливать на хранилище какие-то права. После создания хранилища переходим на закладку Sync Jobs - Add - Add Pull Sync Job и заполняем поля аналогично прошлому сценарию: в Source Remote указываем удаленный набор хранилищ и конкретное хранилище для синхронизации - Source Datastore. В Sync Sсhedule указываем расписание, а в Rate Limit - лимит скорости канала, остальные опции оставляем без изменений.
На этом настройка удаленного сервера окончена.
В заключение хотелось бы заметить, что первичная синхронизация подразумевает большой объем передаваемых данных и поэтому, если есть такая возможность, ее желательно выполнить, разместив оба сервера в одной сети, а только потом разнести по разным локациям.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии