January 2008 - Posts

So about a year ago i began my quest for the ultimate home media experience.  I have the A/V components(TV's, Projectors, Speakers, Etc.) but i needed to tie all of my installations together.  I have a Projector with a 110+ inch screen in my basement, and a 73" DLP in my great room. I also have flat panel LCD's scattered throughout my home. 

The goal was to provide live TV, recorded TV, music, and DVD access to all stations through one component.  Whether that component was an xbox 360, a Vista Media Center PC, or whatever, i wanted one at each station.  So i sat and chatted with a friend from work, Casey Chesnut who is a former Media Center MVP.  We decided to try a few approaches.

So I started with the primary media center pc.  This was going to be my focal point, my connector to my digital cable, and the center for any DVR.  I did some research and found that the legal jackals at the digital cable companies are ensuring that only qualified (read paid-up) manufacturers can sell media center pc's with digital cable tuner cards.  So after some digging, i made a choice and purchased a s1Digital media center with two digital cable tuner cards.  This thing was flaky as could be for the first few weeks.  After some configuration changes, uninstalling the Intel Viiv garbage, and a firmware update for my the tuner cards, it is finally stable.  The only thing that is left is that the machine has a built-in IR receiver that works only half of the time.  So i was forced to connect an external IR port.  The only problem is that now, half of the time, the machine is registering double button actions from the remote.  This sucks.  So after an hour of looking around in the case for the cable or port to disconnect the built-in IR sensor, i just decided to cover the front face with tape.  Black Gaffers tape is the ultimate visual enhancement for a high-end home A/V setup.  The good news is that the machine is pretty slick.  Lots of processing power, and the video quality from digital cable is incredible. 

Now, on to the second part of this install.  I have somewhere around 500 DVD's that i've acquired over the past years.  I previously had them most of them in a 400 disc changer that was controlled via a pretty slick Escient media interface.  The Escient did all of the cataloging, and only twice did it fail to recognize a DVD.  Unfortunately, i found myself shuttling DVD's from my upstairs to my downstairs or to my bedroom to watch them.  This is a hassle, and since i am a big lazy goon, i'm generally not too careful with them.  So, i decided to rip all of my DVD's to a giant drive array.  So i bought 2 NAS devices, one is a ReadyNAS, and the other is a linksys.  The ReadyNAS is great, and i haven't used the linksys yet, so i have no verdict.  Either way, i have something in the range of 5TB+ of RAID 5 storage.  This is great.  The only pain is that you can't just copy most DVD's to a file structure, as DRM prevents it.  The good news is that Slysoft AnyDVD fixes this problem and strips of all DRM.  I could have converted or compressed the DVD's and saved some space, but i'm one of those people who prefers to have an exact copy of my hard media.

Excellent, so now i have my movies all in one place.  Scratch that.  I will have them in one place once i've finished ripping them all.  Anyways, now i have a huge directory structure with many of my dvd's.  Unfortunately, coming from the Escient, i want a better and prettier interface than a folder structure.  Casey recommended the My Movies plugin for Media Center.  I installed it and it works fairly well.  It's a little buggy, but acceptable for a free community initiative.  This cataloged my DVD's and allowed me to play them on my media center.  Sweet. 

So my Primary TV is mostly set.  Now lets get this lovely media piped to other rooms!  My first plan of attack was an xbox 360.  This worked really well.  I could connect to my media center and watch live and recorded TV through my xbox!  This was awesome, such a simple solution.  Not only are 360 consoles fairly cheap, but they have great video and sound capabilities and i could play a game anywhere in the house.  Excellent, order up 5 xbox consoles right?  Negative.  The 360 console will not allow you to play a DVD format movie from a network share.  They have been recently extended to allow divx though.  Unfortunately at 110" divx looks like crap.  Also, i'll be damned if i'm going to convert and store every movie i have to divx. 

Casey, so intrigued by this debacle, began trying to circumvent this limitation.  Custom media streams, on-the-fly conversions, etc.  Nothing looked or worked very well.  Thanks for the effort though bud.

On to plan B.  A media center PC at every TV.  Sounds like a winner if i can find a cheap enough PC to warrant using just for this purpose.  Enter HP Slimline Refurbs.  It turns out that buy.com was selling these very capable, very nice looking refurbs for just over $300.  Excellent.  Order a couple and give em a shot.  The machines themselves are impressive, great stats for a cheap machine, and they come with Vista Home Premium.   Excellent.  Yes! I can play my dvd's! 

But wait... i can't use a Media Center PC as an extender, just like the xbox?  Nope! MS has failed me again.  The initiave in MS to provide a software based extender has been stalled or flat-out cancelled according to Casey. 

So, on these nice Media Center PC's, i cannot watch live TV or recorded TV from my primary media center.  And because the cable companies won't allow a home-built user to buy and install his own digital cable tuners, I cannot just use them independently.  Even if i play some tricks and share the saved files for recorded TV, the drm prevents me from watching Whose Line at any TV i want. 

 Damn...  So, i'm going to try a few non-MS methods.  There are a few independant Media Center clones out there, even a few open-source ones in C#.  I'll keep you all posted.

 

 

As does everyone from time-to-time, we had a lovely "learn as you go" moment in the middle of a deployment recently.  As it turns out there are some very specific rules for setting up MS DTC in a clustered environment.  As always, individual results may very.

First of all, most DTC changes don't require an operating system restart.  Unfortunately, it would appear, in a clustered environment this is not true.  We did, however, find that if you bring down services in the correct order, you can successfully make changes to DTC without a system restart.

  1. Offline SQL Instances
  2. Offline DTC
  3. Offline Backup Agents(we use SQL Safe from Idera)
  4. Make DTC changes
  5. Online Backup Agents
  6. Online DTC
  7. Online SQL Instances

Now that we have that out of the way, we can get to the settings.  For this example, lets assume we have 3 servers, 2 of them are distance-clustered, the 3rd is not a member of the cluster but will be executing distributed transactions to the cluster itself.

First of all, if you don't know where the DTC settings are they exist in the "Component Services" snap-in for MMC(run:mmc; add snap-in:"Component Services").  For me, I RDP into the console on the server itself, so the default "My Computer" node that appears works, otherwise connect to the appropriate server.  Then, right-click 'Properties" on the server name and you have a window which gives you a tab labeled "MSDTC". 

This tab looks like this:

 

So this screen tells us some things.  First make sure that DTC is started on all the servers involved(unless you brought them offline purposely as described above).  If not, nothing is going to work.  You will probably want to make sure that service starts automatically.  Your cluster group should probably handle this.

Now the fun stuff. Like I said, individual results may vary but these settings worked for us.

Open the Security Configuration dialog:

 

 

This dialog shows the configuration as works for our Server 1 & 2(the clustered servers), "Mutual Authentication Required" will NOT work in a clustered environment. Not sure if "Incoming Caller Authentication Required" works, we couldn't make it work properly.

On the non-clustered server, you must also NOT use "Mutual Authentication Required", however "Incoming Caller Authentication Required" authentication seems to be sufficient for the non-clustered servers.

What this means then is that all servers that will be opening or receiving distributed transactions to or from a clustered environment, must have their DTC settings changed.  We found this out the hard way, as DTC transactions were working in one direction, and not the other.  So it is possible that if your transactions are only being initiated in one direction you may not need to mess with certain servers.  Test it, you'll be glad you took the time.

If you are reading this post, you've probably already seen the DTCPing.exe app that is on the Microsoft site.  It is important to note that DTCPing happily returned no errors even when our authentication settings were jacked.  So, while this utility may help diagnose certain DTC issues, i'm not sure that it helps in this scenario.

Some of this information is outlined very obscurely in this KB article http://support.microsoft.com/kb/899191/

Notes:

  • I am not sure as to the security implications of these settings in an exposed environment.  As our servers are safely sitting in an internal network, I'm not too concerned.  You will have to research and evaluate that decision on your own.
  • I did not have to change any settings on the second machine in the cluster, as cluster manager did it for me when I initiated a test fail-over.  Once again, run your own test.

 

 

I'm sitting at my office desk waiting for our distance cluster to finish failing back over to our local server.  For the second time today, the our SQL cluster decided to fail over to our remote location.  My suspicion is that due to the ungodly number of SQL instances we have on these servers, we consumed the available 64gb of ram and caused the splitter driver to fail.

For a little background, we utilize monster 64bit Unisys ES7000 Itanium 2 servers at work.  These bad boys are wonderful. The only complaint I have ever had is that the distance clustering solution by EMC has done some questionable things, but when it works, it is one of the slickest clustering implementations I've ever seen.

We just moved the remainder of our databases to this cluster on Wednesday, which due to our failure in throttling the memory usage, must have pushed it over the limit.

We work with a million technologies that the majority of people never come across in their work, each of which presents it's own set of challenges.  We have a fairly large server farm, 2 of them really.  We utilize Windows Auth for pretty much all authentication.  This creates all sorts of wonderful issues as well.  We do constrained delegation via SQL CLR stored procedures from server-to-server.  This is a fun trick.  We actually use a SQL Server as a routing engine for database calls, most people would call this questionable architecture, but once you look at the scale of what we accomplish with it, you'll see it is quite a brilliant solution.  So setting up SPN's and MS DTC in a cluster is in interesting challenge. 

When I get some time, I'll post some specifics about our infrastructure and some of the hurdles we've had to jump to make it all work.  Topics i plan to touch on:

  • MS DTC in a cluster
  • SPN's and delegation
  • SQL CLR (cross-server calls & impersonation)
  • SQL Performance
  • Multi-Tenant DB's
  • etc.

Till then...