Skip to main content

Azure StorSimple (Day 27 of 31)

List of all posts from this series:

Short Description 
Azure Stor Simple it is a hybrid cloud storage solution based on Microsoft Azure and StorSimple. It is based on a property device that offer an overview view over all storages (on-premises and cloud).

Main Features 
Lower storage cost
This solution is powerful enough to allocate storage only when is needed, based on company and system requirements.
To reduce the necessary space, content can be compresses. In this way the space used to store data is reduces drastically.
In enterprise, all the data is versioned. Because of this the size of the storage can increase drastically. StorSimple is smart enough to detect data duplication between different versions of the same data. In this way the size of the storage is decrease drastically.
Integration with MMC (Microsoft Management Console) and iSCSI
It is fully integrated with different management applications and APIs like MMC.
Same interface for different storage environment
All storage environments, from on-premises, to remote servers and clouds one can be managed using only one interface and management console. In this way the storage administration becomes a simple think.
Automatically backups
Azure Stor Simple it is smart enough to create backups based on predefined rules.
Disaster Recovery
One of the most important feature is disaster recovery, that is trigger automatically by the system. Different rules and policies can be configured.
SharePoint Adapter
StorSimple contains a special adapter that can be used to manage the storage used by a SharePoint farm. All the configuration can be made directly from SharePoint administration portal.
Access to all the content can be managed and controlled. In this way we can control who access the data and what kind of operations can be done over it.

Like any other system, Azure Stor Simple has some limitations, like:

  • Maxim size of a volume is 64TB
  • Maxim number of iSCSI connections is 512
  • Maximum number of snapshots per devices 10K
  • Restore time processing time per TB is ~5 minutes
  • Maximum number of volumes is 256

Applicable Use Cases 
Below you can find some uses cases when I would use Azure Stor Simple
Pharma and Life Care 
Because of the laws, all the pharma and life care companies needs to store their audit data for 5+ year more (each country has different laws). Because of this, they need a mechanism to store large amount of data not only in a secure and reliable way, but also in way to reduce costs. For use cases like this Azure Stor Simple can be a great options, especially because of compressing and deduplication functionality.
Disaster recovery 
There are different businesses where you data needs to be available all the time. For uses cases like this you need a system that is able to trigger a disaster recovery plan automatically. For example in car industry, where you need different documentation and manuals to be accessible all the time.

Code Sample 

Pros and Cons 

  • Scalable
  • Hybrid
  • Secure
  • It is a Stor Simple solution, not only Azure
  • Has support for standards protocols

Some people could see the Stor Simple hardware device like a dependency. But in this industry it is normal to have hardware devices that can manage large amount of data and storages types.

When you want to calculate the cost of Azure StorSimple you should take into account:

  • Storage size on cloud
  • Storage size on-premises
  • Ingest level
  • Annual subscriptions 

This hybrid storage solution can be very tempting for enterprise customers that need to manage and administrate a lot of data. In theory you can reduce the cost of storage with even with 60%.


  1. Well written post. I appreciate your guidance for sharing about backup and disaster recovery plan here. I really need to know about it. Great work!


Post a Comment

Popular posts from this blog

ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded

Today blog post will be started with the following error when running DB tests on the CI machine:
threw exception: System.InvalidOperationException: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See for more information. at System.Data.Entity.Infrastructure.DependencyResolution.ProviderServicesFactory.GetInstance(String providerTypeName, String providerInvariantName) This error happened only on the Continuous Integration machine. On the devs machines, everything has fine. The classic problem – on my machine it’s working. The CI has the following configuration:

TeamCity.NET 4.51EF 6.0.2VS2013
It seems that there …

Entity Framework (EF) TransactionScope vs Database.BeginTransaction

In today blog post we will talk a little about a new feature that is available on EF6+ related to Transactions.
Until now, when we had to use transaction we used ‘TransactionScope’. It works great and I would say that is something that is now in our blood.
using (var scope = new TransactionScope(TransactionScopeOption.Required)) { using (SqlConnection conn = new SqlConnection("...")) { conn.Open(); SqlCommand sqlCommand = new SqlCommand(); sqlCommand.Connection = conn; sqlCommand.CommandText = ... sqlCommand.ExecuteNonQuery(); ... } scope.Complete(); } Starting with EF6.0 we have a new way to work with transactions. The new approach is based on Database.BeginTransaction(), Database.Rollback(), Database.Commit(). Yes, no more TransactionScope.
In the followi…

GET call of REST API that contains '/'-slash character in the value of a parameter

Let’s assume that we have the following scenario: I have a public HTTP endpoint and I need to post some content using GET command. One of the parameters contains special characters like “\” and “/”. If the endpoint is an ApiController than you may have problems if you encode the parameter using the http encoder.
using (var httpClient = new HttpClient()) { httpClient.BaseAddress = baseUrl; Task<HttpResponseMessage> response = httpClient.GetAsync(string.Format("api/foo/{0}", "qwert/qwerqwer"))); response.Wait(); response.Result.EnsureSuccessStatusCode(); } One possible solution would be to encode the query parameter using UrlTokenEncode method of HttpServerUtility class and GetBytes method ofUTF8. In this way you would get the array of bytes of the parameter and encode them as a url token.
The following code show to you how you could write the encode and decode methods.