Кто-то «случайно» отключил питание и убежал
Разработчики Livejournal опубликовали официальный анализ инцидента недельной давности. Как известно, в прошлую пятницу серверы LJ были обесточены, а миллионы пользователей лишились доступа к своим дневникам.
Разработчики Livejournal опубликовали официальный анализ инцидента недельной давности. Как известно, в прошлую пятницу серверы LJ были обесточены, а миллионы пользователей лишились доступа к своим дневникам.

Что это было? В&nbsp;<A href="http://www.livejournal.com/community/lj_dev/670215.html">своем сообщении</A> Брэд Фитцпатрик объясняет, почему в&nbsp;компании <A href="http://www.internap.com/">Inetrnap</A> пропало электричество и&nbsp;почему потребовалось так много времени, чтобы восстановить систему.
<P>
<P>Итак, причина исчезновения питания проста до банальности. Один из посетителей дата-центра вдавил кнопку аварийного отключения питания (наличие Большой Красной Кнопки возле каждого выхода из здания требуется согласно государственным стандартам пожарной безопасности США&nbsp;— так удобно работать пожарным), затем вернул ее в&nbsp;прежнее состояние, опустил защитный кожух на место и&nbsp;покинул здание.
<P>
<P>Как говорит Фитцпатрик, он помнит случай, когда какой-то лопух подумал, что большая красная кнопка возле выхода должна открывать дверь. Тогда она была не помечена и&nbsp;никак не защищена. Что случилось сейчас&nbsp;— неизвестно: «Может, парень бежал и&nbsp;упал прямо в&nbsp;кнопку… загадка»,&nbsp;— недоумевает Фитцпатрик.
<P>
<P>Так или иначе, но почему потребовалось так много времени на восстановление системы? Здесь множество причин.
<P>
<P>1. Материнские карты с&nbsp;глючными встроенными сетевыми картами, которые некорректно поддерживают функцию авто-согласования (оперативное автоматическое конфигурирование). Таких оказалось 9&nbsp;штук. Их пришлось настраивать вручную.
<P>
<P>2. Загрузка базы данных. Большинство машин восстановили свою работу после появления электричества, меньше чем через час, но база данных не была настроена на автоматическую загрузку резервной копии после сбоя. Раньше, если какой-то сервер падал, то это не создавало проблем, потому что резервная копия всегда была на соседнем сервере. Но когда они перезагрузились все вместе, то работающих БД не осталось, и&nbsp;базу пришлось запускать вручную.
<P>
<P>3. Проверка данных. Конечно, можно было запустить все БД и&nbsp;надеяться на лучшее, но инженеры решили сначала все проверить и&nbsp;перестраховаться. Во-первых, были сделаны резервные копии всех баз до их запуска. Перед загрузкой нужно было проверить целостность таблиц, которые хранятся в&nbsp;формате InnoDB, а&nbsp;также преобразовать некоторые таблицы из MyISAM в&nbsp;формат InnoDB, чтобы проверить их тоже. На каждой машине в&nbsp;глобальном кластере прошло переиндексирование и&nbsp;проверка данных. Это заняло много времени.
<P>
<P>4. Проблемы с&nbsp;дисковым кэшем. На серверах работали RAID-карты с&nbsp;автономным питанием, но оказалось, что эти карты не отключали дисковое кэширование.
<P>
<P>5. Большинство slave-серверов были оптимизированы на максимальное быстродействие, а&nbsp;не на синхронизацию, поэтому восстанавливать их пришлось очень долго.
<P>
<P>Последствия сбоя электропитания устранялись очень долго, поэтому сайт возобновил свою работу только сутки спустя.
<P>
<P>Поскольку на серверах не использовалась синхронизация бинарного журнала (binlogs) с&nbsp;жестким диском, некоторые транзакции, которые произошли на серверах непосредственно перед отключением питания, оказались безвозвратно потеряны. Администрация Livejournal извиняется перед пользователями, чьи записи оказались уничтожены.
<P>
<P>Чтобы избежать таких проблем в&nbsp;будущем, планируется провести апгрейд материснких плат, подключить источники бесперебойного питания к&nbsp;другой сети, вручную отключить дисковое кэширование за RAID-картами, закончить миграцию с&nbsp;MyISAM на InnoDB, активировать синхронизацию бинарного журнала (binlogs) с&nbsp;жестким диском, перевести другие настройки серверов от производительности к&nbsp;защищенности, а&nbsp;также внедрить утилиту резервного копирования каждого юзера в&nbsp;файл GDBM, которая должна работать для всех пользователей в&nbsp;реальном режиме времени. Эта утилита позволит не только ускорить процесс восстановления, но и&nbsp;восстанавливать пользователей в&nbsp;системе независимо друг от друга. Например, сначала платные аккаунты (таких всего 1,6% среди 5,8&nbsp;млн пользователей), потом самых активных пользователей и&nbsp;т.д. Да и&nbsp;вообще, полезно поддерживать резервную копию в&nbsp;разных форматах.
<P>
<P>Кроме того, говорит Фитцпатрик, уже закуплена куча дополнительных жестких дисков для бэкапа, так что Livejournal основательно проапгрейдился. Подобного больше не должно повториться&nbsp;— честное слово. </P>
Ви маєте увійти під своїм обліковим записом

loading