We Run iSCSI over the Internet
12 hours ago
- #Network Storage
- #iSCSI
- #Elixir
- iSCSI protocol was designed for SANs, not the public internet, but scsipub adapts it through a series of technical decisions.
- Uses Ranch 2.x listeners with one BEAM process per session, making it efficient for many concurrent connections.
- Implements COW (Copy-on-Write) overlays for sparse storage, separating read-only base images from per-session writes.
- Caddy handles TLS termination, with a system to sync Let's Encrypt certificates to the iSCSI listener.
- Addresses quirks in open-iscsi, such as avoiding '/' in IQN names and ensuring SendTargets advertises reachable addresses.
- Supports cluster features like multi-LUN sessions and SCSI-3 Persistent Reservations for failover scenarios.
- Deliberately omits multi-region support, S3/NBD backends, RDMA, MPIO, and per-session encryption beyond TLS.
- Future plans include stress testing under high iSCSI load to identify BEAM failure modes.