COMSTAR: Common Multiprotocol SCSI Target

June 2008  

Article Index

Create Open Storage Arrays out of x86 servers with this new OpenSolaris target technology.

COMSTAR: What Is It?

COMSTAR is an open-source project that allows any Sun server to become a block-based storage device. The acronym stands for COmmon Multiprotocol SCSI TARget. The project is the world's first open-source enterprise-class target framework. The framework allows all SCSI device types (tape, disk, SES, and so on) to be connected to any transport (Fibre Channel, iSCSI, iSER, SAS, FCoE) with concurrent access to all LUNs (Logical Unit Numbers) and a single point of management.

Block-based storage has multiple sectors, or blocks, of consistently sized segments (usually 512 bytes) of storage. Blocks are fundamental to storage. They are simple and haven't really changed much in the past 50 years. Though storage in the industry is moving into objects, files, virtualization, and abstraction, underneath all this are blocks used for writing and reading. This is why COMSTAR is a basic and fundamental building block to using OpenSolaris as the storage operating system.

The COMSTAR project concepts themselves are not revolutionary--block-based storage is prevalent on the market today. What is revolutionary is that the software allows the Solaris OS to be used as microcode using ZFS as the backing store file system, using common off-the-shelf components to build a storage array. A key objective of COMSTAR is to provide a simple framework for users to add transport protocols and device types to build new block storage devices. This allows the user to quickly start adding new features to differentiate these new storage devices without spending time on the fundamental building blocks.

If It's Not New, Why Build It?

Block storage devices make up the bulk of the world's storage today. In fact, many enterprise applications are written assuming a block-based backing store. Although both Linux and Windows systems have block targets, neither provides a framework to handle multiple device types matched with multiple transports. The current NAS offerings provide a file-based interface as well as a block-based interface, usually iSCSI and Fibre Channel. Finally, the Linux platform has provided several OEM opportunities with iSCSI array vendors, so by providing this functionality on the Solaris platform, Sun expects to provide better opportunities for vendors and customers.


The COMSTAR framework (see Figure 1) introduces software concepts that match the storage industry in terms of nomenclature. A block-based array built with COMSTAR has 4 basic pieces:

  • LU Provider: Logical Unit provider that implements the function of a SCSI logical unit such as tape, disk, VTL, and so on.
  • Port Provider: Provides local ports (connection points, which could be HBAs or built-in NICs) for any and all transports (SAS, iSCSI, iSER, Fibre Channel, SCSI, Infiniband, FCoE, and so on).
  • SCSI Target Mode Framework (STMF, see Figure 2 ): Manages common block storage functionality such as:
    • Context and resources for SCSI command execution
    • Tracking of all Logical Unit and Port Providers
    • LUN Mappings
    • Abnormal termination of commands and clean-up
  • Management Library (libstmf): Used to talk to the framework and configure COMSTAR
Figure 1. COMSTAR Target Configuration
Figure 2. STMF Management

What is unique about the framework is that all block storage devices can be built from one framework. This has not been accomplished in any other commercially available operating system. While Windows and Linux systems have had several block-based target architectures, they are built independently, which means as problems arise or new features are desired they must also be independently fixed or added to each architecture.

Similarly, this framework allows any port to access any LUN. This means that once a LUN is created, whatever access is provided to the storage device (iSCSI, Fibre Channel, or others) can be used to access the LUN in a concurrent fashion.

Fast Facts:

  • COMSTAR was open-sourced in November 2007 with Fibre Channel, and QLogic donated the port provider. The QLogic port provider was completed with fewer than 4,500 lines of code.
  • As a proof of concept, the driver team wrote a SAS provider using the current LSI SAS HBAs. It took three weeks for basic functionality and is fewer than 6,000 lines of code, leveraging the current mpt driver.
  • The initial integration will include only Fibre Channel. Follow-on projects include:
    • iSCSI and iSER in Q1FY09, currently targeted for August 2008
    • SAS in Q1FY09
    • FCoE in the planning stages
  • Planned storage projects:
    • Amber Road next: After the initial release, COMSTAR will be added and will provide iSCSI and Fibre Channel Block interfaces.
    • Sun VTL next: The team is working closely with the VTL group to integrate necessary changes into COMSTAR to meet their needs on Fibre Channel block-based interface for their next-generation product set.
    • High-Performance Computing (HPC): The COMSTAR team is working with the Shared QFS team to provide an iSER target for data object storage, to provide increased scaling in terms of node count.
    • JPMC is taking our current beta code and using Thumpers to provide cheap and deep storage for 2 PB through Fibre Channel connectivity.
What the Community Is Saying

"I've been watching various storage-related projects spring up, and RFE putbacks, and have noticed (with a grin on my face) how Solaris is being positioned as the most excellent storage OS. A veritable Swiss army knife for tossing data to and fro."

"COMSTAR is very exciting to me as there are no other (noncommercial) target solutions available."

"First off, thanks to Sumit et al. for the great work on this amazing project. I'm a total Solaris newbie and have enjoyed tinkering with the OS the past couple days. The purpose of this whole endeavor is to try to create my own (cheap) 4Gb FC target and before COMSTAR was available it seemed my options were non-existent."


COMSTAR provides a single framework, developed in the open, based on the Solaris OS for all your block-based needs. No other operating system offers this on the market today. The single framework allows bugs and enhancements to be fixed in one place, and allows concurrent access to all LUNs created on the storage device with a single point of management. Because it is open-sourced, it prevents vendor lock-in, and allows users and deployers to quickly begin working on differentiation without spending time on the basic building blocks. Finally, the fact that it's based on the Solaris OS means you have enterprise-class features such as observability through FMA and serviceability with hot swap, and it works on any platform that is supported by the Solaris OS today.

Check it out on the OpenSolaris web site.

Rate and Review
Tell us what you think of the content of this page.
Excellent   Good   Fair   Poor  
Your email address (no reply is possible without an address):
Sun Privacy Policy

Note: We are not able to respond to all submitted comments.