Hardware

tl;dr: C4 instances have a simpler design because they don’t have to support hard drives which makes them more reliable and cheaper for AWS.

C4 instances

At last years re:Invent AWS announced a new generation of compute-optimized EC2 instances: the C4 instance family. Back then they provided some technical details about these instances including the information that they are powered by a custom “Intel Xeon E5-2666 v3” processor built for AWS only, but the information regarding pricing or an availability date were still missing. Earlier this week these instances became available and pricing details and some remaining information were published as well.

Most press coverage about these new instance family focused on the custom built CPU, but the longer I think about it the more I think that this is just the tip of the iceberg.

Block storage at AWS

AWS is providing two different kinds of block storage: So called ephemeral storage, which is storage directly connected to the host system an instance is running on and EBS (Elastic Block Storage) volumes, which are network attached disks.
Ephemeral volumes have been available for most instances, only their smallest instance families (T1 and T2) don’t offer them. Depending on the instance you choose you’ll get a different amount of ephemeral storage which can be either HDD or SDD backed. The great thing about it: It’s free, because it’s a part of the price you already pay for an instance whether or not you use this storage. But there is as usual a caveat: Once you stop an instance the data stored on these volumes is gone, because there is no host system anymore which could hold the data.
EBS volumes are the means of choice if you want reliable block storage. In the past there have been performance bottlenecks with them, but since the introduction of IOPS EBS volumes, gp2 volumes and some improvements they are going to implement, that shouldn’t be an issue anymore.

One thing that went unnoticed with the C4 instances is, that these are the first instances (beside the small T1 and T2 instance) which don’t provide ephemeral storage at all!

I believe that’s a shift in AWS philosphy to decrease their costs and to ease their server architecture.

Custom hardware

We all know that companies like Google or AWS build their own hardware. Facebook goes a different way with it’s Open Compute project, but they all try to achieve the same goal: They want to have hardware perfectly matching their needs without including features they don’t need to drive costs down and increase reliability.

AWS started builing it’s own custom network equipment five years ago and they have several other specialized components as well, like big storage racks and of course the EC2 instances. But these instances always came with hard disks included to enable ephemeral storage. With the introduction of the C4 instances AWS seems to be confident enough that EBS volumes also fit the needs of customers which have been using ephemeral volumes before, so they omitted these ephemeral storage options, which allows them to omit hard drives completely from these instances. That removes on major pain point of such servers: Failing drives. That’s a big plus for reliability.

Power

AWS has published technical details about their custom “Intel Xeon E5-2666 v3” processor, but one interesting detail is missing: The TDP (Thermal Design Power), the maximum amount of power the CPU uses during normal operation. I wouldn’t be surprised if Intel managed to decrease that by a few watts for AWS, maybe by disabling features AWS will never use. But if AWS doesn’t even need hard drives they also don’t need SATA ports and only a limited number of PCIe-lanes for the network cards which would allow them to use a stripped down platform controller hub, which I believe Intel developed for them as well. So AWS uses a custom processor and might also use a custom platform controller hub, which both might save them a tiny fraction of needed power. Even if it’s a tiny fraction at the scale of AWS that’s a lot of saved money, which is important to drive the costs down to stay competitive.

Conclusion

The biggest news about the C4 instances isn’t the custom built processor, but the removal of the ability to use ephemeral volumes with them. With not providing such volumes AWS eleminated the need to add hard drives to these instances which removes a major point of failure of such servers and also drives down costs by making the design simpler and by maybe saving some watts of power. It’s interesting to see such developments and I’m pretty sure they’ll be enabling AWS to continue cutting prices in future as they did in the past.

Since a while I’m searching for a Mini-ITX-motherboard for a small homeserver. This homeserver should contain six devices (1x SSD, 4x HDD, 1x optical) and should have enough power to provide decent performance with the four HDDs configured as software-RAID with encryption. An Atom-processor doesn’t fulfil this requirement, because it is simply too slow. My choice would be one of the 45W-Quadcore-Athlons from AMD (like the AMD Athlon II X4 615e), because these CPUs are powerful, but efficient. But these processors are only available for socket AM3.
If we sum up the requirements I’ll need a Mini-ITX-motherboard with socket AM3 and 6 SATA ports. But no manufacturer seems to have a motherboard with such a configuration. There exists a motherboard from Gigabyte with 6 SATA-ports, but this motherboard only provides a AM2+-socket and doesn’t support AM3 CPUs (there is also no BIOS-update planned to add this functionality). The few motherboards which exists with AM3 socket provide at best 4 SATA-ports and one IDE-port. I wonder why manufacturer nowadays still add an IDE-port instead of two additional SATA-ports.

My preferred (not yet existing) Mini-ITX-motherboard would look like:

mini-ITX

AMD 880G + SB850
(Radeon HD 4250 IGP)

internal connectors:
1x socket AM3 supporting CPUs up to 65W TDP
2x DDR3-1600/1333/1066 SO-DIMM up to 16GB
1x PCIe x16 (x16 Bandwidth)
1x mini-PCIe
6x USB 2.0
1x internal Displayport
6x SATA-II
1x CPU Fan
2x system fan
1x 24-pin ATX power connector
2x serial connectors
1x front panel connector

backplane:
1x Displayport
1x HDMI
6x audio jacks
1x S/PDIF Out
6x USB 2.0
2x RJ45 Gigabit-Ethernet
3x SMA connectors for WLAN/Bluetooth/... antennas

I don’t see any reason why such a motherboard shouldn’t be possible from technical point of view.
Does somebody know why the motherboard-manufacturers don’t sell motherboards with this features or is there already I motherboard which does fulfil my requirements (AM3-socket + 6 SATA-ports)?

While at work I recognized an annoying problem with multipe screens: I often forget to change the focus of the windows to the screen I’m currently looking at. The result: In that cases I want to type in a window on screen A and all text go’s into a window on screen B. Very annoying.

But here is a possible solution: Because all screens have intregrated webcams, it would be possible to grab images from these webcams and use an eyetracking software to determinate at which screen I’m currently looking. With the help of the window manager the focused window could change accordingly and I would never type onto to wrong screen anymore.
But as usual, the problem is the missing implementation. I couldn’t find any eyetracking software for linux which is able to use v4l2-devices and I also don’t know if any window manager is capable of changing the focused window in that manner.

If you know a working solution for my problem or already implemented such eyetracking-stuff, just leave me a comment. 😀

Ich war die Tage auf Arbeit ziemlich enttäuscht. Sowohl Webcam des Notebooks, als auch Webcam des externen Monitors funktionierten unter Linux, ohne dass ich auch nur einen Finger rühren musste. Wo bleibt denn da der Spaß? ;D