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

    Содержание

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

    INFO

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

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

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

    Быстрое хранилище необходимо для надежной работы etcd. etcd зависит от долговременных операций с диском с низкой задержкой для сохранения предложений в журнале предварительной записи (WAL).
    Если операции записи на диск занимают слишком много времени, задержки fsync могут привести к пропуску сигналов сердцебиения, задержкам в подтверждении предложений и возникновению таймаутов запросов или временных смен лидера. Эти проблемы также могут замедлить работу 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 на выделенном диске или выделенном логическом томе.

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

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

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

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

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

    WARNING

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

    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