Commit Graph
20 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 f0db6e166b Fix version compatibilty check
At the moment, we only support the v8 API. We'll update the checks
accordingly.

Newer vSphere versions are expected to continue to provide v8 support.
2026-09-10 11:02:14 +00:00
Lucian Petrut e3948d2a45 Avoid unnecessary buffer copies 2026-09-09 14:27:30 +00:00
Lucian Petrut a28b2c4b93 Document CreateManagedType parameters 2026-09-09 12:55:06 +00:00
Lucian Petrut 070c372c50 Treat thumbprint handling the same way as VDDK 2026-09-09 09:02:31 +00:00
Lucian Petrut 1e5b2d70a5 Restore Python 3.10 compatibility 2026-09-09 08:54:22 +00:00
Lucian Petrut f64c753d9c Fix linter failures 2026-09-09 08:43:42 +00:00
Lucian Petrut 2c8580d750 Fix allow_untrusted param handling 2026-09-09 08:31:48 +00:00
Lucian Petrut 9954cfe50f Log openvixdisklib connect parameters 2026-09-09 08:29:24 +00:00
Lucian Petrut e595dcd9e7 Fix code formatting - tox -e fmt 2026-09-08 14:59:43 +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 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