Всем здарова. После нештатного отключения электричества не запускаются два из

трех OSD кластера Ceph, резвернутого через rook в кубере.
Логи expand-bluefs

2023-10-09T09:15:23.740+0000 7f88188e23c0 -1 rocksdb: Corruption: SST file is ahead of WALs
2023-10-09T09:15:23.740+0000 7f88188e23c0 -1 bluestore(/var/lib/ceph/osd/ceph-2) _open_db erroring opening db:
/home/jenkins-build/build/workspace/ceph-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/16.2.7/rpm/el8/BUILD/ceph-16.2.7/src/os/bluestore/BlueStore.cc: In function 'int BlueStore::expand_devices(std::ostream&)' thread 7f88188e23c0 time 2023-10-09T09:15:24.080421+0000
/home/jenkins-build/build/workspace/ceph-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/16.2.7/rpm/el8/BUILD/ceph-16.2.7/src/os/bluestore/BlueStore.cc: 6908: FAILED ceph_assert(r == 0)
ceph version 16.2.7 (dd0603118f56ab514f133c8d2e3adfc983942503) pacific (stable)
1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x158) [0x7f880e97eb52]
2: /usr/lib64/ceph/libceph-common.so.2(+0x276d6c) [0x7f880e97ed6c]
3: (BlueStore::expand_devices(std::ostream&)+0x5fd) [0x5627e452362d]
4: main()
5: __libc_start_main()
6: _start()
2023-10-09T09:15:24.076+0000 7f88188e23c0 -1 /home/jenkins-build/build/workspace/ceph-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/16.2.7/rpm/el8/BUILD/ceph-16.2.7/src/os/bluestore/BlueStore.cc: In function 'int BlueStore::expand_devices(std::ostream&)' thread 7f88188e23c0 time 2023-10-09T09:15:24.080421+0000
/home/jenkins-build/build/workspace/ceph-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/16.2.7/rpm/el8/BUILD/ceph-16.2.7/src/os/bluestore/BlueStore.cc: 6908: FAILED ceph_assert(r == 0)
...

Команды на восстановление ceph-bluestore-tool fsck|repair не принесли результата, ошибка так же самая.
Добавление флагов ceph.conf и повторного выполнения repair также не дало результатов:
debug bluefs = 20
debug bdev = 20
bluefs sync write = false
bluefs buffered io = false

Новые ноды кластера с дисками не подцепляются (автоматически не создаются OSD) после прохождения первичной разметки этих дисков.
Подскажите, что еще можно предпринять?

4 ответов

64 просмотра

попробовать всякие опции для восстановления rocksdb добавить в конфиг осд. https://github.com/facebook/rocksdb/wiki/WAL-Recovery-Modes

Vlad-Trefilov Автор вопроса
Roman
попробовать всякие опции для восстановления rocksd...

Спасибо. Не могу ceph-bluestore-tool скормить файл ceph.conf (/etc/ceph/ceph.conf) с содержимым [osd] bluestore_rocksdb_options_annex = "wal_recovery_mode=kSkipAnyCorruptedRecords" bluefs_buffered_io = false bluefs_sync_write = false Судя по логам с включенной --log-level 20, ceph-bluestore-tool не меняет Options.wal_recovery_mode: 2 оставляя всегда этот параметр = 2 (соответствует wal_recovery_mode=kPointInTimeRecovery), чтобы я не указывал в ceph.conf. Можно ему как то по другому протолкнуть этот параметр?

Vlad Trefilov
Спасибо. Не могу ceph-bluestore-tool скормить файл...

давайте начнем с того, что вам рано запускать fsck. У вас блустор тупо не отрывается. Ибо вот эта функция у вас фейлится int BlueStore::_open_db_and_around(bool read_only, bool to_repair) https://github.com/ceph/ceph/blob/dd0603118f56ab514f133c8d2e3adfc983942503/src/os/bluestore/BlueStore.cc#L5854

Vlad-Trefilov Автор вопроса
Artemy Kapitula
давайте начнем с того, что вам рано запускать fsck...

Это да. Основная ошибка, что rocksdb: Corruption: SST file is ahead of WALs . Вероятно на единственной живой ноде SST ушел вперед или всё повредилось при экстренном обесточивании

Похожие вопросы

Обсуждают сегодня

Не совсем в тему возможно, но может кто то пробовал поднять цеф на нодах вмвари и с последующим подключением через айскази в саму вмварю?
Alexander Zaitsev
34
Привет. Изучаю возможности iscsi gateway и у меня проблема. Я сделал по ману из оф. доки, но спустя какое-то время кластер начал ругаться след.ошибкой: user@ceph-node1:~$ sudo...
Vladimir Ivanov
3
Всем добра. продолжаю знакомится с ceph, возник вопрос на который я с ходу найти ответ не могу. Мысль следующая. Возможен ли кластер цеф, когда основная часть нод в одном дат...
mendisobal
28
Подскажите пожалуйста, а вот много вижу что фактор репликации надо ставить 3 и выше, мониторов по больше. Неужели цеф настолько нестабильный? Или просто используется в мощных ...
Тау Фокс
28
Всем привет, подскажите, пожалуйста, куда копать? *Warning по Ceph* Версия Ceph: ceph -v ceph version 15.2.17 (8a82819d84cf884bd39c17e3236e0632ac146dc4) octopus (stable) На...
Nesterov Ivan
7
Добрый день! Коллеги, подскажите пожалуйста, насколько целесообразно использовать CEPH, в качестве SDS для системы фото видео фиксации в проекте "Безопасный город"? Планируе...
Victor
23
Вот запихали диски в полки. Дальше что? Интерконнект сетевой между серверами какой нужен? Ну чтобы и публичка и бэк CEPH-а за ресурсы сетевые не передрались. А еще по публичк...
Andrey Nemysskiy
7
Есть ли какой-то штатный или известный механизм ограничения количества одновременного запуска осд при старте ноды в container-based кластере с cephadm? Или вариант с кастомиза...
Qntm
17
как понять какие физические диски используются в кластере ?
DimaE
17
Привет, коллеги! Пятница, время охуенных вопросов по RGW. Задача - сделать гранулярный доступ к директориям в бакете. У aws есть пример ну, чтож сделаем по примеру следующую п...
Andrey S
6
Карта сайта