Авторские статьи

Полезные команды Ceph.


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

Общее для кластера

  • ceph status (она же ceph -s или ceph -w)

    Самая полезная команда, позволяющая сразу понять многое: чем занят кластер, какое у него здоровье (надеюсь что у вас всё в порядке и HEALTH_OK), как там поживают placement group (PG), надеюсь они все active+clean, кто в строю из mon и osd, а кто пал смертью храбрых и т.д.

  • ceph df detail

    Вы получите информацию какие пулы (pools) размещены в вашем кластере, сколько они занимают дискового пространства как есть (STORED) и реально занято (USED), учитывая ваш фактор репликации (по умолчанию 2) для пулов типа replicated или используемую вами формулу (k и m) для пулов типа erasure code. Если используете квоты (QUOTA) и сжатие (COMPR), то увидите не нулевые значения.

  • ceph versions

    Совместно с watch удобно наблюдать при обновлении серверов кластера Ceph как меняется версия и количественный состав каждой версии.

  • ceph config dump

    Не всё указаное вами находится в ceph.conf. Какие-то параметры были изменены "налету" и можно напомнить себе у какого компонента (WHO) какая опция (OPTION) и чему равна (VALUE).


Демоны хранения

Ceph - это программно-определяемое хранилище (software-defined storage, SDS), поэтому важнейшие команды связаны с object storage daemon (OSD).

  • ceph osd status

    Информация больше про операции чтения-записи на каждый ваш OSD.

  • ceph osd df tree (краткие вариации ceph osd df или ceph osd tree)

    Тут больше про занятое место как собственно данными (DATA), в базе данных ключ-значение object map (OMAP) и метаданные (META = journals + WAL + DB).

  • ceph osd utilization

    PG физически размещены на конкретных OSD и команда позволяет видеть вам - а как равномерно это сделано? Вы получите среднее (avg), стандартное отклонение (Standard Deviation, stddev), минимальное и максимальное значения. Количество PG управляется как вручную, так и в автоматическом режиме в новых версиях Ceph. Узнать текущий режим (AUTOSCALE) - ceph osd pool autoscale-status

  • ceph osd pool ls detail

    Информация напомнит о количестве пулов, их типах и текущих параметрах, количестве PG и кто управляет числом - вы вручную или автомат.

  • ceph osd getcrushmap -o crushmap.txt && crushtool -d crushmap.txt -o crushmap-decompile.txt

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

  • ceph device ls

    Команда напомнит как связаны между собой диски, номера OSD и имена хостов, на которых они размещены и работают.


Демоны мониторинга

  • Кратко ceph mon dump и подробнее ceph quorum_status -f json-pretty

    Mon хранят различные карты (map) и без их правильной работы невозможна работа кластера. Поэтому кворум мониторов и их работоспособность важнейшие вещи.


Демоны-менеджеры

  • ceph mgr dump > ceph_mgr_dump.json

    Вывод команды очень информативен, но человеку тяжело оперировать JSON форматом, поэтому лучше перенаправить вывод в файл или на утилиту jq.

  • ceph mgr dump | jq -r '[.active_name, .active_addr, .active_change] | @csv'
    ceph -s | grep mgr

    Команды напомнят когда именно были выборы активного менеджера и кто выиграл эти выборы, а кто на скамейке запасных (standbys).

  • ceph mgr module ls > ceph_mgr_module_ls.json

    Какие модули и в каком состоянии находятся: выключены, включены.


Placement Group

  • ceph pg dump all
    ceph pg dump_stuck

    Ожидаешь вывод ok, но если это не так, то вывод покажет какие pg и в каком состоянии находятся: unclean, inactive, stale, undersized, degraded. В помощь также полезна команда rados list-inconsistent-pg ИМЯ_ПУЛА

  • ceph pg dump pgs | tr -s ' ' | cut -d' ' -f1,21,23
    ceph pg dump --format json | jq -r '.pg_map | .pg_stats[] | [.pgid, .last_scrub_stamp, .last_deep_scrub_stamp] | @csv' > ceph_pg_dump.csv

    Список всех PG с датами последней проверки (scrub) и глубокой проверки (deep scrub).

  • ceph pg dump pgs | tr -s ' ' | cut -d' ' -f1,16,17

    Список PG с указанием на каких именно OSD они находятся и какая OSD для первична.


Выявление проблем и узких мест

  • rbd perf image iotop
    rbd perf image iostat

    Команды дают информацию по текущему I/O (чтение/запись, байты/задержки) подобно одноимённым командам. В современных версиях Ceph модуль rbd_support должен быть включён по умолчанию, но, если у вас это не так, то ceph ceph mgr module enable rbd_support

  • watch -n 1 ceph osd perf

    В комбинации с watch команда ceph osd perf покажет задержки записи поступающих данных: время, затраченное на фиксацию операций в журнале (commit_latency) и время, затраченное на сброс (flush) изменений на диск (apply_latency).

  • #!/bin/bash
    ceph osd df plain | grep -F up | tr -s ' ' | sed 's/^ *//g' | cut -d' ' -f1 | \
    while read osd_id; do
        echo --- OSD ${osd_id} ---
        ceph tell osd.${osd_id} heap stats 2>&1 | grep -F "Actual"
    done;
    

    Создайте исполняемый скрипт, который покажет сколько ОЗУ использует каждый рабочий демон OSD. Обычно на практике на обслуживание 1 Тб дискового пространства нужно 1 Гб ОЗУ. Если у вас аномальное потребление памяти, то требуется дальнейшее разбирательство.


Поломки

  • ceph crash ls
    ceph crash info ИДЕНТИФИКАТОР

    Если модуль crash включён, то падения демонов mgr, mon, osd, mds фиксируются и информация хранится 1 год прежде чем удалится автоматически.


Различные полезняшки

  • Когда был создан кластер Ceph - ceph mon dump | grep created
  • Список хранящегося в конкретном пуле - rbd ls --long ИМЯ_ПУЛА

Разворачиваем распределённое отказоустойчивое хранилище Ceph за 45 минут

Дополнительные материалы:
BlueStore в Ceph.
Серия статей о свободной, распределённой, файловой системе Ceph.

Дата последней правки: 2023-05-15 13:13:15

RSS vasilisc.com   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи об Astra Linux
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта