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

Самый экономичный способ резервного копирования данных Subversion на S3?

Я собираюсь использовать S3 в качестве внешнего хранилища резервных копий для моей базы данных Subversion. Когда я сбрасываю свою базу данных SVN, это около 10 гигабайт. Я хотел бы избежать обвинений в повторной загрузке этих данных.

Анатомия этого большого файла такова, что новые изменения в Subversion изменяют конец файла, а все остальное остается прежним. Поскольку Amazon S3 не позволяет «патчить» файлы изменениями, мне придется загружать десять гигабайт каждый раз, когда я создаю резервную копию после простой отправки в Subversion.

Вот варианты, которые я вижу:

Опция 1 Я смотрю на двуличие, которое --volsize который разбивает данные на несколько мегабайт. Можно ли разделить дампы Subversion, используя это, чтобы дальнейшие инкрементные резервные копии измерялись в мегабайтах?

Вариант 2 Могу я просто сделать резервную копию репозитория hot subversion? Это кажется плохой идеей, если он находится в процессе написания отправки. Однако у меня есть возможность отключить репо в период с полуночи до 4 часов утра. Каждая ревизия в моей Berkeley DB использует файл в качестве записи.

Почему бы не преобразовать ваше репо для использования Формат FSFS вместо BDB?

Таким образом, каждая ревизия будет храниться в отдельном файле, поэтому при инкрементальном резервном копировании будут отправлены только те ревизии, которые были зафиксированы с момента последнего резервного копирования.

Вы можете установить небольшой инстанс Amazon EC2 и сделать резервную копию тома Elastic Block Store (EBS) с помощью rsync или любого другого инструмента, который вам больше нравится. После завершения резервного копирования сделайте снимок, который будет сохранен на S3.

В некоторых отношениях это несколько более сложное решение, но оно компенсирует некоторые ограничения / сложности с S3.

Я знаю, что на самом деле это не ответ, но почему бы не использовать поставщика SVN и не беспокоиться об этом?

Другое решение - использовать git, где у каждого пользователя есть полная копия всех дельт, чтобы вы могли восстановиться после сбоя сервера (поскольку все равны).

Поскольку мне пришлось сделать это недавно, я хотел бы добавить, что диспетчер резервного копирования помог. Он может архивировать дамп и вращать его на s3. я использовал этот для справки.