May 2007

You are currently browsing the monthly archive for May 2007.

Cocoalicious Update

Cocoalicious, the native Mac OS X front-end to the del.icio.us bookmark system, has been updated and now sports (in my opinion) a cleaner user interface that bodes well for future development.

Gone is the brushed metal look; in is a unified toolbar.  A recent posting by the developer alludes to a more “modern” look that resembles Mail.app or NetNewsWire.  I, for one, welcome the changes and I am excited to see the changes with the application.  So excited, in fact, that I’ve done something I’d never done before with an open source project: I volunteered to help.  I’m not a programmer, but I figured there’s bound to be something I can do to help.

If you are a Mac user who also uses del.icio.us, you owe it to yourself to try out Cocoalicious.

Tags: ,

Trying Two New Apps

I just started working with two new Mac OS X applications and wanted to mention them here.  Both applications are pretty good applications, and worth a try if you have a need for their particular functionality.

The first, MarcoPolo, is designed to help automate the process of switching network locations.  As most of you probably already know, the idea of network locations in Mac OS X allows us to group network settings—such as DHCP or static IP addressing, DNS, network proxies, etc.—and easily switch between these groups of settings simply by changing the network location.  It’s quite useful, especially for someone like me who moves from network to network frequently.

Up until now, I’d been using the Network Location module in Quicksilver to help streamline the process of switching locations.  With MarcoPolo, I can simply define a set of rules that associate certain configuration items with a particular location.  For example, if my laptop associates with an SSID that matches the SSID of my home wireless network, there’s a really good chance that means I’m at home.  Based on the results of these rules, MarcoPolo automatically switches to the most appropriate location.  It seems to take some fiddling to get it to behave the way you want it to (at least, it did for me), but once configured it works effectively.  It’s nice to be able to attach my laptop to a network and have the laptop automatically figure out what network location it should use.

The second application is a Usenet/NNTP newsreader called Nemo.  I’d been using Unison, from Panic, but Nemo really eats Unison’s lunch in almost every area except binaries.  I like Nemo’s modern user interface (Unison looks so old), the translucent thread inspector, support for multiple server connections, and native Growl integration.  Nemo is still in beta, but I’m already impressed and I’m looking forward to future releases.

Anyone else out there using either of these applications?  I’d love to hear your thoughts, too.

Tags: ,

I just finished installing Windows Server 2008 Beta 3 on ESX Server 3.0.1.  Despite the fact that the amount of time I spend designing, implementing, and supporting Microsoft products continues to decrease, this is an important product release and one with which I need to be very familiar.  In addition, I’m particularly interested in how developments in the Windows Server product line will affect Active Directory (AD) and AD integration scenarios.  Once I have had the opportunity to create an AD structure based on Windows Server 2008, I plan to write a new set of articles on Linux and Solaris integration.

When creating the VM, I used the following configuration options:

  • Selected “Windows Vista” as the guest OS
  • Provisioned the VM with 512MB of RAM and a 6GB hard drive (I suspect we will be very tight on disk space, but I have to be frugal with my shared SAN storage in the lab)
  • Specified the LSI Logic SCSI driver

The VM booted up without any problems, but quickly dropped me to a screen where it indicated that it did not have the necessary driver for the CD/DVD-ROM drive.  A quick web search turned up this VMTN Forums thread, where this link was offered to a floppy image with the necessary drivers.  The drivers worked perfectly, and the rest of the installation proceeded without any further issues.

Now that I have this thing up and running, the next set of tasks will be to create a new Active Directory structure and begin testing various integration scenarios with the new version of Active Directory.  I’ll also begin exploring interoperability between Active Directory on earlier versions of Windows and migration scenarios to Windows Server 2008.  While I can’t promise anything, let me know if there is something specific you’d like me to explore or test and I’ll see what I can do (and document it here, of course).

Tags: , , ,

Having tested a couple of the previous releases of OpenBSD on various versions of ESX Server (OpenBSD 3.8 here and version 3.9 here), I decided to test OpenBSD 4.1 on ESX Server 3.0.1.  I didn’t really expect any problems at first, but then I stumbled across this article describing a problem between OpenBSD 4.1 and ESX Server 2.5.  Fortunately, it appears as if that problem does not affect ESX Server 3.0.1.

The VM configuration was pretty straightforward; just change the SCSI controller to LSI Logic instead of BusLogic and everything should work beautifully.  The OpenBSD 4.1 release notes indicate a new driver for the VMware VMXnet NIC driver, but I haven’t had the opportunity to test this yet; my installation is still using the pcn0 driver.

After installing OpenBSD, I was able to successfully install a number of packages using pkg_add (pulling the packages down via FTP).  Not confident that I had transferred enough data to be sure that I wasn’t going to see the same issue the other blogger ran into with his installation, I fired up Interarchy and transferred a 450MB ISO file via SFTP.  The file transfer completed successfully and I ran into no problems.

I’ll likely experiment with adding the VMXnet driver within the next few days to see how that works and how it affects network performance.

Tags: , , , ,

My recent article on how to provision VMs using FlexClones prompted a reader to ask the question, “What about using LUN clones?”  That’s an excellent question, and one that I myself asked when I first started using some of the advanced functionality of Network Appliance storage systems.  I had expected that this question would come up, and so I’d already begun preparing an article discussing LUN clones vs. FlexClones.  My thanks go to Aaron for prompting the discussion!

LUN clones and FlexClones share a lot of similarities:

  • Both LUN clones and FlexClones are built on top of the Snapshot functionality resident within Data ONTAP, the OS that runs on Network Appliance storage systems.
  • Both LUN clones and FlexClones are space conservative, meaning the clones only take up as much space as required to store changes from the original.
  • Both LUN clones and FlexClones can be created in seconds, and the size of the LUN (or FlexVol) does not significantly impact the time required to create the clone.

The key disadvantage to using LUN clones comes as a result of an interaction between how WAFL (the file system used by Data ONTAP) handles LUNs, and how Snapshots are performed and managed.

From WAFL’s perspective, a LUN is really nothing more than a single file on the file system.  You can see this by browsing via CIFS or NFS to a FlexVol that contains a LUN:

[macosx:/Volumes/vol02$] slowe% ls -la
total 25165856
drwx------   1 slowe  admin        16384 Dec 31  1969 .
drwxrwxrwt   8 root   admin          272 May 21 11:47 ..
-rwx------   1 slowe  admin  12884901888 May 21 11:48 vswex02_vmfs

If I were to enable the .snapshot (or ~snapshot) directory, we’d actually be able to see Snapshots of the LUN within that directory.  In fact, this NOW (NetApp on the Web; login required) article describes mounting LUN snapshots inside the .snapshot (or ~snapshot) as a way of recovering files or folders inside a snapshot.  This technique is also applicable to recovering VMs from a LUN snapshot.

“OK,” you may be saying, “so LUNs are implemented and managed as files.  What’s your point?”

My point is that Snapshots are handled per volume, and capture all the data in the active filesystem.  A LUN exists as a file in the filesystem, so a Snapshot will capture that.  When you create a LUN clone, you will then create another file in the active filesystem, which subsequent Snapshots will then capture.  The end result is that you can end up with Snapshots that cannot be deleted because they reference a LUN clone which is, in turn, backed by another Snapshot.  In these cases, you won’t be able to delete Snapshots until you delete the LUN clone and all the Snapshots that reference that LUN clone.  This blog posting discusses this very problem and provides a Data ONTAP command to help track down the dependencies.  (I’m also told that there is a NOW article on this problem as well, but I was unable to locate it.)

For short-term scenarios, LUN cloning works well and is, as some have pointed out, free (FlexClone requires a separate, paid license).  For longer-term storage scenarios, however, LUN clones and the dependencies introduced by subsequent Snapshots of those LUN clones mean that FlexClones are a better solution.  Since FlexClones are entire volumes stored within an aggregate, they aren’t subject to the same problems as LUN clones (which are stored within a volume).

I hope this helps clear up some of the differences between using LUN clones and using FlexClones.  Add your comments or questions below.

Tags: , ,

Part 1 in our series on NetApp FlexClones and VMware discussed in greater detail some of the advantages of using FlexClones for VM provisioning.  In that article, we saw that using FlexClones can greatly reduce both the storage required for new VMs as well as the time required to provision new VMs, especially when the storage needed by the VMs is large.  Both of these advantages can be very compelling.

However, in order to make an informed decision about whether we should use FlexClones we must also look at the disadvantages of this approach.  In this part of the series, we’ll take a look at some of those disadvantages.

Just as there were two key advantages to using FlexClones, there are also two key disadvantages to using FlexClones:

  • First, the use of FlexClones (unless properly architected) may cause installations to bump up against the maximum number of LUN IDs available (255), or the maximum number of LUNs that may be opened concurrently by all virtual machines (256).  (Both of those numbers were taken from the “Configuration Maximums for VMware Infrastructure 3” white paper, available here.)  Unless properly architected, this means that your installation could be limited to about 250 virtual machines.  Note that there are ways around this limitation; see below.
  • Second, there is currently no integration from either Network Appliance or VMware to help automate the process of using FlexClones for VM provisioning.  As shown in my technical article on how to use FlexClones for VM provisioning, there are a number of manual steps currently, and users seeking a greater level of automation must create their own scripts or hope that someone else already has written scripts they can re-use.

While these are the biggest disadvantages (in my opinion) there are also a number of other, smaller disadvantages as well:

  • Using FlexClones for VM provisioning blurs the operational responsibilities of the SAN administrators and the server administrators; SAN administrators are now responsible for provisioning new VMs via FlexClones.
  • Using FlexClones for VM provisioning adds complexity to the solution, making it harder to troubleshoot and administer over time.
  • Making the most of the FlexClone space-conserving functionality requires more specialized VM configuration, such as dedicated VMDKs for pagefiles/swap partitions on separate LUNs.

These limitations can really derail the use of FlexClones in larger deployments.  Ironically, it’s the larger deployments where the advantages of FlexClones are the most significant.  In larger environments, there are typically dedicated SAN administrators and dedicated VMware/VI3 administrators.  Introducing the use of FlexClones in this type of environment now begs the question:  who’s responsible for provisioning VMs?

While some of these disadvantages are inherent in the solution, there is a workaround for one of them, and that’s the maximum number of LUN IDs/LUNs.  Because each FlexClone is a separate LUN with a separate LUN ID, your installation will be limited to about 250 LUNs.  If you only place one VM per LUN, then you’ll be limited to about 250 VMs.  However, if we instead take the practice of placing multiple VMs—each of them prepared for cloning as described in my how-to article—then we can easily scale the number of VMs.  For example, we could create a master VMFS datastore that had 10 VMs built and prepared for cloning, then deploy FlexClones for each group of 10 VMs that were needed.  Using this technique, it would be reasonably easy to scale this solution to support 2,500 VMs (250 VMFS datastores with 10 VMs each).  (Of course, 1,500 VMs is the configuration maximum for a single VirtualCenter management server.)

In summary, the use of FlexClones for VMware environments has some very compelling advantages, and some very significant disadvantages.  It will be up to each organization to weigh these pros and cons against the specifics of their company to determine which route to take.  At least now you have some information upon which to base your decision.

As always, I welcome any comments below.

Tags: , , ,

While I would love to be able to say that this procedure I’m going to describe for resizing disks inside guest VMs is new or unique or original, I can’t.  I’m sure that lots of smart people out there have been down this path before, and more than a couple of them have probably written up good instructions on how to do it.  I’m including this information here partly for myself (in the event I need it in the future), and partly because the information fits in with a lot of the other information I have here on VMware and related technologies.

So, with that being said, here’s how I recently went about resizing some guest VM disks using vmkfstools and GParted (specifically, the GParted LiveCD).  This process assumes you need to resize a Windows guest.  The process should be very similar if not the same for non-Windows guests, but I haven’t tested it so I can’t be absolutely certain.  The process is very straightforward and not unusual in the least, but feel free to post any corrections or questions in the comments.

  1. Download the GParted LiveCD (here’s a direct link) and then upload it to your ESX Server using the file upload tool of your choice.  Being a Mac OS X user, I use Interarchy.  Use whatever best suits you.
  2. Power off the VM that you will be manipulating.  (I know, that seems obvious, but still…)
  3. Open an SSH session to the ESX Server where your guest VM is hosted.  Switch to root, change into the appropriate directory where the VM is stored, and then run the following command:
    vmkfstools -X <New disk size> <VMDK filename>

    If your current virtual hard disk was 10GB and you wanted to make it 20GB, then specify “20g” on the command line, i.e., specify the new total size of the disk, not the amount by which to increase it.

  4. Flipping to the graphical VI Client, change the CD-ROM of the guest VM to be the ISO image of the GParted LiveCD you downloaded earlier.  Make sure it is set to connect at power on.  Power on the VM and boot from the CD.

    Note that booting from the CD can be a bit tricky.  You may need to boot up several times before you catch it just right.  Be sure that if Windows starts booting up, you let it boot up and then shut it back down again.  If you reset the VM in the midst of the Windows boot sequence, the NTFS filesystem will be marked as “dirty” and GParted won’t make the changes you wanted.

  5. GParted will boot up from the CD.  You may need to press Enter a couple of times to accept the defaults (unless you need settings other than the defaults, of course) before the graphical environment loads and you see the GParted interface.  Once the GParted interface is up, you should be able to figure out how to make the changes you want to make.
  6. Shutdown the VM (you can use the shutdown option in GParted), disconnect the CD-ROM, and power the VM back up again.  When Windows boots, it will run a Chkdsk, then reboot again, and then come up to a login screen.  After you login, you may be prompted to reboot again after the discovery of “new hardware.”  After that final reboot, you should be good to go with a new, larger virtual hard disk.

The most time consuming portion, in my experience, is waiting for GParted to boot from the ISO image.  Otherwise, the entire process is almost completely painless.

Tags: , , ,

The ability to quickly and easily create new virtual servers in VMware VirtualCenter (using templates and cloning) is a key feature that benefits a lot of VMware customers.  A new server running Windows Server 2003 R2 in less than 10 minutes?  Who wouldn’t like that functionality?  (Some other day, perhaps we’ll discuss that very question.)

VMware’s cloning functionality is great in that it is completely storage-agnostic; it works the same on an HP EVA, a NetApp storage system, an EMC Clariion, or a homebrew iSCSI target.  At the same time, VMware’s cloning functionality is not so great in that it is completely storage-agnostic.  It doesn’t take advantage of any of the hardware-specific functionality.  In this article, I’d like for us to look at one particular vendor Network Appliance and how using some vendor- and hardware-specific functionality (namely FlexClones) can provide some benefits.

Note that we won’t discuss the mechanics of how we actually use FlexClones to provision VMs; that detailed technical information can be found in this earlier article.  We’ll be focusing on “Should we use FlexClones?” rather than “How do we use FlexClones?”

(By the way, check out these pages if you aren’t familiar with NetApp Snapshots and FlexClones.)

As I see it, there are two key benefits to using FlexClones in a VMware environment:

  • First, FlexClones are space conservative, meaning that they occupy very little space.  In fact, they only occupy the space required to store the changes to the FlexClone from the original.  If you clone a 100GB volume and only 10% of that volume changes, you only need 10GB of disk space.  I provide an example of the space utilization below.
  • Second, the time is takes to create a FlexClone is minimal and does not increase significantly with the amount of data involved.  Creating a FlexClone of a 100GB volume is not significantly different in time required than creating a FlexClone of a 500GB volume.

The storage space savings can be very significant, especially in larger deployments, and especially when extra care is taken to minimize changes from the original to the clone.  Here’s an example taken from my test lab:

Volume               Allocated          Used    Guarantee
mstr_vdi_fvol       16956680KB     3024696KB       volume
vdi_fvol_clone1       399148KB      399148KB         none
vdi_fvol_clone2       704680KB      704680KB         none
vdi_fvol_clone3       440220KB      440220KB         none

As you can see above, each of the clones occupies less than 1% of the original volume’s size.  As the number of FlexClones multiplies, then the space savings grow proportionally.  In very large deployments (VDI deployments, for example, where there may be 500, 700, or even 1,000 VMs), the storage reduction can be very substantial, and the cost savings associated with that storage reduction can be very sizable.  These aren’t just “pie in the sky” savings, either—we’re talking real, measurable savings in the amount of SAN storage that must be purchased to host the VMs.

Both of these benefits stand in direct contrast to VirtualCenter cloning:

  • Each clone is a 1:1 copy of the original and occupies the same amount of space as the original.  Clone a 50GB VM and it will require 50GB of disk space.
  • The amount of time it takes to clone a VM is directly proportional to the size of the VM.  A 50GB VM will take proportionately longer to clone than a 10GB VM.

At first glance, it’s easy to look at these benefits and say, “Why wouldn’t I want to use FlexClones?  I can create additional VMs in seconds instead of minutes, and save tons of expensive Fibre Channel SAN storage.  What’s not to like?”  Those are very good questions.  In Part 2 of this series, we’ll take a look at some of the disadvantages of using FlexClones in VMware environments.  In the meantime, feel free to add any clarifications, corrections, or questions in the comments below.

Tags: , , ,

Network World published today that Microsoft is reportedly seeking royalties on the distribution of open source software that supposedly violates 235 patents.  Now tell me, who didn’t see this coming?  With the recent Novell-Microsoft pact, it became much clearer to me that Microsoft was preparing for outright war against the open source community, and now it appears that is very likely the case.

The Network World article is based on an interview from Fortune magazine (available here via CNN/Money) in which Microsoft officials, including Brad Smith (Microsoft General Counsel) and Horatio Gutierrez (licensing chief?), discussed their plans for getting FOSS (free/open source software) users to pay royalties on violations of no less than 235 Microsoft patents.  (By the way, I strongly recommend you read the full Fortune article.)

Now, it may be true that Microsoft won’t actually sue FOSS users or developers, as indicated here or here.  I certainly agree that it would be monumentally stupid for Microsoft to start suing its own customers, and it makes sense that Microsoft distributing SuSE Linux coupons makes it a Linux distributor and therefore subject to the GPL themselves.  However, after Microsoft skated out of the antitrust violations essentially unharmed, I’m not convinced that the FOSS community is as well-protected as they might think.  I hope that they are, but I’m not entirely convinced yet.

I’ll tell you one thing:  This most certainly reverses a great deal of the goodwill that Microsoft had been generated with the FOSS community and FOSS users, and it drives many users to stop using Microsoft products altogether.  I don’t consider myself a Microsoft basher, and have on many occasions openly welcomed many pieces of Microsoft software because, quite honestly, they were the best available.  I can’t say that I’ll be quite so open to Microsoft now, especially personally.  (Anyone care to recommend a high-quality replacement for Microsoft Office on Mac OS X?)  If nothing else, Microsoft has definitely succeeded in creating a larger amount of bad press, ill will, and mistrust.

There’s a lot of discussion going on around the Internet on this topic; here are just a few links:

I also strongly recommend that you read the Groklaw article on this turn of events as well.

Tags: , ,

The web searches plug-in for Quicksilver allows you to perform searches against a number of Internet sites (such as Google, Yahoo!, Apple Support, Wikipedia, and others), all from within the comfortable confines of the Quicksilver interface.

Like Quicksilver itself, I didn’t understand the power of this plug-in at first; it took some time (and some tweaks) before I really got to the point of using it on a regular basis.  In the process of trying to understand this plug-in and how it worked, I had to go in a tweak the name of the web searches, so that they made more sense to me.  For example, instead of “Google Search”, I changed it to “Search Google”.  Then, I can just type “sego” (For “Search Google”), tab twice, and type in my search query.

Having now gotten used to how it worked, and how it’s configured within Quicksilver, I offer to you the URL for performing a web search against the Microsoft Support site from within Quicksilver:

qss-http://support.microsoft.com/search/default.aspx?query=***

I have this called “Search Microsoft Support”, and it will take the text you supply and perform a search against the Microsoft Support site, including the Knowledge Base.  I know it seems odd to be writing about using a Macintosh application to search the Microsoft Knowledge Base, but I’ve found it useful.  Perhaps others will as well.

Tags: ,

« Older entries