Системные требования и рекомендации для YDB
В данном разделе приводятся рекомендации для развёртывания кластеров YDB, применимые вне зависимости от выбранного способа управления инфраструктурой (Ansible, Kubernetes или вручную).
Аппаратная конфигурация
Необходимое количество серверов и дисков определяется требованиями к отказоустойчивости. Подробнее читайте в разделе Топология кластера YDB.
-
Процессор (CPU)
YDB сервер может быть запущен только на процессорах с архитектурой x86-64 с поддержкой инструкций AVX2: Intel Haswell (4-е поколение) и более поздние, AMD EPYC и более поздние.
Архитектура ARM в настоящее время не поддерживается.
-
Оперативная память
Рекомендуется использовать оперативную память с поддержкой коррекции ошибок (ECC) для защиты от аппаратных сбоев.
-
Дисковая подсистема
YDB сервер может быть запущен на серверах с дисками любого типа (HDD/SSD/NVMe). Однако рекомендуется использовать диски SSD/NVMe для достижения большей производительности.
Для эффективной работы YDB рекомендуется использовать физические (не виртуальные) диски объемом более 800 ГБ как блочные устройства.
Минимальный объем диска должен быть не менее 80 ГБ, при меньшем объеме узел YDB не сможет использовать устройство. Корректная и бесперебойная работа с дисками минимального объема не гарантируется. Использовать такие диски рекомендуется исключительно в ознакомительных целях.
Важно
Конфигурации с дисками объемом меньше 800 ГБ или с любыми видами виртуализации системы хранения нельзя использовать для сервисов, находящихся в промышленной эксплуатации, а также для тестирования производительности системы.
Мы не рекомендуем использовать для хранения данных YDB диски, которые используются другими процессами (в том числе операционной системой).
YDB не использует файловую систему для хранения данных и работает с диском напрямую. Поэтому не следует монтировать файловую систему или выполнять другие операции с разделом, который использует YDB. Также не рекомендуется делить блочное устройство с другими процессами — это может привести к существенному снижению производительности.
Работоспособность и производительность YDB не тестировались ни на каких видах виртуальных или сетевых устройств хранения.
При планировании объёма хранилища следует учитывать, что YDB использует часть дискового пространства для своих внутренних нужд. Так, например, на кластере среднего размера из 8 узлов можно ожидать потребления порядка 100 ГБ на весь кластер под статическую группу. На большом кластере с >1500 узлов — около 200 ГБ. Также имеются системные логи объёмом 25.6 ГБ на каждом Pdisk и системная область на каждом Pdisk. Её размер зависит от объёма Pdisk, но составляет не менее 0.2 ГБ.
Программная конфигурация
YDB сервер может быть запущен на серверах с операционной системой Linux с ядром версии 4.19 и выше и libc версии 2.30. Например, Ubuntu 20.04, Debian 11, Fedora 34 или более новые версии. YDB использует аллокатор памяти TCMalloc, для его эффективной работы рекомендуется включить Transparent Huge Pages и Memory overcommitment.
Если сервер имеет более 32 ядер CPU, для повышения производительности YDB динноды следует запускать в раздельных taskset/cpuset, размером от 10 до 32 ядер. Например, в случае 128 ядер оптимально запустить 4 динноды: каждую в своём taskset, размером 32 ядра.
Операционные системы macOS и Windows в данный момент не поддерживаются для запуска серверной части YDB. Тем не менее, для целей разработки и функционального тестирования допустимо запускать YDB на них в Docker-контейнере.