|
|
-
This is truly cool stuff. VHDs are no longer "just" a virtualization file format. They're baked into the OS. Yes, you can boot an entire OS from a single file. You can create a VHD from the Disk Management Console without having Hyper-V installed.
Devs will love it because it vastly simplifies testing on different OS configurations. Of course, you can do this with Hyper-V already with multiple VMs, but now you have the same goodness in a non-virtualized setup as well.
IT folks will love it, as it dramatically simplifies data center management. Instead of tracking which OS and what patches a machine has, you can just have a set of reference images (VHDs). Drop any number of VHDs on the machine, tell it to boot one of them, and you know exactly what you're running. Want to change to a completely different setup? Just point at a different VHD file and reboot. No need for separate disk partitions, OS reinstalls, etc...
Note that to boot VHDs natively without Hyper-V, the installed OS must be Windows 7 or Windows Server 2008 R2, but that's the expected price of progress. See the link for the exact details.
http://blogs.technet.com/virtualization/archive/2009/05/14/native-vhd-support-in-windows-7.aspx
|
-
I've been waiting for quite a long to post this information. Hyper-V now supports systems with up to 64 cores (we call them LPs). This is 4x the number supported in the original release just 9 months ago.
The devs on my team write the code and did the tuning to make this possible. It was our biggest stretch goal, and we nailed it. There was a substantial amount of work that went into it. Not the least was wrestling with machines that support that many cores. They live in racks, draw enormous armounts of power, require enormous amonts of storage, can take hours to boot, and are very finicky about any changes to configuration. They're also quite expensive, especially when considering thre crazy amounts of memory they need to do use work.
It was an awesome sight, working with a machine running 384 VMs using 64 procersss and 256 GB of RAM. The 384 VM value is a tested, supported limit, and not an architectural limit, so you can read between the lines there.
He'res the official link for more info:
http://blogs.technet.com/virtualization/archive/2009/05/12/hyper-v-in-ws08-r2-release-candidate-bringing-more-to-the-table.aspx
|
-
If you're still using the original Hyper-V that runs as part of Windows Server 2008, this is a big deal.
While Windows 7 is getting all the attention, the equivalent server version (Windows Server 2008 R2) is also available as a release candidate. This is how you'll get the latest and greatest Hyper-V.
As the dev lead for perf/scale development on the hypervisor, I can assue you that the improvements in Hyper-V in this version are substantial. Among the announced things are support for Intel and AMD's virtualization aware CPUs, which provide substantial performance improvements.
Plus, Hyper-V has a few more awesome capabilities up its sleeve. Stay tuned. :-)
Here's the official team blog link:
http://blogs.technet.com/virtualization/archive/2009/05/06/microsoft-hyper-v-server-2008-r2-release-candidate-free-live-migration-ha-anyone.aspx
|
-
My new favorite "Nerd" feature in Win7 involves the Resource Monitor (not surprisingly.) It's mesmerizing at times...
Ever had a program get "stuck", where it seems to be quite obviously waiting for something, but you don't know what? Install programs that invoke child processes are notorious for this.
In the Win7 Resource Monitor app, in the Overview or CPU tabs, you'll find the list of running processes. If a process is "stuck", it'll be highlighted with red text. This isn't the cool part though.
You can right click on any process, and in the context menu, you'll see "Analyze Wait Chain...". Click that. In a nutshell, it lists the threads in a process that are blocking on a resource currently owned by another process. Better still, it tells you who the owning process/thread is! With that info, you can take corrective action, such as killing the child process that's not giving up the resource.
You can find more about wait chains here: http://msdn.microsoft.com/en-us/library/ms681622(VS.85).aspx
|
-
While the Windows 7 UI is currently getting most of the "What's new?" attention, I'm a system guy at heart. I gravitate towards the tools and features that let me understand what's going on. Why does program 'X' take so long to load? Which of my dozens of services are sucking up the CPU? Which app is pounding on the network connection?
With the Windows 7 Resource Monitor, it's trivial to get answers to these sorts of questions. If you're familiar with SysInternals tools like ProcMon and ProcExp (and if not, you should be!), you know that a wealth of knowledge is available. However, they're still pretty techie for most folks.
In Windows Vista, the Resource Monitor made great strides over prior methods (e.g., perf counters and Task Manager). But the Windows 7 Resource Monitor... all I can say is "Wow!" Left to my own devices, I'd play with it for hours, trying little experiments and watching how they show up...
At the topmost level, Resource Monitor has 4 tabs:
- Overview (summary of CPU, Memory, Disk, and Network)
- CPU
- Memory
- Disk
- Network
The overview tab gives the "rolled" up view, similar to the Vista Resource Manager. The remaining tabs drill into more details in their corresponding area. For instance, in the CPU tab, you can see a CPU usage breakdown by service. Likewise, on the Disk tab, you can see a breakdown of disk activity by process. Plus, it's trivial using checkboxes to filter the views to specific processes.
Resource Manager can be found under All Programs | Accessories | System Tools | Resource Monitor, as well as various other shortcuts.
Highly recommended. Check it out!
|
-
While there's much press coverage about Windows 7 hitting beta, the availability of the Windows Server 2008 R2 beta is also big news for me personally.
In particular this beta brings the first public look at the next iteration of Hyper-V. There's several very cool new features. Putting aside any marketing spin, two big features I'm glad to trumpet are:
Support for Hardware Address Translation: Basically, this means letting the CPU handle address translations across VMs, rather than the Hyper-V code doing page table remapping in software. If you have the right CPU (lookup "EPT" for Intel, "NPT" for AMD), you should see some nice performance gains in most scenarios. Most "current" AMDs have NPT already. Intel introduced EPT with the i7 (Nehalem).
Live Migration: The ability to move a VM running on one machine to another. The technology behind this is very impressive, and crazy complicated.
Of course, there are many more features than this. More details can be found in this Powerpoint presentation.
|
-
I've been somewhat quiet in my blog lately, posting vary sparsely in 2008. Consider this the "reset", wherein I resolve to be more frequent in my updates.
In a blog post over two year ago, I mentioned that I'd joined a new group at Microsoft, and was no longer working in Visual Studio. While I was necessarily vague at the point, I can now fill in some of the details, and tell you what's new.
From early 2007 through August of 2008, I worked on Red Dog, now known to the world as Azure. It was a complete change of course for me, and I learned an amazing amount. Up to that point, my career had focused on debugging, diagnostics, operating systems and other "low level" topics. I had no real experience with big distributed systems, data centers, "cloud computing" and the like.
On the Red Dog project, I headed up a team that owned eventing, diagnostics and reporting for the Fabric Controller. We literally started at square zero, and tried to build a platform (Azure) that finally had tooling and diagnostics baked in from the beginning, rather than added on as an afterthought. Suffice it to say, the tools and approaches for distributed system are quite different from the low level SysInternals tools.
I left Red Dog in August 2008 to join the Hyper-V team. While Red Dog uses a hypervisor, it's not the exact same code base as Hyper-V has today, although they do have a shared lineage. While on Red Dog, I had only minimal exposure to the hypervisor side of the project. Coming to the Hyper-V team was a big jump back to my "low level" roots.
On the Hyper-V team, I lead a group of developers focused on the performance and scaling aspects of the Hyper-V hypervisor component. It's fun to be down in the bowels of operating systems and advanced CPU features. We tackle big issues like scaling Hyper-V to 32 processor cores and beyond. We deal with issues that most folks aren't even aware of, such as NUMA (Non-Uniform Memory Access), which makes a big deal in how you set up VMs and how you schedule processor cores to run in those VMs. Another area my team owns is address space management. Imagine the complexity of any given OS's page table management. Now consider that the hypervisor has to multiplex every VMs page table view into the actual page tables used by the hardware. And be really fast about it, with minimal lock contention because big server machines have lots of cores. Fun stuff!
So that's what I've been up to. I expect future posts will have more meaty technical content, but I felt the need to set the starting context appropriately.
|
-
Stealing a page from Mark Russinovich's blog here.
I've been going batty trying to play ripped DVDs residing on my WHS box through my XBox 360. I'd done all the due research, and had followed all the various directions around making symbolic links on my MCE box, installing transcoder.dll, etc... I got the DVD Library to show up on the 360, but whenever I tried to play the file, I received the dreaded "video decoder error".
Having some free time on a Saturday, I decided to not come for air till I had it working.
My first step was to run Process Monitor on my local (Media Center) machine, and collect file activity during a request to play the DVD. I could see in the EHShell process where it successfully opened the .MPEG file on the local machine. However, the .MPEG file is just a link to the actual .VOB file on the WHS share. EHShell was failing to open the .VOB file on the server, even though I could see/copy the exact same file from a command prompt. The error for the CreateFile call was LOGON_FAILURE.
At that point, I realized that EHShell was running as the MCX2 account, rather than as me. OK then! that could explain why the file couldn't be accessed.
My first attempt to fix this was to go to the WHS console, and add "Read" access for the "Guest" account. Sadly, no joy. Restarting everything still resulted in the same LOGON_FAILURE.
Eventually, I poked around more in the WHS console, and noticed that the Guest account was disabled. That is, the "Shared Folders" view happily let me enable Guest access to folders, even though the Guest account wasn't active. Running through the "Enable Guest account" wizard got everything working, and I startled my wife with the whoop of joy I let out.
Maybe this should have been obvious to me sooner, but I can't recall seeing anything about this while hunting around, trying to figure out why it worked for everybody else, but not for me.
So, to summarize, if you're trying to play ripped DVDs from a WHS share using your XBox360 as a Media Center Extender, try making sure that the Guest account is enabled on your WHS setup.
Disclaimer: I'm not a Media Center Extender expert. I posted this info here to hopefully spare at least one person the pain I went through. :-)
|
-
I was quite sad to hear the news this morning (via email) that my friend, Paul DiLascia has passed away suddenly.
I don't know all details yet. I've heard he passed away on Sept. 3rd, but the MSJ/MSDN network just heard of it in the last day or so. Some details are still unknown by me at this point in time.
Paul preceded my book in the "Andrew Schulman Programming Series" with this book, Windows++, one of the first serious attempts at encapsulating the complexity of Windows 3.X programming with C++ classes.
Subsequently, we both ended up writing columns for Microsoft System Journal (MSJ), which subsequently was renamed to MSDN magazine. Paul had the C++ column, while I did "Under The Hood".
Paul and I corresponded frequently, mostly about crazy reader questions, but sometimes on technical issues. Since we lived only about 30 minutes apart, we'd often have MSJ subsidized "columnist lunches", where Paul, John Robbins, James Finnegan and myself could commiserate about the life of a technical column writer. A few great column ideas were born from these lunches, including my "Just enough Win32 Assembly Language to Get By", which Paul inspired.
Paul was the longest continuously running columnist in the magazine's history. I was the second for a long while. Paul was perpetually 12 months ahead in his streak. When I got to 60+ months without missing a column, Paul was still going strong at 72 months, and kept on going long after I left that race.
Paul was an amazing technical writer, and one with the gift of adding humor to what could be an otherwise dry topic. Eric Maffei once told me that without humor, MSJ would read like "Microsoft Pravda". Paul's contributions were a big part of why it wasn't.
|
-
Last night my wife took me to the Met for dinner. Midway through dinner I glanced over at the adjoining table, and was quite surprised to see Jim Allchin, along with two other people.
And earlier in the day, I actually sat at the same table with another celebrity: Chris Sells, who was generously taking me out for lunch.
|
-
Likely you've already seen this elsewhere, but if not, WHS has RTMed!
http://blogs.technet.com/homeserver/archive/2007/07/16/ship-it.aspx
Yes, it's been awhile since I posted. I've been running the "nearly" RTM bits for about a week now. Prior to this, my server was down for a month as I moved houses and am slowly rebuilding my computing infrastructure.
In other news of my WHS box, I finally figured out why it was so damn noisy. Wasn't the power supply after all. The box has 4 fans, two of which are well hidden. Good old "Divide & Conquer" debugging helped me figured that out.
Next stop: Frys to pick up some bigger, yet quieter case fans.
|
-
In a previous post, I lamented the loss of SoftIce.
Now, we truly are at the end of an era.
Compuware is closing its development lab in New Hampshire. This is where tools like BoundsChecker, SoftIce, TrueTime, SmartCheck, CodeReview, and many others originated. (I won't attempt to name, them all, so please don't take offense if I didn't list a particular product. :-)
It's the lab where worked with many amazing folks. To name just some of the better known: John Robbins, Mark Russinovich, Russ Osterlund, Jay Hilyard. Geez... I know I'm forgetting more than I'm listing.
See http://biz.yahoo.com/prnews/070611/clm093.html for details.
I still have quite a few friends there too.
|
-
Yes, it's been awhile since I posted anything on this topic. My bad.
My WHS box is happily purring along in the closet. I took it down for a few days while I went through a whole memory upgrade experience. The details are unimportant. The net result: I should have just bit the bullet and paid a little more to have the box built with 1 GB from the beginning.
My status icon in the notification area is always red (Critical). This is because a couple of machines aren't being backed up. In one case, a notebook which used to be backing up nightly hasn't been auto-backed up for awhile. I've ensured that the laptop is awake during the backup window.
In another case, I upgraded my wife's laptop to Vista. However, WHS still lists the prior XP version of the machine alongside the Vista version. Of course, the XP "ghost" machine shows as non-contactable.
From the discussion boards, it sounds like these nits are fixed in post beta 2 builds. Now if I could just get my hands on one. :-)
|
-
One of the cool features of IIS 7 is it's modular architecture. It lets you create just the IIS you want, with minimal attack surface area.
Alas, one of the greatest consumers of my time lately is determining why things no longer works like on IIS 6. This is almost always because yet another portion of IIS 7 wasn't installed by default.
Yesterday was spent trying to figure out why I got no ETW events from the "ASP.NET Events" provider. At times, I was literally stepping through the ETW tracing code in IIS. (Thank goodness for Source Server!) The LogMan command was reporting success in starting the session, and I always got the ETW "Header" event, but never any actual ASP.NET events.
The magic: You need to install "Tracing".

On Vista, go to "Control Panel | Programs | Programs and Features", then select "Turn Windows features on or off". The "Internet Information Services" node is where to start drilling.
Also, I hear from Eric Deily that under Windows Server 2007, you can get to this via the "Role Management Tool"
|
-
Here's what it looks like when I'm at work, accessing my home network via Windows Home Server. I've blocked out certain private data.

Clicking on any of the machines starts up a Remote Desktop connection, which can be full screen or hosted in the browser. The first time you do this, you need to allow IE to run a control that handles the Remote Desktop aspect.
In other news, I broke down last night and ordered another 512MB for the box. Under basic load, it runs well on 512MB, and without any noticeable paging. However, things like remote access and indexing have pushed my memory usage to the 700MB range occasionally.
|
|
|
|