Главная Windows, Новое Пока гром не грянет…
  • Пока гром не грянет…

    pesets

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

    Итак, однажды все же случилось то, что могло представиться только в страшном сне.

    Одним прекрасным утром ко мне подходит наш тестировщик и спрашивает: “А что случилось с TFS’ом?”. TFS – Team Foundation Server, некое веб-приложение, завязанное с MS Visual Studio, используемое программистами для отслеживания багов, и возможно – еще для чего-то, во всяком случае для меня этот TFS был «черным ящиком».

    Сервер, на котором это приложение запускалось представлял из себя обычный системный блок, с внешним SATA RAID-контроллером Adaptec 2410S. На трех SATA-дисках объемом 149Гб был создан массив RAID5, на котором все и было установлено. Батарейки у контроллера, естественно не было. Да, сейчас в меня полетят помидоры, но увы – сервер был поднят еще до меня, на брэндовый (судя по всему) денег не давали, да и я тогда особо не задумывался об этом. А зря.

    Итак, я, ничего плохого не подозревая, пингую сервер, на котором был установлен TFS. Не пингуется. Матерясь про себя, я пошел в серверную проверять кабеля – вроде все в порядке, сервер включен, диод “Link” на сетевой карточке горит. Захожу на сервер с KVM’a – и вот оно: «Non-system disk or disk error». С помощью Святой Троицы (Ctrl-Alt-Del) я перезагружаю сервер. Проходит POST, инициализируется RAID-контроллер и вдруг… «Array #0 has missing required members. Found 0 arrays.» Теперь я начинаю материться уже вслух. Нажимаю Ctrl-A, захожу в BIOS контроллера.

    Смотрю – а статус массива – FAILED. Два диска из трех показаны серым цветом.

    “Так вот ты какая, белая северная лисичка!” – подумал я. Начал думать, что же, собственно, произошло. Контроллер вроде как работает. Диски тоже будто бы видны. Запускаю проверку обоих “проблемных” дисков утилитой в BIOS контроллера. Проверка проходит успешно, “0 errors found”. Перезагрузка – опять массив не найден.

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

    Винты вроде бы определились. Надо теперь как-то вытащить с них данные, а именно – базы данных, в которых хранились данные TFS. Самая большая проблема заключалась в том, что надо было каким-то образом воссоздать структуру RAID-массива, и при этом не потерять данные.

    Блуждая по интернету, наткнулся на прогу Runtime RAID Reconstructor.

    В описании было сказана, что она может автоматически определить структуру массива. Качаю, запускаю.

    Окно программы выглядит так:


    reconstructorВ левой части окна я выбрал свои диски. Кстати говоря, эта программа позволяет создать полные образы дисков и потом подключать их вместо “живых” дисков – может оказаться полезным, когда диск начинает “сыпаться” и может выйти из строя в любую минуту.
    Затем я нажал “Open Drives” и “Analyze”, чтобы проанализировать структуру массива.
    В мастере анализа, кстати, нет размера блока 512Кб (который вроде как использовался у меня), но можно добавить Custom Size, что я собственно и сделал. Количество секторов для анализа я оставил дефолтное (10000).
    Анализ прошел успешно, структура массива была определена.
    После этого она создала Virtual Image File – маленький (меньше 1Кб) файл с расширением *.vim, в котором описывается структура массива.
    Эта же программа затем предлагает открыть файл разными утилитами от Runtime – Captain Nemo, GetDataBack, Disk Explorer. Мне нужна была, судя по всему, Captain Nemo: задача была – вынуть данные с дисков. Качаю. Ставлю.
    Открываю ей свой vim – и, о, чудо! – увидел полное дерево папок! Нашел нужные файлы баз, сохранил их через Captain Nemo на свой винт и подключил на свежеустановленном TFS’e – и все заработало! Можно сказать, «пронесло». Заявлние об увольнении отправилось в шредер.
    Теперь – подведем итоги.
    В качестве сервера использовался обычный системник.
    Система вместе с БД лежали на одном 3-дисковом массиве RAID5, на одном разделе.
    Массив был построен на 3 SATA винтах, с использованием контроллера Adaptec 2410SA.
    Причины сбоя так и не удалось установить. По моим подозрениям, причиной стал сбой по питанию. RAID-контроллер не снабжен BBU (батарейкой резервного питания) и, по-видимому, во время записи на диск произошел сбой питания, в результате чего потерялась некая информация о структуре массива, и контроллер стал считать 2 жестких диска сбойными.
    Мораль сей басни такова: Нельзя целиком доверять RAID’у! Особенно – сделанному на дешевом железе.
    Надеюсь, сей опус поможет кому-нибудь, кто попадет в подобную ситуацию. Но все же еще больше я надеюсь, что она поможет не попадать в нее. На этой оптимистичной ноте я, пожалуй, закончу.

    • Рубрика: Windows,Новое
    • Автор: Александр Косивченко
    • Дата: Thursday 09 Apr 2009

Комментарии

  1. Админы делятся на тех кто ещё не делает бекап и на тех кто уже делает бекап. (c)

  2. Именно! Думаете, зря картинка в верху? 🙂

  3. Нет рейда кроме единички, и десятка пророк его!
    Рейд 5 – потенциально проблемная конфигурация, особенно на 3 дисках.

  4. Ага 10-ка рулит однозначно, но статья хорошая, автору спасибо.

  5. Какая-то не законченная статья…
    Рейд и не должен заменять бэкап, у него другая задача…

  6. Спасибо, Евгений!
    Дело в том, что это даже не столько статья, сколько история из жизни – другим в назидание. Поэтому и стиль статьи не научный, а ближе к художественному, поэтому и эмоции из текста я не убрал.
    А RAID бэкап и не заменяет. Хотя RAID1 – это грубо говоря бэкап на диск. Эдакий Continious Data Protection 🙂

  7. да не плохо было бы еще и ссылки на проги давать (ну это так к слову)

    спасибо за статью!

  8. да и PDF статьи неть (