cetrafs
ReferenceInformation-oriented

Troubleshooting

Symptoms, error messages and counters, with what each one means and where to go next.

Errors from applications

SymptomMeaningNext step
Text file busy (ETXTBSY) opening a fileAnother live node has it open for writing (default mount), or holds it with flockExpected. If the holder crashed, it clears after the stale window.
Text file busy deleting or renaming over a fileAnother live node has the target openClose it there first
qemu: Could not open '…': Text file busy during live migrationThe cluster is mounted with the file lock onEnable live migration
Every write fails with EIOThis node has fenced itself: a peer took over its resourcesCheck fenced: yes in info, then unmount and mount again. Details
ENOSPC with free space showingNo owned Zone Group has room and none is free to claim (write_ready: no), or the inodes have run outCheck free_inodes and write_ready
EOPNOTSUPP from fallocateA mode other than allocate or punch-hole was requestedLimits
EOPNOTSUPP from flockShared lock requested, or a default (locked) mountUse LOCK_EX, under nofilelock
EINVAL from renameRENAME_EXCHANGE or RENAME_WHITEOUTNot supported

Mount failures

SymptomMeaningNext step
EBUSYThe device has no atomic CAW and another node already has it mountedSingle-node only. Check CAW.
EINVAL, version or feature in dmesgThe volume was made by a different format versionReformat. Upgrade
EINVAL, file-lock mode conflict in dmesgYour nofilelock option disagrees with the mode the cluster already usesUse the same options as the other nodes
“CAW discovery failed … refusing the mount”cetrafs couldn’t determine whether the device supports compare-and-writeCheck the storage path; the probe will show the error
Mounted read-only unexpectedlyUnknown read-only-compatible feature bitTools and module are older than the volume
Mounts, but write_ready: noEvery Zone Group is owned by a live peerNormal on a busy cluster; persistent means too few Zone Groups for the number of writers
unknown filesystem type 'cetrafs'Module not installed for this kerneldkms status cetrafs; install the headers for the running kernel
insmod: unknown symbol crc32cCRC32C is a separate module on this kernelmodprobe libcrc32c, or install the module and use modprobe

Tool exit codes

Tool3 means
mkfs.cetraDevice inaccessible, or mounted locally or by a live peer. -f won’t override this.
fsck.cetraCouldn’t examine the device: inaccessible, mounted, or a live registry row (wait out the stale window after a crash)

Messages in fsck output

MessageMeaning
N data block(s) marked in use but referenced by no inode (leaked)Normal after a node crash: blocks reserved ahead of need. The scrubber reclaims them; -r does it at once.
Orphan inodes, drifted counts after an unclean shutdownLeftovers from operations that weren’t acknowledged (per-fsync consistency). -r repairs them.
Cross-file overlap, unreadable inode, dangling entry-r refuses: these need a human decision. Keep the image, and report it.

Counters worth a second look

Counter (in info)Concerning when
journal_replay_refusedIt rises with no recent failover. Find the block in dmesg.
cas_miscomparesIt stays at 0 while two nodes are both busy (they may not share the device)
scrub_reclaimed / scrub_cyclesLeaks keep growing across crashes and scrub_cycles doesn’t move
file_cache_drops far above file_cache_reconcilesFiles are stuck re-reading metadata from the device; I/O will be slow
giveback_blocks rising steadilyExtent splits are running out of room; usually a preallocated or heavily fragmented image

Performance

SymptomLikely cause
Guest much slower than the hostaio=io_uring, qcow2, or preallocation. Configure VM disks.
dd if=/dev/zero in the guest returns instantly, then stallsqemu detect_zeroes is dropping the writes; not the filesystem
Creates and deletes take hundreds of millisecondsExpected: synchronous metadata over device round trips. Performance model.
A large copy gets slower as it goesCheck bg_pick_scan and bg_desc_refreshed; report it with those numbers

Getting more information

  • dmesg | grep cetrafs: errors and warnings are always logged.
  • Turn on debug logging for a full trace.
  • cat /proc/fs/cetrafs/*/{info,cluster,properties} from every node.
Danger

Never rmmod -f cetrafs. A forced removal can leave a dangling entry in the kernel’s memory-reclaim list that oopses the host on the next reclaim pass, and it persists until reboot. Unmount, then use plain rmmod.

Last updated