Background: Inside Intel’s Tera-scale project

Santa Clara (CA) – Last week, Intel released eight technical papers providing details about its Tera-scale project. TG Daily had an opportunity to discuss the technology with Jerry Bautista, director of technology management at Intel. Could Tera-scale become the x86 killer?

The Tera-scale project is currently has over 100 separate teams work on it. Intel is working on everything from electrical foundations all the way up to the software. Some of the research Bautista was able to share with us indicated how powerful this project is and why Intel is throwing so many resources at it. Read More on TG Daily

WGA – Ever Wonder What Is Collected?

The following is copied from the Genuine Microsoft Software Download FAQ

Information collected during validation

Q: What information is collected from my computer?
A: The genuine validation process will collect information about your system to determine if your Microsoft software is genuine. The validation tools do not collect your name, address, e-mail address, or any other information that Microsoft will use to identify you or contact you. The tools collect such information as:

  • Computer make and model
  • Version information for the operating system and software using Genuine Advantage
  • Region and language setting
  • A unique number assigned to your computer by the tools (Globally Unique Identifier or GUID)
  • Product ID and product key
  • BIOS name, revision number, and revision date
  • Volume serial number
  • Office product key (if validating Office)

In addition to the configuration information above, status information such as the following is also transferred:

  • Whether the installation was successful
  • The result of the validation check

As standard procedure, your Internet Protocol (IP) address is temporarily logged when your computer connects to a genuine validation website or server. These logs are routinely deleted.

Q: How does Microsoft use this information?
A: We use the information to:

  • Help prevent improperly licensed use of the software.
  • Improve our software and services.
  • Develop aggregate statistics.

We may also share aggregate data with others, such as hardware and software vendors and volume licensees to help protect their license keys.

To learn more about Microsoft Genuine Advantage Privacy Policy, visit

So, if you’ve ever wondered what information they collect for WGA, wonder no longer.

Freedom9 freeView IP 100 IP KVM Switch Review


I have received for review the IP KVM switch called freeView IP 100 (KVM-01IA) made by Freedom9.

This switch is a single port IP KVM switch which means you can control the computer over the Internet or your local network even during the BIOS and CMOS settings screens.

In a home setting attaching a monitor to your computer may seem inconvenient but not out of the question. However, in some data center type settings or where the servers or computers may be too remote to easily do this the IP KVM may be an ideal solution for that kind of a situation. There’s not much that can compare to the frustration of working with a computer that has been working for many months or years and then suddenly was not work and your remote screen tools or desktop tools will not allow you to access it because the computer won’t boot and you won’t be able to see what’s on the screen. No longer will you be victim to a remote machine stuck at a “Press F1 to continue” screen!

In an ideal world your video, keyboard, and mouse would all be abstracted to the level that remoting them over TCP/IP would be a relatively easy thing and would even be built into modern computers. Until this utopian world appears products like IP KVM switches will always have an audience.

Box Contents

Inside the box the contents are rather well packed. The main unit sits between a sandwich of foam.

You may notice that there is no printed manual the manual exists only in electronic form on the CD.

Package contents include Freedom9 freeView 100, 5V 2.5A powerbrick, 6′ 9pin serial (null modem) cable, 6′ Cat5e patch cable, 3′ host-KVM straight-through cables, 8.5″ wide rackmount bracket, screws, 6′ USB cable.

Host connection side has the power, USB, 15pin VGA, PS/2 keyboard, PS/2 mouse, and pinhole factory reset button.

Close observation of the KVM switch shows that there is not only a connection for the host computer but also the console which means that you will not sacrifice your keyboard monitor and mouse access if you need access at the actual machine using the standard method.

The console connection side has 10/100 network connection, 9pin serial connection, 15pin VGA, PS/2 keyboard, and PS/2 mouse.

CD Contents

The following files are found on the CD which accompanies the product in the box.


Additionally this product is not bundled with any PDF readers you will need to download one from the Internet.

Supported Video Modes

The following is a table of the supported video modes.

Resolution (x, y) Refresh Rates (Hz)
640 x 350 70, 85
640 x 400 56, 70, 85
640 x 480 60, 67, 72, 75, 85, 90, 100, 120
720 x 400 70, 85
800 x 600 56, 60, 70, 72, 75, 85, 90, 100
832 x 624 75
1024 x 768 60, 70, 72, 75, 85, 90, 100
1152 x 864 75
1152 x 870 75
1152 x 900 66
1280 x 960 60
1280 x 1024 60, 75

The manual also contains the following warning, “Do not use custom video settings besides that are not listed in the following table. Otherwise the freeView IP 100 may not be able to detect them.”


A highlight of features as they stood out to me:

  • Remote IP KVM ability (obvious)
  • Remote mount/drive redirection (discussed more later)
  • Highly configurable (almost too configurable)
  • Management tool to manage a collection of these devices from a single screen.
  • Documentation specifically mentions attaching it infront of a larger KVM.


I will spare you from a complete copy/paste of the manual, but it is available from the support site.

The manual lacks quality control, but is packed full of useful, and reasonably documented procedures.  Some areas with limited documentation are the modem connection ability, and the telnet pass-through to an RS-232 capable switch.

From reviewing the documentation it appears this documentation was originally created in German, and translated. The translation went well, but there are some minor loose ends like cancel buttons which still had German on them.

First Impressions

The process of removing the product from the box was enjoyable. It was a product which looked like someone cared enough to package it well. Reading over the documentation was somewhat exciting as the potential of the product become apparent. The excitement stopped there.

Problem #1 – after first connecting the product, and testing it out, I had the control window open, and went to do some other things. When I got back, there was an error which at first seemed like the product would not accept connections. After rebooting my client computer, it connected, which was a relief since it shows the product was in the client software.

Problem #2 – the default firmware on the product would not access any pre-OS screens, including startup, press any key to boot from CD, etc. This for me is a major deal breaker.

Annoyance #1 – Only registered users may download firmware updates.

Problem #3 – the firmware is the latest already which bodes ill news.

Problem #4 – Auto-adjust seems to work less wonderfully than the name implies. I got the following after hitting it a few times

Continue reading for my support experience


Calling support was relatively painless. Everyone who picked up the phone spoke english, and spoke it well. No sensations of calling third-rate support centers in the middle of some foreign country.

Speaking with Ian, he directed me to some interesting areas. Using the Web Interface, this set of options made it apparent what could have been wrong with Problem #2 on the prior screen. Some computers don’t like using USB input devices pre-boot. I checked and the USB Legacy setting was set, but I still think it had something to do with the USB being used for the keyboard input.

Today problem #2 seemed resolved before I spoke to Ian, because as I was testing it to tell him about it, the keyboard was working in the BIOS screens which it was not. He told me that the unit periodically resets portions of itself depending on the scenario. Considering the computer it was connected to was off overnight, perhaps it “fixed itself” via one of those resets.

Ian suggested I also update my Java version

I didn’t make him wait on the phone, but after updating, it now shows this:

Receiving numerous questions, concerns, pointing out mistakes, Ian seemed to take each in stride, not becoming irritable or upset. Freedom9 has done well to hire him.

Coming soon, my experiences using remote media

Test Setup #1

IBM xSeries 345

  • 2×2.8Ghz Xeon
  • 4GB RAM
  • 6×146.8GB HD
  • CD-ROM
  • Floppy
  • Single USB Port
  • CentOS 4.4


Mouse interaction w/ CentOS in KDE seemed erratic, similar to using the Remote Supervisor Adapter to access the RAID management tool from IBM. When I first used the freeView 100, it would not allow me to access any of the pre-boot screens using the keyboard or mouse. I think this was related to USB being used for the inputs, and not really well supported by the BIOS, since I had USB Legacy enabled and it didn’t seem to be helping. However, later it “cleared up”. I switched it to PS/2, and it worked well then too.

This server did not seem to be able to USB boot, but when I attached a USB -> IDE adapter and tried a Knoppix CD on a DVD drive I had, it didn’t boot either, and none of the boot options had USB. I think on this one, I was just out of luck for that.

The USB device was detected by CentOS after booting though

Test Setup #2

Dell Inspiron 8600

  • 1.4Ghz Pentium M
  • 2GB RAM
  • 80GB HD
  • DVD Writer
  • 2xUSB Port on docking station
  • Docking Station VGA


The laptop had about the worst experience. The mouse movement was erratic, no matter how many times I synced it, or how many mouse options I tried, how many times I reset the Keyboard/Mouse, or the entire device, it didn’t work right. The keyboard worked, but the mouse didn’t really work right.

Additionally, the laptop didn’t seem to want to output the screen to the monitor through the VGA port during the startup, at least when the laptop screen was also visible. After starting, I was able to see, and when the monitor was blank, the soft keyboard and IP KVM keyboard access did indeed work.

Below is an unmodified example of the image quality

Considering it’s only supposed to be for administration, it’s probably not critical to have super quality. Additionally, the bytes in/out indicate this product could be used over dialup speeds.

IBM BladeCenter and DS4000 Question and Answer session

The following is the modified chat log portion of a live demo for an IBM BladeCenter and DS4000 Question and Answer session. JonathanD led the session.

[@JonathanD] I’m a certified expert in IBM bladecenter.

[@JonathanD] I’ve installed several dozen DS4000 units.

[Attendee2] JonathanD: mind if sidetrack some of your DS4000 time torward the DS3200 ?

[@JonathanD] Attendee2: I’d prefer to do that one next week, after I’ve installed one

[@JonathanD] I’d really need Brian here, if we want to do it today

[@JonathanD] and I don’t think he’s available right now.

[Attendee2] but most of my questions about LUNs and arrays would be the same anyway right ?

[@JonathanD] Attendee2: yeah, they should be.

[@JonathanD] everyone in VNC?

[@JonathanD] So, does anyone need to know more about the basics… what a SAN is?

[Attendee3] I don’t, mostly.

[@JonathanD] I’ll go over some of the very basic stuff anyway, just as a refresh and in case anyone needs it.

[Attendee2] JonathanD: is this sotrage software the same, regardless of the model ?

[@JonathanD] Attendee2: for the 4000 series, yes.

[@JonathanD] this is what you would see.

[Attendee2] ok it looks very similar to the DS3400 software doc

[@JonathanD] so, what makes a SAN different from a NAS…

[@JonathanD] Attendee2: it is

[@JonathanD] a NAS is a network share, basically, like a windows network share. different machines can use it, and store things there. You can use it with normal networking hardware, nothing special.

[Attendee3] SAN attaches via high speed fiber to a server, whereas a NAS connects via Ethernet?

[Attendee1] Generally.

[@JonathanD] A SAN, generally, is seperate, on it’s own network, and doesn’t have shares.

[@JonathanD] It has LUNs

[@JonathanD] which are assigned to hosts.

[@JonathanD] a LUN is a Logical unit number. to a server, a LUN is a physical disk.

[@JonathanD] on a scsi bus, each drive is a LUN.

[Attendee2] can any one disk (or array ) be split into multiple LUNs ?

[@JonathanD] Attendee2: yes. We’ll take a look at how that works in a moment.

[@JonathanD] so, a LUN, presented to a host, is functionally the same as a physical scsi disk installed IN that host.

[@JonathanD] thats the single biggest difference between SAN and NAS.

[@JonathanD] so, lets take a look at our san here.

[Attendee1] JonathanD: Try not to click around without giving at least a sec or two.

[Attendee1] We won’t be able to follow the screen updates.

[Attendee3] but the ds4k series doesn’t use scsi, it uses SATA?

[@JonathanD] this is a demo system. It has 2 drawers, one with 16 SATA drives, one with 10 FC drives.

[@JonathanD] Attendee3: it uses SATA or FC. FC is funtionally equiv to SCSI

[@JonathanD] from a performance perspective

[@JonathanD] but all these disks are connected to the 4000 via fiber

[@JonathanD] so, you can “see” the disks right now, right?

[Attendee2] and to the hosts via …. ?

[@JonathanD] Attendee2: fiber

[@JonathanD] on the right, we have luns.

[@JonathanD] we’re going to look at how you create a LUN and where it comes from

[@JonathanD] everyone ready?

[@JonathanD] I have about 600GB of unconfigured Fibre disk space.

[@JonathanD] as you can see.

[@JonathanD] thats those 7 drives which currently have little purple things under them.

[@JonathanD] you can see here the drive selection and raid options.

[@JonathanD] we’re going to create a 3 disk raid 5, right now.

[@JonathanD] which will give us 135GB, after parity.

[Attendee1] What’s enclosure loss protection ?

[@JonathanD] someone let me know if I’m going to fast for updates.

[@JonathanD] Attendee1: consider the following.

[@JonathanD] You have a DS4000 with 8 enclosures.

[@JonathanD] (that is, disk cabinets)

[Attendee2] like expansion units ?

[@JonathanD] you build your arrays, as 8 disk raid 5 arrays, going vertically down the cabinets

[@JonathanD] yes, Attendee2

[@JonathanD] so disk 1 in each is part of array 1, disk 2, array 2, and so on.

[@JonathanD] if you lose an entire enclosure, somehow, you still are online.

[Attendee1] Interesting.

[@JonathanD] as you have lost only one disk from each array.

[@JonathanD] that is enclosure loss protection

[@JonathanD] losing an enclosure is a RARE thing, but if a customer does have enough enclosures to do this, we will do it.

[@JonathanD] otherwise, it’s considered minor.

[Attendee3] Ah. So that little notification is telling you if those drives are located on different enclosures?

[@JonathanD] Attendee3: well, it’s telling me that TOO many drives from this array are in the same enclosures.

[@JonathanD] you can do loss protection with only 2 enclosures, too.

[@JonathanD] with raid 10

[Attendee3] makes sense. You’d need three enclosures to do raid 5

[@JonathanD] so now,wwe’re looking at the next screen. here, we define the lun size and name.

[@JonathanD] Attendee3: correct.

[@JonathanD] enclosures failing is pretty unlikely, anyway.

[@JonathanD] each has redundant power, and 2 ESMs, which are the devices that connect the drives to the controllers

[Attendee1] Okay, so here you are defining logical/virtual disks carved out of the array you just created?

[@JonathanD] Attendee1: exactly.

[@JonathanD] lets make 2

[@JonathanD] so, an array can be used by more than one host.

[Attendee2] thats perfect

[Attendee1] So you could if you wanted, make the whole thing 1 giant RAID 5 + hot spares, and carve luns out for various uses, right?

[@JonathanD] Attendee1: yes, but that would be a bad idea for more than say, 8 drives.

[Attendee1] Why?

[@JonathanD] Attendee1: raid 5 rebuild time increase rapidly past 8 drives.

[Attendee1] Really?

[@JonathanD] a rebuild that took 2 hours on 8 disks could take 8 hours on 10

[Attendee1] So like a 20 drive RAID 50, or RAID 10 would be okay right?

[Attendee2] thats really what i wanted to do was 2 RAID5 arrays and split out 3 LUNs per array to take care of my 6 blades

[@JonathanD] Attendee1: both would probably be fine.

[Attendee3] seems it’d be a better idea to create multiple raid 5 arrays and carve them out as needed.

[@JonathanD] so what were looking at now is LUN characteristics

[@JonathanD] the segment size, cache prefetch, etc.

[Attendee1] The radio buttons do what? Auto suggest geometry?

[@JonathanD] Attendee1: yes.

[@JonathanD] we generally go with cache read prefetch on, and 256 for segment size for mixed workloads

[@JonathanD] unless you have an app making small writes, it’s a good fit

[Attendee1] So like a webserver, you might use smaller segments, right?

[@JonathanD] controller ownership defines which controller owns that lun.

[@JonathanD] Attendee1: a webserver with lots of small files, sure.

[@JonathanD] 64K might be good

[Attendee1] Where webpages are typically under 20k.

[Attendee2] ok well what about something like an exchange DB ? that writes a lot of small things but large things consistantly too

[@JonathanD] 256, Attendee2

[@JonathanD] best for mixed loads like that

[@JonathanD] 128 would be acceptable too

[Attendee2] so i dont really want to use the DB radio ?

[@JonathanD] you can change it, after install

[@JonathanD] you can, Attendee2

[@JonathanD] it picks 128, which would be fine

[@JonathanD] generally you want “map later” here.

[@JonathanD] mapping to default only applies on DS4000 connected to a single server or cluster

[Attendee1] What’s a storage partition?

[@JonathanD] Attendee1: a storage parition is a segmentation of the storage system.

[@JonathanD] without ANY, all hosts see all luns.

[Attendee1] So, it’s used to divvy up luns for connecting computers?

[@JonathanD] right.

[@JonathanD] basically

[@JonathanD] the 4000 supports up to 64

[@JonathanD] a cluster with shared disk uses 1, not 1 per node.

[@JonathanD] since all nodes need the shared disk

[@JonathanD] so, we have 2 luns now

[Attendee2] Did you mean to put that on a diff controller ?

[Attendee2] I think you used A for the first one.

[@JonathanD] yes.

[Attendee2] why?

[@JonathanD] it automates back and forth

[@JonathanD] ideally, you want to balance between them.

[@JonathanD] you want equal load on each controller

[Attendee2] so if i have 4 LUNs in an array i want 2 of them to be on one controller and 2 on the other

[@JonathanD] yes.

[Attendee2] well i think ill end up with the single controller 3200 so i shouldnt have to worry about that !

[@JonathanD] (this is the san switch)

[Attendee3] Ok, what are you doing here?

[@JonathanD] well, typically we would do zoning here.

[@JonathanD] we don’t need to, because they are already there.

[Attendee3] define zoning for me, please.

[@JonathanD] zoning determines which blades and servers are allowed to see which storage systems, and tapes, and other FC things.

[@JonathanD] it’s similar to VLANs, in ethernet networking.

[Attendee1] If I remember correctly fiber channel is an explicitly defined network if you will.

[Attendee1] Not automatic like normal TCP/IP networks.

[@JonathanD] as you can see here, our HS21 blade can see DS4700_A1

[@JonathanD] which is port 1 on controller A of the 4700

[@JonathanD] here we have the masks.

[Attendee1] Can you also do RADIUS or other authentication?

[@JonathanD] no, theres no provision for that in fiber channel

[Attendee1] Is each blade in a chassis an available endpoint?

[@JonathanD] yes.

[@JonathanD] you can see here, we have an HS21 and an LS21 blade, each with it’s own ports defined

[Attendee2] and the hosts will autodetect from the chssis to the SAN switch ?

[@JonathanD] Attendee2: basically. once the zone is in place.

[@JonathanD] the 4000 sees the ports, you tell the 4000 which ports belong to which host

[Attendee1] Okay, what are we doing now?

[@JonathanD] note: this blade has NO internal disks

[@JonathanD] now, we’re going to put our new luns on a blade 🙂

[@JonathanD] and a windows boot lun, as well

[@JonathanD] I’m just taking off the existing linux boot lun and shared lun

[@JonathanD] so, we just added the lun “HS21_Lun0”

[Attendee1] gvstg01 is what kind of device?

[@JonathanD] as LUN0

[Attendee1] Is that the switch?

[@JonathanD] a ds4700

[@JonathanD] no, it’s the storage system.

[Attendee1] Okay, so it’s the FC controller we configured earlier?

[@JonathanD] right, we’re still on it now

[Attendee1] Host HS21 is the chassis w/ the blade we are trying to setup right?

[@JonathanD] so, I’m adding the 2 luns we created earlier

[@JonathanD] HS21 is the specific blade, in the chassis

[@JonathanD] in this case, blade 2

[Attendee1] Okay, so the specific blade.

[@JonathanD] I just added the 2 luns we created, as luns 1 and 2

[@JonathanD] and you can see them in the list here.

[@JonathanD] except I added them to the wrong host 🙂

[Attendee3] changing them seems easy enough.

[Attendee3] did you do that on purpose? 🙂

[@JonathanD] hehe, catch on quick, Attendee3 🙂

[@JonathanD] so here is our HS21

[Attendee3] I’m wise to the sneaky demo guy tricks..

[@JonathanD] and we’re going to hope that nobody changed whats installed on that Lun0

[@JonathanD] cause if they did we’ll have to install windows 🙂

[@JonathanD] tis the danger of an open lab 🙂

[Attendee1] So, does this device support snapshots of luns?

[@JonathanD] you can see we have 3 luns, the 3 we just added.

[@JonathanD] Attendee1: you can make a flashcopy, yes.

[@JonathanD] it’s 100% space though.

[@JonathanD] and it’s a cost option

[Attendee3] What is a flashcopy?

[@JonathanD] duplicates a lun, Attendee3

[@JonathanD] you can duplicate it to a DS4000 elsewhere, too

[@JonathanD] I just configured us to boot from lun 0

[@JonathanD] if all is well, we should be able to reboot into windows.

[Attendee2] so say i have a LUN with server 2k3 on it, i can just copy that to another LUN that i intend on using for another host for the same reason

[@JonathanD] you wouldn’t copy to a lun, a new one would be crated by the copy process

[Attendee1] You’ll need to sysprep.

[Attendee3] generate new ssids and all that, but yes.

[@JonathanD] Attendee2: there are better ways of doing it, in any event.

[@JonathanD] it’s primarily a DR feature

[Attendee2] well it would be killer if i could use 1 LUN for all hosts’ boot partition !

[@JonathanD] caching!

[@JonathanD] Attendee2: can’t do that, windows doesn’t support sharing disks like that.

[Attendee2] JonathanD: i didnt think i could, just for registry issues alonew

[@JonathanD] yet, anyway

[@JonathanD] (This is the switch in the chassis)

[@JonathanD] you’ll notice the interface is nearly identical

[Attendee3] So, things blinked past sorta quickly for me. To set up the LUN as a bootable disk, you used the utility on the blade?

[Attendee1] shrink the top console bar too.

[@JonathanD] can’t change it without kicking everyone out.

[@JonathanD] Attendee3: yes.

[@JonathanD] Attendee3: basically like setting boot order.

[@JonathanD] you can say “use this, then use this”

[@JonathanD] as you would with an addon raid card.

[Attendee1] That was part of the setup function in the QLogic controller attached to the chassis for the blades right?

[@JonathanD] the qlogic is the HBA, in the blade.

[@JonathanD] and theres our disks.

[Attendee1] So, diskless blades.

[Attendee3] Cool, so from this point, you just treat it like a normal disk.

[@JonathanD] yup

[Attendee1] Now, let’s say this Blade #2 kicks the bucket.

[Attendee1] How do you fix it?

[@JonathanD] yeah, I just formatted

[@JonathanD] Attendee1: remember when I moved it from the LS21 to the HS21?

[Attendee3] can you just slide in a new blade, reassign the luns and run with it?

[@JonathanD] Attendee3: exactly.

[Attendee1] Nice, so how much to buy this technology?

[@JonathanD] a DS4700 is gonna cost you around 40k, usually

[Attendee1] And the bladecenter + blades is how much?

[@JonathanD] the expensive part there is the SAN switches.

[@JonathanD] they’re 15k. each. for 2.

[@JonathanD] which is more than the chassis itself.

[@JonathanD] so it’s not cheap 😛

[Attendee2] Attendee1: the chassis is like $5k and the blades range from $1000 – $20,000 (for that 4x dual core AMD)

[@JonathanD] right, Attendee2

[Attendee3] So, odds are good I’ll have to stick with my HP Storageworks SA1000

[@JonathanD] how does that connect, Attendee3?

[Attendee3] fiber

[Attendee3] It was already set up when I got here, the idea was to have centralized storage for a pair of production servers, however, it never worked out that way, so now it’s just being used as a glorified external drive.

[Attendee3] It’s got four 72gig U320 drives in it.

[@JonathanD] 47K for a DS4700 with 14 500GB sata.

[@JonathanD] 7K of that was for an AIX kit for it

[@JonathanD] so 40k, yup

[@JonathanD] Now, 3400 which can get you about 3TB of storage can be had for around 15K, *WITH* the 3TB in it.

[@JonathanD] thats 3TB usable, after parity, hot spare, etc.

[Attendee1] Does IBM sell equipment without support contracts, or do they require support contracts?

[@JonathanD] almost anything you can get without support.

[@JonathanD] I’m pretty sure you can’t get a zSeries without it, though.

[@JonathanD] keep in mind, this is in an array that is still building 🙂

[Attendee3] Well, thanks for the demo, that was really informative. 🙂

[@JonathanD] Attendee1: what performance did you get pre-build?

[Attendee1] Like 8MB/sec or something.

[@JonathanD] so, pretty competative ehh? 😉

[@JonathanD] no problem, Attendee3

[@JonathanD] hope everyone enjoyed it.

[@JonathanD] oh, one more thing.

[@JonathanD] Attendee1: there is your perf, on just 3 drives, degraded.

[Attendee3] good demo. I’m assuming the LUN concepts will translate to other SAN devices?

[@JonathanD] yup

[Attendee1] JonathanD: Thanks, I think I learned a bunch.

IBM BladeCenter General Discussion

The following is a chat with JonathanD regarding IBM Bladecenter technology. He is a certified IBM BladeCenter expert

[Attendee1] So, how can I get one for $10/mo?

[@JonathanD] Attendee1: become an ibm business partner doing more than $100,000 a year in IBM sales, then apply for a development lease.

[Attendee2] Well, blade centers look interesting, but some of the information is moderately, er, confusing?

[@JonathanD] Anything in particular, Attendee2?

[Attendee2] Like, specifically how networking works with the backplane

[@JonathanD] I’ll summarize briefly, then you can ask questions, ok?

[@JonathanD] in a normal configuration, we’ll put 2 switch modules in a chassis.

[@JonathanD] These switches go in bays 1 and 2

[@JonathanD] regardless of the chassis

[@JonathanD] bays 1 and 2 are essentially hard wired to a network connection on each blade

[@JonathanD] each blade has to built in NICs

[@JonathanD] it’s actually a single dual port NIC, physically

[@JonathanD] first port goes to bay 1

[@JonathanD] second port goes to bay 2

[@JonathanD] so thats the baseline. Each blade connects to bay 1 and 2 at least once.

[Attendee2] So, the switch in the bay determines the speed of networking between blades, not the speed of the backplane?

[@JonathanD] Attendee2: yes. The backplane is basically just wiretraces.

[@JonathanD] theoretical limit is 10GB

[@JonathanD] however, all blades, to date, have only 1GB nics built in

[@JonathanD] now, I said at least once, because a 2 slot blade has at least the potential for 2 connections to each switch

[@JonathanD] depending on the blade, how it’s configured, and a few other things, you’ll have 1 or 2, to each

[Attendee2] So, if you wanted to add 10gb or infiniband or whatever you’d have to put in a switch for it and a module in every blade

[@JonathanD] Attendee2: essentially yes

[@JonathanD] I’m going to speak briefly on infiniband and what it can offer in a moment

[@JonathanD] just high level.

[@JonathanD] now, the enterprise chassis (just called bladecenter) has 4 IO module slots

[@JonathanD] as we discussed , 1 and 2 are dedicated to ethernet

[@JonathanD] externally, they can be fiber or copper.

[@JonathanD] the other 2 can be a wide variety of things

[@JonathanD] fiber channel, SAS, more ethernet, infiniband

[@JonathanD] in the newer H chassis, there are all-told 10 slots for different IO options.

[@JonathanD] one of these is a high speed infiniband switch.

[@JonathanD] with the infiniband switch, you can do some interesting things…

[@JonathanD] not much support exists yet for infiniband, so what we have is a special adapter that sits in the blade and talks to the infiniband switch (preferably, 2 of them for redundancy, same as ethernet)

[@JonathanD] this gives us, on top of our 2 built in GBE connections, 6 additional “virtual” connections on infiniband fabric, to each blade.

[@JonathanD] with the infiniband switch, each of these 6 can be either Fiber channel OR 10GBE

[@JonathanD] and it can vary by blade.

[@JonathanD] Attendee2: does that answer your question, and do you have any more?

[Attendee1] Do cross-blade ethernet communications exit the ethernet I/O ports or does it handle ethernet requests between blades internally?

[Attendee1] Basically, can the ethernet be unplugged external to the bladecenter and still have ethernet between the blades themselves?

[@JonathanD] Attendee1: absolutely

[@JonathanD] the switches in a blade chassis are real switches, most of them with vlan capability

[Attendee3] Why do blades talk to each other? do they all pool into one server or something? like one blade can be a file server, one an email server, one a Web server, etc? sorry for a n00b question

[@JonathanD] but yes, often folks will put a substantial infrastructure inside a single chassis

[Attendee2] er, yeah it did (sorry thought I answered)

[@JonathanD] that doesn’t need to exit the chassis at all except for the end user responses

[@JonathanD] so your web server, app server, and db server (or cluster) can live inside the chassis.

[Attendee3] So I could have like 20 blades, all doing different things, but it looks like one server to an end user? Wow.

[Attendee4] when i look at photos of the H Chassis it looks closed off from the back, so if i put an expansion module on a blade to put in a PCI card or something, where will the connection sit for that card ?

[@JonathanD] furthermore, several of the switches are capable of load balancing with no additional hardware.

[@JonathanD] Attendee4: there are fillers on the back of a BC H, you take them out to install a switch module

[@JonathanD] that switch module has external ports

[Attendee1] JonathanD: What’s the network interconnection speed between blades?

[Attendee4] perfect !

[@JonathanD] the number and type of ports vary, based on what you choose.

[@JonathanD] Attendee1: up to 40Gbit per blade, depends entirely on the switches installed.

[Attendee4] i would just love, for redudnancy, to have my PBX sit on a blade, so i would need to add my T-1 interface card to the blade

[Attendee1] JonathanD: Does it only depend on the switch, or does the blade have to support that speed too?

[@JonathanD] Attendee1: the adapter in the blade does, yes.

[Attendee3] 40Gbit/sec… wows

[@JonathanD] much like a 1Gb switch does no good if you have a 10Mbit nic

[Attendee1] JonathanD: What’s the oldest that still supports 40Gbit?

[Attendee1] (stock from IBM)

[ttender3 still has 100Mbit network…with some nodes only 10Mbit

[@JonathanD] the HS21s, almost all of them, have support for infiniband to bays 7-10 which supports that 40GBit

[Attendee1] Also, does that interconnect show as a separate network card?

[Attendee3] Infiniband = unlimited speed?

[Attendee3] i.e. “infini”band?

[@JonathanD] Attendee1: that would be an infiniband connect, which in this case you would probably configure as virtual 10GbE adapters.

[@JonathanD] you can actually exceed that 40Gbit in some cases

[@JonathanD] and as the midplane is basically just traces, thats not a hard value.

[@JonathanD] it could increase as new switching technology becomes available.

[Attendee1] The 40Gbit is per blade or overall?

[@JonathanD] Attendee1: thats the current max that can be delivered to a single blade

[@JonathanD] within the chassis, that would be point to point.

[Attendee1] Is that full duplex or half duplex speed?

[@JonathanD] which makes it excellent for vmotion, for example.

[Attendee1] (as in utilizing both send/receive to get 40Gbps, or are both @ 40Gbps) ?

[@JonathanD] thats half, so you can push 40 in both directions.

[Attendee1] Nice.

[@JonathanD] across 4 interfaces or virtual interfaces.

[@JonathanD] in short, particuarly with infiniband, you have *lots* of bandwidth.

[Attendee3] I used to think of Mbits like mph…10 is slow and sucky and 100 was really fast.

[Attendee3] Now we have 40Gbit!?

[Attendee3] Is this available for regular non-blade servers?

[Attendee3] the most I’ve seen is 1Gbit, honestly.

[@JonathanD] Attendee3: infiniband is, yes. I don’t know if the virtual IO tech is.

[Attendee1] So the virtual network adapter you mentioned. How is this configured?

[Attendee3] “the virtual IO tech” means what?

[Attendee1] You install a driver in Windows, and configure this on the blade center level?

[@JonathanD] Attendee1: my understanding is that it’s configured in the cards BIOS

[@JonathanD] so you can do it pre-install

[Attendee1] I see.

[@JonathanD] and much like the qlogics, once the machine is up you can install software to manage it without a reboot.

[@JonathanD] it can also be assigned from within the managemnet module, and even scripted.

[Attendee1] So you could have upto 4 of these virtual cards or can you over allocate the bandwidth, and it’ll do best effort routing?

[Attendee1] (Per blade)

[@JonathanD] it will drive to the limit of the infiniband, yes.

[@JonathanD] you can configure 10GbE interfaces, and 4GB FC interface.

[Attendee1] So other than OS limits, how many network interfaces can you create?

[Attendee1] Per blade.

[@JonathanD] 8

[@JonathanD] includeing the 2 built in

[@JonathanD] 6, within infiniband

[Attendee3] and what pretel do you *do* with 6 virtual NICs?

[Attendee1] So, each blade has 2 which are connected to the external ethernet I/O ?

[Attendee3] Attendee1: sounds like it

[@JonathanD] Attendee1: to switch bays 1 and 2, yes.

[@JonathanD] the “default” ethernet.

[@JonathanD] those are part of the system board and non-removable.

[Attendee1] What’s the max interconnect speed of HS20’s ?

[@JonathanD] akin to the built in nics on an xseries.

[@JonathanD] Attendee1: depends 🙂

[Attendee3] do these suckers have PCIe or AGP support?

[@JonathanD] if you have fiber channel, you’ll be using your 1 and only expansion slot for that.

[@JonathanD] Attendee3: as they don’t have slots like that, no. But at a technical level, yes.

[Attendee1] Attendee3: It’s not designed for high-speed graphics cards.

[Attendee1] (for games).

[@JonathanD] the adapters in them are PCI-X or PCI express, in the newer

[@JonathanD] to answer Attendee4’s question

[Attendee3] JonathanD: ahh okay

[@JonathanD] you can purchase a sidecar, that takes a slot

[@JonathanD] which allows you to install 1 or 2 PCI cards.

[@JonathanD] these would be accesible at the front of the blade chassis.

[@JonathanD] Attendee4: it’s an uncommon need, only there for rare uses.

[Attendee4] i dont know if i want this nice “all-in-one” enclosure to have 2 cables running off the front of the chassis

[@JonathanD] I have to wind this up in the next few minutes.

[@JonathanD] any more questions, right now?

[Attendee1] JonathanD: Okay, so HS20, I’m still not sure what the interconnect speed is between blades.

[@JonathanD] Attendee1: ahh, sorry.

[@JonathanD] if you forgo fiber, you can put a 10GbE in modules 3 and 4

[Attendee1] Does the HS20 still do the virtual network thing too?

[@JonathanD] for 20GbE, + the 2 base.

[@JonathanD] Attendee1: afraid not, it does not have the slots for it.

[Attendee1] So modules 3 & 4 would be used internally, or what?

[@JonathanD] Attendee1: internally and externally

[@JonathanD] with 1 or more 10GbE connections to external

[Attendee1] Okay, a module services how many blades? All of them?

[@JonathanD] yes.

[@JonathanD] or has the potential to

[@JonathanD] if, for example, you have san, and one doesn’t need san

[Attendee1] So redundancy aside, you could just do one module for network, right?

[@JonathanD] you don’t have to put an adapter in it.

[@JonathanD] Attendee1: yes, and some do.

[Attendee4] JonathanD: i think i need to know more about the storage, so for your next get together we should do that !!

[Attendee1] Yes, what’s the recommended way to add storage to these things?

[Attendee3] I’m still 100% confused about virtual networking.

[@JonathanD] there was some talk of a hybrid card that would fit the existing slot in an hs20 and attach to the infiniband fabric.

[Attendee3] SCSI, I’d assume.

[@JonathanD] but there was not enough customer interest in it, unfortunatly.

[@JonathanD] Attendee3: doubtful.

[@JonathanD] Attendee1: I think we’ll have to revisit storage.

[Attendee3] IEEE 1394?

[@JonathanD] I’m gonna have to get on a customer call.

[Attendee1] JonathanD: K.

[@JonathanD] Attendee3: FC or SAS

[Attendee4] well theres no way i could afford the fibre, so i will definately be going with the SAS

[Attendee1] JonathanD: Thanks.

[Attendee3] Bye.

[Attendee3] Yes, thank you JonathanD.

[@JonathanD] no problem.

[@JonathanD] hope this was helpful for all involved.

IBM ServeRaid SCSI Performance Bottleneck – Part 3

On a recommendation from a friend, I was asked to run iometer to do some benchmarks, to see how well the server would handle server loads instead of just sequential read/writes.

While I realize IOps is a rather arbitrary benchmark, I think if you keep block sizes the same, and the test conditions as close to the same as you can, then it at least has relative perfomance implications. For more details on this subject, read “What Is Good Performace” – Brief by Imperial Technologies

Using 32KB block sizes, 1 worker, on an idle server, 2 processor w/ hyper threading enabled on both processors.

Updated: 2007-03-24 05:52 EDT Added benchmark results of 5×146.8GB 15k RPM HD’s in RAID 5EE (striped + hot spare striped in)

Updated: 2007-03-29 07:45 EDT Added benchmark results of 6×146.8GB 15k RPM HD’s in RAID 5EE (striped + hot spare striped in)

Updated: 2007-03-29 11:27 EDT Added benchmark results of 6×146.8GB 15k RPM HD’s in RAID 0 (yes I checked if something was borked, I used the same install for all my last benches, just did a restore.), Also added 6×146.8GB 15k RPM HD’s in RAID 10 (3xRAID1, then RAID 0 them together)

Updated: 2007-04-31 10:48 EDT Added many benchmarks, and revised the naming conventions

Naming convention, starting with boot array
<array type>-<Raid level>-<NumDisksxDiskSize@DiskSpeed>[, ...] - <Number of partitions in test>[S if synchronized[? if I don't remember]][B if include boot partition] [Additional notes]

Assumption, each partition given it's own worker, all tests against ServeRaid 6i unless otherwise noted
... is used if the array configuration is the same as the last one mentioned.

I found out some interesting things:

  1. Make sure your high performance loads are *NOT* reliant on the boot partition for read/writes
  2. Make sure you synchronize any array mode that needs it before you start benchmarking or it’ll perform in degraded mode (AKA bad performance). For the ServeRaid 6i, just load up the ServeRaid Manager software, and it’ll say when it’s synchronized.
Setup IOps Read IOps Write IOps
RAID-0-2×146.8GB@15kRPM, … – 2 6636.96 4905.30 1731.66
RAID-0-2×146.8GB@15kRPM – 1B 2927.29 2161.56 765.73
RAID-0-2×146.8GB@15kRPM – 1 5287.23 3911.03 1376.20
RAID-0-2×146.8GB@15kRPM, …, … – 4B 5366.80 3972.18 1394.62
RAID-0-2×146.8GB@15kRPM, …, … – 3 6967.94 5153.94 1814.00
RAID-0-2×146.8GB@15kRPM, RAID-0-4×146.8GB@15kRPM – 1 5205.37 3852.88 1352.49
RAID-0-2×146.8GB@15kRPM, RAID-5EE-4×146.8GB@15kRPM – 1 1007.43 746.18 261.26
RAID-0-2×146.8GB@15kRPM, RAID-5EE-4×146.8GB@15kRPM – 1S 5311.35 3933.50 1377.86
RAID-5EE-6×146.8GB@15kRPM – 1SB 3532.33 2612.30 920.03
RAID-5EE-6×146.8GB@15kRPM – 1S 5354.84 3966.74 1388.09
RAID-5EE-6×146.8GB@15kRPM – 2S 6993.74 5173.16 1820.58
RAID-5EE-6×146.8GB@15kRPM – 3S 7214.27 5338.27 1876.01
RAID-5EE-6×146.8GB@15kRPM – 4S 7360.53 5444.32 1916.21
RAID-5EE-6×146.8GB@15kRPM – 4S 1024 sector test size 7352.68 5437.56 1915.12
RAID-5EE-6×146.8GB@15kRPM – 5S 7061.73 5225.83 1835.90
RAID-10-6×146.8GB@15kRPM – 1S?B 3119.32 2307.67 811.65
RAID-0-6×146.8GB@15kRPM – 1B 288.84 213.99 74.84
RAID-5EE-6×146.8GB@15kRPM – 1S?B 2923.77 2160.64 763.13
RAID-5EE-5×146.8GB@15kRPM – 1S?B 2920.75 2161.85 758.90
RAID-0-2x36GB@10kRPM – 1B 2756.12 2039.76 716.36
JBOD-0-1x36GB@10kRPM – 1B Onboard LSI 140.94 104.65 36.29
Setup MBps Read MBps Write MBps
RAID-0-2×146.8GB@15kRPM, … – 2 207.40 153.29 54.11
RAID-0-2×146.8GB@15kRPM – 1B 91.48 67.55 23.93
RAID-0-2×146.8GB@15kRPM – 1 165.23 122.22 43.01
RAID-0-2×146.8GB@15kRPM, …, … – 4B 167.71 124.13 43.58
RAID-0-2×146.8GB@15kRPM, …, … – 3 217.75 161.06 56.69
RAID-0-2×146.8GB@15kRPM, RAID-0-4×146.8GB@15kRPM – 1 162.67 120.40 42.27
RAID-0-2×146.8GB@15kRPM, RAID-5EE-4×146.8GB@15kRPM – 1 31.48 23.32 8.16
RAID-0-2×146.8GB@15kRPM, RAID-5EE-4×146.8GB@15kRPM – 1S 165.98 122.92 43.06
RAID-5EE-6×146.8GB@15kRPM – 1SB 110.39 81.63 28.75
RAID-5EE-6×146.8GB@15kRPM – 1S 167.34 123.96 43.38
RAID-5EE-6×146.8GB@15kRPM – 2S 218.55 161.66 56.89
RAID-5EE-6×146.8GB@15kRPM – 3S 225.45 166.82 58.63
RAID-5EE-6×146.8GB@15kRPM – 4S 230.02 170.13 59.88
RAID-5EE-6×146.8GB@15kRPM – 4S 1024 sector test size 229.77 169.92 59.85
RAID-5EE-6×146.8GB@15kRPM – 5S 220.68 163.31 57.37
RAID-10-6×146.8GB@15kRPM – 1S?B 97.48 72.11 25.36
RAID-0-6×146.8GB@15kRPM – 1B 9.03 6.69 2.34
RAID-5EE-6×146.8GB@15kRPM – 1S?B 91.37 67.52 23.85
RAID-5EE-5×146.8GB@15kRPM – 1S?B 91.27 67.56 23.72
RAID-0-2x36GB@10kRPM – 1B 86.13 63.74 22.39
JBOD-0-1x36GB@10kRPM – 1B Onboard LSI 4.40 3.27 1.13
Setup Average Response Time Maximum Response Time
RAID-0-2×146.8GB@15kRPM, … – 2 0.30 18.37
RAID-0-2×146.8GB@15kRPM – 1B 0.34 18.42
RAID-0-2×146.8GB@15kRPM – 1 0.19 18.24
RAID-0-2×146.8GB@15kRPM, …, … – 4B 0.74 19.22
RAID-0-2×146.8GB@15kRPM, …, … – 3 0.43 18.62
RAID-0-2×146.8GB@15kRPM, RAID-0-4×146.8GB@15kRPM – 1 0.19 18.47
RAID-0-2×146.8GB@15kRPM, RAID-5EE-4×146.8GB@15kRPM – 1 0.99 30.16
RAID-0-2×146.8GB@15kRPM, RAID-5EE-4×146.8GB@15kRPM – 1S 0.19 18.40
RAID-5EE-6×146.8GB@15kRPM – 1SB 0.28 18.49
RAID-5EE-6×146.8GB@15kRPM – 1S 0.19 18.09
RAID-5EE-6×146.8GB@15kRPM – 2S 0.29 18.31
RAID-5EE-6×146.8GB@15kRPM – 3S 0.41 18.45
RAID-5EE-6×146.8GB@15kRPM – 4S 0.54 18.70
RAID-5EE-6×146.8GB@15kRPM – 4S 1024 sector test size 0.54 18.70
RAID-5EE-6×146.8GB@15kRPM – 5S 0.71 18.71
RAID-10-6×146.8GB@15kRPM – 1S?B 0.32 18.50
RAID-0-6×146.8GB@15kRPM – 1B 3.46 44.39
RAID-5EE-6×146.8GB@15kRPM – 1S?B 0.34 18.59
RAID-5EE-5×146.8GB@15kRPM – 1S?B 0.34 18.37
RAID-0-2x36GB@10kRPM – 1B 0.36 20.59
JBOD-0-1x36GB@10kRPM – 1B Onboard LSI 7.09 26.09
Setup % CPU Utilization % User Time % Privileged Time % DPC Time % Interrupt Time
RAID-0-2×146.8GB@15kRPM, … – 2 5.14 0.37 4.79 0.75 1.93
RAID-0-2×146.8GB@15kRPM – 1B 3.84 0.19 3.65 0.68 1.02
RAID-0-2×146.8GB@15kRPM – 1 3.49 0.44 3.10 0.50 1.10
RAID-0-2×146.8GB@15kRPM, …, … – 4B 6.16 0.46 5.71 0.89 1.21
RAID-0-2×146.8GB@15kRPM, …, … – 3 5.81 0.39 5.43 0.85 1.61
RAID-0-2×146.8GB@15kRPM, RAID-0-4×146.8GB@15kRPM – 1 3.49 0.14 3.38 0.67 1.29
RAID-0-2×146.8GB@15kRPM, RAID-5EE-4×146.8GB@15kRPM – 1 0.78 0.10 0.70 0.08 0.31
RAID-0-2×146.8GB@15kRPM, RAID-5EE-4×146.8GB@15kRPM – 1S 3.73 0.21 3.55 0.59 1.36
RAID-5EE-6×146.8GB@15kRPM – 1SB 3.97 0.28 3.72 0.72 1.28
RAID-5EE-6×146.8GB@15kRPM – 1S 4.28 0.51 3.79 0.58 1.43
RAID-5EE-6×146.8GB@15kRPM – 2S 5.36 0.40 4.99 0.79 1.98
RAID-5EE-6×146.8GB@15kRPM – 3S 6.14 0.51 5.66 0.69 1.88
RAID-5EE-6×146.8GB@15kRPM – 4S 7.05 0.63 6.48 0.78 1.64
RAID-5EE-6×146.8GB@15kRPM – 4S 1024 sector test size 6.86 0.55 6.29 0.78 1.77
RAID-5EE-6×146.8GB@15kRPM – 5S 7.75 0.72 7.07 0.86 1.60
RAID-10-6×146.8GB@15kRPM – 1S?B 4.44 0.15 4.32 1.02 1.29
RAID-0-6×146.8GB@15kRPM – 1B 0.43 0.01 0.45 0.10 0.17
RAID-5EE-6×146.8GB@15kRPM – 1S?B 4.37 0.08 4.30 1.11 1.23
RAID-5EE-5×146.8GB@15kRPM – 1S?B 8.00 0.28 7.74 1.51 2.05
RAID-0-2x36GB@10kRPM – 1B 5.17 1.29 3.89 0.67 1.07
JBOD-0-1x36GB@10kRPM – 1B Onboard LSI 0.34 0.04 0.32 0.04 0.19
Setup Interrupts per Second CPU Effectiveness Packets/Second
RAID-0-2×146.8GB@15kRPM, … – 2 6903.88 1291.11 629.38
RAID-0-2×146.8GB@15kRPM – 1B 5353.16 763.13 411.99
RAID-0-2×146.8GB@15kRPM – 1 5561.51 1513.28 417.54
RAID-0-2×146.8GB@15kRPM, …, … – 4B 2161.98 870.81 1049.38
RAID-0-2×146.8GB@15kRPM, …, … – 3 4821.06 1199.72 841.91
RAID-0-2×146.8GB@15kRPM, RAID-0-4×146.8GB@15kRPM – 1 5478.78 1492.11 416.31
RAID-0-2×146.8GB@15kRPM, RAID-5EE-4×146.8GB@15kRPM – 1 1273.59 1299.26 418.36
RAID-0-2×146.8GB@15kRPM, RAID-5EE-4×146.8GB@15kRPM – 1S 5587.42 1424.44 411.12
RAID-5EE-6×146.8GB@15kRPM – 1SB 7332.83 889.47 413.65
RAID-5EE-6×146.8GB@15kRPM – 1S 5627.52 1251.87 414.72
RAID-5EE-6×146.8GB@15kRPM – 2S 7267.00 1303.97 635.57
RAID-5EE-6×146.8GB@15kRPM – 3S 5148.84 1175.41 837.93
RAID-5EE-6×146.8GB@15kRPM – 4S 3862.49 1044.00 1041.51
RAID-5EE-6×146.8GB@15kRPM – 4S 1024 sector test size 3859.17 1071.43 1046.56
RAID-5EE-6×146.8GB@15kRPM – 5S 2841.27 911.55 1239.27
RAID-10-6×146.8GB@15kRPM – 1S?B 5866.90 702.51 415.26
RAID-0-6×146.8GB@15kRPM – 1B 616.43 666.05 419.56
RAID-5EE-6×146.8GB@15kRPM – 1S?B 5417.13 669.64 415.93
RAID-5EE-5×146.8GB@15kRPM – 1S?B 8079.69 365.18 3072.45
RAID-0-2x36GB@10kRPM – 1B 5057.38 532.62 404.83
JBOD-0-1x36GB@10kRPM – 1B Onboard LSI 688.81 409.75 395.23

By looking at these charts, it’s pretty apparent that while the prior articles ( Part 1 , and Part 2 ) show the RAID card does not match up to sequential speeds of non-RAID use, under server loads, it really shines.

I guess one could say this is a good example of using the right benchmark for the job. Maybe a comparable analogy would be benchmarking 0-60 times for a regular car, or a semi tractor. Take that semi, and put a box car behind it, and do the same for the car, and then we get the same outcome as using iometer.

For those interested: the iometer configuration file I used

As an aside, later today, I should be getting some 15k RPM drives in. This should make for some interesting additions to this mix.

C# Script File Chooser Example

If you find the code below useful, leave a comment.

	2007-03-19 John Goodwin
	Wrote following code as example how to use C# script to show a dialog for a choice of files.
	You can get C# script from
	You can also add this file to a C# project, and compile it normally.
using System;
using System.IO;
using System.Drawing;
using System.Windows.Forms;

class Script
	static public void Main(string[] args)
		string path = @"C:\WINNT\";
		string filemask = "*.log";
		string selectedFile = GetMenuChoice(path, filemask);

		if (selectedFile != string.Empty)
			MessageBox.Show("Selected : " + selectedFile);
		} else
			MessageBox.Show("No selection");

	private static string GetMenuChoice(string path, string filemask)
		ChoiceForm frmMain = new ChoiceForm();
		// load files
		DirectoryInfo diFolder = new DirectoryInfo(path);
		foreach (FileInfo file in diFolder.GetFiles(filemask))
		if (frmMain.ShowDialog() == DialogResult.OK)
			return Convert.ToString(frmMain.lbFiles.SelectedItem);
		} else
			return string.Empty;
	private class ChoiceForm : Form
		private ListBox _lbFiles;
		private Button _btnOK;
		private Button _btnCancel;
		public ChoiceForm()
			Size = new Size(300,300);
			StartPosition = FormStartPosition.CenterParent;
			_lbFiles = new ListBox();
			lbFiles.Size = new Size(294,250);
			lbFiles.Anchor = (AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom);
			_btnOK = new Button();
			btnOK.Location = new Point(4,248);
			btnOK.DialogResult = DialogResult.OK;
			btnOK.Anchor = (AnchorStyles.Left | AnchorStyles.Bottom);
			btnOK.Text = "OK";
			btnCancel = new Button();
			btnCancel.Location = new Point(80,248);
			btnCancel.DialogResult = DialogResult.Cancel;
			btnCancel.Anchor = (AnchorStyles.Left | AnchorStyles.Bottom);
			btnCancel.Text = "Cancel";
		public ListBox lbFiles { get { return _lbFiles; } set { _lbFiles = value; } }
		public Button btnOK { get { return _btnOK; } set { _btnOK = value; } }
		public Button btnCancel { get { return _btnCancel; } set { _btnCancel = value; } }

IBM ServeRaid SCSI Performance Bottleneck – Part 2

Interesting times. I got my ServeRaid 6i, installed it, but I’m having similar issues with performance that my friend did with his ServeRaid 4LX in part 1 of this article.

My system is a bit different from my friend.

  • IBM xSeries 345
  • 2GB Registered ECC PC2100 (2x1GB)
  • 2x36GB 10K RPM U320
  • 2×2.8Ghz Xeon w/ Hyperthreading (Prestonia core)

Here’s a sample of the card right after install of the card, and W2k3 Std R2, and some simple patches using 2x36GB 10k RPM U320 hard drives in RAID 0 in 8KB stripe.

This benchmark was done with the drivers which installed without doing anything. Fairly pathetic if you ask me.

Let’s see what we can do to increase the performance. Let’s try getting the drivers and firmware updated to 7.12 for both.

Same spec, but drivers and firmware at 7.12:

Okay, a little better, but not really that much.

Now, I backed up the configuration, and changed the stripe size to 64KB (max on this card). Unfortunately this can’t be done with a bios prompt, but you have to run the bootable ServeRaid manager (Basically a bootable Linux distro).

The average performance is much better, but it’s still all over the place. I’d like to see some normal looking decay. And those valleys into the 30’s worries me.

In a bit, I’ll benchmark single disk performance, and maybe even try testing in Linux.


Continue to Part 3

Combatting Viruses, Trojans, Malware and Data Loss

While using a personal computer has become a source of both fun and frustration, there has been an increasing threat to your ability to block out unwanted software from unsavory people.

Protecting your computer takes several forms.

The four most common areas of desired protection:

  1. System configuration from unwanted change
  2. Data from being lost in one way or another
  3. Snooping in your financial data
  4. Physical wear and tear

All of these areas should be important to the common user, and let’s get started seeing how best to protect against these threats.

Protecting System configuration from unwanted change

Before we talk about how to protect your system configuration, let’s discuss what is, and what is not your system configuration.

What it is: Programs, and settings which allow your computer, and programs on it to work.
What it is not: Saved documents, music, downloaded email, and similar.
Gray areas: Desktop wallpaper, icon themes, your signature in your email program, and similar.

For protecting your programs, and settings, the best way to protect them is to *not change them*.

While this may seem obvious, it can be done one of four ways.

  1. Avoid changing it even though you have the permissions to change it.
  2. Restrict your daily privileges to deny your own ability to change it even if you wanted to without elevating your privileges.
  3. Backup / Restore
  4. Roll-back software

Most people use #1. This relies that you don’t make any accidental mistakes.

The best ways are #2, #3 and #4, so let’s discuss them in conjunction with one another.

For Windows XP users, let’s add a new account and use it for administrative tasks:

  1. Create a new administrative account using the following steps:
    1. Start -> Control Panel -> User Accounts -> Create a new account
    2. For the name, use something obvious, like, “AdminUser”
    3. Choose “Computer Administrator”
    4. Click “Create Account”
  2. Set an administrator password
    1. Click “AdminUser”
    2. Click “Create a Password”
    3. Type in a password of your own choosing
    4. Avoid typing the password into the hint box
    5. Click “Create Password”
  3. Change your existing account to “limited”
    1. Click on your account you use to login
    2. Click on “Change the account type”
    3. Click on “Limited”
    4. Click on “Change Account Type”

Now, for good measure, restart your computer.

In 3 general steps, you have already made your computer much harder to infect. Most malware will crash trying to install itself into your system.

Another good thing to do if it’s not already on, is to enable the Windows XP Firewall

Next, Backup / Restore

What is a backup? A backup is a copy of your data. Commonly used as assurance you won’t completely lose your information if the original is lost.

How can you make a backup?

  1. Check if your computer already came with recovery disks
    1. This basically restores all the files back to factory settings
    2. Some computer makers have an option to restore just system files and leave your personal files alone. This varies on a case by case basis.
  2. Use some free backup software:
    1. DriveImage XML over to a USB or network machine
    2. Windows Backup ( Start -> All Programs -> Accessories -> System Tools -> Backup )
  3. Use some paid software solution like (no special order):
    1. Norton Ghost
    2. Backup My PC
    3. Acronis TrueImage
    4. BootIt NG
    5. Image For Windows
    6. Nero Burning Rom
  4. Copy your files manually

While this list is far from exhaustive, you certainly get the idea.

Personally, I view important backup policy to have four aspects covered.

  1. Full system backups
    1. These allow you to restore in the event of critical failure, like a hard drive crash
  2. File backups
    1. If you have a lot of files or programs, it can be costly to backup everything every time. A good compromise is to backup only files which change since your last backup.
  3. Backup schedule
    1. Infrequent backups can be nearly as frustrating as complete data loss, as you may stand to lose all your work back to your last backup which may be months ago.
  4. Backup location
    1. Some people backup to their own hard drive. While this can help protect against accidental file deletion, it won’t help in issues of drive failure, theft, fire, or other loss which includes the original hard drive containing the original copy. I would suggest periodically making backups and putting them into your safe deposit box, or someplace away from your computer.


Rollback Software

If you like the idea of setting aside a part of your hard drive, or using a USB stick for your documents, and making your whole computer go back like it was every reboot, check out the following products:

(No particular order)

  1. Microsoft Shared Computer Toolkit for Windows XP
  2. Radix Protector
  3. Deep Freeze
  4. FirstWare Recover Pro 2004
    (note the Buy Now Link didn’t work the last I tried. After clicking it, just click the “Store Home” link)
  5. Norton GoBack

Protecting Data from being lost in one way or another

While backing up can also protect against data loss, there are different strategies which can help prevent your own files from being deleted, or damaged.

  1. Be patient.
    1. When a program opens slowly, avoid clicking around unnecessarily. Adding extra instructions to the queue of what the computer has to perform may cause you to accidentally perform steps which cause you to lose data.
  2. Be consistent.
    1. Saving files in many locations spread across your computer will only lead to confusing yourself and making it difficult to determine which file is correct, or where it even is.
  3. Avoid using “tricks” which have serious gotchas if you make a mistake.
    1. One such trick might be to open a file, delete everything, then trying to click “Save As” to give it a new name. This is very dangerous, and can lead to destroying the original, since “Save” is right next to it.
  4. Use your Recycle Bin.
    1. Don’t rush to delete files out of your Recycle Bin, the instant it goes in. Also, don’t use tricks like Shift + Delete to permanently delete files, skipping the recycle bin.
  5. Be verbose yet concise.
    1. Carefully consider the name of your file when you save. While it’s often one of the lower items on our priority lists since the name is fresh in your mind, you may feel you won’t forget what you named it. You will forget. So name it something appropriate and easy to remember later.
  6. Save often.
  • Some people wait hours and hours to save. Save often. Don’t lose hours of work because you didn’t take 2 seconds to hit save, or press CTRL + S.

Protecting Snooping in Your Financial Data

Preventing malware from entering your system using the limited user idea is certainly a strong way to keep spying eyes off your data.

However, there are some additional things you can do for this sort of thing.

  1. If you are already infected with malware – Reinstall.
    1. Don’t try to remove it unless you are willing to consider your computer unsafe for any online banking, passwords, websites, and related. Imagine that anything you type, any site you see, may be viewed by someone spying on you. Now that you understand that risk, maybe wiping out your computer and starting over may seem like a good idea.
  2. Stay away from programs and sites you have no business at.
    1. While it sounds like common sense, you would be suprised how many people try free software which they don’t need or even truly want, just on a whim. This software even if it’s not malicious may have bugs which could cause errors or data loss on your system.
    2. This advice is to include email attachments. Don’t open any attachment, unless you are 100% sure it’s safe. *Even from people you know!*
    3. This also includes keeping your kids from using the administrative account to install software which supposedly gives them free MP3s, movies, or other illegally gained goods.
    4. On a related note, many pornographic, and free games websites may contain hidden code to spy on your computer, or popup ads.
  3. Use different passwords.
    1. Write them down if you have to, and keep them in a safe place at your house.
    2. A long time ago, people at Hotmail were suprised to find some users trying to trick other users into giving them their passwords. This may seem strange considering hotmail accounts are free. What’s not strange is the fact that many people use the same passwords for non-critical information as their banks and financial passwords!
  4. Periodically scan with trusted anti-malware (no particular order)
    1. AdAware
    2. AVG
    3. ClamWin
    4. SpyBot
    5. Windows Defender
    6. Note: many anti-malware flag tracking cookies as “critical objects”. These are not critical unless you are worried about advertisers knowing who referred you to their site.


Protecting Against Physical Wear and Tear

Your computer can wear out causing irritating data loss, down-time, errors, and complete system failures.

Some common tricks to help you prevent unnecessary wear to your computer

  1. Check your computer system for hot spots.
    1. If your computer heats up when it’s idle to uncomfortable levels, chances are it’s even hotter when it’s being used intensively.
    2. Add fans if your system doesn’t have much air flow. A suprising number of systems have no case fans.
    3. Replace dying fans (don’t just smack them until they quiet down, since a noisy fan that suddenly goes quiet is usually dead).
    4. Take it out of the closed cabinet while it’s running. Don’t just lock it up in some cabinet, and expect it to get enough ventilation to cool properly.
  2. Attach your computer to a battery backup.
    1. Using a battery backup can help to block out both power surges *and dips*. Many come with software to shutdown your machine after a few minutes to prevent suddenly powering off. Get what your budget can afford, but I tend to buy 1000VA units and attach both my monitor and computer to it.
    2. Note: These kinds of batteries commonly last only about 3 years, and they may or may not be replaceable. A little research online can often tell you the story on replacement batteries.
  3. Periodically perform a system defragment.
    1. Start -> All Programs -> Accessories -> System Tools -> System Defragment
    2. Fragmented files can make your system work harder. The basic concept is your computer reuses space freed up by other files no longer needed. As this happens eventually you end up with files with lots of “fragments” because they are scattered around wherever they fit.
  4. Shutdown your computer if you are leaving your computer for a few hours.
    1. Some people debate back and forth on this. My thought is this. If your computer were to have a fire in the power supply, it would *of course* happen when you are gone.
    2. I tend to think of powering on a computer about like a flourescent bulb. Not efficient for just a few minutes as you wear out the ballast. Leaving it on 24/7 is a waste. Pick something inbetween.
  5. Turn off that screensaver!
    1. Your screensaver is only going to waste power. Shut-off the screen using the power options
    2. Right click your desktop -> Properties -> Screen Saver, Choose none, or blank screen. Then change the power options to turn off the power when your computer is idle using the Power… button.
  6. Your computer is not a CD/DVD player
    1. Using your computer for repeated playing of CD music, and DVD movies is a good way to turn a $1000 computer into a disposable $35 walkman or $50 DVD player for your TV. Be smart, and don’t wear out your computer doing silly stuff.

Well, that’s all for now. If you have comments, please post them below.