31 Commits

Author SHA1 Message Date
Lei Xue
76ab15b0df feat: add S3-compatible object storage backend
Add a new backend store that enables iSCSI targets backed by
S3-compatible object storage (AWS S3, MinIO, Ceph RGW, etc.).

The implementation uses a chunked storage strategy where the virtual
block device is divided into fixed-size chunks (default 4 MiB), each
stored as an independent S3 object. This enables efficient random
read/write access on top of object storage.

Key features:
- Chunked storage with configurable chunk size
- Sparse device support (unwritten chunks treated as zeros)
- Concurrent multi-chunk I/O via errgroup
- Per-chunk locking for safe read-modify-write
- AWS SDK v2 with default credential chain
- In-process gofakes3 test server (no Docker needed)
- 12 unit tests + 2 integration tests

Also updates CI workflow to run S3 backend tests and updates
README with S3 backend documentation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 16:22:57 +08:00
Lei Xue
00cfac3d24 optimize the perf and support more features 2026-03-14 11:45:35 +08:00
Lei Xue
5834be72b3 update README.md 2022-12-11 10:03:11 +08:00
Lei Xue
e7fb6876ad update README.md 2022-12-10 22:43:00 +08:00
Le Zhang
e2192b7b01 Merge pull request #75 from carmark/makefile
update Makefile and vendor
2018-11-25 21:31:35 +08:00
Lei Xue
8af6a91545 update makefile 2018-11-18 17:26:13 +08:00
princerachit
758736a8ef Fix typo
on -> one
2018-04-03 16:44:04 +05:30
T.Paul Lee
58d5eb9810 Add example setup, open-iscsi, libiscsi test scripts 2017-10-04 17:56:56 +08:00
T.Paul Lee
5c7d1f49ce More information on the iSCSI target library and source code structure. 2017-09-08 16:41:13 +08:00
Marek Denis
3317ee494b Fix typo in README.md
Replace `implemented by golang` with `implemented in golang`.
2017-01-17 22:12:10 +00:00
Lei Xue
c8d2d89619 update README.md to move Roardmap into github issues 2016-12-11 18:21:21 +08:00
Lei Xue
fd52b81c51 add Dockerfile 2016-11-29 17:59:25 +08:00
Le Zhang
f551f74758 Update README.md 2016-11-29 01:20:34 -06:00
Lei Xue
a28b586bf9 Update README.md
* finish `Target Group` and `Target Port`
* assign `Login` to orzhang
2016-11-29 13:39:11 +08:00
Lei Xue
d3c3a96920 delete cit to use new gotgt as main cmd, use logrus instead of glog 2016-11-29 11:21:40 +08:00
Lei Xue
18e1419b06 fix verify and add verify test cases 2016-11-28 16:26:05 +08:00
Lei Xue
82ae696822 remove unnecessary code and doc 2016-11-28 14:36:13 +08:00
Lei Xue
f4197d0024 add more comments 2016-11-24 21:02:17 +08:00
Le Zhang
39a9e7ac67 Update README.md 2016-10-18 17:04:06 +08:00
Lei Xue
a1e8559121 Update README.md 2016-10-10 11:26:47 +08:00
Le Zhang
97fb41fc98 Update README.md 2016-10-08 12:28:39 +08:00
Le Zhang
246b417bbb Update README.md 2016-10-08 10:57:26 +08:00
Lei Xue
c20e0f838b Update README.md 2016-10-07 17:09:05 +08:00
Lei Xue
4f0606a5ec Update README.md 2016-10-06 09:32:51 +08:00
Lei Xue
fbf72408df add CONTRIBUTING.md and modify README.md 2016-10-05 18:57:13 +08:00
Lei Xue
0e5887ae6b Update README.md 2016-09-26 10:30:39 +08:00
Lei Xue
5e57a38dfd add more test cases 2016-09-25 20:15:41 +08:00
Lei Xue
d636e6deb5 update README 2016-05-03 08:57:13 +08:00
orzhang
5ca71f32e1 Update README.md 2015-12-14 11:15:11 +08:00
Lei Xue
a9a7d63c20 init commit 2015-12-14 10:23:35 +08:00
Lei Xue
8a42eb1bab Initial commit 2015-12-11 08:39:56 +08:00