Earlier quoted context omitted.
iSCSI seems intentionally obscure. One of the improvements I made to NBD was invent a simple, standardized URI format so that you can specify servers easily, eg: nbdinfo nbd://server nbdcopy nbd://server:2001/ nbd+unix:///?socket=/tmp/localsock https://github.com/NetworkBlockDevice/nbd/blob/master/doc/ur...
NBD looks pretty nice! I've been eyeing it from afar for a while. How well does it work in environments with noticeable network latency?
You can actually see what happens quite easily if you've got an OS image handy. With a Fedora VM image:
$ virt-builder fedora-42 --root-password=password:123456
$ nbdkit file fedora-42.img --filter=delay rdelay=50ms \
--run 'qemu-system-x86_64 -machine accel=kvm:tcg \
-cpu max -m 2048 \
-drive file="$uri",format=raw,if=virtio'
("$uri" expands to the NBD URI of the nbdkit server which qemu can parse natively)Even that 1 second delay is painful since it turns out that booting is quite serialized. Edit: I turned down the latency to 50ms in the example which is a bit more realistic. Still painful.