Rethinking Storage for Microservers
Microservers are a huge coming wave that could overtake you if you're not ready.
Microservers are simply small servers. Compared to a dual-socket or quad-socket server, a microserver has reduced capabilities and options. But they can still run virtually the same set or, at the very least, a useful subset of the applications larger servers execute, albeit at a lower level of performance.
Right now, microservers have everything from single-core processors to quad-core processors, with some basic amount of memory, one or two NICs and a single hard drive (most of the time) of some reasonable size and capacity.
The reason microservers are becoming so popular is that they use very little power, perhaps 5-20W for the entire server, versus hundreds of watts in the larger traditional servers. Moreover, the word "micro" also refers to their size. They are very small, and you can put thousands of them in a standard 42U rack.
Given that many traditional enterprise servers run at about 15 percent utilization, organizations have turned to virtualization to improve the server utilization. For example, instead of perhaps running one application per core resulting in maybe sixteen applications being run at the same time, virtualization allows the creation of a virtual machine which looks like a real physical system to the application. Then you can "oversubscribe" the hardware, perhaps running a hundred or more VMs on a single server.
This can improve the utilization to a very large level saving power and cooling, floor space, money, etc. However, to do this, you must stuff a fairly large amount of memory in the physical server so that each VM has enough memory to run an application. A large amount of local storage may also be needed depending upon the applications. Moreover, since all your proverbial eggs are in one basket, you must make the server as bulletproof as possible.
All of this adds cost to the server.
Microservers offer an alternative to the large single server by using lots of small servers to provide the same level of computational power. If you lose one server, you have lost just one of many. In virtualization, if you lose one server you lose everything.
Microservers can also be inexpensive, so you if you lose one you have only lost a small part of your hardware investment. Moreover, since the microservers are independent of one another, you don't have to worry about data or applications that have to be segregated on different servers since everything has its own server.
Because they are independent, the microservers run their own OS, which also means that you don't need virtualization. That simplifies the situation and could possibly make the application(s) run faster due to dedicated hardware.
On the flip side, since each microserver has its own OS, you must manage a larger number of servers. This isn't an insurmountable problem—HPC systems routinely run thousands of servers from one master server—but it is something you need to take into consideration. Since you are not virtualizing the microservers, you cannot move the OS, applications and data to another server as you can with a virtualized server.
Microservers are an alternative to heavily virtualized servers, and like many solutions, they offer some pros and cons. One of the aspects of microservers that needs to be understood and architected is storage.
Layers of Storage
Recall that the description of microservers typically includes one 2.5" drive (usually SATA). This may or may not be enough for various use cases. Consequently, we need to think about how the microservers' storage is architected.
This can be even more important for diskless microserver farms. An example of a possible diskless microserver solution is the Dell Zinc. With a single 2.5" drive for each server, the Dell Zinc can only have 24 servers in a sled or 96 servers in 4U (good density but not the best). On the other hand, if you go diskless, you can get 72 servers per sled or about 288 servers per 4U (much better density). But you need to consider how you provide storage for these diskless nodes (e.g. iSCSI, NAS, etc.).