Thursday, 31 January 2013

LB 2003 to 2010 Exchange Migration p1

I have to go to some company tomorrow to help with their migration from Exchange 2003 to 2010. I've done this a few times but I think that I may have some blagging to do if they choose the co-existence route.

I wrote this in preparation for my visit.

Exchange 2003 - 2010 migration

Planning and Install

1.    Exchange Server 2010 Planning
a.    Is Exchange 2003 running SP2. If not it must be upgraded.
b.    Domain Functional level – must be 2003
c.    Hardware and storage considerations
i.    Run perfmon to find current IOPS requirement
d.    Does the environment require roles at different sites or can all roles be on one server?
e.    Exchange Server Deployment Assistant, or ExDeploy
f.    DR considerations. DAGs require Windows 2008 R2 Enterprise
g.    How many databases should be deployed for easy restoring?
h.    Exchange Best practice analyser – run to determine existing problems
i.    External access requirements:
i.    Additional certificate needed. SAN certificate recommended with “mail”, “autodiscover” and “legacy”.
ii.    How is OWA / ActiveSync published?
j.    What version of Office is being used? Is there a requirement for public folders?
k.    Archiving software – what needs to be done to move this to new server?
l.    What SMTP devices (e.g. MFDs, backup alerts, etc) need to be reconfigured?
2.    Windows 2008 R2 hotfixes
a.    http://technet.microsoft.com/en-us/library/bb691354%28v=exchg.141%29.aspx
3.    Exchange 2010 Installation
a.    Install the Windows RPC Over HTTP Proxy Component
b.    Prerequisites can be installed by the Exchange 2010 installer if SP1 is bundled.
c.    If external domain names are known they can be entered during installation, otherwise they should be entered in step 5
d.    SP1 and SP2 and rollup hotfixes
e.    Exchange best practice analyser – run again
f.    Configure the Exchange 2010 certificate
i.    Is there an internal CA available?
ii.    Provision for a legacy URL (if option 1, below, is to be followed)

Option 1 – Co-existence

Both servers will run in tandem for the duration of the migration. More complicated route but allows external OWA for users on both servers except during the period when their mailbox is moved (move is offline).

4.    Configure the client access server.
a.    Enable Outlook anywhere on client access server
b.    Set the Legacy URL on OWA
i.    Set-OwaVirtualDirectory <CAS2010>\OWA*  -Exchange2003Url https://legacy.contoso.com/exchange
1.    Enable forms-based authentication on Exchange 2003
c.    Change the OAB generation server to the new 2010 server and enable web based access
d.    Install hotfix for ActiveSync
i.    http://support.microsoft.com/?kbid=937031
5.    Publish the old Exchange server via the legacy URL
a.    Import the Exchange 2010 certificate into the Exchange 2003 server
i.    Use this recently imported certificate in IIS on the 2003 server by replacing the old one
b.    Arrange with DNS service provider to create an A record for the legacy URL, which should match the URL in 3.c.ii and 5.b. This can point to the same IP address if the publishing method allows this. E.g. ISA 2006.
c.    Use firewall / ISA to publish the old Exchange server from the new external IP / legacy URL
d.    Disable HTTP over RPC on any 2003 front end servers.
6.    Use ISA / firewall to publish the new Exchange server from the old DNS record.
a.    Users on both servers should now be able to reach their mailboxes via the old URL (and 2003 users should be able to use the legacy URL too).

Option 2 – Migration during maintenance window

The new Exchange server will be published for OWA and then all mailboxes can be moved to the new server. As soon as a user’s mailbox resides on the new server OWA will become available for him or her.

7.    Use the existing external URL and publishing rule on the firewall / ISA to publish the new Exchange server.
a.    The ECP sub site should also be published
b.    Users on the Exchange 2003 server will now be unable to access OWA.

Migration Process 

8.    Once option 1 or 2 above is complete then the mailboxes can be moved using the Exchange 2010 console or shell.
a.    Migration of mailboxes causes a large amount of logs and so disk space should be monitored.
9.    If public folders are in use then they should be replicated to the new server.
a.    .\AddReplicaToPFRecursive.ps1 -server "Exchange 2010 Server" -TopPublicFolder "\" -ServerToAdd "Exchange 2010 Server"

Post Migration processes

10.    Check public folders have finished replicating (get-publicfolderstatistics) move them to the new server:
a.    .\MoveAllReplicas.ps1 -Server "Exchange 2003 Server" -NewServer "Exchange 2010 Server"
b.    Use Get-PublicFolder -recurse |fl name,replicas and Get-PublicFolder -recurse \non_ipm_subtree |fl name, replicas to ascertain whether migration is complete.
11.    The public folder home server should be moved to the new server
12.    Shared mailboxes can be converted to resource mailboxes
13.    Uninstall Exchange 2003
a.    If it is impossible to uninstall Exchange due to remaining replicas in the public folder database then it can removed using ADSIedit before proceeding.
14.    Remove routing group connectors and the RUS using ADSIedit.

Wednesday, 30 January 2013

Log Parser

If you want to analyse IIS logs Log Parser is your man. Install it, cmd to its directory and run the executable followed by SQL query in quotes. Here is an example*:

LogParser "SELECT date, REVERSEDNS(c-ip) AS Client, COUNT(*) FROM ex130130.log WHERE sc-status<>200 GROUP BY date,client"

In this case I copied the log file from an Exchange server into the Log Parser install directory. The results:

date       Client                                           COUNT(ALL *)
---------- ------------------------------------------------ ------------

2013-01-30 *.com 29
2013-01-30 *.com 138
2013-01-30 *.com                                     8
2013-01-30 *.com                2
2013-01-30 *.net                 2
2013-01-30 *.com               276
2013-01-30 *.com   21
2013-01-30 *.com                2
2013-01-30 *.com                1
2013-01-30 *.net                 2
Press a key...
date       Client                           COUNT(ALL *)
---------- -------------------------------- ------------

2013-01-30 *.net 2
2013-01-30 *.net 1
2013-01-30 *.net 1
2013-01-30 *.net 1

Statistics:
-----------

Elements processed: 3034
Elements output:    14
Execution time:     4.34 seconds

* This blog digs deep to find the ins and outs, nooks and crannies, cracks and cheats that help the budding but hungover sysadmin. This is why you can find this example in the Log Parser help menu. It's the first entry.

DR Server Migration

The great virtualisation project mentioned in the last post hasn't really kicked off as I had envisioned and no hardware has made an appearance yet! From the outset this blog has been a roller coaster ride of exciting facts so apologies to my avid readers for the delay here.

Had a simple server move to do yesterday. We moved a switch, a storage server and its associated SAS-attached storage and an ESXi server from one data center to another. A NetApp FAS2050 was decommissioned and lies unused on our server room floor.

The decommisioned 2050 was the snapmirror target but was replaced by a hosted "vFiler". I intend on powering up the old one soon, but what do I have to do to it beforehand? Delete snapshots, that's what:

Show all snapshots on the current controller:
 
snap list

Show the status of the various snapmirrors:

snapmirror status

Delete a particular snapshot:

snap delete [volume_name] [snapshot name]

One of the snapmirrors to the decommisioned SAN was "busy" and so the snapshot could not be deleted. I used

snapmirror abort [source_filer]:[volume_name] [destination_filer:volume_name]

But it told me that it was already idle. So how could I delete a snapshot that was supposedly busy (but was not apparently involved in a snapmirror)?

Well it turns out that that volume was being snapmirrored to the new hosted vFiler and this was causing a lock. I'm not sure, since there are two snapshots for that volume, one for the old destination and one for the new destination, why this would happen but there you go.

Monday, 21 January 2013

Virtualisation Project - Part 1

After at least 6 months of procrastinating, one of the companies I work for has stumped up some money for some new hardware. Presently they have the most ramshackle IT setup that I have ever had the misfortune of witnessing and so, fortunately for me, it will be impossible not to improve upon it.

The title is somewhat misleading in that they already run virtual machines. However, their hosts are scattered across various versions of ESXi, ESX and even GSX (whatever that is) and cannot be centrally managed. Their backups criss-cross the network like the tangled web of a retarded spider. After being mismanaged for years, their Citrix and group policy is beyond comprehension.

So from tomorrow, I will be recording the interesting parts of this project.

ESX 3.5 CLI

Always seem to forget how this works so here is a tiny note on how the above works.

First of all, the syntax:

<command>.pl <conn_params> <params>

Second of all, an example:

vicfg-nics.pl --server 10.1.205.30 --list -l

The example above will prompt for username and password which can be included by using "--username" and "--password".

Thirdly, a link to the guide:

http://www.vmware.com/pdf/vi3_35/esx_3/r35u2/vi3_35_25_u2_rcli.pdf

And finally a link to a more colourful piece of work on the subject (see second comment):

http://communities.vmware.com/thread/176952