Сочувствую Вам, вы стали очередной жертвой закона бутерброда.
В разных ситуациях используем разные средства, в некоторых случаях бекапы грузится на другой сервер, в некоторых на другой винчестер, а иногда для бекапов используется Dropbox.
> P.S. Напишите в коментах, какие средства вы используете для резервного копирования?
для базы лучше всего делать тупо дамп средствами MySQL, жать его и хранить как есть. последующие бэкапы — это по сути диффы от начального состояния. раз, например, в неделю делать полный бэкап (и последующие ежедневные диффы уже от него).
файлы — аналогично. для файлов кстати, если они в основном текстовые (вебсайты например) может быть лучше подойдет использование VCS (с бэкапом его конечно же).
База да, согласен, после этого случая я примерно так и сделал.
Файлу не так актуальны, т.к. итак есть несколько копий у разработчиков и под версиями. Хотя… пойду-ка я проверю как у меня там.
бэкапы кстати (если они действительно важны) лучше хранить в двух и более удаленных друг от друга местах (локальный сервер, винт с еженедельными бэкапами в сейфе, месячный архив в криптоконтейнере на удаленном сервере, etc)
Это все понятно, но в моем случае ставка делалась именно на HP. Они кстати и правда не понимают как такое могло случиться.
К тому же дывает так, что данные не должны покидать серверную. Ну и представьте что основное устройство, контролирующее все процессы накрылось. Данные скорее всего целехоньки, вот только попробуй их достань теперь.
> К тому же дывает так, что данные не должны покидать серверную.
а если пожар в серверной? как минимум тогда хотя-бы нужно регулярно скидывать бэкапы на переносной винт/ленты и хранить его в сейфе у начальника.
> Ну и представьте что основное устройство, контролирующее все процессы накрылось. Данные скорее всего целехоньки, вот только попробуй их достань теперь.
напомнило ситуацию с накрывшимся аппаратным RAID контроллером (из тех что хранят служебные данные во встроенной флешке). данные фактически есть на винтах, но их хрен восстановишь.
А я никогда не бэкаплю что-то отдельно, целиком жесткий диск. Места всегда хватает, если использовать Incremental backup, который по сути в случае бэкапа добавляет только те данные, которые изменились. Юзаю Acronis True Image.
Т.к. все это делается на бинарном уровне, то вопрос появления вопросиков просто исключен.
Как я вас понимаю, у меня вот тут в пятницу рухнула система вся на серваке, а конкретно винт с виндой и файлохранилищем, абсолютно неожиданно, просто взяло все и рухнуло. Винт полетел, с трудом получилось восстановить файло. Бекапы системы не делалось оооочень давно, единственный бекап был двухгодичной давности с которого я и восстановил систему, щас вот сижу все привожу к нужному виду. Делайте бекапы всегда и всего что очень важно! Не ленитесь! Проверяйте состояние резервного копирования! Делайте копии ваших бекапов на другие носители!
рейда не было, как я понимаю?
Не следует смешивать отказоустойчивость дисковой подсистемы (raid 1|5|6), бэкапы (копии файлов, образы систем, дампы баз, etc.) и архивирование (ленточные накопители, отдельный сервер в удаленном ДЦ, etc.) в одну кучу, это три разных составляющих доступности данных.
Да я и не сравниваю вовсе, я рассказал о своей проблеме и о том, что я не снимал периодически образы системы, а сейчас мне предстоит настроить много чего заново, а если бы я снимал периодически образы системы, то я бы не сидел бы щас на работе и не выходил бы завтра на работу и в понедельник мне предстоит настраивать пользовательские компы когда они выйдут на работу.
Я для бэкапов информации с компьютера использую DropBox.com, SugarSync.com, а для сайтов и всей остальной онлайн жизни (почты, твиттера, фоток) — Backupify.com
А как быть с бэкапом «онлайн жизни». Не подумайте что это плохо, важно что вы бэкапите впринципе. Куда — это уже второй вопрос.
Так вот в моем случае, это серверная с режимным доступом без выхода в интернет.
ну тогда для бэкапа «онлайн жизни» используйте онлайн-сервисы, а для серверной с режимным доступом придется оффлайн утилитами пользоваться и переносным винтом. А если данные не должны покидать серверную, то пусть там стоит сейф, в который этот винт положить можно. Ну и конечно противопожарный сейф
Один из этапов тестирования продукта у нас это тестирование бекапов при полной физической потере рабочих данных (датацентр с рабочими серверами взорвался:) ).
Берется человек, который ничего не знает о системе.
Ему даются ссылки на документацию по развертыванию системы, развертыванию бекапов. Запрещается общаться с админами которые систему админят и программистами которые систему программят. Он выставляет требования для восстановления: сервера, оси. Мы сетапим сервера. После сетапа замеряем сколько времени потребовалось для процедуры восстановления и удалась ли она вообще.
Если не удалась — определяем в чем дело — доки, отсутствие компонент и т.д.
В зависимости от нагруженности проекта, мы сервера держим либо в VZ-контейнерах на наших фермах, либо на выделенных серверах.
Соответственно бекапим сами контейнеры. Мускуль бекапим через репликацию: мастер -> слейв и со слейва уже либо пофайлово либо дамп.
Читал комменты и думал: «неужели никто не предложит тестировать бэкапы хотя бы после первого создания и серьёзных изменений». Сам так жестоко («человек, который ничего не знает», «запрещается общаться с админами» и т. п.) не тестировал, но уж на виртуалке прогнать полный цикл восстановления после «взрыва датацентра» обязан, по-моему, любой, кто процедуру резервного копирования организовал.
Конечно, общаться мы напрямую не запрещаем. Это лишь моделирование ситуации.
Все знают о программисте, которого переехал автобус. Сисадминов почему-то все считают автобусоупорными :)
Одно из моих правил построения бизнеса — бизнес должен выживать при 100%-й ротации персонала. Лучше заранее заложить 10% времени на подобные риски, чем потом бегать с голой задницей. Спасало неоднократно.
Даже если у вас остались программисты, которые писали проект при падении системы, мало того, что вы тратите время(деньги) на восстановление, так еще и отвлекаете программистов (тратите деньги) на консультации. Если систему писали год назад, то им прийдется порядком пить кофе и вспоминать что же они там накодили.
>бизнес должен выживать при 100%-й ротации персонала.
Надо будет запомнить, а то «незаменимых людей нет» как-то приелось, а некоторые ещё и обижаются :) Правильный подход, конечно, но в моем случае избыточный — без меня мои данные и восстанавливать некому будет.
Но раз уж я решил делать бэкапы, то время от времени проверяю, а смогу ли я из них восстановить всё что нужно с нуля. Я в виртуалке имитирую ситуацию «старый комп упал, причём со стола упал, и куплен новый». Часто обнаруживается, кстати, при таком подходе (это не для вас, а для читателей и автора топика, а отдельный коммент не хочется писать), что в первоначальной стратегии резервного копирования что-то упущено (конфиги сервера БД, например) или копируется не полностью (данные есть, а их структуры или хранимых процедур нет)
> бизнес должен выживать при 100%-й ротации персонала
Это, кстати, называется «сертификация по ISO 9001», и на эту тему есть куча книжек и правил (но там, правда, не выживаемость, а более — обеспечение качества). Самое базовое — надо выделять бизнес-процессы и документировать их.
> Если систему писали год назад, то им прийдется порядком пить кофе и вспоминать что же они там накодили.
Поэтому я всегда говорил — код надо документировать, а в идеале документировать комментами в коде, и свн вести, с подробным описаловом изменений.
И сам с некоторых пор стал документировать все настройки, которые делаю. Не то, чтоб под автобус собрался, но порой напрочь забываешь через несколько месяцев что и где ты нагуглил. Хоть конфиги и бэкаплю, но все-таки…
Да уж, бэкапы тема такая. В свое время поимел кучу батхерта из-за повреждения базы сервера ленточной библиотеки. К счастью рекавери план предусматривал копирование базы на ленты.
Поздравляю от души. Вы реально молодец, и люди, которые с вами работают должны гордиться знакомством с вами! Вам может показаться, что слишком сильно похвалил… Но я помню себя в такой ситуации, помню своих коллег и знаю, очень был большой соблазн — «а ну их нафиг, с их данными», а вы их сохранили, и все работает как прежде. Спасибо, за честное отношение к работе и поднятие имиджа нашей профессии!
Вы идиот? Признайтесь честно. Сис админа был бы нафиг не нужен никому ВООБЩЕ, если бы не давал гарантию на целостность аппаратно-информационной структуры. Автор не гений и не Боярский, просто записки эникея, о том: «Вот я второй месяц на должности сис админа», любой вменяемый человек тестирует свои бэкапы, ЛЮБОЙ!
А я не в должности сисадмина. Да и «записки» совсем не об этом и не для таких НЕэникеев как вы. Я написал этот топик для того, чтоб помочь кому-то научиться на моих ошибках.
Очень редко встречаешь людей, которые любят свою работу и своих клиентов. Я не сисадмин, я занимаюсь софтом, но почему вы так негативно отзываетесь на опыт молодых (и зацените, честных, заинтересованных в работе) сотрудников в своей же отрасли? Они работают так, чтобы вам за профессию стыдно не было… Пожалуйста, бросайте негатив, не знаю куда, дайте людям работать в удовольствие… и поддерживайте их.
«Я занимаюсь софтом» — понятно. Почему я так отзываюсь? Потому что: "(и зацените, честных, заинтересованных в работе)" и «Быстренько сделав задачу на бэкап и настроив уведомления я забыл об этом на полгода.» — взаимоисключающие понятия, как видите все просто.
Блин. Ну нельзя понять на самом деле что ты делаешь на работе, не попробовав кого-то этому научить. И дай тебе бог, если тебе на работу придет такой стажер как автор статьи — ты его на ура всему научишь. А если реально дерево придет, что ты будешь делать, как ты ему обяснять будешь что и почему делать надо?
А «быстренько настроил бэкап и уведомления» через пару лет придут к другой стороне — клиент захочет кнопочку Backup на рабочем столе иметь, плюс уведомление по почте. А работает клиент на MS Windows. И где вы в этот момент со своими специальными знаниями по юникс и не желанием общаться с людьми окажетесь?
Счастья тебе, ребёнку и жене! В Москве жаль вряд-ли получиться встретиться — обычно проездом там (с рейса на рейс пересадка). А поругаться немного стоило все же явно :)
очень удобно по крону сливать дампы на Amazon R3. у нас хостинг аккаунты пакуются и каждую ночь льются туда, где-то 3ГБ за ночь. денег в месяц получается в районе 15 баксов всего.
Поздравляю. Вы очередной человек, попавшийся на удочку «а какое бы ПО мне сегодня заюзать в продакшене для вполне себе обычной задачи».
Ошибка раз — не использовали стандартный Mysql клиент (вот только не говорите, что под рукой не было VDSки с самым примитивным Linux, который пускал бы этот скрипт в bash'e).
Ошибка два — вы не использовали стандартный Mysql клиент
Ошибка три — …
Поверьте, приложение, которое годами затачивалось под определенную задачу всегда будет работать лучше аналогичного кусочка из адского комбайна. Добро пожаловать, в мир идеологии UNIX, где всё очевидно и просто.
Это злой рок — вы только в начале пути. У нас это уже было несколько раз и каждый раз мы пытались обезопасить себя новыми способами — но случалось именно то, что наносило наибольший урон.
Жизнь админа это кошмар — но тот кто остается и разгребает все и должен зваться админом.
> P.S. Напишите в коментах, какие средства вы используете для резервного копирования?
Базы данных — стандартными средствами самих баз данных. Попросту говоря — дамплю, потом гзипую, и на сторэдж, который зеркалируется. На мой взгяд ничего лучше еще не придумано.
1С обычной выгрузкой по расписанию, и тоже на сторэдж зеркальный. Может умнее было бы дампить МСсикульную базу, но насколько я в курсе, там проблемы с восстановлением, 1С без бубна видеть восстановленную базу не будет, так что выгрузка проще, да и бывает нужно поднять локально, на определенную дату.
А для файлов — Symantec Backup Exec, очень приличное решение, только один минус — не умеет он никсовые фс ставить на континюс протекшн. За сим пришлось поднимать ФриНАС и цеплять его к к винде по iSCSI. Итого я получаю постоянный текущий бэкап и возможность восстановления на 64(если память не подводит) шага назад, с указанным временным промежутком. При этом скоращаю свое вмешательство, т.к. пользователь сам может восстановить свои файлы по версиям, если случайно накосячил =)
Поздравляю, вы совершили почти все мыслимые ошибки при защите данных, которые можно было совершить.
У вас есть шанс запомниь этот случай, и больше никогда так не делать.
Впрочем, увы, наивно было бы думать, что ваш опыт хоть кого-то чему-то научит. «История учит, что она ничему не учит».
Дык никтож и не спорит. Более того, я и раньше это знал. Надо было сделать срочно, а работы и без того была масса. Вот я и пишу для того, чтоб другие так не делали.
Да я и Handy Backup недаром вспомнил. Сколько он уже существует, а такой простой баг до сих пор есть. Это говорит о том, что за все это время никто не обращался с проблемой, а возможно мало у кого доходило до реального восстановления. Пусть не все его юзают, но всеже программа популярна.
Так написали бы в посте самый главный вывод — разработайте и проверьте не только систему резервного копирования, но и систему восстановления с резервных копий и, желательно, задокументировать, хотя бы для себя, чтоб через полгода не вспоминать, а что это за файл, глядишь кому в память и врежется :)
1 бэкап файлов раз в месяц (24 бэкапа), 1 раз в неделю (4 бэкапа), 1 раз в день (24 бэкапа). Все с ротацией — при достижении макс. кол-ва файлов, все пишется в файл №1, потом в файл №2 и т.д.
С базой тоже самое, но еще идет репликация в другой ДЦ. Из-за репликации появляется возможность восстановить сайт за 5-10 минут на другом сервере. DNS переключается моментально из-за маленького TTL (юзаем платный DynDNS).
Все это дело бэкапится в 5 точек, находящихся в разных концах Москвы.
Когда-то бэкап шел на другой сервер в том же датацентре. Но скачек напряжения, вырубивший оба сервера, заставил пересмотреть подход к бэкапу.
Все на Perl + Shell.
Ах да, еще файлы хранятся в SVN, который имеет зеркало.
Осталось настроить отчеты и сделать страничку с общей статистикой.
Горький опыт, резервное копирование и качественная техподдержка