**Symptom:** KVBM fails to start when disk offloading is enabled.
**Cause:**`fallocate()` is not supported on the filesystem (e.g., Lustre, certain network filesystems).
**Cause:**`fallocate()` is not supported on the filesystem (e.g., Lustre, certain network filesystems),
or the storage backend requires a different method for setting `O_DIRECT`.
**Solution:** Enable disk zerofill fallback:
**Solution:**
1. If `fallocate()` is not supported, enable the zerofill fallback:
```bash
export DYN_KVBM_DISK_ZEROFILL_FALLBACK=true
```
If you encounter "write all error" or EINVAL (errno 22), also try:
2. If your filesystem ignores `fcntl(F_SETFL, O_DIRECT)` (e.g., IBM Storage Scale), set the
disk allocator type to pass `O_DIRECT` at file open time instead:
```bash
export DYN_KVBM_DISK_ALLOCATOR_TYPE=open-direct
```
Supported values for `DYN_KVBM_DISK_ALLOCATOR_TYPE`:
-`default`: Apply `O_DIRECT` via `fcntl` after file creation. Works on most POSIX filesystems (ext4, XFS, Lustre, etc.).
-`open-direct`: Pass `O_DIRECT` to `mkostemp` at file open time. Required on filesystems where `fcntl(F_SETFL, O_DIRECT)` is ignored (e.g., IBM Storage Scale).
3. If you encounter "write all error" or EINVAL (errno 22), or need to debug without `O_DIRECT`: