in

myITforum.com

Brad Bird at myITforum.com

October 2008 - Posts

  • My HA/Fault Tolerance made front page of today's Tech Republic Network Administrator article!

    I have been blogging for Tech Republic and all my posts have been very well received.

    As I checked my mail today, I was flattered to see yours truly's post at the front of the Network Administrator newsletter!

    Here is the post:

    http://techrepublic.com.com/5208-12849-0.html?forumID=102&threadID=277370&messageID=2626679

    I took some time in coming up with this post and did not include all aspects of HA or fault tolerance.  What do you think?

     

    For great, in-depth, technical training on System Center, check out www.infrontconsulting.com/events.htm.

  • How to determine consulting fees

    I happened on some really useful information today that I would like to share.  The original source is here:

    http://www.consultantjournal.com/blog/setting-consulting-fee-rates

    Here is the information:

    Consulting fees, consulting fees...How do you set consulting fees? Here's a guide to setting consulting fee rates. (It's also applicable to those wondering how to set consultancy fees -- an independent consultant is still a consultancy!)
    When you become a consultant, you'll need to set consulting fees. Consultant pay and fees can be worked out in several ways. Here's some information to help you figure out what clients should pay a consultant (some clients are still prone to consultant fee sticker shock, though). With this in mind, you can determine typical consultant rates -- what companies pay consultants for their hours, days, projects and expert opinions. (This consultant fee guide has some interesting points for hiring a consultant for your business or non-profit and it covers what to pay a consultant, too.)

    Consulting fee models

    The main strategies for setting consulting fees include:

    1. Doubling/tripling your hourly wage

    2. Using a daily rate for consulting

    3. Setting consultant fees by the project

    4. Setting consulting fees based on performance

    5. Setting consultant fees strategically using real-life data

    6. Charging what everyone else charges

    Main Strategies for Setting Fees

    1. Double/triple your hourly wage as basis for consulting fees

    To set fees, some consultants simply take the hourly wage (plus benefits) that they would earn when working for someone else and then double or triple it. If you're doing this, you'll probably find that tripling your hourly wage is the best move. Some consultants choose a triple rate because of what they call the rule of thirds -- one third goes to your real wage, one third to expenses, and one third to administration, low utilization and bad debt.

    ($60,000 salary + $15,000 benefits) / (48 weeks * 40 hours) =

    = $75,000 / 1920 = $39.06

    = 78.12, rounded up to $80 per hour

    Or $39.06 x 3 = $117.18, rounded to $120 per hour.

    Of course, this assumes you use an hourly rate for your consulting services. Many people work out an hourly rate, but actually charge by the half-day, day, project or another arrangement.

    2. Setting a daily rate for consulting (per diem rate for consulting)

    To set a daily rate, simply multiply the hours you work in a day by the hourly rate from the above example.

    8 hours * $80 hourly rate = $640 per day

    3. Setting Consultant Fees by the Project

    Some consultants set their rates by the project. They estimate the number of hours they expect to spend on a project, then multiply by their hourly rate.

    However, some consultants set their project fees using the value the client derives from the consultant's advice. There's an old joke about physicist Niels Bohr that illustrate this principle.

    A company's machine breaks down. The company's owner, an old school chum of Niels Bohr, calls in the physicist for help in fixing it.

    Bohr examines the machine. He draws an X on the side and says, "Hit it right here with a hammer."

    The company's mechanic hits the machine with a hammer. It springs into action. The company's owner thanks Niels Bohr profusely and sends him on his way.

    A few days later, the owner receives an invoice from Bohr for $10,000. Shocked, the owner phones Bohr!

    "Niels! What's this $10,000 invoice? You were only here for 10 minutes! Send me a detailed invoice."

    Bohr agrees to send the invoice. A few days later, the company's owner opens a new invoice.

    INVOICE
    Drawing X on the side of your machine                             $       1
    Knowing where to put the X                                             $ 9,999
    -----------------------------------------------------------------------------------------------
    Total                                                                             $10,000

    4. Setting consulting fees based on performance

    Some clients offer consultants a share of future revenue, profits or commissions, pushing the consultant to a pay for performance model. Others offer the client a commission. Still others offer pay based on the results of the consultant's work. Consulting fees based on performance pose several risks. For example, the company's performance in other areas may affect the area in which you you are measured. It may take months or more to see the results of the work, meaning that the consultant will not see any revenue for a long period, effectively giving the company an interest-free loan. The company may not cooperate with you in implementing your full recommendations, compromising your ability to reach the potential you projected. Moreover, you may have a hard time checking to see whether the client has manipulated results. Can you be sure that your results are being reported accurately?  Most importantly, you shift the focus from high quality planning to short-term gains. If you essentially become a partner by sharing in the client's risk, you lose your objectivity. At the very least, seek a base rate plus performance pay or share of ownership. Sticking to contingency and performance-based fees opens a can of worms.

    5. Setting consultant fees strategically using real-life data

    This strategy involves several steps:

    Setting a consulting fee based on working days

    In this calculation, you base your charges on working days per year.

    52 weeks in a year

    Allow six weeks for vacation, stat holidays and sick time.

    = 46 weeks

    46 weeks x 40 hours = 1840 hours a year

    Determining your billable hours as part of your consulting rate

    As noted above, you have 1840 working hours available each year. However, what percent of your time will be spent on work that brings in money, as opposed to work that helps you find clients but for which you aren't actually paid?

    100% possible hours

    - 20% spent on administration, running errands, paperwork, etc

    - 20% spent on marketing, networking events, website management, etc

    - 10% spent on other non-billable work
    ------------

      50% spent actually working for pay
    1840 hours x 50% utilization rate = 920 billable hours

    Considering bad debt rate as part of your consulting fee

    Despite your best intentions, not all your clients will pay you. Some will take weeks or months to pay, but a small percentage will never pay the bill. So consider this in setting your fees.

    Collection rate: 97%

    920 hours x 95% = 874 hours

    Rate of Pay as Basis for Consulting Fees

    How much would you earn if you were paid a salary at a company?

    $60,000 base salary + $15,000 in benefits = $75,000 salary

    Salary / Billable Hours = Hourly Consulting Fee

    $75,000 salary / 874 billable hours = $85.81

    Overhead rates for consultants

    If you've got the kind of consulting business that entails pure profit, you might not have to worry about overhead. But most consultants need to allow for:

    • rent or mortgage interest
    • utilities
    • maintenance and upkeep
    • property taxes
    • Internet
    • telephone
    • cell phone
    • office gadgets
    • Internet connection
    • laptop or desktop computer
    • printer
    • shipping and postage
    • printer toner/ink
    • home office supplies
    • paper
    • stationery
    • business cards
    • accounting (if you don't do your own)
    • legal services (in some cases)
    • office furniture -- desk, armoire, chair, shelves, bookcase, filing cabinet, lighting, etc.
    • business licenses and permits
    • insurance -- health, life, disability, liability, etc
    • car -- insurance, maintenance, gas, lease
    • advertising and marketing
    • subscriptions
    • professional associations
    • meals and entertainment for professional purposes
    • continuing education
    • professional meetings, conferences and trade shows
    • cleaning supplies and cleaning services
    • other

    Divide the total cost of your overhead by your billable hours:

    $5,000 overhead / 874 hours = $5.72

    $5.72 overhead + $85.81 fee = $91.53 fee

    Profit margin and consulting fees

    As a consultant, you're taking a risk and running a business. So it's reasonable to expect a profit margin on your fees. Consultants usually mark up their fees by 10% to 33%.

    $91.53 + 25% mark up = $114.41

    Since consultants tend to round to the nearest $5, our example results in $115 per hour rate.

    6. Charging what everyone else charges for consulting

    This last tip may seem silly, but sometimes it really does make sense to charge what everyone else charges for consulting. It comes down to what the market will bear and what your competitors are doing. If you fall in line by charging the same as everyone else, you're signaling that you're a worthy (qualified) consultant who plays fairly. You're also making sure you get the base line rate for consulting in your market.

    Final thoughts about setting fees

    No matter what way you set your consulting fees, be sure to use a consulting contract and agreement for consulting services.

    Coming up with your consulting fee for the first time may seem daunting. However, once you've found a strategy in which you really believe, you'll be good to go. You may want to revisit your decision from time to time, taking into account your experience, client feedback and even your competitors' activities.

  • Guidance for OpsMgr 2007 hardware purchasing and sizing

    I was monitoring some community sources today and saw value in dedicating a post to guidance for both hardware selection as well as sizing for OpsMgr.

    There was a post made in April last year.  See below:

    http://blogs.technet.com/momteam/archive/2008/04/10/opsmgr-2007-hardware-guidance-what-hardware-do-i-buy.aspx

    Included was a hardware sizing suggestion sheet.  I have attached the sheet just below:

    Additional information is also available on sizing but it requires that you have an idea of the number of events that will be gathered.  See the product documentation guides for further details on this.

    http://technet.microsoft.com/en-us/opsmgr/bb498235.aspx

    Strictly speaking, the OpsMgr server itself will depend on whether you are using a distributed application installation with the various roles spread on different servers, or an all in one solution where the SQL 2005 database(s) will be housed on the same server that the RMS server role is installed on.

    Reporting and data retention periods for performance data will also impact your choices as will the decision of whether you will use audit collection services (ACS).

     

    For great, in-depth, technical training on System Center, check out www.infrontconsulting.com/events.htm.

  • Putting the RMS in Maintenance Mode in OpsMgr 2007

    I have received quite a few questions regarding my post on this earlier this year.  The original post is located here:

    http://owsug.ca/blogs/brad/archive/2008/07/15/Hot-shot-OpsMgr-maintenance-_2D00_-No-alerts.aspx

    Let me start by saying that I did know about the warnings in advance against doing this. 

    My colleagues and I have tested this several times in our lab with no issues.  To be clear, this is the OpsMgr SP1 installation.  Also, we not only tested this in our lab environment prior to performing maintenance but in the customer's QA environment as well.  In addition, a snapshot was taken of the RMS beforehand.

    The main reason for my post here was to confirm that precautions were taken and putting the RMS in maintenance mode was not done recklessly. 

    My opinion is that this definitely works but conditions in the installation environment will ultimately dictate whether there are issues and so the procedure should be tested in each environment prior to being performed in production.

  • How do I know which Hotfixes have been applied to which agents in OpsMgr 2007?

    I was recently researching this very issue and found this very useful blog post originally made by Kevin Holman.  To add to this, I would like to mention that the roadmap plans for OpsMgr have changed and there is no longer an SP2 scheduled to be released but the entire product will be released as an R2.

    The original post may be found here:

    http://blogs.technet.com/kevinholman/archive/2008/06/24/how-do-i-know-which-hotfixes-have-been-applied-to-which-agents.aspx

    Here are the details:

    How do I know which hotfixes have been applied to which agents?

    As more hot-fixes are applied to our OpsMgr 2007 SP1 environments.... how can we know which hot-fixes have been applied to our agents?  How can we detect an agent that needs patching but got missed?

    In MOM 2005... this was rather simple... in the Admin console, under Agent-managed Computers, there was a column called "version" which incremented the agent version number in most cases.

    In OpsMgr... we do not update this field in the Administration tab.  See graphic:  The version here shows the major version number... like RTM 6.0.6500, SP1 6.0.6278.... etc....

    image

    So.... how do we examine this now for minor updates?

    Create a new State view.  Call it "Custom - Agent Patch List" or something you like.  Target "Health Service" for "Show Data Related To".  You can filter it further to the "Agent Managed Computer Group".

    Then - personalize this view, and show the columns for "Name" and "Patch List"  See graphic:

    image

    Now.... the "Patch List" column isn't super user friendly - because of the amount of text in the single column.... but it will let you see what has been installed.  For instance - here is an example of KB950853 installed:

    image

    To make this a bit easier.... I wrote the following SQL query which does essentially the same thing.... you can create a web based SQL report from this and the data will be much easier to manage in Excel:

    select bme.path AS 'Agent Name', hs.patchlist AS 'Patch List' from MT_HealthService hs
    inner join BaseManagedEntity bme on hs.BaseManagedEntityId = bme.BaseManagedEntityId
    order by path

    If you want to query for all agents missing a specific hot-fix... you could run a query like this.... just change the KB number below (thanks to Brad Turner for providing the idea):

    select bme.path AS 'Agent Name', hs.patchlist AS 'Patch List' from MT_HealthService hs
    inner join BaseManagedEntity bme on hs.BaseManagedEntityId = bme.BaseManagedEntityId
    where hs.patchlist not like '%951380%'
    order by path

    I have noticed, however, that this field, "Patch List" is limited to 255 characters in the database.... which I imagine will run out of space fairly soon.  I will also be interested to see how we handle this table column, once SP2 comes out.... as any pre-SP2 applied hotfixes will no longer apply.

    The Patch List information is discovered and updated once per day across all agents in the management group.

    For a report which shows you the same information, but lets you query for all agent missing a specific hotfix - check out my more recent post with the report download:

    http://blogs.technet.com/kevinholman/archive/2008/06/27/a-report-to-show-all-agents-missing-a-specific-hotfix.aspx

     

    For great, in-depth, technical training on System Center, check out www.infrontconsulting.com/events.htm.

  • Using the Exchange 2007 converted Management Pack and Mail Store Targeting in a Distributed Application - The Good, The Bad, and The Ugly

    I was recently working with another colleague from Infront Consulting on a contract.  My colleague is John Hann, he is a MOM MVP and we were tasked to update a SCOM environment to SP1 and incorporate new features like Savision Live Maps and Cross Platform Extensions to monitor Linux servers.

    While these were also interesting to work with, the topic is on Exchange 2007 monitoring within a distributed application in SCOM 2007.  We tried a couple of different approaches which I will explain.

    The challenge came in treating the mail store as an isolated component to retrieve health state information from that would roll up into the overall health of a distributed application using all of the component relationships that we defined.

    The Good - The mail store is definitely monitored within the Exchange 2007 Management Pack.  Health information, performance information, etc are included as one would expect from the knowledge contained in a product Management Pack.

    The Bad - Our first instinct was to monitor the Information Store service on the Exchange server itself.  This is done easily enough within the Operations Manager console authoring node using the Windows Service monitor Management Pack template.  The problem was that when the mailbox store was dismounted, it reflected a bad health state using information within the management pack, but did not specifically affect the information store service on the Exchange server...

    What is affected then?

    The Ugly - Upon further investigation using the Health Explorer, we found that the Exchange mailbox store rolls up into the MOM 2005 rollup computer role object. (As if that is in any way, obvious...)  OK, so we tried targeting the MOM 2005 rollup Computer Role object and sure enough, the Exchange Mailbox store is a selectable object to be used in the distributed application designer. 

    Job done, right?

    Neigh, neigh...  We tested dismounting the mailbox store again and the health state does show in Health Explorer.  The problem, is that it will not rollup any further to affect the distributed application as desired.

    The Solution - While John and I worked together on this particular issue, I must bow to his experience in creating the monitor and finding the script code that we used to get this resolved. 

    In John Hann we trust!!!

    So, there are a couple of steps here... 

    First, we needed to find a separate way to get the mailbox status.  We used a powershell script for that to check on the mailbox store mount status and write the resulting health state to a log file.  We used the get-mailboxdatabase -status script and parameter to get this done. 

    Then, we created a 2 state monitor targeted to the Exchange 2007 Mailbox Servers Computer Role object.  That, would allow the rollup to work correctly.

    An interesting note here, is that targeting this Group actually affects the health state of the Exchange Server Computer Object which needed to be added into the distributed application designer.

    Here is the BLOCKED SCRIPT

    On Error Resume Next

    Public WshShell, StrApp1, strHosts, strPreCheck, oBag, oAPI

    Set oAPI = CreateObject("MOM.ScriptAPI")

    Set WshShell = Wscript.CreateObject("WScript.Shell")

    Set objFileSystem = CreateObject("Scripting.FileSystemObject")

    OutFile = "c:\mbx.ps1"

    objFileSystem.DeleteFile OutFile

    Set OutputFile = objFileSystem.OpenTextFile(OutFile, 2, True)

    OutputFile.WriteLine "get-mailboxdatabase -status | select-object name,mounted | export-csv " & chr(34) & "c:\mb.out" & Chr(34)

    OutputFile.close

    Set OutputFile = Nothing

    InFile = "c:\mb.out"

    objFileSystem.DeleteFile InFile

    strPSCmd = "PowerShell.exe -PSConsoleFile " & chr(34) & "C:\Program Files\Microsoft\Exchange Server\Bin\ExShell.psc1" & Chr(34) & " -Command c:\mbx.ps1"

    WshShell.Run strPSCmd, 0, True

    strDisMounted = ""

    strStatus = "All Mounted"

    Set InputFile = objFileSystem.OpenTextFile(InFile, 1, False)

    InLine = InputFile.ReadLine

    InLine = InputFile.ReadLine

    Do While InputFile.AtEndOfStream <> True

    InLine = InputFile.ReadLine

    Items = Split(InLine,",")

    If Items(1) = "False" Then

    strDisMounted = strDisMounted & Items(0) & VbCrLf

    strStatus = "DisMounted"

    End If

    Loop

    InputFile.Close

    Set InputFile = Nothing

    objFileSystem.DeleteFile InFile

    objFileSystem.DeleteFile OutFile

    If strDisMounted = "" Then

    strDisMounted = "All Mailstores Mounted"

    End If

    Set oBag = oAPI.CreatePropertyBag()

    Call oBag.AddValue("Status",strStatus)

    Call oBag.AddValue("Mounted",strDisMounted)

    Call oAPI.Return(oBag)

    Now for the monitor:

    image

    image

    image

    Important Syntax here is: Property(@Name='Status').  This needs to be associated with "dismounted" for a "Critical" state and "All Mounted" for a "Healthy" state.

    Now the job is done!

    For great, in-depth, technical training on System Center, check out www.infrontconsulting.com/events.htm.

  • Mad Scientist fever, time to experiment with upgrading my Dell Latitude part 2

    OK!  I received the drive caddy.  The blank drive caddy had p/n 4P124.  I am not sure if that is a Dell p/n but the part arrived from http://www.parts-people.com.  I went out and got a 120GB 5400RPM 2.5inch laptop internal IDE drive.

    Now, I built my bootable USB stick to install an OS on the new drive which has detected beautifully and dual-boot this puppy.  For instructions to do this, see:

    http://owsug.ca/blogs/brad/archive/2008/10/01/Making-a-USB-stick-bootable-for-Vista-or-Server-2008.aspx

    Success!

    Incidentally, in the boot sequence and as detected devices, Modular Bay drive shows up.  I have no idea what Dell was thinking that this part did not exist...  I installed my second OS and now have a dual boot configuration 1 OS on each drive.

    Experiment complete.  I now gained way more functionality from my laptop with a second internal drive!

  • Making a USB stick bootable for Vista or Server 2008

    Wow, after trying this out I could not believe how easy it was...

    I was working for a couple of hours last night with MagicISO to no avail.  I needed no utilities...  Just CMD and diskpart.

    Here is what I did: (Thanks CANITPRO Blog!!!)

    Open Disk Management and determine what Disk # your USB stick turns up as.  This is REAL important...

    Open CMD and launch diskpart:

    1. list disk (this will confirm all disks and that your USB stick is selectable)
    2. select disk x (This is your disk #)
    3. clean
    4. create partition primary
    5. select partition 1
    6. active
    7. format fs=fat32
    8. assign
    9. exit

    Now, just copy the contents of your Operating system ISO and away you go!  In my Dell Laptop, I needed to make sure that USB storage device was before internal hard disk...  The F12 key would not do it for me...  Just an FYI.

    Cuts the install time by more than 50%...

Copyright - www.myITforum.com, Inc. - 2010 All Rights reserved.
Powered by Community Server (Commercial Edition), by Telligent Systems