Posts

Reclaiming disk space in your Windows Server Hyper-V virtual lab through deduplication

Image
My 5 machine Windows Server 2012 virtual lab was using 91GB of space on my Macbook after installing the OS and infrastructure components into the host and guest machines. I was able to reduce the actual disk space used on my MacBook SSD by 50% through Windows Server deduplication and virtual disk shrink operations. That results in  47GB  savings of physical disk space. Disk Drive Layout I have Windows Server Virtual Machine that runs Active Directory, DNS, Hyper-V and SQL Server Management Studio.  It also hosts 4 other guest machines whose disk drives are over provisioned for the actual drive allocated. We can do this because none of the guest machines use all their disk space and because. As an advanced topic, we can get additional savings with Disk Deduplication where windows can create only one copy of disk space that is identical across the guest VMs/VHDs located on the same server drive.  The same operating system files exist across all VMs so we can...

Installing Microsoft Message Bus for Windows Server in your Virtual Lab

Image
Note: This is a quick off-the-cuff blog so I don't lose my installation notes. I created a Microsoft Virtual Lab  on my Mac to learn and develop against.  Now I want to add Message Bus for Windows Server to that environment.  The message bus requires SQL Server, for queue persistence. I'll use SQL Server instance / VM I've already installed.  The message bus runs in a cluster configuration with from 1-3 message bus machines. I'll use a single node because I'm learning/devloping and not performance testing it. Message Bus and SQL Server VMs will all be part of my virtual lab's AD domain, virtdev.freemansoft.com. You don't have to use Active Directory but it makes configuration simpler.  My Windows 7 development machine is not part of the virtual lab domain so we will have some configuration to do to give that client access. Quick Service Bus Overview The message bus provides a simple way of implementing asynchronous message passing between diffe...

Subdomain DNS for VMWare/Hyper-V Virtual Lab on a MAC

Image
Scenario I have a Windows 7 VM that I do general development on in addition to writing Java or other code on my Mac.  Sometimes I want to push code from my Windows 7 VM to a virtual Windows Server Lab set of VMs.  Other times I want to write a program on the Mac that communicates with servers in my virtual lab.  Direct IP address connection is always possible across these machines butI want name based address resolution so that I can test software the same way it would be in our data center. The virtual lab is powered down most of the time so the DNS solution must work well for general internet traffic when that lab's DNS server is unavailable.   The virtual lab has its own AD server that registers all the Domain members host names and IP addresses. In my case, I have it act as a subdomain of a domain that I have. The subdomain DNS is visible to machines on that private network whether they are in the AD Domain or not. My Windows 7 development VM and my ...

Enabling Remote Management for a Windows Server 2012 Core Hyper-V instance

Image
I have a small virtual lab running inside hyper-v hosted on a Windows Server 2012 standard instance.  The host is running AD and DNS and has a GUI interface.  The virtual lab machines all run Windows Server 2012 Core. Connect to the Hyper-V Instances There is an array of ways to manage or execute operations on Windows Server 2012 core instances. Use the Server Manager -> All Servers  tool.  Highlight the server and right-mouse to see the following options Computer Management:  This provides remote access to the Computer Management console. This will not work out of the box due to firewall rules. Remote Desktop Connection: This does not work because core instances do not have any GUI installed Windows Powershell:  This essentially runs a remote Powershell command. I've had inconsistent results with commands typed in this window Use the Hyper-V management console accessible from the Server Manager -> All Tools  menu...

Install a Microsoft Virtual Lab on a Mac with Fusion and Hyper-V

Image
Modified 2013/02/09 to add remote management enablement We're going create a Hyper-V Microsoft virtual lab environment on a Mac with the following configuration as discussed in this previous blog article  http://joe.blog.freemansoft.com/2013/01/run-microsoft-virtual-lab-on-mac-with.html .  We can use the same approach on Linux machine using VMWare workstation / player. Our mini-data center consists of 5 machines. A Windows 2012 Server hosting Active Directory and DNS.  The machine also holds/manages the hyper-v environment used to run the rest of the machines Two Windows 2012 servers to be used as application machines One Windows 2012 server used to run SQLServer 2012 One Windows 2012 server used to run the on-prem version of windows service bus We're not actually going to install any application software in this article.. The basic steps are Install Windows Server 2012 that will be our AD/DNS/Hyper-V host Hack the VMWare/Fusion/Workstation dhcp....

Run a Microsoft virtual lab on a Mac with Fusion and Hyper-V

Image
An integrated Microsoft environment provides a lot of standard infrastructure for your project.  It also requires a certain amount of standard infrastructure irrespective of the size of the project. Active Directory is the most obvious example of this   Developers that want to test out Microsoft tools or sub-systems almost always need a multi-system environment because most  Microsoft products work best when bound to Active Directory, a tool that needs to run on its own system.  Virtualization can help here making it easy to build virtual labs , "personal clouds" or use something like Azure. I've been working on a Microsoft project where all of our virtualization is done using Microsoft's Hyper-V.  This pushes me towards Hyper-V as my virtualization platform when sharing work with others on the team.  My most powerful laptop is my 16GB Quad-Core Macbook Pro.  Hyper-V doesn't run on OS/X so we can instead make use of a technique used by a lot of VMWar...

cctray.xml Continuous Integration Build Monitor Update

I've updated the sample Java based build monitoring program to add support for some of the LED feedback lights I've built in the last year.  The program obtains build status from Hudson, Jenkins, Cruise Control and others by parsing the very common cctray.xml format originally provided by Cruise Control. Code is available on Git Hub  .  It was a messy combination of older hacks.  Now it's marginally improved. Configuration happens via properties files instead of with bunches command line arguments.  Properties files provide flexibility to increase the number of configuration parameters for various devices.  The best way to do fix this is  to use Dependency Injection like I did for the C#/Spring.Net TFS build monitor I built last year. In the mean time you can configure the properties file in the tree or create an external one that you pass in on the command line. Device support includes. Ambient Orb with serial port Ard...

Web control an addressable LED strip using ArduinoEthernet

Image
Edited 12/18/2011: Added Perl script and made displayColors(); call fix in event handler. Edited 12/19/2011: Added bulk update POST behavior and updated Perl script to demonstrate. Edited 12/26/2011: Fixed quoting javascript quoting problem. Edited 1/3/2012: Added support for Nokia 5110 style LCD and display bonjour name and IP. Most of my build and status "blinken light" type projects are USB or Bluetooth (Serial) controlled requiring a direct connection to the machine feeding the project it's values. I wanted more standlone device that could be remotely updated. Microcenter has the ArduinoEthernet and Netduino Plus boards, both of which have onboard ethernet. I still can't get my head around the .Net MF framework and which libraries apply to the Netduino vs some other .Net board.  The RaspberryPi is probably the biggest newcomer in this space because of its aggressive pricepoint, large feature set and broader set of developer tools.   The Arduinos are primitiv...