17 Commits
Author SHA1 Message Date
Lucian Petrut 2099591245 Allow retrieving compressed chunks
VDDK always decompresses the chunks it retrieves. However, some
callers may be interested in the compressed chunks, which may
be forwarded to another service involved in the backup process.

We'll add a read flag (skip_decompression). If set, the read
operation will return a "ReadResult" container, containing
a list of fragments and their compressed / decompressed lengths.

If the returned buffer size matches the AIO buffer size (which
now becomes configurable), at most one fragment will be returned.

While at it, we're adding perf tests that check various AIO buffer
sizes, cross checking against VDDK.
2026-09-17 15:29:11 +00:00
Lucian Petrut 0f45cdf4c1 Update the docs to use "OpenVixDiskLib" naming 2026-09-10 09:36:47 +00:00
Lucian Petrut 720333523c Further document the reverse engineering tools 2026-09-09 12:41:26 +00:00
Lucian Petrut 6395daaf08 Sanitize documentation 2026-09-09 09:42:03 +00:00
Lucian Petrut 14ed40548e Document probing samples 2026-09-08 14:41:24 +00:00
Lucian Petrut f70a1d485e Minor changes to the reverse engineering doc
We'll rephrase a few sentences to improve readability.
2026-09-08 14:22:21 +00:00
Lucian Petrut 51295bdfd0 Avoid disk scoped NFC ticket for read-only access 2026-09-07 15:45:28 +00:00
Lucian Petrut a82c56b069 Walk the snapshot chain when looking for disk paths 2026-09-07 15:40:52 +00:00
Lucian Petrut 0039fdbb3d Improve write performance, avoid roundtrip per fragment 2026-09-07 15:18:21 +00:00
Lucian Petrut b11e109ec5 Document perf improvement trials 2026-09-07 14:11:24 +00:00
Lucian PetrutandCursor d0a6de03d2 Pipeline NFC writes to avoid delayed ACK and RTT stalls
Send each AIO write as one buffer with TCP_NODELAY, and keep four
IOs in flight so FastLZ and multi-chunk writes are not serialized.

Co-authored-by: Cursor <[email protected]>
2026-09-07 13:51:24 +00:00
Lucian Petrut 33b6a3967b Use pyfastlz instead of pure-python implementation 2026-09-07 13:38:45 +00:00
Lucian Petrut 56a1c36c80 Add fastlz compression support 2026-09-07 13:10:10 +00:00
Lucian Petrut b7131ec0af Add nbdssl support 2026-09-07 12:46:00 +00:00
Lucian Petrut c590089866 Properly handle out of order read fragments 2026-09-07 12:10:03 +00:00
Lucian Petrut 1e9c2816ef tests: use pytest instead of unittest
pytest provides session scoped fixtures, making it much easier
to reuse resources across tests.
2026-09-07 11:52:46 +00:00
Lucian PetrutandCursor 4ddf0c015d Add openvixdisklib as an open NBD replacement for VMware VDDK.
VDDK is no longer publicly distributed, so this library reverse-engineers
the vSphere NFC path and exposes ConnectEx, Open, Read, and Write without
the proprietary SDK.

Co-authored-by: Cursor <[email protected]>
2026-09-07 11:41:01 +00:00