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

Как сделать резервную копию данных моего клиента?

Если вы запускаете приложение SaaS или работаете над ним, я буду рад услышать от вас. Где безопасность данных ваших клиентов имеет первостепенное значение, как вы их обезопасите и создадите резервную копию? Я хотел бы знать ваш основной хост (например, Heroku, Engine Yard, Rackspace, MediaTemple и т. Д.) И кого вы используете для резервного копирования.

Будьте как можно более подробными - например, краткий обзор вашего сервиса и данных, которые вы храните (например, изображений), что происходит с изображениями, когда пользователь загружает их (например, они переходят на ваш Linode VPS и публикуются на сайте для просмотра - тогда они автоматически отправляются в AWS или куда-то еще, затем один раз в неделю они копируются на ленту управляемым хостинг-провайдером, а вы также сохраняете их у себя дома / в офисе).

Если бы вы также могли дать некоторое представление о том, какова стоимость единицы (за ГБ / на пользователя / в месяц) хранилища - в среднем, я был бы очень признателен.

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

Спасибо!

Я занимаюсь операциями в относительно крупной онлайн-службе совместной работы. У нас есть около 200 ГБ реляционных данных в базах данных MySQL и около 20 ТБ пользовательского контента.

У нас есть собственное серверное оборудование, поэтому у нас есть несколько серверов хранения файлов для пользовательского контента. На этих серверах работает MogileFS, которая настроена на репликацию 3 копий каждого файла в кластере. Поскольку у нас есть копии на 3 разных серверах, мы не используем RAID на файловых серверах. Хранение 3 копий означает, что мы можем справиться с отказом диска или отключить сервер для обслуживания, и при этом у нас останется по 2 копии каждого файла.

Каждый час мы выполняем резервное копирование вне офиса с помощью собственного сценария. Сценарий ищет новые файлы и делает резервную копию на внешнем сервере. Этот сценарий хранит собственную базу данных, в которой указано, какие именно файлы уже были зарезервированы. (Мы могли бы просто использовать временную метку, чтобы определить, какие файлы копировать, но это не позволит нам создавать резервные копии, когда это необходимо. Мы также могли бы просто проверить удаленный сервер на наличие каждого файла, но с 150 миллионами файлов в MogileFS, это займет вечность!)

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

Мы используем Backup Manager для обработки резервных копий нашей базы данных MySQL и других резервных копий серверов. Backup Manager великолепен - он обрабатывает все автоматически, например, шифрует резервные копии и отправляет их за пределы сайта. Backup Manager выполняет инкрементное резервное копирование указанных каталогов на серверах и запускает mysqldump для наших баз данных.

Вы даже можете передать другие инструменты через Backup Manager - например, я тестирую Percona XtraBackup с Backup Manager для более быстрого резервного копирования MySQL. (Технически XtraBackup не ускоряет резервное копирование - он ускоряет восстановление. Без XtraBackup на восстановление нашей 40-гигабайтной базы данных MogileFS ушло почти неделя. Это помогло настроить MySQL, но даже тогда производительность восстановления была недостаточной. Я только начал тестировать XtraBackup, который может позволить нам восстановить базу данных за часы, а не дни.)

Я настоятельно рекомендую использовать Backup Manager - он невероятно быстр в настройке и обрабатывает все механизмы создания удаленного резервного копирования. Я даже начал использовать его на двух своих личных серверах, храня зашифрованные резервные копии на Amazon S3. Пока ваш набор данных не станет очень большим, Backup Manager должен иметь возможность обрабатывать все за вас, включая конфигурацию сервера, исходный код и пользовательские данные. Он автоматический, зашифрованный и очень простой в использовании.