• Русский
  • Конфигурация диска

    Ёмкость хранилища

    INFO

    Монтируйте следующие разделы на выделенных дисках или на логических томах, созданных с помощью LVM, чтобы их можно было расширять в дальнейшем.

    разделМинимальный размерРекомендуемый размерПримечания
    /var/lib/etcd10GB20GBРекомендуется выделенный диск с высокой производительностью ввода-вывода для хранения данных etcd.
    /var/lib/containerd/100GB150GB
    /cpaas/Для узлов control plane глобального кластера не менее 100GB;
    Для остальных узлов не менее 40GB
    200GBПланируйте дополнительное пространство, если ожидается, что компоненты узла инфраструктуры потребуют больше места на /cpaas/.
    /50GB100GB, чем больше, тем лучше.Убедитесь, что свободного места на диске достаточно, чтобы загрузка не превышала 80%. Если использование превысит этот порог, поды на узле могут быть эвакуированы.
    произвольное место для загрузки и распаковки установочных пакетов, расширений и т. д.20GB250GBФактические потребности в хранилище зависят от того, какие расширения вы планируете установить.
    Планируйте дополнительное пространство, если предполагается добавление компонентов или включение дополнительных функций.

    Рекомендуемые практики для ETCD

    Быстрое хранилище необходимо для надежной работы etcd. etcd зависит от надежных и низколатентных операций записи на диск для сохранения предложений в журнале предварительной записи (WAL).
    Если запись на диск занимает слишком много времени, задержки fsync могут привести к пропуску heartbeat, задержкам в подтверждении предложений и тайм-аутам запросов или временным сменам лидера. Эти проблемы также могут замедлить работу Kubernetes API и ухудшить общую отзывчивость кластера.
    В итоге, HDD — плохой выбор и не рекомендуется. Если необходимо использовать HDD для etcd, выбирайте самые быстрые (например, 15 000 об/мин).

    INFO

    Следующие рекомендации по использованию жестких дисков обеспечивают оптимальную производительность etcd:

    • Предпочитайте SSD или NVMe для дисков etcd. Если важны выносливость записи и стабильность, рассмотрите серверные SSD с одноуровневыми ячейками (SLC). Избегайте NAS, SAN и HDD.

      • Предпочитайте диски с высокой пропускной способностью записи для ускорения компактации и дефрагментации.
      • Предпочитайте диски с высокой пропускной способностью чтения для сокращения времени восстановления после сбоев.
      • Предпочитайте диски с постоянно низкой задержкой для обеспечения быстрых операций чтения и записи.
    • Избегайте распределённых блочных систем хранения, таких как Ceph RADOS Block Device (RBD), Network File System (NFS) и другие сетевые хранилища, поскольку они вводят непредсказуемые задержки.

    • Храните данные etcd на выделенном диске или выделенном логическом томе.

      • Не размещайте операции с интенсивным вводом-выводом (например, логирование) или другую интенсивную файловую активность на хостах control-plane, либо по крайней мере не позволяйте им использовать одно и то же физическое хранилище с etcd.
    • Постоянно проводите бенчмарки с помощью инструментов, таких как fio, и используйте результаты для отслеживания производительности по мере роста кластера. Подробнее см. в руководстве по бенчмаркингу дисков.

    Проверка аппаратного обеспечения для etcd

    ХарактеристикаМинимальное требованиеРекомендуемое значениеПримечания
    Последовательные операции записи IOPS50500 (чем выше, тем лучше)Большинство облачных провайдеров публикуют конкурентные IOPS, а не последовательные. Значения конкурентных IOPS обычно примерно в 10 раз выше последовательных.
    Пропускная способность диска10 MB/s100 MB/s (чем выше, тем лучше)Более высокая пропускная способность диска позволяет быстрее восстанавливаться при необходимости догонять кластер после сбоя участника.
    Пропускная способность (последовательная запись 8 кБ с fdatasync)50 записей за 10 мс500 записей за 2 мсОтражает устойчивую пропускную способность записи при сбросе данных на диск после каждой операции записи.

    Бенчмаркинг с fio

    Для измерения фактических последовательных IOPS и пропускной способности рекомендуется использовать инструмент для тестирования дисков fio. Следуйте приведённым ниже инструкциям:

    WARNING

    Не запускайте эти тесты на узлах кластера .
    Вместо этого выполняйте тесты на выделенной виртуальной машине с такой же конфигурацией, как у узлов control plane.\

    set -e
    mkdir -p /var/lib/etcd/
    
    echo "INFO: Running fio"
    fio --rw=write --ioengine=sync --fdatasync=1 --directory=/var/lib/etcd --size=100m --bs=8000 --name=etcd_perf --output-format=json --runtime=60 --time_based=1 | tee /tmp/fio.out
    
    # Scrape the fio output for p99 of fsync in ns
    fsync=$(cat /tmp/fio.out | jq '.jobs[0].sync.lat_ns.percentile["99.000000"]')
    iops=$(cat /tmp/fio.out | jq '.jobs[0].write.iops')
    echo "INFO: 99th percentile of fsync is $fsync ns"
    
    # Compare against the recommended value
    if [[ $fsync -ge 10000000 ]]; then
        echo "WARN: IOPS is $iops, 99th percentile of the fsync is greater than the recommended value which is ${fsync} ns > 10 ms, faster disks are recommended to host etcd for better performance"
    else
        echo "INFO: IOPS is $iops, 99th percentile of the fsync is within the recommended threshold: - 10 ms, the disk can be used to host etcd"
    fi