I recently purchased a Unifi UVC-G3 network camera for the outside of my house. It works great in standalone mode, but has no recording capability without a Unifi NVR. The Ubiquiti hardware one is about $350, but a lot of people just repurpose a small linux box to do the job. That, to me, seemed silly since I have a Mac Mini that serves as my home media server, and runs my weather station (and a few other things). I also have a Raspberry Pi in the garage that runs Cacti (for network monitoring), and the Unifi wireless controller. This all got me thinking, “wait, I could just run the free version of VMWare ESXi (vSphere) and virtualize all of this on the Mac Mini”. The problem was, was that really possible? I know Apple allows virtualization of it’s OS on Apple hardware, and there are hacks to get it to work on non-Apple hardware, but I’d never actually managed a vSphere server before. Sure, I have tons of VMs at work, but the system is managed by another group, and all the VMs are Windows or Linux. So, I had to try.
Short week
While at the beach, I got an email from AppleCare basically saying they were closing my case because I had sent in an FYI saying things were working. They took that as a “issue resolved”. So, a few emails flew back and forth Monday, then I didn’t hear anything else. So, I sent a rather angry email Tuesday night and CC’d my Sales Engineer. That got some attention, and they reopened the case (there are other reasons too, but I NDA and all). The biggest pisser is the previous person I was working with was removed from the case, so now I’m dealing with someone else. Hopefully the miscommunication, and the rather guarded phone conversation on Friday are only due to his call being monitored… we’ll see. Anyway, they’ve said that they aren’t going to close the case until the issue is resolved in an official capacity. That was the crappy part of the week.
The better parts of the week were getting the new Xserve on Monday (I didn’t get to set it up until Wednesday). Once I got it in the rack, I can say honestly, it’s hella fast. I’ve had it running BOINC (setiathome) since Wednesday, and managed to get astropulse running on it, and it’s cranking through work units. It has 8 cores, with Hyperthreading. So, BOINC sees it as 16 cores. For some reason, it won’t use more than 8, so it’s running at 50% capacity, and still managing to blow the socks off of other machines I’ve used. It also uses less power than the older generation Xserves. It also chugs through encoding. While Handbrake doesn’t seem to take advantage of it, using MPEGStreamclip encoded an 8 minute video as H.264 in about a minute. Can’t wait until 10.6 rolls and we see GPU acceleration in Quicktime encoding.
Also got a new test server, in the form of a new Mac Mini. It’s pretty sweet for a Intel Core 2 Duo. It’s only 2.0ghz, but it seems to have Hyperthreading (VMWare sees 4 processors). I haven’t been able to get 10.5 Server Guest OS’s on it yet since we only got a Mini with 1gig of RAM. RAM should arrive tomorrow ($65 for 4gig of ram). I’m hoping to run 3 guest OS’s on there pretty regularly (one for Plone 3 development, one for Plone 2.5 testing (mirror of our current site), and one for 10.6 testing). What I did find pretty cool is that on at least Intel machines, or it may be 10.5, if you have 10.5 client installed, and put in a 10.5 server disk, you can click install, and go through the install without rebooting. After it’s installed, you run software update, it downloads the latest version of server, and then reboot. Boom, you have 10.5 server.
Last week I also finally implemented quotas on the SAN. I did this mainly because one of the LUNs on the SAN was down to about 10% free space (even though the SAN as a whole has about 40% available). This is due to the fact we only have 3 storage LUNs on the SAN. Ideally it should be even numbers. I’d love to buy new storage, but that’s about $15k we don’t really have. =/
Implementing quotas entitled a lot of steps. Since we didn’t have them enabled for the past 2 years, there were about 200 users that were over the quota I was setting. Rather than just setting them all to 4gig, and forcing them to delete work before they could function, I wrote up some scripting that would set those 200 users quotas to 1gig over what they were currently using, and then set a time limit to expire on Oct 15, 2009; at which time their quota would revert to 4gig. The script then sent out emails to those users stating what they were using, what their quota was, and that on 10/15/09, it would set down to 4gig. The more active users have already started clearing off data. I did receive an email from a user claiming they weren’t using that much… of course, I ran a `du` on their user directory, and showed that in fact, they were using that much data.
For all the other users that were under quota, I just set normal 4gig quotas. The only other thing I’m considering is to have the quotas for all those users who are over quota currently shrink down nightly so that it remains 1gig more than their current usage until it reaches 4gig. That way, they can’t delete stuff now, then fill back up the space again. But, it might be moot since they’ll be forced to be at 4gig come Oct 15th anyway.
Now, by Oct 15th, I need to have a script in place that grabs quota data from LDAP, and sets it on the SAN nightly. I also need to make sure all the LDAP quotas are set to 4gig. I’m not sure why Apple didn’t make Xsan look at LDAP for quota info (maybe a latency thing?), but it’s not that difficult to code up something that does that. Ideally, I want it to check the quotas already set, and only set those not already in place… then it won’t be writing 1600 quotas every night, but only at most, a few. I haven’t tested yet whether quotas can be set on the SAN for users that don’t have any data on the SAN… this would be nice so I could potentially set quotas before users have a chance to start writing data (then they won’t be able to go over quota). If I can implement this “diff quota”, I might be able to have the script run hourly rather than nightly. I did write a webpage where people can check their quota… I hope to improve it with a login, as well as a way to see what’s so big on their account.
That’s about all I have for the work week. It was a pretty productive week given that I was only there for 3 days, and one of the days was largely me playing with the new Xserve. Home related stuff here soon. Tara and I have been building something spiffy.
UPDATE
I am mistaken on the Hyperthreading ability of the 09 Mac Mini. It’s showing 4 processors in VMWare because I copied over the .app from a machine that did have 4 processors. I didn’t think this data would be stored in the .app, but I guess it is.
For the record, since it’s nearly impossible to find without other software, the ’09 Mac Mini 2.0ghz, has a P7350 CPU. The details of which can be found here.
You’ll also note that the P7350 does NOT support VT. So, using the Mini as a VMware or Parallels host is probably not the best idea. It’s going to be slower than using something that does support VT. I can say it works, but it doesn’t work as well as machines that do have VT. =/