performance: 0.856 device: 0.794 graphic: 0.596 semantic: 0.589 mistranslation: 0.486 architecture: 0.436 vnc: 0.404 kernel: 0.392 socket: 0.385 ppc: 0.380 boot: 0.346 risc-v: 0.345 arm: 0.330 network: 0.288 VMM: 0.246 debug: 0.201 user-level: 0.194 x86: 0.192 permissions: 0.185 KVM: 0.177 PID: 0.176 TCG: 0.169 files: 0.163 i386: 0.147 register: 0.115 assembly: 0.112 peripherals: 0.102 hypervisor: 0.095 virtual: 0.066 storage physical_block_size is restricted to uint16_t It is desirable to set -global scsi-hd.physical_block_size=4194304 for RBD-backed storage. But unfortunatelly, this values is restricted with uint16_t, i.e. 65536 maximum. For example, scsi-hd.discard_granularity=4194304 is not so restricted (and works as expected) I think the SCSI spec is limited to 16 bits for representing the block length (in bytes) (see READ CAPACITY(10) command). It's also probably sub-optimal to force a full 4MiB write even for small IOs. You might achieve what you are looking for by setting the minimal and optimal IO size hints to 4MiB (exposed via SCSI block limits VPD page) using "min_io_size" and "opt_io_size" settings. Yes, you are right. Thanks for the response.