[Update] Fusion Drive – some conjectures

so Apple introduced Fusion Drive along with their new Macs yesterday. How does it work? A question that pestered me since. Fortunately Apple published a support document that leaks a few infos. The most interesting piece of information is revealed by this image:

In the lower left hand corner it says „Type: Logical Volume Group“. This is Core Storage for sure, the technology that Apple uses for the Vile Fault 2 full disk encryption. When you have FV 2 enabled and enter the command diskutil CS list in the Terminal, you can see Core Storage at work:

In my example a Logical Volume Group (426BC…) consists of one drive (or rather partition, in this case disk0s2) and publishes a Logical Volume Family (the encryption layer 9E2650…) which contains a logical volume (disk1 C5779B…)

This is an elaborate way of plugging an encryption layer between a physical volume (disk0s2) and the filesystem which thinks it resides on disk1. disk1 is not a physical device but the file system doesn’t know.

So assume you would build a Logical Volume Group consisting of two physical drives, how would the file system know? Well if you look at other logical volume managers it usually doesn’t and if you are following The Pure Teachings of LVMs (TM) it is not supposed to know anyway.

Well, but Phil Schiller said yesterday Fusion Drive would keep the hot files on the SSD while pushing the cold files to the HDD moving them back as soon as you would use them more often again. This means either HFS+ must have a way to know which virtual disk blocks end up on the SSD or Core Storage must have an intimate knowledge of HFS+ and map the blocks accordingly.

I think the second possibility can be ruled out on the basis of not being viable. Core Storage would reimplement half of HFS+. No way.

But Core Storage marking certain blocks faster than other blocks would make sense. It would break the layering only a little bit, it is easy to implement and HFS+ already does some moving of files to faster parts of a disk together with auto-defragmenting for a long time anyway.

So my conjecture is: Fusion Drive is a special Logical Volume Group that publishes which blocks are fast and HFS+ maps the files accordingly on those blocks.

[Update]: I was a bit surprised how accurate my predictions were but on the other hand nothing else made sense. Here a link to jollyjinx‘ tumbler. He did a good job reversing this from a user persective.

Leupser Bier – Leupser Dunkel

Sehr dunkel, sehr herb. Mir persönlich ist das schon zuviel, aber Dunkelbierfans können blind zugreifen! (Also, wenn ihr meinem Urteil traut)
Lustigerweise fehlt beim Mindesthaltbarkeitsdatum das Jahr. Ich hoffe, dass die Leupser keine Probleme deswegen bekommen.

20121019-095721.jpg

20121019-095732.jpg

Krug Bräu – Weißbier

Vom Krug Bräu hatte ich neulich schon das Lager probiert und für gut befunden. Jetzt mal ein Weißbier. Ich bin ja ausgesprochener Weißbierfan und so ist es mir ein Fest, das Getränk aus Breitenlesau zu probieren. Es ist nicht so brotig weich, wie viele andere Weißbiere sondern beerenfruchtig und ungewohnt herbe. Johannesbeere, Himbeere meine ich zu schmecken, Banane fehlt völlig, dadurch ist es frischer und spritziger als die meisten. Großartig.

20121016-200423.jpg

20121016-200435.jpg

20121016-200444.jpg

Engel – Keller-Hell

Schraubverschluss! Aahh! Zugegeben das hat mich überhaupt erst neugierig gemacht, weil wenn man vom Schraubverschluss absieht macht die Flasche einen guten Eindruck und dieses Missverhältnis ist irgendwie ein Hingucker. Und bevor irgendwelche Leute meckern: Ich weiß, dass ein Schraubverschluss tendenziell genauso viel Druck halten kann, wie ein Kronenkorken. Aber ich finde es ist eine Frage des Stils und man verzeihe mir den brachialen Vergleich, aber selbst Sternburg hat Kronenkorken.

So weit, so durchwachsen. Was ist drin? Ein sehr herbes, wohlschmeckendes, kaum malziges Helles, das (zumindest meine Flasche) ein wenig nach Plastik schmeckt. Irgendwas ist mit der Charge oder der Lagerung schiefgegangen, denn ich bin mir sicher, das ist nur ein Ausreißer und soll nicht so. Schade, ansonsten ein gutes Bier, besonders für die Liebhaber des Herben.

20121013-220740.jpg

20121013-220750.jpg

20121013-220759.jpg

20121013-220809.jpg

20121013-220819.jpg

Janine

Vor etwa 4 Jahren hatte eine Frau, der ich folge, die ich aber nicht weiter kenne, gefragt ob einer ihrer Follower ihr nicht ein Lied schreiben könnte. Und ich dachte mir: Warum eigentlich nicht? Klingt nach einer blöden Idee die man einfach machen muss.

Vor ein paar Tagen fragte sie nach ob ich den Song noch hätte. Klar liebe Janine, hier: @Janine1974

Sollte man mal ordentlich produzieren. Will wer?

P.S.: Tipps für ein ordentliches Audio-Plugin?

Schübel – a fränkisch

Wow, was für ein rundes würziges dunkles Helles. Unfiltriertes Kellerbier steht auf der Flasche. Damit habe ich ein Problem, denn in meinem Keller ist kein Schübel. Das muss ich schnellstmöglich ändern!

20121004-201202.jpg

20121004-201219.jpg

Nankendorfer Schroll Bräu – Landbier original

Auch wenn sich der Hersteller dieses Bieres nicht so recht entscheiden kann ob er nun Nankendorfer Schroll Bräu oder Brauerei zum weissen (!) Lamm heißen will legt er offenbar viel Wert auf den Hinweis, dass es sich um eine Privatbrauerei handelt. Dafür steht wieder nicht auf der Flasche, dass es ein dunkles Bier ist, muss man halt wissen. Wenn man von dieser Kasperei absieht, bietet sich ein gutes dunkles und dunkelmalziges Bier, das überraschend herb ist und weniger süffig als aus den Frankenlanden gewohnt.

;

20121002-234441.jpg

20121002-234455.jpg

Beer PID

Note: to the benefit of my mostly German-speaking readers I have translated all the brewing-related words to German (de: …)

Let’s brew us some beer!

I ordered some home brewing equipment from Hopfen und mehr (German only, sorry) a few weeks ago.

A lot of discussion goes on about how exact the temperatures of the enzymatic rests (de: enzymatische Rasten) during mash need to be. I didn’t want to take chances and so I build my own PID-controller. Originally I wanted to use an osPID but my osPID is still in transit from Malaysia (I hope) so I grew impatient and built one myself with an Arduino.

Temperature

I had achieved some good results in the past with the OneWire temperature sensor DS18S20 so it was a natural choice. These transistor-sized devices are incredibly easy to use via their OneWire interface. As a bonus OneWire is a bus so you can connect several sensors to the same pin! On top of that there are two handy Arduino libraries ready to use in your own project one for OneWire in general and one for the temperature sensor.

For practical use I put the DS18S20 into an aluminium tube and crimped it shut with a pair of pliers. This went surprisingly well. It stayed dry or at least dry enough so that it kept working immersed in mash (de: Maische) and later wort (de: Würze) for hours. This is an advantage of the DS18S20 I forgot to mention: Preliminary tests showed that it works correctly or not at all. No false measurements.

Solid State Relais

Somehow you have to switch the heating coil of the mash tun (de: Würzepfanne) so I decided on a solid-state relais. These live very long, switch their load when the current is zero and only need a pull-up resistor on the driving side. I chose a Carlo Cavazzi RM1A23D25 but you can use any SSR that fits, you should use a zero current switching one though. Also make sure you fix it onto something that takes away the heat the SSR generates. In my case I drive a WECK WAT 24 A which consumes 1800W electrical power. I bolted the SSR onto the bottom plate of the aluminium case with some thermal grease in between. Though the SSR had to switch this amount of load the case only got slightly warm.

On the back side I added a mains socket which happened to be available. This way the switched device can simply be plugged in:

Front panel

To display the temperature I use the 7-segment display with serial interface that you can get from Sparkfun. (Note to German readers: You can order most of what sparkfun sells from Watterott at reasonable prices). I would have liked to use an alphanumberic LCD display. But that is beyond of what I can easily fit into a useful housing without ruining my hands, tools or the housing. Hardware vendors listen: We need more easy-to-use cases for our self-made electronics!

Add a three switches, and two LEDs and the hardware side is basically done.

Software

The Software depends basically on two main parts both by Brett Beauregard, the Arduino PID Library and the Arduino PID Autotune Library. Unfortunately I have not managed to tune the PID good enough to really use it without manual intervention. I need to investigate more about that. But nevertheless the BeerPID is programmed to hold 7 different built-in temperatures. This page (in German) has a good overview over all (?) the enzymatic rest temperatures. I chose to implement those temperatures:
0 – (36° C) Glucanase rest
1 – (44° C) Xylanase rest
2 – (50° C) Saccharase rest
3 – (57° C) Protease rest
4 – (62° C) Maltose rest
5 – (72° C) alpha-Amylase rest
6 – (78° C) Mash out (de: Abmaischen)
7 – (105° C) boil
The boil temperature (105° C) is chosen simply to enforce permanent on-state on the SSR. Of course the mash tuns content it will never reach 105°.
Please have a look yourself and send me your pull requests.

Update: several people have mentioned BrewPI on twitter. Give me a couple of days to look into it, Thanks