Scott Hanselman

Hanselminutes Podcast 265 - Synology Network Attached Storage and Windows Home Server with Travis Illig

May 6, '11 Comments [15] Posted in Home Server | Podcast
Sponsored By

Synology DiskStation - SERVER - Windows Internet Explorer (31)I chat with fellow home storage enthusiast Travis Illig about NAS options (Network Attached Storage) available today. Both Travis and I purchased (and told our friends about) Windows Home Servers. Where are our Home Servers now, and what are they using going forward?

We talk about my recent purchase of a Synology DS1511 Home Storage System and what we're doing with our Home Servers now. We also talk about the recent removal of the Drive Extender technology from WHS and our feelings on the issue.

Download: MP3 Full Show

Links from the Show

NOTE: If you want to download our complete archives as a feed - that's all 265 shows, subscribe to the Complete MP3 Feed here.

Also, please do take a moment and review the show on iTunes.

Subscribe: Subscribe to Hanselminutes or Subscribe to my Podcast in iTunes or Zune

Do also remember the complete archives are always up and they have PDF Transcripts, a little known feature that show up a few weeks after each show.

Telerik is our sponsor for this show.

Building quality software is never easy. It requires skills and imagination. We cannot promise to improve your skills, but when it comes to User Interface and developer tools, we can provide the building blocks to take your application a step closer to your imagination. Explore the leading UI suites for ASP.NETAJAX,MVC,Silverlight, Windows Forms and WPF. Enjoy developer tools like .NET Reporting,ORM,Automated Testing Tools, Agile Project Management Tools, and Content Management Solution. And now you can increase your productivity with JustCode, Telerik’s new productivity tool for code analysis and refactoring. Visitwww.telerik.com.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

Enjoy. Who knows what'll happen in the next show?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Obscure Windows Home Server Tip: Restoring when you didn't have Network Drivers installed before

October 15, '09 Comments [12] Posted in Home Server | Tools
Sponsored By

I've blogged about Windows Home Server before. I'm a huge fan. Recently Uncle Ronnie's new Dell computer had a hard drive die. It was under warranty and Dell had a new hard drive mailed to me within days.

The old hard drive is clicking and unhealthy, but after a dozen tries, I get it to boot off the sick drive. I run chkdsk /f /r 4 times until it works and then quickly (don't make it angry, I say) hooked Uncle Ronnie's machine up to my Windows Home Server via it's wireless adapter and did a complete "one click" backup. This backs up the entire machine to the Home Server. He's running Windows XP but uses dial-up for his internet access. Remember this point as it's significant for later.

Then I swap the dead hard drive out for the new one. On another computer I visit \\SERVER\Software and burn the Home Server Recovery CD in a few minutes, then boot off that CD on Uncle Ronnie's machine.

I'm going through the restore process and it says I haven't got network drivers installed. Uh oh. What now?

Well, there's actually a very helpful link right in the Restore Wizard that says Windows Home Server includes all the network and storage drivers from the backed-up machine at the time of the backup in a automatically-created folder that lives in the backup itself.

The instructions say just open the backup from the Home Server Console. This is cool in its own right, as Windows will mount the backup as a new drive and you can copy files off it. During backup an unambiguously named folder called "\Windows Home Server Drivers for Restore" is made that is full of directories with storage and network drivers from your computer. Again, these are the drivers that were installed when you backed up your computer.

I mounted the backup and copied that drivers folder to a USB key. I didn't have to restart the restore, just press Scan and it loads the drivers dynamically. Unfortunately it didn't find the hard-wired network adapter I was planning on using to restore this laptop.

I stared for a while.

Turns out that since Uncle Ronnie uses Dial-Up, he never had the Wired Network Adapter drivers installed, so they we never backed up!

I could probably try to boot up the dying hard drive, install network drivers, then backup the hard drive again hoping that Windows Home Server would find them and  yada yada yada, but seriously, I'd be tempting fate to try and get this drive to spin again.

Instead, I dug around in the USB key and it appeared that the folder structure was folders named with GUIDs (Globally Unique Identifiers) with .sys driver files and .inf driver info files inside.

I took a change and created my own GUID folder (basically just copy pasted another and changed some numbers). In this screenshot, it's the top folder with a bunch of zeros.

Windows Home Server Drivers for Restore

Now, what to put in it? I went to the Dell Drivers Website and found the download for the Marvel Wired Network Drivers. It was an EXE, but most of these driver downloads are self-extracting ZIP files, so I opened it up directly with 7-Zip (the greatest and best archive utility.)

I poked around in the driver archive looking for .INF files and .SYS files and copied both the Vista and XP drivers into my {GUID} folder on my USB key, hoping that the Windows Home Server Restore that was still waiting on Uncle Ronnie's machine would just scan these drivers and assume it put them there.

{00000000-FC2B-446B-AEF2-CD40874C08DA} (2)

In fact, it worked! I clicked Scan again and the wired network adapter showed up in the list and the restore of Uncle Ronnie's old backup to his new hard drive worked perfectly!

Related Links

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Windows Home Server Twitter Notification Plugin

July 14, '09 Comments [7] Posted in Coding4Fun | Home Server | Source Code
Sponsored By

A while back, the very wise Brendan Grant sent me some sample code that would use Twitter to report the health of one's Windows Home Server. I always meant to update the code to use TweetSharp to talk to Twitter, as well as add some robustness for connected/disconnected scenarios, but I'm just never going to get around to it. Instead, here it is as he sent to me.

There's a REALLY vibrant community around Windows Home Server plugins and if you've got a WHS and you want it to do something that it doesn't do, I'd encourage you to jump in.

Even as I'm posting this, I'm sure there are better and more interesting implementations. However, I like what Brendan has done to abstract away the core COM-based API of WHS for use in managed code.

Here's the full program...note again that the PostTweet() method is hacked together and should use a more robust technique:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Xml.Serialization;
using Microsoft.HomeServer.SDK.Interop.v1;

namespace Twitter_Test
{
class Program
{
static string username = "";
static string password = "";

static void Main(string[] args)
{
IWHSInfo info = new WHSInfoClass();
//Register application name
info.Init("WHS Twitter Client");

NotificationCallbackClass notificationClass = new NotificationCallbackClass();
//Register notification callback class
info.RegisterForNotifications(notificationClass);

//Check current state
Console.WriteLine("Current State: " + notificationClass.GetHealthState().ToString());

notificationClass.HealthChanged += new EventHandler(notificationClass_HealthChanged);

Console.WriteLine("Monitoring for health changes. Press to exit.");
Console.ReadLine();
}

static void notificationClass_HealthChanged(object sender, HealthChangedEventArgs e)
{
Console.WriteLine("Current State " + e.Health.ToString());
PostTweet(username, password, "Your Windows Home Server's health is now: " + e.Health.ToString());
}

private static Status PostTweet(string username, string password, string message)
{
string user = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(username + ":" + password));
// determine what we want to upload as a status
byte[] bytes = System.Text.Encoding.ASCII.GetBytes("status=" + message);
// connect with the update page
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://twitter.com/statuses/update.xml");
// set the method to POST
request.Method = "POST";
// set the authorisation levels
request.Headers.Add("Authorization", "Basic " + user);
request.ContentType = "application/x-www-form-urlencoded";
// set the length of the content
request.ContentLength = bytes.Length;

request.ServicePoint.Expect100Continue = false;

// set up the stream
Stream reqStream = request.GetRequestStream();
// write to the stream
reqStream.Write(bytes, 0, bytes.Length);
// close the stream
reqStream.Close();

HttpWebResponse response = request.GetResponse() as HttpWebResponse;

StreamReader sr = new StreamReader(response.GetResponseStream());
string s = sr.ReadToEnd();


XmlSerializer ser = new XmlSerializer(typeof(Status));
object o = ser.Deserialize(new StringReader(s));
Status status = o as Status;

return status;
}
}
}

There interesting part is the Eventing part where he makes changes in your Home Server turn into .NET Events via callbacks. Check the code for details. You can get events when Physical Disks are changed, when Backup States change, or when basically anything happens. There's a number of folks on Twitter already who have their Windows Home Servers tweeting.

If you've got, or you're using a plugin to report your Home Server status on Twitter (or SMS or whatever) leave a comment and I'll update the post! I'm sure there are better solutions than this little sample.

Here's the code if you want it, and remember, it may kill your pets. If so, don't blame me as I'll deny everything. It's a sample you found on the Internet, what did you expect?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Running a Subversion Server off your Windows Home Server

June 4, '09 Comments [22] Posted in Home Server | Subversion | Tools
Sponsored By

image Disclaimer - People have been injured and emotionally scarred listening to my technical tips. This may violate your terms of service. If your ISP calls your house and is mean to you, or if you lose all your personal data because of my tips, know that we never spoke. I don't know you. Seriously, who is this?! Stop calling!

I put most of my docs in Live Mesh, and I host must of my Open Source projects at CodePlex, but I have a bunch of code and presentations that usually just float around. Tweet Sandwich is a good example.

I decided I'd try to host a Subversion Server. I don't want to use the machine I host my blog on, as I want the data in my house. Since I already have this lovely Windows Home Server that's saved my marriage, I figured why not host it there?

1. Logging into your Home Server

If you want to install software on your Home Server (and they are headless usually - no monitor) you have to use Remote Desktop. From inside my house, I run "mstsc /console" or "mstsc /admin" from the Start | Run dialog, the connect to my machine called "Server."

2. Install Visual SVN Server

I usually download software to the desktop, ignore the "holy crap don't do this" warning (although be aware) then open an administrator command prompt and run the MSI from there. I downloaded and installed VisualSVN Server, which is the absolute easiest way that I know of to get Subversion (SVN) on Windows. I installed it on the machine on port 8443. That's not 443, but rather 8443. It's kind of like the secondary SSL port. I could put it anywhere, of course, but 8080 is to 80 as 8443 is to 443. It's easy to remember and less likely that your ISP would block it outgoing from your house. You can test if you have open ports with this online tool.

3. Chose Storage and Back It Up

Windows Home Server is a different beast as it supports a RAID-like storage system. You are NEVER supposed to put anything on the D: (Data) drive directly. Always access data through shares like \\server\svnwhatever.

Here's the only/most wonky part of this whole thing. If you have a better idea or you work for the Home Server team, let me know if this is dangerous and I'll update this part of the post.

I made a folder on the D: drive (against recommendations) called D:\repos and I told Subversion that was the place to put stuff. Then I made a new Share called \\SERVER\SVNBackup and set duplicate to true. Then, I installed the Windows 2003 Resource Kit in order to get the RoboCopy tool, and I copied RoboCopy to C:\windows so it's in the path.

Finally, I made a batch file that looked like this:

robocopy /mir d:\repos \\server\svnbackup

This "mirrors" the D:\repos folder to the \\server\svnbackup. I then used the "Add Schedule Task" wizard and made this run every night at 2am. This way I get backup and duplication in a nightly snapshot.

Alternatively, I probably could have mapped a permanent local Z:\ drive on the Home Server to \\server\svn or some share, and told VisualSVN Server to use that. However, that itself seemed wonky? My way seems to work. Thoughts?

image

4. Forward Port

I then logged into my local router and set up a port-forwarding rule to make sure that 8443 was accessible from the outside. Check your router or visit http://192.168.1.1 (usually) to figure it out.

5. Get an External DNS name (Optional)

You can certainly just visit http://www.whatismyipaddress.com and remember your address if you like. You can also hard-code it in your hosts file on the machine that will be your client.

You might consider using a service like DynDNS and get a custom domain like yourname.dyndns.org. There are applets that will run in the tray on your Windows Home Server and keep that IP address in sync if it changes.

Windows Home Server also includes options to get your own Home Server-provided domain under the "Settings" dialog in the Home Server Console. You can be http://foofoo.homeserver.com or a number of choices. This domain name is associated with your Windows Live ID and the IP is automatically updated by the Home Server.

imageNote, you can also log into your Home Server remotely, if you've enabled it. Here's me logging into my Home Server from elsewhere. Notice you can see what machines are online at home in the background there. I can RDP (Remote Desktop Protocol) into those machines if I like, and I can also remote into my Home Server itself.

Incidentally you can also view and download files from your shares, so choose strong passwords.

When you connect to your new Visual SVN Server instance over another port, your browser will likely complain that the certificate isn't trusted and it'll turn your Address Bar red and scary. Bummer, but be aware.

Now I can SVN Checkout https://mymagicdomain.homeserver.com:8443/svn/presentations/trunk as I please.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

How to upgrade two out of four of your hard drives in Windows Home Server

April 16, '09 Comments [26] Posted in Home Server | Tools
Sponsored By

I love my Windows Home Server, it's saved my *ss and my marriage. ;) I bought an HP MediaSmart Home Server from Amazon. You can get various sizes, from 500gig up to 1.5 TB.

I think the best deal is to get the smallest one you can afford, and upgrade it when you start running out of space. That's what I did. You really can't go wrong because it's like butter (yes, rich, creamy butter) to upgrade.

When I first started, I had the two 500gig drives it came with. The HP supports up to FOUR drives at a time internally. Because I can't stand the empty slots, I threw in whatever drives I had lying around. I ended up with a 70gig (I have no idea why I put that) and a 300gig as drives 2 and 4. This gave me a total of about 1.25TB. This was fine when i started, as I only used up like 50% of the capacity.

image

Fast forward a year or so later, and I'd only had less than 20% left. A lot of space was taken up by backing up 6 different Home PCs, and a lot of was taken up by Family Photos and Videos from my new HD Camcorder. It was time to upgrade.

The system is always duplicating your files on as many disks as possible. It's not RAID, but it effectively gives you the same level of assurance that your data won't go missing. What's nice is that it supports drives of different sizes, rather than using either insisting on the same size driver, or using only the smallest drive size for all drives.

Here's how I upgraded my two smallest drives to new 1TB SATA Seagates.

Make as Much Room as Possible

This isn't 100% necessary, but I noticed that a LOT of my space was taken up by backups going back as far as 3 months. I really only needed the most recent ones, so I went into the Home Server Console and clicked "Backup" then "Backup Cleanup." This happens on Sundays automatically, but it's a good way to make a little space before a hardware upgrade like mine.

image

This operation, as with most "large scale" operations, will take a while. Maybe 10 minutes, maybe an hour, it depends on how large your stuff is.

Warn the Home Server you're Removing a Drive

Now you need to warn the Home Server that you're removing a drive. This is important so the Home Server can make sure ALL your files are sufficiently duplicated on more than just 1 drive. You are removing one, and it needs to make sure each file is on at least 2 other driver, as I understand it. This can also take a while, although it didn't for me.

I right-clicked the drive, clicked Remove. It tells me not to turn the machine off, etc.

3

When the drive is "remove" from the software, but not yet physically yanked out of the machine, it'll show up in the list as a "Non-Storage Hard Drive."

4

Notice that my free space went from 1.2TB to 1.02TB, so I lost about 200gig in this removal process. Also, at this point, the lights on the front of my server are 1 pink (the removed drive) and 3 blue (the remaining healthy drives.)

CIMG8787

You can technically pull these drives out and put them in with the machine is running, but I'm still paranoid and I figure it never hurts to shutdown first (which I didn't do in this particular picture.)

Swap the Drive Enclosures

I like the enclosures on the HP because they are tool-less. They require no screwdriver, you just pull aside one edge and these little rivets (not screws) pop themselves via a tension spring into the screw-holes on the sides of the drives.

CIMG8785

I put the new 1TB drive in the old drive's enclosure, and slide it into the HP. Push it into the machine, turn it on (again, I've done this hot-swap before, but still) and run the Home Server Console:

5

The drive shows up as a Non-Storage drive, but I just click Add and I'm given the choice to add the drive to server storage OR to use it to Backup the Home Server and my files. (I use an external drive for Server Backup.)

6

It'll run for a bit. After it's done, I tell the system to Remove the last small drive, and let it duplicate onto the larger one. Then I yanked the second small drive and repeat the process. Now Home Server reports I have 2.73TB total space, with 1.74TB free.

8

I like having the confidence that I can do this again at some point in the future with more cheap 1TB drives or larger. The whole operation took about an hour.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb
Page 1 of 2 in the Home Server category Next Page

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.