Lucian Petrut
8f7d0eae76
Merge pull request #1 from petrutlucian94/io_improvements
...
Allow retrieving compressed chunks
2026-09-17 18:30:42 +03:00
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
0f45cdf4c1
Update the docs to use "OpenVixDiskLib" naming
2026-09-10 09:36:47 +00:00
Lucian Petrut
e3948d2a45
Avoid unnecessary buffer copies
2026-09-09 14:27:30 +00:00
Lucian Petrut
94e63f96ad
Add stress tests
2026-09-09 13:51:06 +00:00
Lucian Petrut
a28b2c4b93
Document CreateManagedType parameters
2026-09-09 12:55:06 +00:00
Lucian Petrut
720333523c
Further document the reverse engineering tools
2026-09-09 12:41:26 +00:00
Lucian Petrut
7ded8bf588
Update pipeline branch filter
2026-09-09 12:32:10 +00:00
Lucian Petrut
2939caa4fc
Add more crosscheck tests
2026-09-09 10:16:31 +00:00
Lucian Petrut
6395daaf08
Sanitize documentation
2026-09-09 09:42:03 +00:00
Lucian Petrut
d0653b5c24
Add GH pipeline
2026-09-09 09:05:31 +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
b4c35cd26c
Add LGPL v2.1 license
...
Source: https://github.com/git/git/blob/master/LGPL-2.1
2026-09-09 07:22:17 +00:00
Lucian Petrut
e595dcd9e7
Fix code formatting - tox -e fmt
2026-09-08 14:59:43 +00:00
Lucian Petrut
ffce3a1cd6
Add a TODO for vendorizing pyfastlz
2026-09-08 14:42:13 +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
12b826ea13
Remove duplicate method
2026-09-07 15:55:59 +00:00
Lucian Petrut
8eb28ad82d
Add test case for read-only snapshot access
2026-09-07 15:51:01 +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
f18a8d3d71
Add nbd/nbdssl perf tests
2026-09-07 14:33:45 +00:00
Lucian Petrut
b11e109ec5
Document perf improvement trials
2026-09-07 14:11:24 +00:00
Lucian Petrut and Cursor
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
c3e3fa5769
Use entirely random buffer for 32MB IO test
2026-09-07 12:25:44 +00:00
Lucian Petrut
cefae300b9
Add perf tests
2026-09-07 12:22:15 +00:00
Lucian Petrut
ac0baeca86
Add a test covering 32MB read/write ops
2026-09-07 12:16:58 +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 Petrut and Cursor
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