gotgt is a simple SCSI Target framework implemented in golang, built for performance and density..
Small Computer System Interface (SCSI) is a set of standards for physically connecting and transferring data between computers and peripheral devices. The SCSI standards define commands, protocols, electrical and optical interfaces. SCSI is most commonly used for hard disk drives and tape drives, but it can connect a wide range of other devices, including scanners and CD drives, although not all controllers can handle all devices.
The iSCSI is an acronym for Internet Small Computer Systems Interface, an Internet Protocol (IP)-based storage networking standard for linking data storage facilities. In a nutshell, it provides block-level access to storage devices over a TCP/IP network.
Currently, the gotgt is under heavy development, so there is no any release binaries so far, you have to build it from source.
There is a only on binary name gotgt
, you can start a daemon via gotgt daemon
and control it via gotgt list/create/rm
.
You will need to make sure that you have Go installed on your system and the gotgt
repository is cloned in your $GOPATH.
$ mkdir -p $GOPATH/src/github.com/gostor/
$ cd $GOPATH/src/github.com/gostor/
$ git clone https://github.com/gostor/gotgt gotgt
$ cd gotgt
$ ./autogen.sh
$ ./configure
$ make
Now, there is lack of commands to operate the target and LU, however you can init the target/LU with config file in ~/.gotgt/config.json
, you may find a example at here.
Please note, if you want use that exmaple, you have to make sure file /var/tmp/disk.img
is existed.
You can test this with open-iscsi or libiscsi.
TBD
The current roadmap and milestones for alpha and beta completion are in the github issues on this repository. Please refer to these issues for what is being worked on and completed for the various stages of development.
Want to help build gotgt? Check out our contributing documentation.