The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Facebook открыл модуль Flashcache для организации кэширования на SSD-накопителях

30.04.2010 12:12

Сервис Facebook уже не первый раз открывает свои наработки в области высокопроизводительных систем и Linux, на этот раз решено поделиться наработками в области ускорения работы сервера MySQL и других интенсивно взаимодействующих с диском приложений, за счет организации процесса прозрачного кэширования данных на быстрых SSD-накопителях.

Как известно, если у движка хранилища данных InnoDB рабочий набор данных не умещается в пуле кэша, тогда отзывчивость (latency) операций чтения сильно ухудшается. Эту проблему можно решить, если расположить рабочий набор данных на более быстром носителе информации, например, на SSD дисках. Модуль Flashcache, созданный инженерами Facebook, занимается именно этой задачей - он работает как универсальных механизм кэширования для любого приложения, работающего с блочным устройством.

Также Flashcache увеличивает скорость записи, сначала кэшируя запись на хранилище SSD, а затем неторопясь перекидывая данные на обычное хранилище стандартных вращающихся жёстких дисков. При этом операции записи не атомарны и отложенное кэширование может привести к неполной записи данных в случае экстренного отключения питания. В настоящий момент разработчики вынашивают планы по добавлению функций, которые позволят устранить данный недостаток.

Модуль выпущен и проверен для работы только в ядрах Linux 2.6.18 и 2.6.20. При работе Flashcache базируется на технологии Linux Device Mapper (DM), для вытеснения старых данных поддерживаются методы FIFO и LRU. Из дополнительных возможностей и планов отмечено: функции зеркалирования кэша на несколько SSD-накопителей; задействование команды ATA TRIM для более оптимального распределения данных по SSD; планируется более тесная интеграция с файловыми системами (сейчас кэш работает только на блочном уровне); ожидается появление гибких средств для определения контента не подлежащего кэшированию.

  1. Главная ссылка к новости (http://www.facebook.com/note.p...)
  2. OpenNews: Компания Facebook открыла код высокопроизводительного PHP транслятора
  3. OpenNews: Социальная сеть Facebook вошла в число спонсоров Apache Software Foundation
  4. OpenNews: Социальная сеть Facebook представила новый открытый web-сервер Tornado
  5. OpenNews: Устройство инфраструктуры проекта Facebook
  6. OpenNews: Facebook выпустила исходные коды части серверного ПО
Автор новости: Artem S. Tashkinov
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/26440-facebook
Ключевые слова: facebook, MySQL, cache, InnoDB
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (41) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, sluge (ok), 13:22, 30/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    интересно, насколько эта фишка увеличивает производительность
     
  • 1.2, Анонимуз (?), 13:32, 30/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    У линукса будет свой ReadyBoost, с блэкджеком и прочей атрибутикой?
     
  • 1.3, Евгений Ваганович (?), 13:43, 30/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Учитывая ограниченное число перезаписей на ssd - винты нужно будет менять минимум раз в год, а то и чаще.
    В итоге имеем с ssd -
    1. необходимость часто менять винты
    2. если случайно затянуть с п.1, то получим потерю данных
    3. если пропадет питание - то получим потерю данных
    Зато нужно меньше оперативы
    В итоге, скорее всего фейсбуковцы решили выкинуть "недоношенную" технологию в "массы" с надежной что кто нить это допилит - и тогда это можно будет массово использовать
     
     
  • 2.4, bart (?), 13:55, 30/04/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Где то видел расчет про долговечность ssd винтов и окозалось что живут они не меньше чем hdd
     
     
  • 3.7, Имени нету (?), 14:33, 30/04/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Рассчёт, не есть провереная временем практика. Теоретики как всегда такие теоретики....
     
  • 3.9, hhg (ok), 14:49, 30/04/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    так это всё время приводятся расчёты для ненагруженной бытовой системы, где мало пишется и много читается.
     
     
  • 4.17, pro100master (ok), 19:03, 30/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    и даже в этом случае рекомендуется выключать обновления времени доступа к файлам и совмещать записи в таблицы ФС. И это не смотря на то, что контроллеры меньше чем 128к (обычно 256-512к) писать не будут.
     
  • 4.42, User294 (ok), 20:38, 02/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так фэйсбуковцы вроде ж и предлагают кешить нагрузку где в основном чтение?
     
  • 2.5, Зашифрованный (?), 14:09, 30/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Зависит модели у некоторых 5млн циклов.
     
  • 2.8, sluge (ok), 14:37, 30/04/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    уж фейсбук то найдет бабки на винты я думаю
     
     
  • 3.26, Евгений Ваганович (?), 05:05, 01/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    у фейсбука порядка 50 000 - 100 000 серверов и впиливание сырого решения с закупкой по паре ssd на сервер влетит в копеечку - это тебе не уровень г@внохостинга, которы обслуживает пару тысяч клиентов с сотней серверов
     
     
  • 4.29, sHaggY_caT (ok), 05:50, 01/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >у фейсбука порядка 50 000 - 100 000 серверов и впиливание сырого
    >решения с закупкой по паре ssd на сервер влетит в копеечку
    >- это тебе не уровень г@внохостинга, которы обслуживает пару тысяч клиентов
    >с сотней серверов

    SAN рулит?

     
  • 2.21, sHaggY_caT (ok), 23:21, 30/04/2010 [^] [^^] [^^^] [ответить]  
  • +/

    >2. если случайно затянуть с п.1, то получим потерю данных

    Кто-то отменил raid-массивы и hotspare?

    >1. необходимость часто менять винты

    Это да, но при определенном бюджете проекта может быть вполне выгодным решением...

    >3. если пропадет питание - то получим потерю данных

    К сожалению, будем надеятся, исправят, так как решение интересное(имхо)

     
     
  • 3.27, Евгений Ваганович (?), 05:11, 01/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >>2. если случайно затянуть с п.1, то получим потерю данных
    >
    >Кто-то отменил raid-массивы и hotspare?

    учитывая время доступа к ssd, рейд контроллер, который сохранит данные характеристики, будет очень недешев для ssd - и в итоге мы вместо одного винта покупаем 2, да еще и рейд контроллер, который будет стоит явно не меньше этих ssd - и тут возникает вопрос - а может лучше переплатить раза в 2 и доставить оперативы, чем применять сырую технологию, да еще и недешевую? так что очень навряд ли кто то будет юзать рейды в данных схемах с ssd

     
     
  • 4.28, sHaggY_caT (ok), 05:23, 01/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >>
    >>Кто-то отменил raid-массивы и hotspare?
    >
    >учитывая время доступа к ssd, рейд контроллер, который сохранит данные характеристики, будет
    >очень недешев для ssd - и в итоге мы вместо одного
    >винта покупаем 2, да еще и рейд контроллер, который будет стоит
    >явно не меньше этих ssd - и тут возникает вопрос -
    >а может лучше переплатить раза в 2 и доставить оперативы, чем
    >применять сырую технологию, да еще и недешевую? так что очень навряд
    >ли кто то будет юзать рейды в данных схемах с ssd

    Лол, ssd+mdraid вполне жизнеспособная конфигурация на _зеркале_(если жесткий сброс, одна половинка просто засинкается о другую, кэш записи с BBU не нужны), и используется во многих нагруженных проектах, бюджет которых, вероятно, превышает месячную зарплату большей части отметившихся в этой теме.

    А еще, SAN с SSD это уже реальность почти у всех вендоров.

     
     
  • 5.30, Anon Y Mous (?), 18:21, 01/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Лол, ssd+mdraid вполне жизнеспособная конфигурация на _зеркале_(если жесткий сброс, одна половинка просто засинкается о другую, кэш записи с BBU не нужны)

    А как определить, на какой половинке целостные данные, а на какой нет, чтобы выяснить, какую половинку засинкивать о другую?

     
     
  • 6.31, sHaggY_caT (ok), 18:30, 01/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >> Лол, ssd+mdraid вполне жизнеспособная конфигурация на _зеркале_(если жесткий сброс, одна половинка просто засинкается о другую, кэш записи с BBU не нужны)
    >
    >А как определить, на какой половинке целостные данные, а на какой нет,
    >чтобы выяснить, какую половинку засинкивать о другую?

    Никак, как и в hardware зеркале. Рейд не панацея в вопросе сохранности данных(эту роль могут выполнять только бэкапы), а средство добавления девяток после запятой в стабильность сервиса.
    Тот же пятый вообще русская рулетка, 6-ой безумно тормозной, десятка принципиально ни чем не лучше в вопросах надежности, чем зеркало.
    raid-z не такой быстрый(в сравнении с raid10), как бы это не хотелось кучи местных фанатиков.

    рулит (имхо) только 60 в SAN, и то, с оговорками (по стоимости инвестиций и места, прежде всего)


    Но в реальной ситуации, обычно, тот же md, gmirror, или любой аппаратный контроллер без проблем выкинет битый диск, при ошибке ввода-вывода

     
     
  • 7.32, sHaggY_caT (ok), 19:59, 01/05/2010 [^] [^^] [^^^] [ответить]  
  • +/

    >raid-z не такой быстрый(в сравнении с raid10), как бы это не хотелось
    >кучи местных фанатиков.

    *куче, сорри

     
  • 7.33, Anon Y Mous (?), 20:31, 01/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Никак, как и в hardware зеркале.

    То есть решение получается нежизнеспособное, если даже способа определить, какой диск с другим синхронизировать нету?

    > Рейд не панацея в вопросе сохранности данных

    Речь не о сохранности, а о целостности данных, или, если угодно, о непротиворечивости содержимого подзеркал.

    > raid-z не такой быстрый(в сравнении с raid10), как бы это не хотелось кучи местных фанатиков.

    Да ну? Неужели во всех случаях?

    > Но в реальной ситуации, обычно, тот же md, gmirror, или любой аппаратный контроллер без проблем выкинет битый диск, при ошибке ввода-вывода

    А если нет ошибки ввода-вывода, а данные между подзеракалами различаются, что будут делать md, gmirror или аппаратный контроллер?

     
     
  • 8.34, sHaggY_caT (ok), 20:53, 01/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Если данные оказались испорчены и нет ошибки ввода-выво... большой текст свёрнут, показать
     
     
  • 9.35, sHaggY_caT (ok), 20:58, 01/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    З Ы Это все лирика, и в любом случае, в реальной ситуации mirror и пятый рейд н... текст свёрнут, показать
     
  • 9.36, Anon Y Mous (?), 21:35, 01/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Остается открытым вопрос, какую половину выбрать в качестве источника данных для... текст свёрнут, показать
     
     
  • 10.37, sHaggY_caT (ok), 21:44, 01/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Если диски не битые, то без разницы на один диск последний флэш был на одну сек... большой текст свёрнут, показать
     
     
  • 11.38, Anon Y Mous (?), 00:26, 02/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ну почему же на одном могут быть правильные данные, на другом - нет, так что ра... большой текст свёрнут, показать
     
     
  • 12.39, sHaggY_caT (ok), 00:47, 02/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Не бывает плохих или хороших данных для зеркала Зеркало вообще не проверяет кон... большой текст свёрнут, показать
     
     
  • 13.40, Anon Y Mous (?), 01:17, 02/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    С вами все ясно Задуматься вы не задумались, а вместо этого начали скатываться ... текст свёрнут, показать
     
     
  • 14.41, sHaggY_caT (ok), 01:38, 02/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    А задумывались ли Вы так ли хороша и универсальна zfs, как Вы пытаетесь показать... текст свёрнут, показать
     

  • 1.6, Аноним (-), 14:14, 30/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    http://leaf.dragonflybsd.org/cgi/web-man?command=swapcache§ion=ANY
     
  • 1.10, cvsup (ok), 15:12, 30/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    К слову, Paul Saab, автор заметки на главной ссылке - ключевой разработчик FreeBSD в прошлом (ps@freebsd.org). Там же работал(-ет) Jasone Evance - автор jemalloc.
     
     
  • 2.12, birdie (?), 16:28, 30/04/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Народ уходит из FreeBSD? Впрочем, на энтузиазме сейчас в open source мало кто работает.

    Единственно, что мне жутко не хватает в Линукс - это jail, хотя и FreeBSD'ный не самый идеальный вариант.

    Например, в jail надо закидывать все библиотеки, требуемые для запуска приложения, которое там работает, а было бы неплохо сделать виртуальную FS по типу CoW, чтобы в jail физически находились только изменённые библиотеки (если они вообще там будут изменятся ну или для совместимости лежать древние их версии).

     
     
  • 3.13, Одмин (?), 16:36, 30/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ну там есть файлуха с COW, забыл как называется. В linux есть linux containers, там даже модно ограничивать по памяти, cpu, засовывать внутрь отдельный айпишник и прописывать отдельные роутинги :). Увы, на уровне дистров поддержки нет(если в libvirt, но я не тестил) :(.
     
     
  • 4.19, бедный буратино (?), 19:07, 30/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну там есть файлуха с COW, забыл как называется. В linux есть
    >linux containers, там даже модно ограничивать по памяти, cpu, засовывать внутрь
    >отдельный айпишник и прописывать отдельные роутинги :). Увы, на уровне дистров
    >поддержки нет(если в libvirt, но я не тестил) :(.

    lxc уже давно в ядре.

    Это в каких дистрибутивах нет поддержки lxc? Или libvirt?

     
  • 3.15, RedRat (ok), 16:49, 30/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    man mount_unionfs
     
  • 3.16, cvsup (ok), 17:35, 30/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, скорее это говорит о квалификации разработчиков :p
    Эти люди всегда были и есть в Facebook, Yahoo!, Juniper и тому подобных конторах.
    FreeBSD - это не работа, а скорее образ жизни.
     
  • 3.18, бедный буратино (?), 19:04, 30/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    А чем не устраивает Linux Containers (LXC), которая именно так и работает - и как jail, и можно библиотеки не закидывать?
     
  • 3.22, sHaggY_caT (ok), 23:26, 30/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >кто работает.
    >
    >Единственно, что мне жутко не хватает в Линукс - это jail, хотя
    >и FreeBSD'ный не самый идеальный вариант.
    >
    >Например, в jail надо закидывать все библиотеки, требуемые для запуска приложения, которое
    >там работает, а было бы неплохо сделать виртуальную FS по типу
    >CoW, чтобы в jail физически находились только изменённые библиотеки (если они
    >вообще там будут изменятся ну или для совместимости лежать древние их
    >версии).

    Советую проснуться, ситуация Jails vs другие контейнеры изменилась кучу лет назад:

    а) отсуствие в апстриме (kernel.org) не означает отсутствие поддерживаемого решения (коммерчески или поддерживаемого коммюнити), и вообще мало какой дистрибутив использует ванильный кёрнель без своих патчей

    б) как уже сказали, есть LXC (имхо, еще сырой), есть OVZ(имхо, сейчас самый адекватный выбор, но нет аналога cow/vzfs), есть PVC (память/место шарятся через vzfs, но проприетарный и стоит денег)

     
  • 3.24, marten (??), 01:32, 01/05/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    есть openvz. вполне себе перекрывает функционал jail
     
     
  • 4.25, sHaggY_caT (ok), 01:59, 01/05/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >есть openvz. вполне себе перекрывает функционал jail

    Причем перекрывает уже пол-десятка лет :)

     
  • 3.43, User294 (ok), 22:52, 02/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Единственно, что мне жутко не хватает в Линукс - это jail,

    Странно, учитывая что openvz сделали явно не вчера. Может быть, ручник стоит отпускать побыстрее? oO

     

  • 1.20, Терминус (?), 21:06, 30/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    я только хотел попробовать студенческое поделие dm-cache
    http://users.cis.fiu.edu/~zhaom/dmcache/index.html

    с отличным IBM Research Report от автора
    http://domino.research.ibm.com/library/cyberdig.nsf/papers/BA52BEF8B940E74385

    как вдруг появился flashcache

    кстати у пользователей ZFS кеширование на
    более быстрых носителях уже давно есть
    http://blogs.sun.com/brendan/entry/test

     
     
  • 2.23, sHaggY_caT (ok), 23:35, 30/04/2010 [^] [^^] [^^^] [ответить]  
  • +/

    >кстати у пользователей ZFS кеширование на
    >более быстрых носителях уже давно есть
    >http://blogs.sun.com/brendan/entry/test

    Кстати, да, интересно :)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру