Open-iSCSI in research paper

29 views
Skip to first unread message

Bobby

unread,
Dec 31, 2019, 10:49:49 AM12/31/19
to open-iscsi
Hi all,

I have come across this research paper (attached) called "Design and implementation of IP-based iSCSI Offoad Engine on an FPGA"  and the authors have mentioned they have used open source software based Open-iSCSI for their research. At the moment there are 2 questions based on this paper.

Question 1:
On page 3 and under section 2.4 ( Performance Analysis of Open-iSCSI), they have started the paragraph with following lines:

"We analyzed iSCSI traffic with Wireshark, the open source network packet analyzer. We measured traffic between a software initiator and a target by using a set of microbenchmarks. The microbenchmarks transmitted arbitrary number of data in both directions "

The question is...what are these microbenchmarks. There is no reference to these microbenchmarks in this paper. Any idea, what are these microbenchmarks? 

Question 2:
Similarly, on the same page 3 and under section 2.3 (Related Work), they have written "The most common software implementations in the research community are open source Open-iSCSI and UNH-iSCSI projects".

After my research on UNH-iSCSI, I have found some work where some researchers have proposed a hardware accelerator for data transfer iSCSI functions. They analyzed UNH-iSCSI source code and presented a general methodology that transforms the software C code into the hardware HDL (FPGA) implementation. Hence their hardware accelerator is designed with direct C-to-HDL translation of specific sub-modules of UNH-iSCSI software.

The question: Is there any similar work like this for Open-iSCSI where specific sub-modules of Open-iSCSI are translated to a hardware language like Verilog/VHDL on hardware (FPGA)? If not, can you please give a hint what would possibly a starting point in case of Open-iSCSI? Because the attached paper does not mention the specific functions of Open-iSCSI code that could be translated to HDL. 

Thanks !

Open-iSCSI-research paper.pdf

The Lee-Man

unread,
Jan 1, 2020, 1:37:09 PM1/1/20
to open-iscsi
 On Tuesday, December 31, 2019 at 7:49:49 AM UTC-8, Bobby wrote:
Hi all,

I have come across this research paper (attached) called "Design and implementation of IP-based iSCSI Offoad Engine on an FPGA"  and the authors have mentioned they have used open source software based Open-iSCSI for their research. At the moment there are 2 questions based on this paper.

Question 1:
On page 3 and under section 2.4 ( Performance Analysis of Open-iSCSI), they have started the paragraph with following lines:

"We analyzed iSCSI traffic with Wireshark, the open source network packet analyzer. We measured traffic between a software initiator and a target by using a set of microbenchmarks. The microbenchmarks transmitted arbitrary number of data in both directions "

The question is...what are these microbenchmarks. There is no reference to these microbenchmarks in this paper. Any idea, what are these microbenchmarks? 

I have no idea. They didn't consult me when doing this paper. :)

Question 2:
Similarly, on the same page 3 and under section 2.3 (Related Work), they have written "The most common software implementations in the research community are open source Open-iSCSI and UNH-iSCSI projects".

After my research on UNH-iSCSI, I have found some work where some researchers have proposed a hardware accelerator for data transfer iSCSI functions. They analyzed UNH-iSCSI source code and presented a general methodology that transforms the software C code into the hardware HDL (FPGA) implementation. Hence their hardware accelerator is designed with direct C-to-HDL translation of specific sub-modules of UNH-iSCSI software.

The question: Is there any similar work like this for Open-iSCSI where specific sub-modules of Open-iSCSI are translated to a hardware language like Verilog/VHDL on hardware (FPGA)? If not, can you please give a hint what would possibly a starting point in case of Open-iSCSI? Because the attached paper does not mention the specific functions of Open-iSCSI code that could be translated to HDL. 

No, none that I know of.

There are really two major chunks of open-iscsi: user-land and kernel driver(s). The user-land is only used for error handling, setting up connections, tearing them down, and other administrative tasks (like directing discovery). The kernel code is where all the IO goes on.

There are several adapters available for Linux that move the iSCSI stack into hardware. See the qedi driver, for example. These effectively act as the "transport" for open-iscsi, when available. I'd be interested in comparing throughput using these available adapters to the FPGA in the paper -- if I had infinite time. :)

Thanks !

Bobby

unread,
Jan 2, 2020, 11:51:22 AM1/2/20
to open-iscsi
One of the good things about this forum is, you always get help....thanks for the reply :-)

I will soon have some questions regarding the user-land and kernel driver(s).... :-)

Regarding microbenchmarks, I think this one is good https://fio.readthedocs.io/en/latest/fio_doc.html.

What do you think?

Lee Duncan

unread,
Jan 2, 2020, 12:22:45 PM1/2/20
to open-iscsi
On Jan 2, 2020, at 8:51 AM, Bobby <italien...@gmail.com> wrote:

One of the good things about this forum is, you always get help....thanks for the reply :-)

I will soon have some questions regarding the user-land and kernel driver(s).... :-)

Regarding microbenchmarks, I think this one is good https://fio.readthedocs.io/en/latest/fio_doc.html.

What do you think?



Actually, I interpreted their lack of supplying a benchmark name to mean that they had rolled their own.

Fio is a well-known benchmark. I’m not an expert on it so I can’t comment on it’s features and shortcomings, but I’m sure you could get some valuable numbers out of it. First, you have to decide what you want to measure. Is it IOPs, it is throughput, is it latency? Are you trying to simulate a specific workload (since that’s what really matters, in the end), or just get some numbers?

— 
Lee


Donald Williams

unread,
Jan 2, 2020, 12:50:37 PM1/2/20
to open-...@googlegroups.com
Hello, 
 There are so many benchmarks out there.   Much depends on filesystem vs. RAW,  random vs. sequential,  large vs. small blocksize.  

 If you keep the capacity tested small then you will get a better idea of network performance vs. actual storage performance. 

 I often use IOMETER with Windows.  AFAIK,  IOMETER with Linux is still basically broken based on the libraries they are using you don't get proper threading to increase IO loads.  Acts basically like a single threaded copy.  

 I like that I can create various tests using different loads and run them one right after the other in a single configuration file.   

 With IOmeter you can set a very small test size to basically insure you are getting cache reads to verify what your hosts, NICs and switches can do.   Then test larger values if you want to actually test backend storage. 

 Regards, 

Don 


--
You received this message because you are subscribed to the Google Groups "open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-iscsi+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/open-iscsi/FCB787D9-40BE-4164-A726-05C66249A8B0%40gmail.com.
Reply all
Reply to author
Forward
0 new messages