Similarities and Differences between Ceph and iSCSI

Hi,

I am trying to understand the similarities and difference between two storage protocols namely Ceph and iSCSI ? Particularly technical similarities and differences.

Please help me understand it. Looking forward for answers.

Probably before asking this question it will be better you do a little google and read the Wikipedia and respective documentations.

Regarding your question iSCSI is a block device protocol, which presents SCSI commands over TCP/IP for more details read the wikipedia entry at https://en.wikipedia.org/wiki/ISCSI. In essence it means if you have a storage server providing an iSCSI target, you can mount it on remote machine. But remember one iSCSI target can only mount on one client you cannot in general mount the same iSCSI target on multiple machines (e.g. if you want to mount same image storage on multiple machine’s or vm’s or containers, you cannot use iSCSI, but probably need to use something like NFS or glusterfs or ceph).

Ceph is a distributed file system which provides object, block, and file storage in one unified system. Read the details at https://docs.ceph.com/docs/master/

In essence you can also mount it as block device, use it as S3. Also as it is distributed file you can mount the same target on multiple client machine (e.g.if you want to mount same image storage on multiple machine’s, you can use Ceph).

1 Like

ISCSI is low-level and generic to be used in any application.
Ceph is higher level, and LXD can use directly those higher level features.

I suppose if you can afford to setup Ceph, it is better than iSCSI.

See more on Ceph at https://lxd.readthedocs.io/en/latest/storage/

1 Like

Hi ROKA

thanks for helpful reply. Regarding your suggestion to try google, the only problem is the documentation of Ceph is very haphazard as compared to iSCSI.
I have a good understaning of iSCSI but the Ceph information on the internet is not streamlined and at times incomplete. At least you have to admit this fact :slight_smile:

For example the point you mentioned was very helpful for me i.e.

“In essence you can also mount it as block device, use it as S3. Also as it is distributed file you can mount the same target on multiple client machine
(e.g.if you want to mount same image storage on multiple machine’s, you can use Ceph).” Thanks for this point.

  • By S3 you mean Amazon S3 API?

  • And regarding a common model between iSCSI and Ceph, is there any API for iSCSI and Ceph?

Yes Amazon S3 API compatible (may be something might be missing)

As explained in earlier post iSCSI is a low level protocol sending SCSI commands over TCP/IP.

Ceph is a higher level distributed file system (it does not work directly with scsi controller or disk or ssd).

So there is in essence nothing common between iSCSI and Ceph except you can mount iSCSI target and Ceph using the same mount command in OS, for windows you can install an iSCSI driver and mount the iSCSI target, not sure how will you mount Ceph in windows machine (never tried it, as in my team no one touched windows and related os for over 6 years, except for using browser to test apps).