<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="Keywords" content="iSCSI target, iSCSI-SCST">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="author" content="Daniel Fernandes">
<meta name="Robots" content="index,follow">
<link rel="stylesheet" href="images/Orange.css" type="text/css">
<title>iSCSI Target Driver</title>
</head>

<body>
<!-- wrap starts here -->
<div id="wrap">
	<div id="header">
		<div class="logoimg"></div><h1 id="logo"><span class="orange"></span></h1>
		<h2 id=slogan>Generic SCSI Target Subsystem for Linux</h2>
	</div>

	<div id="menu">
		<ul>
			<li><a href="http://scst.sourceforge.net">Home</a></li>
			<li><a href="http://www.sourceforge.net/projects/scst">Main</a></li>
			<li><a href="http://sourceforge.net/news/?group_id=110471">News</a></li>
			<li id="current"><a href="targets.html">Drivers</a></li>
			<li><a href="downloads.html">Downloads</a></li>
			<li><a href="contributing.html">Contributing</a></li>
			<li><a href="comparison.html">Comparison</a></li>
			<li><a href="users.html">Users</a></li>
		</ul>
	</div>

	<!-- content-wrap starts here -->
	<div id="content-wrap">
			<div id="sidebar">
				<h1>Target Drivers</h1>
				<ul class="sidemenu">
					<li><a href="target_iscsi.html">ISCSI-SCST with iSER</a></li>
					<li><a href="target_qla2x00t.html">QLogic FC qla2x00t</a></li>
					<li><a href="target_srp.html">SCSI RDMA Protocol (SRP)</a></li>
					<li><a href="target_mvsas.html">Marvell SAS adapters</a></li>
					<li><a href="target_emulex.html">Emulex FC/FCoE</a></li>
					<li><a href="target_lsi.html">LSI/MPT adapters</a></li>
					<li><a href="target_fcoe.html">FCoE Target</a></li>
					<li><a href="target_local.html">Local Target Driver</a></li>
					<li><a href="target_ibmvscsi.html">IBM pSeries Virtual SCSI</a></li>
					<li><a href="target_old.html">Old Unsupported</a></li>
				</ul>
				<h1>User utilities</h1>
				<ul class="sidemenu">
					<li><a href="scst_admin.html">SCST Admin Utility</a></li>
					<li><a href="handler_fileio_tgt.html">FILEIO_TGT handler</a></li>
				</ul>
			</div>

			<div id="main">
				<h1>ISCSI target driver iSCSI-SCST with iSER support</h1>
				<p>ISCSI-SCST is an iSCSI target driver for SCST. It was originated from
				<a href="http://iscsitarget.sourceforge.net/">IET</a>, but then became a deep rework of it with a lot of fixes and improvements in all areas of
				performance, stability and functionality.</p>

				<p>The latest improvement was addition of iSER support,
				thanks a lot to Yan Burman and Mellanox Technologies!</p>

				<p>If you are an IET user before installation carefully read README files of both iSCSI-SCST and
				the SCST core. You can also use a migration tool developed by Scalable Informatics Inc., which will
				convert your IET machine to an iSCSI-SCST machine. See README for more details.</p>

				<p>You can find the latest development version of this driver in the SCST SVN. See the download page how to setup
				access to it.</p>

				<h1>Certification</h1>

				<p>ISCSI-SCST has passed VMware certification as part of
				<a href="http://scalecomputing.com/products">Scale&rsquo;s Intelligent Clustered Storage</a> technology developed by
				<a href="http://scalecomputing.com">Scale Computing</a> as well as VMware and Microsoft certification as part of
				storage arrays developed by <a href="http://www.open-e.com/">Open-E, Inc</a> and
				Starboard Storage.</p>

				<p class="post-footer align-right">
					<a href="iscsi-scst-howto.txt" class="readmore">HOWTO</a>
					<a href="http://community.mellanox.com/docs/DOC-1479" class="readmore">iSER HOWTO</a>
					<a href="SCST_Gentoo_HOWTO.txt" class="readmore">Gentoo HOWTO</a>
					<a href="downloads.html" class="readmore">Download</a>
					<a href="http://sourceforge.net/p/scst/svn/HEAD/tree/" class="readmore">SCST SVN Repository</a>
				</p>
	  		</div>
	</div>
</div>
<!-- footer starts here -->
<div id="footer">
	<p>&copy; Copyright 2004 - 2020<b><font class="names"> Vladislav Bolkhovitin &amp others</font></b>&nbsp;&nbsp;
	Design by: <b><font class="names">Daniel Fernandes</font></b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
</div>
<!-- footer ends here -->
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://apps.sourceforge.net/piwik/scst/" : "http://apps.sourceforge.net/piwik/scst/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
piwik_action_name = '';
piwik_idsite = 1;
piwik_url = pkBaseURL + "piwik.php";
piwik_log(piwik_action_name, piwik_idsite, piwik_url);
</script>
<object><noscript><p><img src="http://apps.sourceforge.net/piwik/scst/piwik.php?idsite=1" alt="piwik"></p></noscript></object>
<!-- End Piwik Tag -->
</body>
</html>
