Блог Монашёва Михаила
Без бэкапа по жизни.
Привет, Гость
  Войти…
Регистрация
  Сообщества
Опросы
Тесты
  Фоторедактор
Интересы
Поиск пользователей
  Дуэли
Аватары
Гороскоп
  Кто, Где, Когда
Игры
В онлайне
  Позитивки
Online game О!
  Случайный дневник
MindMix
Ещё…↓вниз
Отключить дизайн


Зарегистрироваться

Логин:
Пароль:
   

Забыли пароль?


 
yes
Получи свой дневник!

Блог Монашёва Михаила > Хранилище




четверг, 24 апреля 2008 г.
Организация дешёвого стораджа для раздачи статики Михаил 11:07:21
На РИТ-е Андрей Нигматулин рассказывал про то как в badoo.com организована раздача фоток юзеров. Самое важное, что я вынес из его доклада: задача хранение и раздачи - это две разные задачи и смешивать их не стоит. Я же при реализации своего хранилища статики для beon.ru смешал эти задачи и в результате получил проблемы со скоростью раздачи.

Недавно тут http://community.li­vejournal.com/ru_hig­hload/38414.html задавался похожий вопрос и я решил написать о том, как дёшево и правильно организовать хранилище.

Размер файлов и случайность доступа к ним приводит к постоянному позиционированию головок на винтах. И чем мельче файлы, тем скорость отдачи ниже. Но следует заметить, что у SAS-винтов в отличие от SATA- есть одно огромное преимущество: ТCQ. Это очередь из 32к (или более) запросов к диску с алгоритмом оптимизации позиционирования головки. TCQ кардинально снижает количество позиционирований и на практике один SAS-диск может раздавать мелких файлов больше, чем 6 SATA-дисков. У SATA-дисков есть кастрированный аналог TCQ, называемый NCQ. Отличие кардинальное - длина очереди сообщений всего 16 запросов. С такой короткой очередью оптимизировать почти ничего не выходит.

Также я заметил вот какую интересную вещь. Увеличение памяти с 4 до 16 гигов даёт очень небольшой прирост в скорости отдачи. Вероятно в моём случае весь горячий контент не помещается в эти 16 гигов и вся нагрузка ложилась на диск.

Касательно исходного вопроса, я бы взял для начала два сервака. В оба напихать максимум памяти и по 1 дешёвому процессору. Если память потом вдруг окажется лишней, её всегда можно отдать под memcached.

Первый двухюнитовый. Например Супермикро. В него можно вставить 12 саташных винтов максимального объёма. SATA-диски очень часто ломаются, поэтому просто необходимо купить к серверу самую дорогую и самую долгую гарантию на 5 лет, чтобы эти винты меняли быстро и на месте в ДЦ, без увоза сервера в ремонт.

Поставить фрю. Винты попарно зазеркалить gmirror-ом и получить независимых 6 зеркал. Файлы побить на 6 равных групп и разложить на эти 6 зеркал.

Второй сервер одноюнитовый. Например Intel. В него воткнуть 3 SAS-винта максимального объёма. Также купить дорогую гарантию. Поставить Фрю. Все винты объединить в один раздел gconcat-ом. Использовать этот раздел для кэширования файлов с первого сервера.

Раздавать и кэшировать nginx-ом. Можно или дождаться релиза кэширования в nginx-е, или попросить Игоря Сысоева предоставить Вам текущую версию кэширования на пробу, или пойти по пути Андрея Нигматулина: написать парсер и анализатор логов, который часто запрашиваемые файлы скачивает в кэш.

Развивать дальше очень просто. Если не хватает места на первом сервере, покупаем ещё один такой же сторадж. Если начинает тормозить раздача, покупаем ещё один второй сервер для кэширования.

P.S.
Зашёл на http://supermicro.c­om/products/chassis/­ . Там в 2 юнита уже 24 диска научились вставлять. А в 1 юнит - 8 дисков. Только греется это наверное ужасно сильно и диски сыпятся от температуры сильнее. Возможно поэтому придётся зеркала из 3-х дисков делать, а не из двух...

Категории: Мысли, Оптимизация, Beon, Хранилище
комментировать 11 комментариев | Прoкoммeнтировaть


Блог Монашёва Михаила > Хранилище

читай на форуме:
пройди тесты:
Чёрная кошка(3 часть)
Какая ты в анимэ?
ХОМЯ ХОМЯ КИ
читай в дневниках:

  Copyright © 2001—2019 MindMix
Авторами текстов, изображений и видео, размещённых на этой странице, являются пользователи сайта.
Задать вопрос.
Написать об ошибке.
Оставить предложения и комментарии.
Помощь в пополнении позитивок.
Сообщить о неприличных изображениях.
Информация для родителей.
Пишите нам на e-mail.
Разместить Рекламу.
If you would like to report an abuse of our service, such as a spam message, please contact us.
Если Вы хотите пожаловаться на содержимое этой страницы, пожалуйста, напишите нам.

↑вверх