Wednesday, April 17, 2013

Create a Hyper-V 2012 cluster with Hyper-V servers from scratch Part1, design

the last weeks i have installed and configured a Hyper-V cluster host environment. this was the first time i have done this and i can tell you: it is quite a task! In this case the decision was made to install and configure a Hyper-V 2012 environment with Hyper-V 2012 server from scratch. Because of all things i encountered with this installation, i think this post is worth sharing. About the installation of a Hyper-V cluster with Hyper-V server 2012; this is easier then before because a lot of difficult tasks (and command lines/scripts) are done with the aid of the new Server Manager of Server 2012 let’s dive into it.

Installation overview



The next figure shows the steps to be taken to get to a fully functional Hyper-V environment.
if this is the first time you do this (like me)please keep in mind the entire installation and configuration will take much more time than the installation of a single host because of all networking components surrounding a hosting environment like this, all management functionality and the massive storage that also has to be configured.

In this case there are 3 hosts, keep in mind: with Hyper-V 2012 server you can build clusters with up to 64 nodes each comprising of a maximum of 320 logical processors and 4Tb of RAM!






overall the steps are: design – install Hardware- install OS – Configure Networking – Configure Vswitches – Configure VM management – configure VM’s

in this post i will not elaborate on the hardware- and OS installation and step right into the networking part.

Networking


with a design like this al lot of work will have to be done on the networking part of a cluster like this. in this case the design looks like this:





the core of the design is the Hosting environment, in this case 3 physical hosts are used in combination with a SAN. all these components are connected via Networking based on TCP/IP.

with all communications coming- and going from a Hyper-V Host the following networks are needed:

Network Purpose Communicating Items Type of communication
Backend (V)LAN Cluster communication and optional Backup Host – Host Fast (1Gb or more) TCP/IP, isolated network
Production (V)LAN All normal communication to- and from the production VM’s VM – Client Fast (1Gb or more) TCP/IP, open network
Management LAN Communication to the Hosts, the cluster and VM management from IT administration Host – IT administrators
Host – VM management
Fast (1Gb or more) TCP/IP, open network
Storage LAN all communication to-and from the storage Hosts – Storage ultra fast (10Gb or more), isolated network
LiveMigration LAN Live migration communication Host – Host
Host – VM management
preferably ultra fast (10Gb or more) , isolated network

In the environment i build a choice was made to combine the Backend- and LiveMigration LAN in one connection. the isolated network will not receive DHCP addresses so they have to be configured with static IP addresses, the open networks can possibly receive DHCP. with static IT components like this, however, it is highly recommended to install only fixed IP addresses on these components.
now a table of IP addresses should be made in which all IP addressing will be specified.
that’s it for today, see you next time

Friday, April 12, 2013

Fiddling around with the ActiveDirectory PowerShell module part 1

It has been a few weeks since my last post and i feel obliged to blog something today. so i think the Active Directory module is worth mining. today a simple PowerShell script to list User membership in the AD.

since the AD cmdlets are very extensive it took me a little while to find out how to get group memberships out of the AD. This little script will show the membership of a user from a AD group and it will save it into a Excel workbook.



Import-Module ActiveDirectory
$a = New-Object -ComObject excel.application
$a.visible = $true
$b = $a.workbooks.add()
$C = $b.ActiveSheet

$c.Cells.Item(1,1) = "Login ID"
$c.Cells.Item(1,2) = "Member Off"
$i = 2
$group = "Enterprise Admins","Domain Admins"

foreach ($grp in $group)
{$users = Get-ADGroupMember $grp
foreach($_ in $users){
$c.cells.item($i,1) = $_.SamAccountName;$c.cells.item($i,2) = $grp;$i=$i+1
}
}
$b.SaveAs("C:\Powershell\Adminsreport\Admins.xls")
$a.quit()