[SOLVED] OSD Crash after upgrade from 5.4 to 6.3

RedBlood9

Member
Apr 16, 2018
34
0
11
30
Hi to all
We have recently upgraded our cluster from the version 5.4 to version 6.3. Our cluster is composed of 6 ceph node and 5 hypervisor. All server have the same packages versions. Here's the details:
Code:
pveversion -v
proxmox-ve: 6.3-1 (running kernel: 5.4.101-1-pve)
pve-manager: 6.3-4 (running version: 6.3-4/0a38c56f)
pve-kernel-5.4: 6.3-6
pve-kernel-helper: 6.3-6
pve-kernel-5.4.101-1-pve: 5.4.101-1
pve-kernel-4.15: 5.4-19
pve-kernel-4.15.18-30-pve: 4.15.18-58
pve-kernel-4.15.18-27-pve: 4.15.18-55
pve-kernel-4.15.18-24-pve: 4.15.18-52
pve-kernel-4.15.18-21-pve: 4.15.18-48
pve-kernel-4.15.18-11-pve: 4.15.18-34
pve-kernel-4.15.18-9-pve: 4.15.18-30
ceph: 14.2.16-pve1
ceph-fuse: 14.2.16-pve1
corosync: 3.1.0-pve1
criu: 3.11-3
glusterfs-client: 5.5-3
ifupdown: 0.8.35+pve1
ksm-control-daemon: 1.3-1
libjs-extjs: 6.0.1-10
libknet1: 1.20-pve1
libproxmox-acme-perl: 1.0.7
libproxmox-backup-qemu0: 1.0.3-1
libpve-access-control: 6.1-3
libpve-apiclient-perl: 3.1-3
libpve-common-perl: 6.3-4
libpve-guest-common-perl: 3.1-5
libpve-http-server-perl: 3.1-1
libpve-storage-perl: 6.3-7
libqb0: 1.0.5-1
libspice-server1: 0.14.2-4~pve6+1
lvm2: 2.03.02-pve4
lxc-pve: 4.0.6-2
lxcfs: 4.0.6-pve1
novnc-pve: 1.1.0-1
proxmox-backup-client: 1.0.8-1
proxmox-mini-journalreader: 1.1-1
proxmox-widget-toolkit: 2.4-5
pve-cluster: 6.2-1
pve-container: 3.3-4
pve-docs: 6.3-1
pve-edk2-firmware: 2.20200531-1
pve-firewall: 4.1-3
pve-firmware: 3.2-2
pve-ha-manager: 3.1-1
pve-i18n: 2.2-2
pve-qemu-kvm: 5.2.0-2
pve-xtermjs: 4.7.0-3
qemu-server: 6.3-5
smartmontools: 7.1-pve2
spiceterm: 3.1-1
vncterm: 1.6-2
zfsutils-linux: 2.0.3-pve2

We've followed the steps in the procedure guide and everything went right, but after few days, we've started to get some crash osd side. We have already deep-scrubed all the OSD and reinstalled the OSD on each node (one node per time, destroyng all the OSD and recreating them); unfortunately without result.
Code:
sudo ceph crash ls
ID                                                               ENTITY    NEW 
2021-03-07_01:12:26.218909Z_208c3854-65b9-4eed-b49b-e2be77945470 mon.is104     
2021-03-09_06:33:27.088249Z_297f620f-6cd0-4120-9076-ea82cd50c34f osd.7         
2021-03-13_04:29:51.479099Z_856b779d-6077-4882-9c72-73f1ac21f754 osd.11        
2021-03-13_04:30:04.931045Z_3f875be2-2cfe-4004-9c1e-7248cfb019e5 osd.11        
2021-03-13_04:30:16.013286Z_ebfd1eeb-de25-40b2-88ad-f3c1c99bf6ff osd.11        
2021-03-13_04:30:27.712840Z_59776330-87d3-4cf8-9c8d-909e767c0c00 osd.11        
2021-03-13_10:15:45.143602Z_fd12bded-4b67-4e5d-9043-818fe2b0762e osd.11        
2021-03-13_10:15:57.017921Z_24d29e3f-8fc9-450f-91ef-3602b104cefd osd.11        
2021-03-13_10:16:08.347586Z_ae6fe305-9086-4518-8f1f-57446b7fa1d8 osd.11        
2021-03-13_10:16:55.169232Z_cf73388a-990b-440f-9a81-88fa95079e17 osd.11        
2021-03-13_10:17:07.046529Z_a71aa847-7037-4548-8eac-69bc678edf98 osd.11        
2021-03-13_10:17:18.350953Z_f966f8af-ec25-4938-adaf-777fca12cdc5 osd.11        
2021-03-17_21:17:07.029168Z_95c8bfb0-641b-4f7b-a3a9-6dd056569521 osd.31        
2021-03-19_07:55:53.344451Z_cd76eea6-6054-4661-ad3f-00df36a155fb osd.29        
2021-03-21_05:01:57.468501Z_063378aa-05c6-4c18-9b8d-fc114959b2bb osd.28        
2021-03-22_10:27:31.074965Z_b1de5fda-99bf-4d8b-9d84-1e54db925d6d osd.4         
2021-03-22_17:31:00.510777Z_1bedff2f-a39b-438b-84bc-324bde91c6fb osd.30        
2021-03-22_23:28:01.827518Z_f8d7c19c-7d83-4eee-ab27-09c47b704419 osd.29

sudo ceph crash info 2021-03-22_23:28:01.827518Z_f8d7c19c-7d83-4eee-ab27-09c47b704419
{
    "os_version_id": "10", 
    "utsname_machine": "x86_64", 
    "entity_name": "osd.29", 
    "backtrace": [
        "(()+0x12730) [0x7f2640439730]", 
        "(gsignal()+0x10b) [0x7f263ff1c7bb]", 
        "(abort()+0x121) [0x7f263ff07535]", 
        "(ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x1a3) [0x55c48a47ac6f]", 
        "(()+0x513df6) [0x55c48a47adf6]", 
        "(BlueFS::_read_random(BlueFS::FileReader*, unsigned long, unsigned long, char*)+0xc7e) [0x55c48aaa238e]", 
        "(BlueRocksRandomAccessFile::Read(unsigned long, unsigned long, rocksdb::Slice*, char*) const+0x20) [0x55c48aad0820]", 
        "(rocksdb::RandomAccessFileReader::Read(unsigned long, unsigned long, rocksdb::Slice*, char*) const+0x956) [0x55c48b0ded56]", 
        "(rocksdb::BlockFetcher::ReadBlockContents()+0x589) [0x55c48b0a2f49]", 
        "(rocksdb::BlockBasedTable::MaybeReadBlockAndLoadToCache(rocksdb::FilePrefetchBuffer*, rocksdb::BlockBasedTable::Rep*, rocksdb::ReadOptions const&, rocksdb::BlockHandle const&, rocksdb::UncompressionDict const&, rocksdb::BlockBasedTable::CachableEntry<rocksdb::Block>*, bool, rocksdb::GetContext*)+0x475) [0x55c48b091975]", 
        "(rocksdb::DataBlockIter* rocksdb::BlockBasedTable::NewDataBlockIterator<rocksdb::DataBlockIter>(rocksdb::BlockBasedTable::Rep*, rocksdb::ReadOptions const&, rocksdb::BlockHandle const&, rocksdb::DataBlockIter*, bool, bool, bool, rocksdb::GetContext*, rocksdb::Status, rocksdb::FilePrefetchBuffer*)+0x390) [0x55c48b09edf0]", 
        "(rocksdb::BlockBasedTable::Get(rocksdb::ReadOptions const&, rocksdb::Slice const&, rocksdb::GetContext*, rocksdb::SliceTransform const*, bool)+0x492) [0x55c48b09a9d2]", 
        "(rocksdb::TableCache::Get(rocksdb::ReadOptions const&, rocksdb::InternalKeyComparator const&, rocksdb::FileMetaData const&, rocksdb::Slice const&, rocksdb::GetContext*, rocksdb::SliceTransform const*, rocksdb::HistogramImpl*, bool, int)+0x194) [0x55c48b010914]", 
        "(rocksdb::Version::Get(rocksdb::ReadOptions const&, rocksdb::LookupKey const&, rocksdb::PinnableSlice*, rocksdb::Status*, rocksdb::MergeContext*, unsigned long*, bool*, bool*, unsigned long*, rocksdb::ReadCallback*, bool*)+0x35f) [0x55c48b02b04f]", 
        "(rocksdb::DBImpl::GetImpl(rocksdb::ReadOptions const&, rocksdb::ColumnFamilyHandle*, rocksdb::Slice const&, rocksdb::PinnableSlice*, bool*, rocksdb::ReadCallback*, bool*)+0x9a0) [0x55c48af48930]", 
        "(rocksdb::DBImpl::Get(rocksdb::ReadOptions const&, rocksdb::ColumnFamilyHandle*, rocksdb::Slice const&, rocksdb::PinnableSlice*)+0x26) [0x55c48af48c46]", 
        "(rocksdb::DB::Get(rocksdb::ReadOptions const&, rocksdb::ColumnFamilyHandle*, rocksdb::Slice const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)+0xae) [0x55c48af574ce]", 
        "(RocksDBStore::get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ceph::buffer::v14_2_0::list*)+0x2bf) [0x55c48af1892f]", 
        "(()+0xa33fa9) [0x55c48a99afa9]", 
        "(()+0xa1eb11) [0x55c48a985b11]", 
        "(BlueStore::ExtentMap::fault_range(KeyValueDB*, unsigned int, unsigned int)+0x557) [0x55c48a9a0a67]", 
        "(BlueStore::_do_read(BlueStore::Collection*, boost::intrusive_ptr<BlueStore::Onode>, unsigned long, unsigned long, ceph::buffer::v14_2_0::list&, unsigned int, unsigned long)+0x35a) [0x55c48a9e983a]", 
        "(BlueStore::read(boost::intrusive_ptr<ObjectStore::CollectionImpl>&, ghobject_t const&, unsigned long, unsigned long, ceph::buffer::v14_2_0::list&, unsigned int)+0x1b5) [0x55c48a9f7925]", 
        "(ReplicatedBackend::objects_read_sync(hobject_t const&, unsigned long, unsigned long, unsigned int, ceph::buffer::v14_2_0::list*)+0xa3) [0x55c48a85d833]", 
        "(PrimaryLogPG::do_read(PrimaryLogPG::OpContext*, OSDOp&)+0x21b) [0x55c48a702e7b]", 
        "(PrimaryLogPG::do_osd_ops(PrimaryLogPG::OpContext*, std::vector<OSDOp, std::allocator<OSDOp> >&)+0x36ef) [0x55c48a71c58f]", 
        "(PrimaryLogPG::prepare_transaction(PrimaryLogPG::OpContext*)+0x14f) [0x55c48a72be6f]", 
        "(PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)+0x385) [0x55c48a72c605]", 
        "(PrimaryLogPG::do_op(boost::intrusive_ptr<OpRequest>&)+0x3101) [0x55c48a730cc1]", 
        "(PrimaryLogPG::do_request(boost::intrusive_ptr<OpRequest>&, ThreadPool::TPHandle&)+0xd77) [0x55c48a7330c7]", 
        "(OSD::dequeue_op(boost::intrusive_ptr<PG>, boost::intrusive_ptr<OpRequest>, ThreadPool::TPHandle&)+0x392) [0x55c48a55eec2]", 
        "(PGOpItem::run(OSD*, OSDShard*, boost::intrusive_ptr<PG>&, ThreadPool::TPHandle&)+0x62) [0x55c48a802fe2]", 
        "(OSD::ShardedOpWQ::_process(unsigned int, ceph::heartbeat_handle_d*)+0x7d7) [0x55c48a57ac07]", 
        "(ShardedThreadPool::shardedthreadpool_worker(unsigned int)+0x5b4) [0x55c48ab4b7f4]", 
        "(ShardedThreadPool::WorkThreadSharded::entry()+0x10) [0x55c48ab4e200]", 
        "(()+0x7fa3) [0x7f264042efa3]", 
        "(clone()+0x3f) [0x7f263ffde4cf]"
    ], 
    "assert_line": 1565, 
    "utsname_release": "5.4.101-1-pve", 
    "assert_file": "/build/ceph/ceph-14.2.16/src/os/bluestore/BlueFS.cc", 
    "utsname_sysname": "Linux", 
    "os_version": "10 (buster)", 
    "os_id": "10", 
    "assert_thread_name": "tp_osd_tp", 
    "assert_msg": "/build/ceph/ceph-14.2.16/src/os/bluestore/BlueFS.cc: In function 'int BlueFS::_read_random(BlueFS::FileReader*, uint64_t, size_t, char*)' thread 7f26246e5700 time 2021-03-23 00:28:01.804118\n/build/ceph/ceph-14.2.16/src/os/bluestore/BlueFS.cc: 1565: FAILED ceph_assert(r == 0)\n", 
    "assert_func": "int BlueFS::_read_random(BlueFS::FileReader*, uint64_t, size_t, char*)", 
    "ceph_version": "14.2.16", 
    "os_name": "Debian GNU/Linux 10 (buster)", 
    "timestamp": "2021-03-22 23:28:01.827518Z", 
    "process_name": "ceph-osd", 
    "archived": "2021-03-23 00:49:14.832600", 
    "utsname_hostname": "is104", 
    "crash_id": "2021-03-22_23:28:01.827518Z_f8d7c19c-7d83-4eee-ab27-09c47b704419", 
    "assert_condition": "r == 0", 
    "utsname_version": "#1 SMP PVE 5.4.101-1 (Fri, 26 Feb 2021 13:13:09 +0100)"
}
sudo ceph --version
ceph version 14.2.16 (5d5ae817209e503a412040d46b3374855b7efe04) nautilus (stable)

All servers have 6 OSD with a DB disk on a NVME sife 30GB each DB part.
Reading the information from the crash dump I can't understand what happened and the cause, does have a clue?
 
I forgot the ceph.conf file, here it is:
Code:
[global]
     auth_client_required = ZZZZ
     auth_cluster_required = ZZZZ
     auth_service_required = ZZZZ
     cluster_network = XXX.XXX.XXX.XXX/XX
     debug_asok = 0/0
     debug_auth = 0/0
     debug_buffer = 0/0
     debug_client = 0/0
     debug_context = 0/0
     debug_crush = 0/0
     debug_filer = 0/0
     debug_filestore = 0/0
     debug_finisher = 0/0
     debug_heartbeatmap = 0/0
     debug_journal = 0/0
     debug_journaler = 0/0
     debug_lockdep = 0/0
     debug_mon = 0/0
     debug_monc = 0/0
     debug_ms = 0/0
     debug_objclass = 0/0
     debug_objectcatcher = 0/0
     debug_objecter = 0/0
     debug_optracker = 0/0
     debug_osd = 0/0
     debug_paxos = 0/0
     debug_perfcounter = 0/0
     debug_rados = 0/0
     debug_rbd = 0/0
     debug_rgw = 0/0
     debug_throttle = 0/0
     debug_timer = 0/0
     debug_tp = 0/0
     filestore_fd_cache_shards = 32
     filestore_fd_cache_size = 64
     filestore_max_sync_interval = 10
     filestore_merge_threshold = 500
     filestore_op_threads = 6
     filestore_queue_committing_max_bytes = 1048576000
     filestore_queue_committing_max_ops = 5000
     filestore_queue_max_bytes = 1048576000
     filestore_queue_max_ops = 5000
     filestore_split_multiple = 100
     filestore_wbthrottle_enable = false
     filestore_xattr_use_omap = true
     fsid = 0c205f41-e472-4b95-93fe-68df86ddbf03
     journal_max_write_bytes = 1048576000
     journal_max_write_entries = 5000
     journal_queue_max_bytes = 1048576000
     journal_queue_max_ops = 3000
     mon_allow_pool_delete = true
     mon_host = XXX.XXX.XXX.YYY XXX.XXX.XXX.WWW XXX.XXX.XXX.QQQ XXX.XXX.XXX.AAA XXX.XXX.XXX.BBB XXX.XXX.XXX.NNN
     ms_dispatch_throttle_bytes = 1048576000
     objecter_inflight_ops = 102400
     objector_inflight_op_bytes = 1048576000
     osd_client_message_cap = 0
     osd_client_message_size_cap = 0
     osd_enable_op_tracker = false
     osd_mkfs_options_xfs = -f -i size=2048
     osd_mount_options_xfs = rw,noatime,inode64,logbsize=256k,delaylog,nodiratime
     osd_op_num_shards = 5
     osd_op_num_threads_per_shard = 2
     osd_op_shard_threads = 8
     osd_op_threads = 32
     osd_pool_default_min_size = 2
     osd_pool_default_size = 3
     public_network = XXX.XXX.XXX.XXX/XX

[client]
     keyring = /etc/pve/priv/$cluster.$name.keyring
     log_file = /dev/null
     rbd_cache = false
     rgw_cache_enabled = true
     rgw_cache_lru_size = 100000
     rgw_enable_ops_log = false
     rgw_enable_usage_log = false
     rgw_frontends = civetweb port=80
     rgw_override_bucket_index_max_shards = 8
     rgw_thread_pool_size = 256

[mds]
     keyring = /var/lib/ceph/mds/ceph-$id/keyring

[mds.server1]
     host = server1
     mds standby for name = pve

[mds.server2]
     host = server2
     mds_standby_for_name = pve

[mds.server3]
     host = server3
     mds_standby_for_name = pve

[mds.server4]
     host = server4
     mds_standby_for_name = pve

[mds.server5]
     host = server5
     mds_standby_for_name = pve

[mds.server6]
     host = server6
     mds_standby_for_name = pve
 
We found out that our nvme disk with the journal was dying and resulted in the casually osd crash. Removing the nvme solved the problem.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!