трех 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) после прохождения первичной разметки этих дисков.
Подскажите, что еще можно предпринять?
попробовать всякие опции для восстановления rocksdb добавить в конфиг осд. https://github.com/facebook/rocksdb/wiki/WAL-Recovery-Modes
Спасибо. Не могу 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. Можно ему как то по другому протолкнуть этот параметр?
давайте начнем с того, что вам рано запускать 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
Это да. Основная ошибка, что rocksdb: Corruption: SST file is ahead of WALs . Вероятно на единственной живой ноде SST ушел вперед или всё повредилось при экстренном обесточивании
Обсуждают сегодня