<!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">&nbsp;</span></h1>
		<h2 id=slogan>Generic SCSI Target Subsystem for Linux</h2>
	</div>

	<div id="menu">
		<ul>
			<li><a href="index.html">Home</a></li>
			<li><a href="https://github.com/SCST-project/scst">Main</a></li>
			<li><a href="https://github.com/SCST-project/scst/releases">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_emulex.html">Emulex FC/FCoE</a></li>
					<li><a href="target_fcoe.html">FCoE Target</a></li>
					<li><a href="target_local.html">Local Target Driver</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 Git repository. 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="https://github.com/SCST-project/scst" class="readmore">SCST Git Repository</a>
				</p>
	  		</div>
	</div>
</div>
<!-- footer starts here -->
<div id="footer">
	<p>&copy; Copyright 2004 - 2021<b><font class="names"> Vladislav Bolkhovitin, Bart Van Assche &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>
