У Reiser5 анонсовано підтримку Burst Buffers (Data Tiering)

Едуард Шишкін анонсував нові можливості, що розвиваються у рамках проекту Reiser5. Reiser5 являє собою істотно перероблений варіант файлової системи ReiserFS, в якому на рівні файлової системи, а не блокового пристрою, реалізована підтримка паралельно масштабованих логічних томів, що дозволяє ефективно розподіляти дані по логічному тому.

З нововведень, що розвиваються останнім часом, відзначається надання
користувачеві можливості додати невелике високопродуктивне
блоковий пристрій (напр. NVRAM) проксі-диском, до
щодо великого логічного того, скомпонованого з повільних
бюджетних дисків При цьому створюватиметься враження, що весь
том скомпонований з таких же дорогих високопродуктивних
пристроїв, як і "проксі-диск".

В основу реалізованого методу лягло просте спостереження, що на практиці запис на диск не ведеться постійно, а крива навантаження вводу-виводу має форму піків. У проміжку між такими піками завжди є можливість скинути дані з проксі-диска, переписавши у фоновому режимі всі дані (або ж тільки частина) в основне, повільне сховище. Таким чином, проксі-диск завжди готовий для прийому нової порції даних.

Спочатку дана техніка (відома як Burst Buffers) виникла в
області високопродуктивних обчислень (HPC). Але вона виявилася також затребуваною і для звичайних додатків, особливо для тих, які висувають підвищені вимоги до цілісності даних (зазвичай це різного роду бази даних). Будь-які зміни в будь-якому файлі такі програми виконують атомарним способом, а саме:

  • спочатку створюється новий файл, що містить змінені дані;
  • потім цей новий файл записується на диск за допомогою fsync (2);
  • після цього новий файл перейменовується на старий, що автоматично
    звільняє блоки, зайняті старими даними.

    Всі ці кроки тією чи іншою мірою стають причиною суттєвого
    зниження продуктивності на будь-якій файловій системі. Ситуація
    покращується, якщо новий файл спочатку записати на виділене
    високопродуктивний пристрій, що в точності і відбувається в
    файлової системи з підтримкою "Burst Buffers".

    У Reiser5 планується опціонально відправляти на проксі-диск не лише
    нові логічні блоки файлу, але й усі брудні сторінки взагалі. Причому,
    не тільки сторінки з даними, але також і з мета-даними, які
    записуються на кроках (2) та (3).

    Підтримка проксі-дисків здійснюється в контексті штатної роботи з
    логічними томами Reiser5, анонсованої на початку року. Тобто,
    сукупна система «проксі-диск - основне сховище» є звичайним
    логічним томом з тією лише різницею, що проксі-диск має пріоритет
    серед решти компонетнів тому у політиці виділення дискових адрес.

    Додавання проксі-диску в логічний том не супроводжується будь-якою
    перебалансування даних, а його видалення відбувається так само, як і
    видалення звичайного диска. Усі операції з проксі-диском атомарні.
    Обробка помилок і розгортання системи (в т.ч. після системного краху) відбувається так само, якби проксі-диск був звичайним компонентом
    логічний том.

    Після додавання проксі-диска, сумарна ємність логічного тому
    збільшується на ємність цього диска. Моніторинг вільного місця на
    проксі-диску виробляється як і, як та інших компонентів томи, тобто. за допомогою утиліти volume.reiser4(8).

    Проксі-диск потрібно періодично очищати, тобто. скидати дані з
    його в основне сховище. Після досягнення бета-стабільності Reiser5
    очищення планується зробити автоматичним (їм управлятиме
    спеціальний тред ядра). На цьому ж етапі відповідальність за очищення
    покладається на користувача. Скидання даних з проксі-диска в головне
    сховище здійснюється простим викликом утиліти volume.reiser4 з опцією
    "-b". Як аргумент потрібно вказати точку монтування логічного
    томи. Зрозуміло, очищення треба не забувати проводити періодично. Для
    цього можна написати простий shell-скрипт.

    У разі відсутності вільного місця на проксі-диску всі дані
    автоматично записуються в основне сховище. При цьому за умовчанням
    знижується загальна продуктивність ФС (через постійний виклик
    процедури коміту всіх наявних транзакцій). Опціонально можна поставити
    режим без втрати продуктивності Однак, у цьому випадку дискове
    простір проксі-пристрою використовуватиметься менш ефективно.
    Як проксі-диск зручно використовувати підрозділ (брик) мета-даних, за умови, що він створений на досить високопродуктивному блоковому пристрої.

    Джерело: opennet.ru

  • Додати коментар або відгук