Ads

Saturday
Mar202010

Disaster Recovery, How do I start?

When you’re first starting out at anything new, not taking on too much is critical for success. This is true for Disaster Recovery Planning. The last thing you want to do is guarantee your boss or a client that you can recover their systems in five hours when the groundwork is not in place to do it. There are a few simple questions that I like to write down when I start planning.

 

What are the recovery goals? You should have a clear set of goals for your recovery strategy. They can be simple, like, recovery critical systems in 48 hours using existing physical tape backups. They can be much more involved, such as, setup an off-site recovery facility, with three hour recovery times and automated data replication. The point is not to create a complicated or unrealistic set of objectives. As you become more comfortable Disaster Recovery as a discipline you can add more layers of complexity. What you are doing now, is establishing a reachable finish line to work towards.

 

Where am I in relationship to those goals today? This question is designed to create a starting point. An image of how far away you are from your finish line. If you continue with the idea of being able to recovery in 48 hours from tape backups, you should be asking yourself questions like, Do I have an existing tape backup strategy? Where are the tapes kept when not in use, and how do I get them to my recovery site? How do I recovery my tape catalog, if I cannot access the original data or hardware?


What do I need to do to meet those goals? How you answered the above questions will determine what you need to do to meet your original goal. If you have an existing tape backup strategy and you keep your tapes off-site with copies of the catalog, you’re in pretty good shape. If you do not, you have some work to do.

 

Are these goals realistic given my resources? Here is the final question that I like to ask myself, and it can be a difficult one to be honest about. You want to provide the best solution, but sometimes that just is not possible. If I am missing critical components, this is also where I identify whether or not I can get those things. For example, if you are keeping your backup tapes on-site and rotating them, that’s great.

 

What happens if those tapes are damaged along with your servers by a burst water pipe in the ceiling?

In this example I would need to find a service to come and take the tapes off-site and hold them securely until I am ready to overwrite them. How do I pay for this? Is there money for it? If not, I would need to find some other means to get the data out of the building on a regular basis.

 

There is a lot more to creating well rounded Disaster Recovery Plan and overall strategy. This is a small step to help get your mind working in the right direction. Do you have to own questions that you use to generate idea? Let me know in the comments.

 

Image Source: globevisions



Tuesday
Mar092010

Software as a Service

Redundancy options like cloud computing, server clustering and hardware load balancers are all the rage in business where a great deal of focus is placed on not only recovery, but being always available. They are very reliable, very scalable and very worth the money. The downside is, the cost can be prohibitive for many companies. These solutions can get very expensive very quickly. Especially if you need to train people who to use them and maintain them.

 

An alternative solution gaining a lot of ground is having the same type of availability, scalability and redundancy offered by traditional appliances,but through software. This is called software as a service. The idea of software as a service (SaaS) is not all that new in the technology world. Its been around since the 1990's, but was largely overlooked as a solution until more recently.

 

SaaS relies on using the internet or the cloud to deliver application availability to customers. This is commonly done by having a vendor host the actual hardware, applications and websites on their own servers. The end-user is given a license to use that service. Like any good license model, access is revoked after payment stops or a contract expires. This is a basic explanation of Software as a Service. If you want to know more, I recommend the Wikipedia entry on it.

 

Lets talk quickly about some of the benefits of using a SaaS solution from the standpoint of an end-user. Lower cost is high on the list. You are not paying for the hardware, infrastructure or staff to support back-end. There might be some upfront and ongoing development costs, but those are more than likely going to be far less then if you hosted in-house. Keep in mind that you are going to get what you pay for, so stay away from the bargain bin when pricing out a SaaS provider.

 

Scalability is another benefit. You are usually able up upgrade your service by jumping into another tier or by adding services in a piece meal arrangement. The time involved in doing this can normally be measured in minutes as compared to days or weeks if you are hosting the back end.

 

Salesforce.com is an example of software as a service (SaaS). The sales team where I work uses it to process and manage leads. On the IT side of the house we use Salesforce's API to pull in reports for management and other interested parties. My interaction with SalesForce is limited to the administration of users and publishing changes to the application. I can tell you its a pretty simple thing to do after you understand how it works. It really is like using an application, but through a web browser.

 

Image Source: xJasonRogersx



Friday
Mar052010

Disaster Recovery the Google Way

I have to preface this post by saying it is in direct response to the “Disaster Recovery by Google post that went live on March 4th, 2010. If you have not read it yet, I would encourage you to do so. I have seen it re-posted and re-tweeted so many times in the channels that I follow, it was impossible not to notice. After reading though it a couple of times, I felt compelled to weigh in on it with my thoughts.


I am not a Google fan-boy by any stretch of the imagination. I do however like most of what they do and use several of their products. On the flip side, I also feel that you need to be cautious of any company their size. At this point Google is closer to being a county than it is a company. I do not what this to feel like a I hate Google rant so I will do this in a compliment sandwich style. First something positive, then some criticism and finally something else positive. If you made it this far, read on for my thoughts.


I love the fact that Google is forthcoming with this type of information. Adding this level of exposure to their Disaster Recovery practices could go along way to getting other people and companies to reevaluate their own solutions. Heck, it might even prompt some to travel down the road of having a “hot” DR site or similar solution. This is all great stuff.


What I did not like was the way the redundancy, replication and synchronicity of Google's Data Centers was laid out in a matter of fact way. Kind of like, this is just how you do this. I understand that this type of post is written for the masses and not intended to go into the details, costs or logistical nightmares that accompany such a setup. That said, what Google has accomplished is not a very common practice for businesses. The fact that Google has spend years and undoubtedly millions of dollars setting this up should not be lost, when talking about how cool this is.

 

Closing this out, I really do hope Google continues to post information like this. They have the audience and the resources to really make an impact on Business Continuity and Disaster Recovery, if they choose to. Some in-depth details would be great. I am sure the folks at Google are doing amazing things that have not been thought of, or widely adopted in the tech industry yet.

Tuesday
Mar022010

Streamlining Any Process

Lately I have been spending a lot of time converting check images from an old system to a new one for my 9 to 5 job. I have around five years of check images to convert and it is taking forever. To give some perspective on this, it take approximately ten hours to index and archive one months worth of checks. That's about 150,000 images. This does not include the work of setting up the document imaging system to do the conversion.

 

This is not a difficult process, just a tedious one that requires attention every 30 minutes or so to keep things moving. As my nature demands, after about two days of working on this, I started brainstorming ways to either speed things up, or automate as much of it as possible. The solution presented itself in the form of a batch file that uses a series of delete , rename and copy commands to replace me. The entire process still takes about the same amount of time, but I do not need to be their anymore to watch it happen.

 

This is a small if not great triumph for me. However, it is not the point of this post. Process improvement is. No matter how big, small, critical or seemingly unimportant a task or job is, there is always room for streamlining. I am not saying you should find an easier way to do mundane tasks. If it is repetitive and there is a way to remove yourself from it, do it. If there is a way to reduce or remove entire steps that are not really needed, do that too.

 

I did this by reviewing in my head, all of the manual steps I was taking to accomplish my goal. Then I began to think about how I could, through the use of a script, perform the same tasks. The end result was about a half-hour of writing out the script, ten minutes of testing and an entire day to now focus on other things.

 

I am a technical person, but you can see how this simple way of thinking can apply to anyone's daily work with varied results. Try it out and let me know the results.

Tuesday
Feb232010

Log Files in Your In-Box

It is not secret I am a big fan of saving time and using existing tools to complete repetitive tasks. If you are like me, then I have a tip for you. Windows Management Instrumentation (WMI). WMI allows you to locally or remotely manage workstations and servers running a Microsoft Windows operating systems. Best of all its already installed in all versions of Windows since 2000.

 

Why am I so over the moon about WMI? Glad you asked. I use to automatically send a report of event logs to my In-box everyday. By the time I arrive to work in the morning, I have waiting for me, an HTML file with all of errors on every server I manage for the last 24 hours. I can scan though them in about fifteen minutes and know whether I need to give something my attention or put it on a to do list. Want to know how you can do it? Of course you do, read on and I will show you.

 

What I am going to explain to you is a tiny fraction of how WMI could be applied. A full list of commands and uses can be found over at http://ss64.com/nt/wmic.html. I am querying the existing logs on a server for warning and error messages, capturing it, formatting for easy viewing, and then sending it though email, via a visual basic script. Trust me, it is easier than it sounds.

 

Jumping right in as I like to do, lets break down the script into parts. The first part is setting the date to yesterday, and setting your event log and warning level and output file. The second part sets up the formatting of the output file and the then use WMI to query and capture the events we are looking for. Lastly we will send the events captured to the HTM file and email it to recipients for review. I have included all of the files needed in a zip, download here.

 

Setting the Date and Output

 

set "evtlog=application" You can change 'application' to be any of the available windows logs
set "source=error" You can change 'error' to any of the different error levels. Information, Warning, or Error
set /a MM=%date:~4,2% This sets the month to the current month.
set /a DD=%date:~7,2% -1 This sets the day to the current day, minus one, or yesterday
set /a YYYY=%date:~10,4% This sets the year to the current year.
Set "zOutPut=c:\Logs\EventLog.htm" Sets the output file to EventLog.htm in the folder C:\Logs


Formatting the Output File

 

There is a lot going on here. This is were the HTML formatting happens, as well as setting the header of the file and labels for what event log and level of error you are querying for. If you want to adjust the colors on the output, this is where you do it.

 

>"%zOutput%" (
echo.^<html^>
echo.^<body^>
echo.^<H3^>^<Font Face=Verdana Color=Blue^>^<P align=Center^>%date% - %time%^<BR^>
echo.Query %evtLog% events^</Font^>^</H3^>^</P^>
echo.^<HR^>
echo.^</html^>
echo.^</body^>
)
>>"%zOutPut%" (
echo.^<Font Color=Green^>^<H3^>^<B^>^<I^>Event Log = %evtlog%^</Font^>^</H3^>^</B^>^</I^>
echo.^<Font Color=Green^>^<H3^>^<B^>^<I^>Warning Type = %source%^</Font^>^</H3^>^</B^>^</I^>
)

 

Below is the meat of the script, where the magic happens if you will. Because we want to get the events for multiple servers, there needs to be a list of servers to search against. This is accomplished by using a text file (servers.txt) with a list of server names and a FOR command.

 

This says, for each entry in servers.txt do the following: Search the application log for error messages that happened in the last 24 hours and order by date and time.

 

FOR /F %%A IN (servers.txt) DO (
WMIC /node:%%A /append:"%zOutPut%" NTEVENT WHERE "logfile='application' AND Type='error' AND TimeGenerated >='%MM%/%DD%/%YYYY%'" GET LogFile, CategoryString, SourceName, EventCode, Type, Message, TimeGenerated /format:hform:"sortby=TimeGenerated" > NUL
)

 

One Note in this section. I had to modify the “format:hform” for work correctly on a Vista workstation. Originally the line was “ format:hform.xsl”, but it was not working. Once I removed the “.xsl” the script worked correctly. You may need to play around with adding that back in if you are using a pre-2008 server or Vista operating system.

 

Creating the Output File

 

Here is where the HTM file is populated with data and a footer note with the data and time is added.

:Cleanup
>>"%zOutput%" (
echo.^<I^>^<Font Size=-1^>^<BR^>%zver%
date /t
time /t
echo.- %username% ^</I^>
)
::cls&echo Done
(ping 127.0.0.1 -n 1)>nul
start email.vbs

 

Emailing the Results

 

Lastly, we need to send the log reports to an Inbox. This is accomplished by using a visual basic script that attached the HTM file to an email and relays it to the recipients. For this to work you are going to need an email server that you can relay off of. I have an internal email server that I can relay off of. If you do not have a relay to use, you could still use the above script and manually go to where the HTM file is created and view it. I like the email option because its harder to forget to look at logs if they show up in your In-box each morning.

 

Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "This is where you add your subject"
objMessage.From = "disasterroy@fakeemail.com"
objMessage.To = "reciepient@fakeemail.com"
objMessage.TextBody = "Add any text you want to appear in the body of your email here."
objMessage.AddAttachment "Add the location of your EventLog.htm file here C:\Logs\EventLog.htm"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "Add the name of the email server you are going to relay off of here"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
objMessage.Send

 

Looking at it laid out on the screen here, the learning curve on this might seem a little high. The important things to focus on are the list of servers in the text file, the the event log and error level setting. Last but not least, the visual basic email script. The rest should pretty much work out of the box.