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

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

    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