Назад | Перейти на главную страницу

Резервное копирование через распределенные файловые системы

Надеюсь, что смогу сформулировать свой вопрос как можно точнее.

Я ищу способ делать резервные копии для моих виртуальных серверов как можно скорее и чаще, поскольку данные, которые они обрабатывают / производят, являются ценными. У меня есть KVM-Host и как минимум 2 гостя: веб-сервер (Apache / PHP) и сервер базы данных (MySQL / Solr). Я не очень забочусь о хозяине, но о гостях. Я не хочу, чтобы вы углублялись в KVM или виртуализацию в этой теме. Этот поток должен быть применим ко всем средам на основе vm, а также ко всем другим средам. Сценарий виртуальной машины подходит хорошо, потому что он более сложен и представляет одну из самых сложных ситуаций в моем воображении. По крайней мере, мне это нужно исходя из этого.

В настоящее время у меня есть резервные копии в виртуальной машине и снимки состояния на основе LVM, которые я создаю 1-2 раза в день. В случае аппаратного сбоя (который у меня был недавно) я в лучшем случае пропускаю целую кучу данных.

Таким образом, один из способов - отказаться от каждого приложения / службы и применить лучшую доступную стратегию резервного копирования. Следует учитывать в каждом конкретном случае.

Еще один интересный способ - это использование распределенной файловой системы. Идея состоит в том, чтобы иметь файловую систему, которая немного напоминает двоичный журнал MySQL. Или в более общем смысле: он фиксирует все действия записи в файловой системе и асинхронно реплицирует их на другую машину. В зависимости от сети и объема записываемых данных это может закончиться задержкой в ​​секундах или минутах и, разумеется, пропускаются все действия, которые хранятся в кеше. Итак, у меня есть виртуальная машина, которая находится в распределенной файловой системе, установленной на виртуальном хосте. Каждое действие записи затем асинхронно применяется на (скажем) резервном сервере. Когда дело доходит до аппаратного сбоя, я могу переключиться на резервный сервер (теоретически) в качестве нового главного сервера или просто скопировать файлы обратно на восстановленный главный сервер в случае, если время простоя более приемлемо, чем потеря данных. Эффект должен заключаться в том, что виртуальная машина будет действовать так, как будто она была переключена с секунд на минуты до этого. Но не часы. Я не ищу репликацию мастер-мастер на уровне файловой системы, так как это не поддерживается большинством приложений, особенно серверами баз данных, такими как MySQL!

Итак, мой вопрос: есть ли кто-нибудь, кто уже имел некоторый опыт работы с такими конфигурациями или имеет знания, как положительные, так и отрицательные для этой попытки резервного копирования данных? У меня нет глубокого опыта работы с этими файловыми системами. Особенно по надежности и производительности.

Распределенная файловая система - это не резервная копия, это избыточность. Он также сделает резервную копию ваших случайных удалений.

Тем не менее, DRBD.

Наилучший ответ на вашу ситуацию - это кластерное хранилище, при котором данные хранятся с избыточностью на уровне блоков. Есть несколько разных способов реализовать это, но лучшее, что я могу себе представить (по крайней мере, в соответствии с вашими техническими требованиями), - это кластер с открытым стеком. Openstack будет распределять как хранилище, так и вычисления, так что в случае аппаратного сбоя и выполнение, и хранилище будут избыточными и непрерывными. Другими словами, лучший способ сохранить целостность данных и время безотказной работы - убедиться, что приложение вообще не дает сбой. Как указал yoonix, это не защитит вас от пользовательских / логических ошибок, но открытый стек также включает инструменты для создания образа диска / резервного копирования - загрузка образа и загрузка занимает минуты, если не секунды. Amazon Web Services и Rackspace являются примерами развертываний openstack. http://www.openstack.org/

Хорошее место для начала с openstack - это devstack (в значительной степени сценарий развертывания с различными режимами развертывания для тестирования) http://devstack.org/

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

Думали ли вы о переходе на платформу VMware и использовании для этого их решений?

«Отказоустойчивость» (с использованием vLockstep) поддерживает вторую «резервную» копию любой виртуальной машины в актуальном состоянии со всеми изменениями, внесенными в основную версию виртуальной машины. Если что-то происходит с основной версией, система немедленно переключается на дополнительную виртуальную машину. (минимальное время простоя или влияние)

«Высокая доступность» поддерживает резервную виртуальную машину наготове, но резервная виртуальная машина остается выключенной. В случае отказа основной виртуальной машины система автоматически включает резервную виртуальную машину. (несколько минут простоя)

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