Passed the 70-533 Azure Infrastructure exam

Today I had registered for a second try of the 70-533 Azure Infrastructure exam, two weeks ago I tried this exam and failed, this time it was a bit more successful and I passed.

10730209_10152601828053549_8289323616528117668_n

The first time doing the exam I was thinking that my knowledge in Azure would be enough but I was a bit wrong 😛

These last two weeks since my last try I have been studying and exploring the features and documentation on Azure and it is a seriously complex and full-featured cloud platform!

I will in this post give you some advice on what areas I have been studying if you are also aiming for taking this test..

First of all, you can see on the Microsoft Learning page on what areas that is covered in the exam,

Screen Shot 2014-12-30 at 22.15.01

I have used Azuremans blog post about the exam topics, Marius has also made a blog post about the exam and what to read and learn.

I have also used the Microsoft Virtual Academy : Establish Microsoft Azure IaaS Technical Fundamentals course.

Some of the links to Azure documentation and blog post that I have gone through during my hours of learning :

http://up2v.nl/2014/03/05/windows-azure-now-allows-to-set-fixed-ip-addresses-for-virtual-machines/

http://www.codemag.com/Article/1403071

http://blogs.msdn.com/b/asgoyal/archive/2013/07/16/linking-a-resource-to-your-cloud-service-what-does-that-mean.aspx

http://msdn.microsoft.com/en-us/library/azure/dn376543.aspx

http://msdn.microsoft.com/en-us/library/dn741337.aspx

http://justazure.com/azure-blob-storage-part-one-introduction/

http://msdn.microsoft.com/en-us/library/azure/dn683781.aspx

http://azure.microsoft.com/blog/2014/08/05/azure-site-recovery-enables-one-click-orchestrated-failover-of-virtual-machines-to-azure/

http://msdn.microsoft.com/en-us/library/azure/dn197896.aspx

http://www.asp.net/aspnet/overview/developing-apps-with-windows-azure/building-real-world-cloud-apps-with-windows-azure/automate-everything

http://azure.microsoft.com/en-us/documentation/articles/web-sites-scale/#scalingstandard

http://msdn.microsoft.com/library/azure/jj156007.aspx

http://msdn.microsoft.com/library/azure/dn643636.aspx

http://msdn.microsoft.com/en-us/library/azure/dn306639.aspx

http://blogs.iis.net/webtopics/archive/2009/06/12/troubleshooting-a-simple-error-message-using-freb.aspx

https://www.digicert.com/ssl-certificate-installation-azure-website.htm

http://msdn.microsoft.com/en-us/library/azure/dn499820.aspx#BKMK_Auth

http://azure.microsoft.com/en-us/documentation/articles/cloud-services-how-to-monitor/

http://azure.microsoft.com/sv-se/documentation/articles/web-sites-staged-publishing/

http://blogs.msdn.com/b/windowsazurestorage/archive/2013/12/04/introducing-read-access-geo-replicated-storage-ra-grs-for-windows-azure-storage.aspx

http://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/

Good luck in your pursue for the Azure certification!

 

New sponsor on my blog 5Nine Software

I have got the pleasure to get a new sponsor for my blog and that is the company 5Nine Software that makes some cool products for Hyper-V

5ninelogo

 The products they have

  • 5Nine Hyper-V Manager – a great christmas sale with 25 % right now!
  • 5Nine v2v converter
  • 5Nine Cloud Security

And these are also available as free versions with some limits but still great stuff

check out their web!  www.5nine.com

Get and Set powerplan on Windows Hyper-v 2012 R2 Core

In my work on Hyper-V i have been looking at the performance of the hosts and wanted to both check and also be able to set the powerplan. In this post from Scripting Guys, Ed explains how to use CIM for the action to get and set the Power plans and how much faster that is than using WMI.

I have since Windows Server 2008 R2 tried to have the Core version as a best practice when running Hyper-V and in some cases it requires some extra skills and arguments during deployment and management 😉

The interesting part is that it differs between the full version and core as you can see that when I try to use Get-Cim from a Windows 2012 R2 full it works and I can see the different powerplans and also which one is active:

Screen Shot 2014-12-02 at 11.15.25

but when I try in a Windows Server 2012 R2 Core I get the following error “Provider load failure”, I have tried locally on the core and also remote so no difference there. My knowledge about WMI is a bit limited but a quick search says that it might be some missing or  corrupt files but I have tried 3 different servers installed with core so I would say it is something with missing!

Screen Shot 2014-12-02 at 11.33.01

As I want to be able to both check and set the right power plan centrally I have created two PowerShell functions that utilize the Powercfg.exe command within a invoke-command thus this works in Windows Server 2012 R2 Core. I am using regex for getting the active plan and the guid. The Set-PowerPlan can either use switch arguments or an actual Guid.

Screen Shot 2014-12-02 at 20.26.42

My friend and fellow Hyper-V MVP Didier WorkingHardInIT has made a blog post about live migration and why using “High performance”.

If you have any input or ideas how this could be improved or if you got it to work in core with CIM :-)

Update 20150108

There is a workaround for this, PowerShell MVP Alexandar Nikolic gave me the link to the connect site which shows the following way to get it to work natively in core by copying the missing files:

# Either copy missing files
dir c:\windows\winsxs -inc wcl.dll,slr100.dll,wclpowrprof.dll -rec -EA 0 |
copy -Dest C:\windows\system32 -verbose

# see http://p0w3rsh3ll.wordpress.com/2014/12/28/fixing-a-wmi-provider-load-failure

VMM agent disappeared on hyper-v host during update

This week I was working with a customer environment and after successfully upgraded their test VMM environment to UR4 it was now time for the production environment.

The UR4 installation went fine and without issues. After that I wanted to update the agents on the Hyper-V hosts. I used PowerShell of course and all agents except one was successfully updated and started reporting to VMM.

I started to examine the one that failed and could see in jobs that it had timed-out:

Screen Shot 2014-11-28 at 15.50.15

And checking on the host I could see that the uninstall of the old agent had been done as the vmm agent service was gone. As this was a hyper-v host in a cluster and the cluster was slightly over allocated I could not remove the node from vmm and then add it in again so,

Screen Shot 2014-11-28 at 15.43.50

Based on this post I went for the way to try to do a manual install on the host and copied the latest agent that i could find in the vmm folder C:\Program Files\Microsoft System Center 2012\Virtual Machine Manager\agents\Amd64\3.2.7768.0 to the host c:\temp

Screen Shot 2014-11-28 at 15.43.10

Important during the installation wizard was to let the perimiter host dialog checkbox to be unchecked as this was a host already in vmm and also in the same domain.

Screen Shot 2014-11-28 at 15.44.42

And doing a check on the services after the install was finished I could see that the VMM agent was installed and now running

Screen Shot 2014-11-28 at 15.45.36

Once that was completed I could do a refresh in VMM and the host was reporting again and could be managed :-)

Look twice when deploying VM´s in VMM or get the wrong vhdx

Today I have been working with some updates on a customers Hyper-V environment and their host images (that I use for bare-metal deploy). The VMM server has all the updates with VMM 2012 R2 UR4 and also Windows Server with November update, although this issue goes further back than that and based on Brian Ehlert´s post you can see that it is by design :-)

I wanted to deploy the vhdx to a host to update with settings and windows updates. In my library it looked as following and i right clicked on the marked vhdx and selected create VM.

Screen Shot 2014-11-28 at 14.42.07

But when I had deployed it and started working on it with patching and configuring, somethings did not seem to be right, and looking in the folder of the newly created vm revealed this:

Screen Shot 2014-11-28 at 14.52.43

As you can see it is the old vhdx that has been copied from the library, initially I thought that I maybe selected the wrong vhdx and recreated another VM with the exact same result!

Why did this happen? Well as I mentioned above with Brians post, this is because I have not changed the details with family name and version of the VHDX objects in the VMM database so it just selects one that seems to be right based on the inital request. wrong or right?

If it is by design, then I would say that it should show in the wizard and not as you see I get!

In the wizard and the HW tab it seemed like I had the right vhdx, and also when continuing to the next view and review stage of the provisioning phase, you can see that it said right library resource and also in the bottom with the file name it looked correct,

Screen Shot 2014-11-28 at 14.43.44

but when I investigated things a bit further and checked the whole path of the source it revealed the nasty _old.vhdx

Screen Shot 2014-11-28 at 14.45.00

And after I pressed “Browse” and selected the right VHDX and started the deploy everything worked as intended..

Screen Shot 2014-11-28 at 14.45.38

So what is the lesson here? Either clean up your old vhdx version in the VMM library or set the version and family name differently and that not only in the end of the filename :-)

Happy WVMMeekend!

a not so normal CBS.log size of 57 GB on a Hyper-V host

I was working with a customer and updating their test environments VMM server with the new UR4 that have been released and noted that one of the cluster nodes was not working as intended.

Screen Shot 2014-11-17 at 10.56.32

The Event logs also told me that the cluster service disliked the lack of disk space,

Screen Shot 2014-11-17 at 12.29.06

And I could also see in the logs after running the powershell commands for updating the Agents on all hosts (right-click on multiple is not the optimal way :-) )

Screen Shot 2014-11-17 at 10.57.16

But this quite clearly showed that the server was not healthy and full on disk, but why? Well I had to find what was eating up my space like that. The server was a Bare-Metal deployed Windows 2012 R2 with all updates and of course running as a core because a Hyper-V server do not need the full GUI! Still it should not be larger than about 9GB on a disk that is 40GB!

Screen Shot 2014-11-17 at 10.54.47

I found the folder containing the bad boy, still no real clue why the CBS.log could grow beyond the wildest of sizes and it was cleverly  auto compacted and disk fotprint of about 29GB but still 57GB large. Read a blog post about the Windows Trusted Installer going bananas but in my case I could not stop the service to be able to delete the large file.

Screen Shot 2014-11-17 at 11.16.36

A reboot did the trick and rotated the CBS logs and now I could remove it,

Screen Shot 2014-11-17 at 11.28.04

My C: was now breathing again 😛

Screen Shot 2014-11-17 at 11.28.44

And after this I was able to update the VMM agent and the node joined the cluster as a happy member.. will keep my eyes on this server to see if it was just a one time problem with the CBS.log or if happens again….

 

Hot-add/remove Memory on a Hyper-V VM in Technical Preview

I have been evaluating the new version of Hyper-V in technical preview of Windows and the new hot-add/remove functionality is quite cool and it works with both memory and network cards.

As you can read on technet page here, for the memory it has to be a virtual machine with either Windows Server Tech Preview or Windows Tech Preview running as a Generation 2 VM.

I have as you can see a VM with 768 MB ram and no dynamic memory enabled.

Screen Shot 2014-11-11 at 21.01.16

 

And here you can see that I can change the running VM`s memory both up and down, for the Windows Tech Preview I could go so low as 340 MB…

Screen Shot 2014-11-11 at 21.18.32

 

the command is Set-VMMemory -VMName xxx -StartupBytes 1024MB but you can also change the memory assigned in the Hyper-V Manager GUI.

Screen Shot 2014-11-11 at 22.05.44

And if you already have allocated the memory inside the VM with a SQL or a Minecraft server or another application you cannot shrink the memory bellow that:

Screen Shot 2014-11-12 at 09.54.04

Using PowerShell to download Teched Europe 2014 content

I have spent the evening exploring how to create a script to download the content from Teched with powerpoints and videos,

As some of you that follow me on twitter and other social media knows, I will be going to MVP summit in Redmond and the flight leaves early saturday morning and I wanted to be able to get the most important content from Channel 9.

My former colleague Tim has made a GUI session downloader and that is nice, but I wanted one with PowerShell and of course where I could select a category and in my case the CDP is most interesting.

I have borrowed some code to make the folders from Peter Schmidt, but went for the Invoke-RestMethod and also using BITS as the transfer engine.

It is just a simple script but still powerful, I check if the folder is already created and also if the files have been downloaded which means that I do not download the files again when new content has been added :-)

As you can see on the screendump I use switches for the different choices, so to download two different  you can use -CDP -WIN,

Updated 10 Nov: I have got an tip from Irwin to add info in the BITS transfer so you can see which PPT or Video that is currently downloading and updated the script with that :-)

Screen Shot 2014-11-10 at 20.50.25

 

The script is also on the Script Gallery at this link and please go in and vote if you like it.

Please also comment if you have ideas of improvement,  I have downloaded only -CDP as that one was my primary object for filling my HDD for the 10 hour flight over the atlantic and as I am a Hyper-V MVP with cloud and datacenter as a main interest :-) but you can choose if you want -All or just a couple of the different categories!

Azure Automation and Runbook Gallery generally available

Today as the Teched Europe kicks off with the Keynote there where several new announcements and one was that Azure Automation and the Runbook gallery now are General Available.

If you have not tried the Automation during the preview then you now can create a Automation account from the portal and start playing!

Screen Shot 2014-10-28 at 15.11.55

Click on create and name it something smart and to what subscription it should be part of, right now not all regions in azure can be used for the automation accounts. The following regions can be chosed:

  • East US
  • South east Asia
  • West Europe
Screen Shot 2014-10-28 at 15.11.04

When you have an account you can see the first page where some good links reside for you to dig into and learn more about the Azure Automation:

Screen Shot 2014-10-28 at 15.12.27

When you want to create your first Runbook, Microsoft has the Runbook Gallery that you can use to get speed in the automation process as there are several scripts that can help you get started, maybe there is already a script that fits or maybe just need a small customization to get it to do exactly what you want!

Screen Shot 2014-10-28 at 17.36.27

Out of the box you get one module in each Automation account and that is the Azure Module, and it is the latest version right now 0.8.9. There is a possibility to add your own modules, scripts, credentials and certificates.

So what is the cost for running azure Automation? Now you get 500 minutes of runtime in your subscription but you can change that if you run out of “free” time to standard and then you will be billed, the 500 minutes as described below is for all your automation accounts in that subscription.

Screen Shot 2014-10-28 at 15.13.14

In this earlier post I created a Runbook script to check and manage my daughters Minecraft server so you can see an simple example of some azure automation :-)

Using Azure Automation to check health of Minecraft server in Azure

As every responsible dad out there I have set up an Minecraft server to my daughter so she can play with her friends!

Screen Shot 2014-10-23 at 16.16.59

I  have deployed a Windows Server on Azure in which I installed the Minecraft server with the right mods, apparently that is important 😉 I have not myself got lost in the Minecraft world, maybe because I grew up in the 80´s and had games that was mega-pixel and now I want that high definition graphics!

To see that it is working and alive I wanted some kind health check so here Azure Automation comes into play! Of course there would have been easier ways but I want try new stuff and also test and see how Azure Automation works and can be utilized.

So I created a runbook that checks the status and try to remediate the issue if it is not working:

I have utilised the YAMS so that the Minecraft Server is handled by a Windows Service. If there is some outage or maintenance on Azure the VM can be restarted and then it is good to know that the Minecraft Server will start even if no user is logged in. If for some reason the YAMS service is stopped or the Minecraft Server has stopped my runbook can remidiate that!

In Azure Automation I can schedule a check every 1 hour:

Screen Shot 2014-10-23 at 16.25.24

And as you can see when checking a job it reports that my Minecraft server is working!

Screen Shot 2014-10-23 at 16.45.23

To connect to the VM´s powershell endpoint I have added SessionOption -SkipCACheck thus letting me connect without getting a cert from a trusted certificate authority or importing the servers cert. Saw this option on Tim´s blog post and borrowed it:-)

In the deployed VM I have also done as explained in the PowerShell Tip from powershell.com to be able to connect to it as it is not part of a domain and when PowerShell remoting is enabled it uses Kerberos by default and the Minecraft server is standalone thus Kerberos not working!

Probably I will do some tweaking and update the script later but you can at least see the possibilities and power of using Azure automation!