Storage Appliance For Aperture 3

It's alivvvveeeee. Hey guys and gals. Hope you had a great bunch-0-holidays. Didn't want you to think I fell of the earth or anything. I have been running myself ragged. Let's see now what have the last few weeks entailed…

  1. Crazy busy - agreed to take over a buddies tech business while he was away for a month. Holy crap, that was an overcommitment.
  2. Sick - very very bad case of the flu for like the last week, while still having a bunch of real work to do.
  3. Oh and three. Spent a tiny little bit of time on that el-cheapo storage appliance for Aperture - you know - this alien technology™ one.

Anyhow, it sort of works, and it's really really simple. I have a bunch of work to do before it's ready for primetime but I have made a bunch of major decisions about it's build and it's functions. Actually it has been harder to eliminate stuff than to enable stuff. Beta #000001 goes out and will be functional on a real honest to goodness human being's work-flow this month.

I have chucked together a quick preview for anyone that wants to get a clue as to what the heck I am talking about. You can try it live - sort of. Of course it's as ugly as sin and it's not the "real" one but it will give you a bit of an idea of where my heads at and what is on my mind. Hey gimme a break I chucked together the UI in like half an hour in my delirium while in and out of bed. It's butt-ugly but is a reasonable test bed before I go make it all pretty.

I actually cut out a bunch of stuff that it does in order to reduce the craziness that will go on as a publicly available preview. You cannot get rid of devices or filesystems. It doesn't clog-up my real infrastructure or risk panic-ing the kernel so the behind the scenes iSCSI target shifting around does not actually happen in the preview as I have no iSCSI initiators hooked to this thing. It's small - really small and resource constrained. It's a virtual slice running on file backed disk on my real storage network - so if it goes kaaaaaabooom - it has a snapshot of itself that I will just fire up….. Okay enough, so what does it do?

  • On the home page of the UI you will see an ugly list of all the ZFS file systems that exist. If you click on the name you get a bunch of ugly unformatted details. If you click on "snapshot" it will make a snapshot in real time.
  • Down at the bottom if you click on "snapshots" you can see all the snapshots that exist. On that page you can clone a snapshot into a new and semi-independent file system. You can roll a snapshot back, meaning put the original file system back to where that snapshot was taken, or you can destroy the snapshot.
  • To get to the home page just click on the ZFS label in the top right of the page.
  • Keep in mind the only file system that has permissions for you to read and write is the one labeled "zp-0/ftp" if you want to play around with uploading files snapshoting - blasting them and rolling-back that is the one you can use with the below info.

A couple of points to note - there is more stuff that the prototype does but is not on the preview. Most of it actually is about adding and removing devices. All the good stuff happens in the background automagically and uses a set of conventions like the snapshots vs specifying every detail. My aim is to keep the actual functionality very very very simple but not exclude anyone from doing anything that the underlying tech actually can do. There is no database of config that needs to be kept in sync with the real-world all of the stuff that happens is parsed from the source so… it's stateless, if you want to go in and manually change things at a very low level - you can without "hurting" or affecting function of the simple UI.

Okay here is the UI. You can use your favorite ftp interface to put files up there and delete them or whatever at the address with a login of public/public - hey go to town. Let me know what you think and definitely ask any questions. I hope you guys blow the thing up. It's definitely not got enough kmem allocated for ZFS so it probably will with a bunch of people snapshotting and rolling back. We'll see.

On another note one of the tool chains that I love and use for a bunch of stuff unrelated to this (ruby->haml->sinatra) made me laugh today as I was googling for some default Rack:: value for sinatra. I some how came across this post on the Haml forum. It has to be one of the funniest things I have ever read. Hilarious.


blog comments powered by Disqus