WeaponsGradeCode

Notes from the field…

Archive for the 'Mythtv' Category

Antec Titan 650 Server Case/Chassis Review

In a day and age when you go to Frys and all the cases look like this:

Funky Case

…us old timers (mid thirties) yearn for a decent server case that doesn’t have neon lights and can hold a substantial number of hard drives. Sure, neon fans were cool when we were 18 and looking for a mate, but when you’ve got a couple terrabytes of “Baby Einstein” and “Wiggles” videos to serve on demand to a 15 month old, you need good case design and capactity.

When selecting the new server case for my MythTV/home server solution, my primary requirements were low cost and lots of hard drive space. This server would not have a CDROM or floppy, just hard drives as it would sit in the shed, spinning away, recording TV shows and serving content.

Several strategic newegg.com queries later I found the Antec Titan650 and purchased it.

It’s a reasonable size. A bit smaller than a mid-tower case, but longer (deeper.) If you’re like me, occasionally you come across some Extended ATX (EATX) motherboards and this case can handle them. Most cases can’t.

Titan650 case

Here’s the back. It’s got the one big fan in back that I like.

Titan650 Chassis Back

I really liked the rubber grommits they placed on the drive rails. If you have a bunch of drives they should quiet things down a bit. They also shipped special screws for the rails.

Titan650 drive rails

The front door assembly was nice too. Here you can see the drive cage with the two fan mounts below. The front door cleanly swings away from the chassis.

Antec Titan650 Front Door

The front drive access door had a cool hinge that allowed it to swing completely out of the way.

Antec Titan650 Front Door Hinge

The inside, as shipped.

Antec Titan650 Inside

All the great stuff you get including different drive rails for all the 5 1/4 and 3 1/2 drive bays.

Antec Titan650 Stuff

Here’s the drive cage with two 750GB drives mounted in it. Note the fan mount swings away and off to allow access to the drives. This case now has four 750GB drives and four 400 GB drives. Six drives in the cage, two more in the 5 1/4 bays.

Antec Titan650 Drives

This is a fantastic case for the money. If you need a server case, buy this without hesitation.

Antec TITAN650 Black Pedestal Server Case

Antec TITAN650 Black Pedestal Server Case

Antec TITAN650 Black 1.0mm SECC Pedestal Server Case 650W 4 x 5.25″ (one with 5.25″ to 3.5″ adapter) External 5.25″ Drive Bays


3Ware 9650se Review

An eternal challenge with home file servers connected to MythTV systems is disk space. Any new space is typically consumed within months.

About eight months ago, while dealing with space issues, I researched all the hardware raid solutions under $1000 on the market. Generally, the reviews tended to lean in the direction of 3Ware products. Unfortunately, they were all SATA & PCIe solutions meaning I would have to completely upgrade my server system. That meant a new PCIe motherboard, processor, RAM, and case for about $500, and the 3Ware 9650SE for another $500, plus new drives, about $1000. That’s a $2000 system. I just couldn’t lay that cash out at the time so I stalled.

Weekly I would evaluate my position to see if I could buy the system. After Christmas, it was clear that I had to do something. So I bought all the gear from Newegg.

3Ware 9650SE box3Ware 9650SE parts

Setting up the system was a piece of cake. Everything installed easily and came up the first time. I had three 750GB drives, one with 750GB of data that I needed to save. So I configured the two 750’s in a RAID 0 configuration with the intention of copying the data from the third 750 to it, then migrating to a RAID 5 configuration.

Big mistake. The migration on this state of the art machine was taking forever. The math led to the migration taking over 120 hours. I called 3Ware support and they said that’s normal and expected: it’s all good. That’s a data migration rate of 3 MB/s putting it in the MFM hard drive range. (That’s from the 80286 era… back in the mid ’80s)

OK fine, I’ll migrate rarely. Good enough. I’ll back the data up again to another drive, build a RAID 5 array from the get go and be on my way.

After running through the hoops and getting the system built and closed up, I realize that it’s now _very_ slow. Like, it takes seven seconds to return from running ls on the root folder. I googled around and discovered others having the same problem.

After some diagnosis, I discovered the problem. Building a RAID 0 array with the on board write cache on or off was __really__ fast. On the order of 180MB/s write speed. Glorious really. Moving to RAID 5 without the on board cache brought write speeds to less than 9 MB/s. Abhorrent. Turning the cache back on sped things up a bit.

A quick call to 3Ware tech support confirmed the numbers.

So there you have it. A state of the art machine with a $500 hard drive controller card on a 4x PCIe bus and 300MB/s SATA drives gives write speeds resembling that of my Amiga back in the 80’s.

3Ware’s position is to get the battery backup and enable the cache which is a $150 option. Unacceptable, as any modern dedicated RAID card should be able to sustain a 20MB/s write rate without cache.

One could run a RAID 5 configuration with write cache and without a battery backup, but if the power fails, power supply fails, or system crashes, you’ve lost everything.

The whole thing was unacceptable and very disappointing. I’d been looking forward to owning this card for months and now I’m returning it after investing months saving/planning and weeks of testing. The card, specially selected motherboard and CPU all went back to Newegg for a full refund. Newegg’s one of the best online stores I’ve worked with. Buy from them.

Price/Value, the 3Ware 9650se was one of the worst electronic products I’ve ever purchased.

Soon, I’ll post the solution to this whole mess.

Configuring XFS on a Very Large RAID Array

This was one of those times that you’ve got a huge task at hand and you get bogged down in some super small detail that consumes a full day… I’m setting up a new MythTV system and the first step is configuring the RAID array. The hardware’s a piece of cake, partitioning was no problem, but how do you create an XFS volume that’ll survive multiple expansions?

You see, I’ve been stung by this before, I think with efs3. You start out with a modest file system, expand it a couple times, then you’re out of inodes. You’ve got a lot of free space, but you can’t create any more files until you create more inodes. You can create more inodes without destroying the file system which means backing the whole thing up, etc…

Luckily, XFS creates new inodes on the fly so that problem’s fixed. But I will be ‘growing’ it several times so how do I start my 1.3 TB array with a file system that will grow to over 5 TB? Turns out to be fairly easy. Common wisdom on the Internet is to simply create a default XFS file system only with at least 512 byte inodes. That’s for a > 1 TB array. This array will probably grow to 5 TB so I made my inodes 1k or 1024 bytes. That’s supposed to spread the inodes around the file system a bit better and is a bit more efficient with directories with lots of files in them. Good so far.

Now I have the problem of performance. I ran some tests and was only getting about 180MB/s read/write performance. Compared to other benchmarks on the Internet, that was pretty low.

I thought my XFS RAID parameters were incorrect so I start goofing off with the -d su=XX,-sw=xx parameters to speed things up. These parameters are supposed to indicate to XFS what the underlying RAID geometry is so that it can efficiently read and write to the file system. The su or sunit is the RAID stripe size (64k in my case) and the sw or stripe width is the number of data drives you have in your array multiplied by the sunit. In my case, I have a total of three drives in the array, one parity and two data drives, so my stripe width would be 128k. After a while, nothing was making a performance impact. I then tested a single SATA 2 7200RPM drive by itself and got 40MB/s throughput. Now 180MB/s on a two data drive array aint lookin’ so bad. Then I noticed the 400MB/s benchmarks came from eight drive arrays. The more drives the faster the array so that probably explained it.

The tests I used were primarily:
Write test:

# dd if=/dev/zero of=10gb bs=1M count=10240
10737418240 bytes (11 GB) copied, 22.459 seconds, 478 MB/s

Read test:

# dd if=10gb of=/dev/zero bs=1M count=10240
10737418240 bytes (11 GB) copied, 28.7843 seconds, 373 MB/s

I also tried bonnie++ but the results were largely incomprehensible.

That’s when I made the decision not to care about the stripe size and width anymore. Primarily because it didn’t appear to make a difference and also because it seems you can’t change it after you create the file system. If I went with the above parameters, what would happen when I added another drive? I’d be hosed I suspect.

The command I used to create the file system was:

/sbin/mkfs.xfs -i size=1k -f /dev/data/lvol0

…where /dev/data/lvol0 was my LVM logical partition.

I’ll be expanding the array shortly. I’ll let you know how it goes.

Building a High Capacity, HDTV MythTV System.

We’ve outgrown our current home network/MythTV system.

The front ends, in the living room and master bedroom, are great at standard definition. They have AMD Sempron 2200’s running at I think 1.6 MHz and while they churn through SD with ease, they just can’t decode HD MPEG 2 at any resolution. We now have two HD TVs so that’s gotta change.

The storage is a mess too. I started with a 400GB drive. Then two 400GB and a 200GB drive in spanned across volumes for 1TB. Then I picked up an Adaptec 2400 IDE raid controller and two more 400GB drives for 1.2 TB of RAID 5 storage. That’s hot. But then we ran out of space, again. Upgrading would cost a fortune as my server is a bit dated (2x 2.2 GHz Xeons if you can believe it) and I can’t buy a good SATA 2 PCI RAID controller. I would need a whole new server. So I picked up a cheap PCI SATA card, external enclosure, and 750GB drive. Yahoo, 750 GB of un-protected storage for just about $270. Enough to get us through another couple months. We ran out quickly.

Time to spring for the new system.

The front ends work fine at SD on the HDTVs so they can wait a bit. I have a lot of projects that’ll take a lot of space queued up so I’ve gotta build the back end out first.

The requirements are a backend that can scale to at least 5 TB of storage, run MythTV backend and record SD & HD content. It’ll also be an SGI IRIX install server, host development web sites, general purpose mysql server, and sub-version server.

More on the parts I chose later.

Quick UGT-ST200 PCI SATA Adapter and NST-360SU-BL eSATA External Case Review

Our home media server has four 400GB drives configured in a RAID5 array using an Adaptec 2400A adapter giving us 1.2TB of RAID5 storage. This media server’s filled with our pictures, songs, movies, and TV shows accessed via MythTV.

As is usually the case, MythTV is very good a illustrating how little space 1.2TB really is, and we filled it up fast. Soon I was deleting shows and files that I wanted to keep but needed to make room for the next ‘Days’ episode.

Of course, the Adaptec has only four ports, all filled, and this was plugged into a circa 2003 Xeon server with only PCI slots. Generally, they’re only building PCIe & SATA RAID cards so upgrade was out of the question unless I bought a whole new server. Further more, the system has an extended ATX motherboard in a case supporting only four internal drives. What a disaster.

Eventually I’ll get a new server but until then, the best, fastest solution was to simply hang a new 750GB drive off a cheapo PCI to SATA drive in a cheapo SATA enclosure.

Enter the Vantec UGT-ST200 PCI to SATA adapter and Vantec eSATA case. The adapter came in at ~$29 and the case at ~$49 at Frys.

UGT-ST200

NST-360SU-BLPackaging for both products was great. This stuff is all straight forward so I didn’t even look at the manuals.

The external eSATA case was really nice. The finish was perfect to the point that you didn’t want to touch it which is not something you want to do as its aluminum case _really_ disipates the heat generated by the 7200 RPM drive well. It came with a power adapter, USB, and eSATA cables. I installed a Seagate 750GB drive, plugged it into the USB port on my Dell e1705 with XP and transfered 350GB of data without a hitch.

The adapter has one internal and one exteral SATA port and the nice suprise was the included internal SATA to external eSATA adapter allowing you to connect two eSATA devices if desired. Physical installation was typical and Fedora Core 6 (fc6) found the adapter and drive the first time. I think the 150MB/s SATA drive is actually faster than the RAID array.

Now that I have an additional 750GBs in the server, I transferred all the things that I had backups for or didn’t care if I lost to it, leaving the ‘valuable’ stuff on the array.

Generally, the experience was positive and would not hesitate to buy both products again.

NST-360SU-BL along side the server…

Getting Channels to Work with Two Tuners Is Still A Pain.

Hurray for schedulesdirect.org! I signed up the day they opened registration. I hope they publish user ids like they do on slashdot.org so we all know who’s old skool.

Schedules Direct Configuration

So I finally got around to updating the system to use the new service. I always dislike mucking around with the channels in mythtv because the configuration system doesn’t quite have their story straight with the programming data folks. That is, it never works out of the box. In other words, MySQL experience required.

To complicate matters, not only did I cancel my premium cable service, but my cable provider changed the entire programming lineup. This will be a challenge.

To start, I updated my Fedora Core 6, atrpms installation flawlessly to mythtv 20.2, ran the setup, and configured schedules direct. I exited and ran mythfilldatabase with the expectation of it magically sorting everything out and… wait for it… it didn’t. Everything was hosed.

Reading a bunch of posts seemed to indicate the best thing to do was to start over. So I did. I deleted all the programming data providers, created new ones and assigned them to my standard definition and HDTV tuners respectively. I scanned for SD channels and imported my HDTV channels from when I first configured them. I re-ran mythfilldatabase and, well, I had programming data for all the SD channels, the SD channel callsigns were changed to ‘Adding Channel X’ and the HDTV channels had no data and their names wrong…

Running ‘mythfilldatabase –do-channel-updates’ fixed the SD channels. The HDTV channels were harder.

Mythfilldatabase  does some kind of crazy schedulesdirect -> channel table matching to figure out where to put programming data. I can’t remember what fields are important, but updating the channum, freqid, and callsign columns in the channel table did the trick. Basically, channum and freqid were set to the imaginary HD channel number, and callsign to the call sign. Re-running mythfilldatabase populated my channels with the correct programming data.

So mythtv still has some way to go, especially with HDTV configuration (is there a tech organization that doesn’t)  but at least with a bit of database skillz, I was able to make the transition within two evenings.

Two tuners and no programming data for one of them…

So I’ve got the pdHDTV 5500 and a Hauppauge card. After adding them both to mythtvsetup and running mythfilldatabase, I only get programming data for the HD card. Even after dropping the database and starting over configuring only the Hauppauge card, I still only get HD programming info. I searched everywhere for a mythfilldatabase cache or something that may force mythfilldatbase to do such a thing without success. Finally, I log into the Zap2It site and low & behold, all my channels have been disabled but the HD channels. I re-select them all and things appear to be working now.

It appears that after you define your channels and run mythfilldatabase, Zap2It will note the channels you have an remove any you didn’t originally request.

(Read the article)

Fedora Core 6, ALSA sound, IVTV, and the pcHDTV 5500: Now no sound?

After all the dust settles and you start moving into your new mythtv system, the sound system loads intermittently. I think this is because either the Hauppauge card, the pcHDTV 5500 or both, also have sound hardware and the order they load occasionally switches. The solution is to remove all the sound lines from /etc/modprobe.conf ie:


alias snd-card-0 snd-intel8x0
options snd-card-0 index=0
options snd-intel8x0 index=0
remove snd-intel8x0 { /usr/sbin/alsactl store 0 >/dev/null 2>&1
  || : ; }; /sbin/modprobe -r --ignore-remove snd-intel8x0
install snd-intel8x0 /sbin/modprobe --ignore-install snd-intel8x0 &&
  /usr/sbin/alsactl restore >/dev/null 2>&1 || :
remove snd-intel8x0 { /usr/sbin/alsactl store >/dev/null 2>&1
  || : ; }; /sbin/modprobe -r --ignore-remove snd-intel8x0

… just prefix them with a # sign. Then run Fedora Core 6’s:

system-config-soundcard

Set the default sound card and load order in there and the tool will update /etc/modprobe.conf with the correct values.

A thread of the challenge can be found here:

Alsa sound
(Read the article)

Getting programming information for two tuners.

My new MythTV box will have a pcHDTV 5500 for HD recording and a Hauppauge 250 for standard TV. Getting the programming information working for both so they didn’t stomp on each other was a challenge. The fix is to simply define two inputs of Zap2It. They’re both configured identically, but have different names. I then loaded the channels from my channels.conf (described later) for the HD side of the house, then scanned regular TV channels and everything fell into place.

(Read the article)

Firewire on MythTV and a DCT6416 III

No dice so far. I’ve got MythTV changing channels on the cable box, but no video. I’ve been following this site:

FireWire MythTV

…and only get to Test-mpeg before things go south. I’m going to work on this later.

(Read the article)

Next Page »