Системные требования и рекомендации для 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, Fedora34, или более свежие их версии. YDB использует аллокатор памяти TCMalloc, для его эффективной работы мы рекомендуем включить Transparent Huge Pages и Memory overcommitment.
Если сервер имеет более 32 ядер CPU, для повышения производительности YDB динноды следует запускать в раздельных taskset/cpuset, размером от 10 до 32 ядер. Например, в случае 128 ядер лучше всего запустить 4 динноды: каждую в своем taskset, размером 32 ядра.
Операционные системы macOS и Windows в данный момент не поддерживаются для запуска серверной части YDB. Тем не менее, для целей разработки и функционального тестирования допустимо запускать YDB на них в Docker контейнере.