What is a standard?
The International Organization for Standardization (ISO) defines a standard as follows:
A standard is a document that provides requirements, specifications, guidelines or characteristics that can be used consistently to ensure that materials, products, processes and services are fit for their purpose.
Typically we think of documents produced by national or international standards organizations when we think of standards; these organizations produce De Jure standards. This name reflects that these standards have been approved by an official standards setting organization, such as ISO, IEEE, IETF, SAE, or W3C.
De Jure standards are not the only kind of standard. Various forms of De Facto standards exist. Two types of De Facto standards are proprietary and open source. Proprietary standards are created and controlled by an individual company or industry consortium. They are meant to apply across similar products produced by multiple separate organizations. Their use can be restricted to members or can be open to all. Open source standards are similar, but take input from many people.
We have a demonstrated ability to affect the rate of standards development. This is not unique to EMC. Any company of size that is willing to invest in active participation can significantly affect when and what is contained in an industry standard.
It is good to keep in mind that not all standards need to be external to a company. There can be significant benefit from standardizing features across an organization. Unfortunately, many organizations have not been very successful in adopting internal standard features across products from different business units.
Most companies have been somewhat successful at adopting external standards; examples include CIFS, NFS, SCSI, SMI-S, and VASA. However, even for these, consistency of conformance across the range of standard features is not uniform.
Are standards worth the trouble?
Yes. A standard enables clients that rely on the standard to use the specified features of any conformant implementation. There are many positive benefits. But it is not all clear sailing.
One issue is that standards only take you so far. To demonstrate, consider a bolt. A standard might specify a ¼” bolt. This is certainly enough to know that a ¼” wrench can be used to loosen or tighten the bolt. This is true across different implementations. But this leaves a lot of room for variations, for example fine or course threads, or shear strength of the bolt.
Relating this to storage, creation of a storage volume is typically first about how big and how fast. There are other factors, but there is no technical reason why an interface to create a storage volume at a particular size and speed needs to be different across any block storage server – whether it is from EMC or any other vendor
Unfortunately, this is more challenging than you might think. Today, just inside EMC, our product lines expose different client interfaces. This includes different and non-interoperable GUI’s, CLI’s and API’s. A standard interface across all of our storage platforms would allow our host clients to utilize the same software to utilize most of the capabilities of all of those platforms.
The benefits to our customers are obvious. It would lower their total cost of ownership, enable them to more quickly and easily adopt new storage platforms, and eliminate mistakes caused by complexity. Of course, it would also benefit EMC engineering productivity, too. We could reuse code and tests, focusing our time and efforts on enhancing the products.
And yet, as any storage customer or engineer would tell you, this isn’t happening..
In the next posts, we’ll talk about why the industry struggles to implement standards and some best practices on how to make it work.
–George Ericson @GEricson