nav-img
Evolution

Утилита csdctl

csdctl позволяет просматривать значения и состояния разных частей csd. Вносить изменения в файловую структуру csd с её помощью нельзя.

Условно csd можно разделить на две функциональные части:

  • Hot Storage;

  • Cold Storage.

Утилита имеет три набора опций и параметров:

  • общие опции;

  • опции Hot Storage;

  • опции Cold Storage.

Для получения перечня опций запустите утилиту с ключом --help:

csdctl --help
csdctl options:
-h [ --help ] show help message
--help-seastar show help message about seastar options
--help-loggers print a list of logger names and exit
-v [ --version ] show version
General options:
--cs-root arg path to storage to be inspected
--chunk-uid arg (=0) UID (u64) of interested chunk
Hot storage options:
--hot-min summary
--hot-balloc block allocator info
--hot-wal WAL info
--hot-chunks chunks
--hot-exts chunk extents
Cold storage options:
--cold-min summary
--cold-stripvers strip versions of a chunk
--cold-muts chunk mutations
--cold-kvstor kv-storage
--cold-dirty-chunks dirty chunks
--cold-chunks-to-del chunks marked as to be deleted

Первые три опции — стандартны для seastar-приложения. Четвертая опция позволяет получить версию утилиты. Для этого:

csdctl -v
csdctl: version:0.1.23 commit:288581d5 seastar:1.3.6 build:release timestamp:2022-11-11T11:06:42Z flags:mod, clang-14.0.6 branch:master

Список доступных опций:

  • --cs-root — путь к репозиторию. Опция обязательна.

  • --chunk-uid — ряд опций для Hot Storage/Cold Storage требует указания конкретного чанка, информацию о котором требуется отобразить. Для таких запросов передается uid чанка (u64);

  • --hot-min — запрос минимальных данных о Hot Storage;

  • --hot-balloc — информация о блочном аллокаторе;

  • --hot-wal — данные о журнале (WAL);

  • --hot-chunks — список чанков;

  • --hot-exts — список экстентов заданного чанка;

  • --cold-min — запрос минимальных данных о Cold Storage;

  • --cold-stripvers — версии стрипов заданного чанка;

  • --cold-muts — мутации заданного чанка;

  • --cold-kvstor — состояние kv-storage;

  • --cold-dirty-chunks — список чанков, у которых есть хотя бы одна мутация («грязные» чанки);

  • --cold-chunks-to-del — список чанков, промаркированных как deleted, но еще не удаленные. В kv-storage (WalMap) чанк, находящийся в процессе удаления, помечается специальной записью.

Пример использования:

sudo csdctl --cs-root /tmp/storage --hot-min
Hot storage summary ============================================================
root: [/tmp/storage/data/hot/]
block size: 4096
chunks: 0
total: 8301453312 (100 %)
used: 0 ( 0 %)
free: 8301453312 (100 %)