Едуард Шишкін
З нововведень, що розвиваються останнім часом, відзначається надання
користувачеві можливості додати невелике високопродуктивне
блоковий пристрій (напр. NVRAM)
щодо великого логічного того, скомпонованого з повільних
бюджетних дисків При цьому створюватиметься враження, що весь
том скомпонований з таких же дорогих високопродуктивних
пристроїв, як і "проксі-диск".
В основу реалізованого методу лягло просте спостереження, що на практиці запис на диск не ведеться постійно, а крива навантаження вводу-виводу має форму піків. У проміжку між такими піками завжди є можливість скинути дані з проксі-диска, переписавши у фоновому режимі всі дані (або ж тільки частина) в основне, повільне сховище. Таким чином, проксі-диск завжди готовий для прийому нової порції даних.
Спочатку дана техніка (відома як Burst Buffers) виникла в
області високопродуктивних обчислень (HPC). Але вона виявилася також затребуваною і для звичайних додатків, особливо для тих, які висувають підвищені вимоги до цілісності даних (зазвичай це різного роду бази даних). Будь-які зміни в будь-якому файлі такі програми виконують атомарним способом, а саме:
звільняє блоки, зайняті старими даними.
Всі ці кроки тією чи іншою мірою стають причиною суттєвого
зниження продуктивності на будь-якій файловій системі. Ситуація
покращується, якщо новий файл спочатку записати на виділене
високопродуктивний пристрій, що в точності і відбувається в
файлової системи з підтримкою "Burst Buffers".
У Reiser5 планується опціонально відправляти на проксі-диск не лише
нові логічні блоки файлу, але й усі брудні сторінки взагалі. Причому,
не тільки сторінки з даними, але також і з мета-даними, які
записуються на кроках (2) та (3).
Підтримка проксі-дисків здійснюється в контексті штатної роботи з
логічними томами Reiser5,
сукупна система «проксі-диск - основне сховище» є звичайним
логічним томом з тією лише різницею, що проксі-диск має пріоритет
серед решти компонетнів тому у політиці виділення дискових адрес.
Додавання проксі-диску в логічний том не супроводжується будь-якою
перебалансування даних, а його видалення відбувається так само, як і
видалення звичайного диска. Усі операції з проксі-диском атомарні.
Обробка помилок і розгортання системи (в т.ч. після системного краху) відбувається так само, якби проксі-диск був звичайним компонентом
логічний том.
Після додавання проксі-диска, сумарна ємність логічного тому
збільшується на ємність цього диска. Моніторинг вільного місця на
проксі-диску виробляється як і, як та інших компонентів томи, тобто. за допомогою утиліти volume.reiser4(8).
Проксі-диск потрібно періодично очищати, тобто. скидати дані з
його в основне сховище. Після досягнення бета-стабільності Reiser5
очищення планується зробити автоматичним (їм управлятиме
спеціальний тред ядра). На цьому ж етапі відповідальність за очищення
покладається на користувача. Скидання даних з проксі-диска в головне
сховище здійснюється простим викликом утиліти volume.reiser4 з опцією
"-b". Як аргумент потрібно вказати точку монтування логічного
томи. Зрозуміло, очищення треба не забувати проводити періодично. Для
цього можна написати простий shell-скрипт.
У разі відсутності вільного місця на проксі-диску всі дані
автоматично записуються в основне сховище. При цьому за умовчанням
знижується загальна продуктивність ФС (через постійний виклик
процедури коміту всіх наявних транзакцій). Опціонально можна поставити
режим без втрати продуктивності Однак, у цьому випадку дискове
простір проксі-пристрою використовуватиметься менш ефективно.
Як проксі-диск зручно використовувати підрозділ (брик) мета-даних, за умови, що він створений на досить високопродуктивному блоковому пристрої.
Джерело: opennet.ru