Files
gotgt/examples/config-s3.json
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

32 lines
706 B
JSON

{
"storages": [
{
"deviceID": 2000,
"path": "s3:gotgt-bucket/iscsi/disk0",
"online": true,
"backendType": "s3",
"blockShift": 9,
"deviceSize": 1073741824,
"s3ChunkSize": 4194304,
"s3Endpoint": "http://localhost:9000",
"s3ForcePathStyle": true
}
],
"iscsiportals": [
{
"id": 0,
"portal": "127.0.0.1:3260"
}
],
"iscsitargets": {
"iqn.2016-09.com.gotgt.gostor:s3-target": {
"tpgts": {
"1": [0]
},
"luns": {
"1": 2000
}
}
}
}