Представете си, че участвате в създаването на продукт, който преобръща представите за това как се съхраняват данни в съвременните облачни инфраструктури. Продукт, който поставя световни рекорди по производителност и се използва за данните на организации като NASA, ESA, Deutsche Börse и CERN. Това е StorPool – софтуерно дефинирано data storage решение, което превръща стандартни сървъри в бързи, надеждни и мащабируеми системи за съхранение на данни.
Какво представлява StorPool?
StorPool е т. нар. софтуерно дефинирана платформа за block storage, разработена от нулата, за да решава критични проблеми в съвременните дейта центрове. За разлика от традиционните storage решения, които разчитат на скъпо и специализирано хардуерно оборудване, StorPool трансформира стандартни сървъри с евтини компоненти в изключително производителни storage системи.
Сред ключовите предимства, които предоставя на потребителите си, са:
- Латентност под 0.1 милисекунда
- Над 113 милиона IOPS на система
- Линейно скалиране – от 20 TB до 60 PB
- 99.999% надеждност (uptime), дори при повреди на хардуера
- До 3 пъти по-ниска обща цена на притежание (TCO) спрямо традиционните решения
Защо Software-Defined Storage (SDS) е революционен подход?
SDS означава отделяне на логиката за съхранение от физическия хардуер. Това дава възможност софтуерът да работи върху обикновени x86 сървъри – с по-голяма гъвкавост, по-ниска цена и много по-бързи иновации.
В традиционните storage системи клиентите са заключени към един доставчик, скъп хардуер и бавни цикли на обновление. С подхода на StorPool те имат свободата да избират хардуера (който е и на по-ниска цена от специализирания), да ъпгрейдват компоненти по свой избор и да използват най-новите технологии веднага, без да чакат производителят на дадено storage решение да пусне нов модел (което често отнема 2–4 години).

Архитектурни иновации
StorPool се базира на няколко ключови архитектурни иновации:
- Shared-Nothing Distributed Architecture. Всеки storage node управлява собствените си ресурси, докато данните се разпределят интелигентно между всички сървъри в клъстера, осигурявайки скалируемост без стеснявания.
- Custom Copy-on-Write формат. Собствен механизъм, оптимизиран за разпределени среди, който позволява създаването на мигновени snapshot-и без компромис в производителността.
- Advanced Erasure Coding. Достатъчно ефективна, за да се използва за съхранение на основни (primary) данни, без да увеличава латентността – нещо, считано за невъзможно при класическите подходи.
- Интелигентно разпределение на данни. Алгоритмите на StorPool анализират натоварването, характеристиките на хардуера и моделите, по които данните се достъпват, за да ги разпределят оптимално в рамките на системата.
Защо C?
Основната част на StorPool е написана на C поради нуждата от пълен контрол при взаимодействие с хардуерните компоненти на всеки сървър в StorPool клъстерите. За постигането на латентности, измервани в десетки микросекунди при използване на стандартни сървъри с евтини компоненти, консумацията на системни ресурси (всеки CPU цикъл, всеки GB памет) и съкратеното изпълнение на всяка Input/Output операция от клиент, през мрежова карта, до устройството за съхранение на данни имат критично значение. Няма място за компромиси.
В допълнение C се компилира в пъти по-бързо от други езици, при него липсва вграден garbage collection и на света няма еквивалентен език за създаване и поддръжка на софтуер с критично значение и мрежови технологии от ниско ниво. Всички тези фактори безвъзвратно наклониха везните към езика C, когато вземахме първоначалното решение за избора на език.
Explore more
Технологичният stack
Сфери на компетентност и езици:
- Създаване и поддръжка на софтуер с критично значение и мрежови технологии от ниско ниво
- Системи за дистрибутирана обработка на трансакции
- Високопроизводителен код с ниска латентност
- Програмиране на ниско ниво (close-to-hardware)
- Създаване на софтуер с добра тестваемост
- Откриване и поправяне на бъгове в комплексни системи
- C – компонентите на StorPool block data storage platform
- Linux kernel – custom модули и инструменти в user space
Development инструменти:
- Git, Gerrit, Jenkins, Valgrind, Perf, Intel VTune
- Linux QEMU/Libvirt/KVM, OpenNebula, CloudStack, OpenStack, Proxmox – за разработка и тестване
- Docker – за containerized среди
Производителност
Реални резултати от клиенти на StorPool:
- 13.8 милиона IOPS в 12-node клъстер (световен рекорд за HCI)
- Под 100 микросекунди латентност
- 315 GB/s throughput в една система
- 99.999% uptime в реална продукционна среда
Това се постига чрез:
- Lock-free алгоритми по критичните пътища на кода
- Собствен мрежов протокол, оптимизиран за storage
- Интелигентен кеш с предиктивни алгоритми
- Паралелна обработка на I/O на всички нива
- Оптимизации за специфичен хардуер
Скалиране от терабайти до петабайти
StorPool расте съобразно с нуждите на клиента. С всяко добавено устройство системата не само увеличава капацитета, но и производителността и мрежовата пропускателна способност.
Данните се ребалансират автоматично при промени в клъстера – без спиране на услугата. Алгоритмите за консистентност гарантират оптимално разпределение при всяка промяна в топологията.
99.999% Uptime – как се постига?
Системата е проектирана за устойчивост – всеки компонент има излишък (redundancy), а данните се съхраняват синхронно на три различни сървъра. При хардуерна повреда failover-ът е автоматичен и се случва за секунди.
Поддръжката се извършва без прекъсване, а многослойната верификация чрез checksums гарантира целостта на данните.
Защо да станете част от StorPool?
В StorPool ще работите по продукт, който не просто следва индустрията – той я води. Ще решавате предизвикателства, които рядко се срещат другаде. Ще се развивате в сферата на high-performance computing заедно с екип, обединен от страст към технологиите и стремеж към иновации, високо качество и постоянно развитие.
Ако търсите възможност да окажете реално влияние върху бъдещето на съхранението на данни, StorPool е вашето място. Те не са просто поредната storage компания, а една от водещите в бранша, които определят как ще изглежда съхранението на данни през следващите 30 години.
За да се присъедините към екипа, който работи върху развитието на продукта, вижте позицията на Senior Software Engineer, Storage Core (C/Linux) в техния профил в DEV.BG или на сайта на компанията.