Proxmox 5 та частковий запис у блокових пристроях ефективного зберігання Ceph
Методи зберігання даних та блокові пристрої
Ceph пропонує два види пулів зберігання:
- з реплікаціями
- з видаляючим кодуванням
Поверх обох видів пулів зберігання можна будувати об'єкти зберігання, що допускають блокові операції (наприклад, моментальні знімки). Різниця починає проявлятися при операціях запису в такого роду об'єкти, оскільки одна операція запису в блоковий пристрій із застосуванням кодування, що видаляє, передбачає у своєму складі деяку неподільну послідовність зчитування збережених даних, їх часткової зміни і остаточного запису отриманого результату. Атомарно. Тобто, якщо якась частина послідовності залишається незавершеною, відкидається вся операція. Ця атомарність також називається транзакцією.
До цих пір пропонувалося два способи вирішення проблеми застосування пулів з видаляючим кодуванням під блокові об'єкти:
- використання об'єкта для запису тільки повністю
- застосування багаторівневості з пулом видаляючого кодування в основі та пулу реплікацій поверх нього
BlueStore як нове рішення основи зберігання
В основі зберігання об'єктів Ceph в кінцевому підсумку лежить файлова система на фізичному диску (або розділі диска), яким керує якийсь демон. Для вирішення безлічі проблем, що виникають по ходу справиможе застосовуватися журнал, в який і записуються дані, перш ніж клієнт отримає підтвердження про здійснення своєї операції. Крім цього, демон виконує необхідні дії в одноранговій мережі пула зберігання з підтримки необхідної кількості копій даних (стандартно - трьох), причому з підрозділом ролей господар - підлеглий. Все це, власне, і становитьosd(object storage device). Але зрештою самі дані об'єкта зберігаються у «звичайному» файлі на диску. Дещо ускладнює завдання той факт, що теоретично, сам об'єкт може супроводжуватися практично необмеженою кількістю метаданих. Як то: ім'я об'єкта, дата його створення, дата останньої зміни, контрольна сума, сила вашої прихильності до цих даних і все що ви можете придумати на додаток до тих метаданих, якими забезпечує цей об'єкт ваш інструмент зберігання - файлова система, система управління блоковими пристроями або об'єктами тощо. Причому зміна метаданих і об'єкта зберігання теж атомарно (все чи нічого). Довгий час співтовариство Ceph перебувало у впевненості, що вирішити проблеми з транзакціями його об'єктів на нижньому рівні дозволить вирішити btrfs, яка мала замінити xfs і ext4, що застосовувалися в більшості випадків для кінцевого зберігання на фізичних дисках. Час минав, проблема залишалася.
Ceph Kraken пропонує вам поекспериментувати з BlueStore, а Ceph Luminous ставить його за умовчанням. На мій особистий смак це друге суттєве нововведення крім асинхронної системи обміну повідомленнями, що стала основною в Kraken, яка робить можливою, наприклад, Розподілені обчислення поверх Ceph RADOS і AsyncMessenger і застосування RDMA.
Навіщо нам Copy-On-Write
Операцією Copy-On-Write є дії, за яких усі зміни спочаткузаписуються в нове місце в сховище, а по їх закінченні виконуються всі заходи, необхідні для маскування старих копій, що видаляються, що здійснюється незрівнянно швидше власне записи (грубо кажучи, підміна посилань). Це робить для нас можливим такі операції як миттєве клонування образів та миттєві знімки. Причому ключовим тут є саме слово «моментальний», а час цієї моментальності вимірюється часом заміни обмеженої кількості посилань, як правило, що знаходяться в одному дисковому блоці, або в кількох сусідніх.
Ви можете допомогти і перевести небагато коштів на розвиток сайту