Of all the bits of System Center to come out next year it is Orchestrator (SCO) I am most interested in, as it is one of the enablers to create a private cloud. It’s a new bit of the System Center suite and is the glue that not only integrates the rest of System Center, but also most of the popular non-Microsoft tools in the systems management space e.g. HP, BMC, CA, Symantec and Vmware. It has been developed from the acquisition of Opalis, and if you were familiar with that, Orchestrator is very similar except it is now in .Net and has a much simpler installation process.
Very simply, if you have to do the same task more than ten times then it's probably something that should be automated. For the low level techie this might mean scripting in PowerShell, and although this might work and you might be able to reach all of the moving parts you need to, it is difficult to change, maintain and debug. On the other hand, Orchestrator allows you to map and design the process visually with very little coding:
Creating the right runbooks will transform your data centre into more of a private cloud, for example:
If all that sounds interesting then the beta of Orchestrator is now available to download. If you do plan to evaluate it, here are few things you need to know:
I recorded my installation process here if that helps..
next Saturday I’ll show you how how to design a runbook to interact with virtual machines using the integration pack for System Center Virtual Machine Manager
One of the few niggles I have about working at Microsoft is the way we try and put you the reader into pigeon holes, and an area where this fails for me is when it comes to SQL Server. My developer friends won’t go near SQL Server unless they have to and this things like LINQ / Entity Framework in Visual Studio try and merge these two different worlds. However there is a lot of good stuff for developers in the later versions of SQL Server, be it new data types , new ways of working with data like FileStream and StreamInsight, or the data tier application for easier deployments.
In an effort to try and get developers to feel a bit more love for SQL Server, my fellow American evangelist Roger Doherty, produced the Developer Training Kit for SQL Server 2008R2. The good thing about this is that he keeps updating it to reflect each release and to add more labs and examples, but he’s also left the SQL Server 2008 stuff in there as well if you aren’t on the latest version. It’s got short punchy videos and more importantly labs for you to work through.
But back to my point about Microsoft audience segmentation what is a developer?
I think anyone working with SQL or in BI is unless your only job is to back it up then chances are you are changing things, hopefully for the better and that’s a good a definition of development as i have got. So if you’re working SQL Server you’re a developer and so you should have a look at this excellent resource.
On a final note Roger is in the UK for Expedition Denali 29th June in Reading , and is also at the BI Event of the Year the following day in London co hosted by IMGroup
The voluntary sector is a actually quite similar to the rest of business it’s just that the profits are then used to drive the aims of the not for profit or charity rather than benefitting shareholders or partners. So the challenges of market share and operational efficiency are just as relevant to the voluntary sector and therefore they way that software is used in these organisations is in itself relevant to anyone.
Global Xchange is on such charity, they provide youth volunteer services as part of the VSO and British Council both overseas and more recently in the UK. Persuading people to donate charities is one thing but to get them to give up their time is much harder and so the reasons must be compelling, and if your website is your main communication engine, then that then needs to be compelling. So Global Xchange commissioned Rubicon to create a rich social media experience which could be kept fresh without any input from the IT team…
Another part of the Rubicon brief was to allow potential volunteers to go through a process to get access to the Global Xchange extranet once they had been accepted so that they could share documents and resources when they were on the ground working on their volunteering project. They could also share their experiences to encourage the next week of young people to sign up as well. I think this is a great job and so do Global Xchange as this video short shows..
So a rather unusual project and Rubicon took the rather unusual step of building the whole solution around SharePoint 2010 as that gave them the basics of content management, ease of use and is relatively easy to set up to be accessible outside the organisation as well as inside. Rubicon did develop a number of custom web parts to meet the requirements(e.g. being able to create user defined cascading menus) but the fact that this is possible shows how flexible this platform is. In fact there is very healthy ecosystem around SharePoint with a number of niche partners specialising in BI, records manager and in the case of Inframon using it as a front end for System Center to show how the data centre is behaving.
A final thing to note is that this is a hosted solution and this gives this small organisation the flexibility to grow and expend the site to match demand without having to predict and bid for more resources internally.
I spent yesterday afternoon at a CIMA members meeting to discuss enterprise 2.0, on the back of some commissioned research by Manchester Business School (Heba El-Sayed and Chris Westrup). It occurred to me that a lot of this plays well into the world of the IT professional not least because both professions are under the same sort of threat, the loss of work to outsourcing, and automation. However more importantly accountants see cloud, BI and enterprise 3.0 as all parts of the same thing. In another presentation the top reasons to move to the cloud were cited as:
These accountants don’t seem too worried by security and cite such examples as ADP, the world’s largest payroll company which is now all online. However the most alarming thing about the various presentations was a lack of knowledge about what the cloud is in its various forms. For them it is essentially software as a service i.e a vendor supplying their application from their servers. For me this is a classic example of the sort of thing the future IT professional should be doing - advising other parts of the business on new technology and how that translates into value for the business. You would also quite rightly explain some of the risks and implications such many of which would also apply to outsourcing and hosting:
So I would suggest that you initiate these conversations to show your thought leadership and support for the business as these discussions are going on in any case, and you should be involved. If you need help to articulate thinking and evidence to back it up your starter for ten would be the Microsoft’s cloud portal and for extra points on 21st June Simon and I will be looking at Governance Risk and Compliance in the cloud in our next TechDays Live session (BTW these sessions are recorded if you can’t make the date).
I get the occasional criticism about SQL Server that all then new stuff is related to BI, and there isn’t anything for the traditional or grumpy DBA (aka Colin Leversutch Roberts). Listening to Tom Casey (corporate vice president within the Microsoft Business Platform Division)of at the SQL Social last week, the only way to make SQL Server transactions perform faster on a given bit of kit is to take stuff away. A good example of this in Denali is the new Always On capability which combines Windows Server clustering technologies and database mirroring to give:
Making these secondaries readable is the key to transaction performance:
However there is also one add-in in Denali that might speed up transactions; column based indexes. As the name suggests these store columns of data in pages rather than in traditional databases where rows get stored in pages. This offers massive performance benefits and these indexes can be significantly compressed as the values in any column or often similar. So if a transaction needs to a lookup then these indexes could help, of course you’ll need to testy that and the use of these indexes will just show up as part of the query execution plan like we have in earlier version of SQL Server.
BTW If you are in Manchester (15th June) or Leeds (16th June) I’ll be at the SQL Server User Group meetings to go into some of this in more detail.
* In mirroring the live database i.e. the one that transactions are first is called principal, the offline copy is called the mirror and in all earlier version up to Denali there can be only be one mirror
No one except startups will completely embrace the public cloud immediately. This means that a mixed environment of some services on site and some not will persist for some time in many organisations. For any given service, a decision will be made about where to put it , in the public cloud to expand business opportunity and change the costing model for it, or to keep it under tighter control and keep it in house.
The tools and techniques to make this a really simple process are only just emerging and of course the application itself has to have some changes to make flexible enough to cope with this.While many applications can be ported to azure whether they are .Net, Java or PHP to make them work properly they will probably need some changes if only to make them more fault tolerant to cope with the longer latency and distributed nature of the cloud.
But that’s not the world of the IT Professional. Our world is managing infrastructure and in the Microsoft world System Center is front and centre for this and this is evolving to enable unified management of what is referred to as hybrid cloud:
There are also the management tools in Azure itself including the database manager for SQL Azure and Data Sync to keep an on premises database in sync with its cloud counterpart.
Simon and I are back on air for TechDays OnLine next Tuesday for a session on Mixing and Moving Services between the Private and Public Cloud and I can think of three reasons why you should tune in…
Proper
Preparation &
Planning
Prevents
Pathetically
Poor
Performance
I mention this because the process of working out how to make changes to your data centre can and should take longer than doing the actual work. For example if you are going to dive into virtualisation or do more with it, upgrade or migrate your database servers then a lot of testing and checking needs to be done. It’s even harder if you are planning to change platforms. It’s really hard if you don’t even know what you’ve got and thus migrations and updates can be a great opportunity to de-clutter the servers and applications you have.
But where to start? If it were me I would try to work out the size of the problem and to do that I would use a killer utility, the Microsoft Assessment & Planning Toolkit (MAPT). Essentially this casts a microscope over your infrastructure and comes up with a load of analysis and recommendations. Obviously it can only do this if you give it high powered access to your systems as it needs to interrogate active directory, the network, WMI etc. to work. If you want to connect to non Microsoft servers such as linux , MySQL Vmware etc. the tools allows you to enter credentials for that as well.
I have two uses for it one is spotting wild copies of SQL Server which gets installed all over the place with various third party applications, :
and secondly to make recommendations about what servers could be virtualised and how that will work on a set of physical servers you specify.
(BTW the insufficient data is nothing to with my blog it’s just that there were some redundant entries in my active directory and the toolkit couldn’t find them.
There are three other things it does:
1. logs performance of the servers you select enabling you to establish a baseline for planning. 2. Gather an inventory of the software you have. 3. A reference section linking to solution accelerators to help you implement your project.
1. logs performance of the servers you select enabling you to establish a baseline for planning.
2. Gather an inventory of the software you have.
3. A reference section linking to solution accelerators to help you implement your project.
The Toolkit is under constant development, at the time of writing its up to version 6 beta, and this version also has assessments for migrating databases to SQL Azure and readiness for Office 365 .
My Desktop counterpart Simon May posted a great article on How the public cloud affects your IT department so here’s my corresponding thoughts on the private cloud..
Firstly the Private Cloud definition Microsoft uses is from the National Institute of Science & Technology. For me this about taking best practice from running large scale data centres and making it available as techniques and software to those organisations who can’t or won’t move their services to a public cloud provider. This efficiency comes from automation; automation to respond automatically to known events and automation to requests for change from customers.
Automation means less human intervention, giving repeatability and consistency with a by product of reduced response times to requests. However the human bit of human intervention is the IT Professional so does that mean that they are so much excess baggage in a modern organisation?
To answer that I will use the same roles Simon used in his article:
The helpdesker (a.k.a. Frontline support analyst)
These guys are still needed especially in dealing with the “how do I?” request from the users, but of course their ability to help individuals will be limited by the service level the business want from the help desk. Cutting back the help desk can be short sighted as their ability to help the user population can greatly increase their productivity, but this is hard to measure and therefore this might be under threat as well.
In a private cloud world a helpdesk request for “fix it for me it’s broken” , should mean that the helpdesk team will know about some issues before they arise because of there will be management tools like System Center in place. The service monitoring tools will tell them that a service is down while the desktop management suite will pick up any issue with the user’s desktop ( be it physical or virtual) before they do. So less time spent searching for what’s wrong leaving more time to concentrate on resolving the issue.
The desktop technician (a.k.a. 2nd level support, a.k.a “Dave in IT”)
If the desktop itself is the problem then in a private cloud style world this is either a commoditised or virtualised and can be swapped out. Even in the world of VDI the desktop is the desktop and most tech problems are down to drivers apps and connectivity, so these guys will still be pretty busy. However remote administration either with EasyAssist in Win 7 or Remote Desktop means that problems can be solved remotely. In my world Dave is a guy in Salt Lake City or Ravi in Hyderabad depending on the time of day. This is a good thing as we have 24 hour cover and we can be green and inclusive in our workforce by giving these people the tools to work at home.
The other key request that goes through the service desk , is requests for something new be it an application, a service on a virtual machine or a new starter will all be automated once the request has been through an approval process. This will have an impact on the size of the team but this should be offset by spending more time on strategic projects like implementing upgrades and designing new services.
The server huggers
On the surface of it, the private cloud is much more likely to the number of data centre administrators by allowing each one to manage many more servers (be they physical or virtual).
Actually these guys are already in decline as physical servers are virtualised. However virtualisation alone is NOT private cloud so this decline could be offset by out of control virtual server sprawl. However the routine administration of servers has already been outsourced in many companies and government departments, and the pressure is on the large system integrators (Cap Gemini, CSC, EDS etc.) who now run those data centres to make further savings and pass them onto their customers.
So for my money the only roles at risk are the ones that involve a lot of repetitive process, and lets face humans aren’t too good at that. Of course this type of work has already been eroded by offshoring and outsourcing so actually Private Cloud is just evolution not revolution here. Also skills in data and user management will continue to be required as before no matter where the database, mailbox , content management system actually is. The other thing to bear in mind is that the automation the private cloud brings to the data centre will be balanced by increased demand for richer services , compliance and the raw demand to store more stuff.
Summary
I think uncertainty is the issue here; uncertainty about the survival of your business, the future of your role in it, and if you have been doing the same thing for a while what else is out there. I can’t advise you on how to fix your business but the mitigation for all of theses issues is education and training. You don’t needed to outrun the lion of redundancy you just need to be running faster than the other guys he’s chasing, and to do that in a toughening job market you need more skills and the right attitude.
So my top tip would be to start with the free Microsoft Virtual Academy before going on to some wider or later certification. If you aren’t in work at all right now then Britain Works would be the place to start.
I have been at TechDays Live all last week and although I did a bit of presenting, I was mainly there to listen and keep the week running smoothly. I scribbled down a few notes during the various sessions I was in which I thought might be of interest:
so that I could understand how the various roles work together, however Simon and I spent quite a bit of lab time helping the developers get all the prerequisites installed. Where we couldn’t fix the problem (e.g. delegates on XP can’t run IIS 7) I ended up doing some ad hoc VDI from my uber Dell Precision M6500 which was pretty good considering we were running Azure and remote desktop over RDP for four sessions over the one adapter. The lab was pretty straight forward otherwise and despite my lack of c# skills I got through it so it might be good to do re run for IT Professionals interested in the cloud let me know what you think
The decks for the week will all be available from the site where you registered as well as the session recording, and I’ll update this post with the links.
My favourite thing Windows 7 working together with Windows Server 2008 R2 is DirectAcess, not because of how cool the technology is nor because its just built in, but because it gets me out of jail on so many occasions. If you aren’t aware of it, it’s the power of a VPN without all the pain of it either for you or for your users. I mention it now as I had to pull down decks from our team SharePoint site for UK TechDays Live while at this event just a few minutes a go. Despite the appalling network speeds at the venue all but the ports for http and https (80 & 443), I got what I needed.
Not only that but some of the Microsoft speakers at TechDays could leave their demos in the office and run them from the event over remote desktop services (albeit form a wired connection on stage to get the necessary speed).It has also just annoyed me – I typed “directaccess” into IE9 and it took me to an internal site rather than executing a search on Bing so I could put some resources into this post – doh!
This is not the only example where Windows 7 and Windows Server 2008 R2 can be combined to create extra functionality, and these often get missed as they don’t fall into specific discussion on desktops or data centres. To fix this Simon and I have decided to rectify this and do a specific session on this dynamic duo as part of TechDays Live. We also want to try out out more collaboration in the Live Meeting to make it more informative and collaborative so do register and join us live if you can to participate.
Many of us couldn’t afford to make it Vegas for the MMS 2011 so in the UK last month the UK TechNet team put together a one day event Best of MMS and we managed to get quite a few of the US speakers over for that. However that day was quickly sold out, and I know many of you couldn’t get to it because it’s now very hard to get a day out of the office, and justify travelling expenses etc. So everything was filmed and you can now watch these here as well as download all the decks from the day.
However watching someone else playing with all the new stuff or making sense of a side deck from an event you didn’t go to is only so exciting, personally I would rather have a go myself and now we can..
The System Center engineering team has announced its Community Evaluation Program (CEP). Members of this program are able to evaluate early versions of products with guidance from the product team and by sharing of experiences and best practices among a community of peers. Multiple programs are now open and accepting applications including:
Configuration Manager 2012 Beta 2 - Program starts April 2011 · Download the Datasheet · Apply to Configuration Manager CEP Virtual Machine Manager 2012 Beta - Program starts May 2011 · Download the Datasheet · Apply to Virtual Machine Manager CEP Forefront Identity Manager 2010 R2 - Program starts June 2011 · Download the Datasheet · Apply to Forefront Identity Manager CEP Orchestrator 2012 Beta - Program starts June 2011 · Download the Datasheet · Apply to Orchestrator CEP Operations Manager 2012 Beta - Program starts July 2011 · Download the Datasheet · Apply to Operations Manager CEP
Configuration Manager 2012 Beta 2 - Program starts April 2011
· Download the Datasheet
· Apply to Configuration Manager CEP
Virtual Machine Manager 2012 Beta - Program starts May 2011
· Apply to Virtual Machine Manager CEP
Forefront Identity Manager 2010 R2 - Program starts June 2011
· Apply to Forefront Identity Manager CEP
Orchestrator 2012 Beta - Program starts June 2011
· Apply to Orchestrator CEP
Operations Manager 2012 Beta - Program starts July 2011
· Apply to Operations Manager CEP
To apply and for more information about the program, please visit Microsoft Connect
I’ll also be knocking out a few install and configure videos as I find the best way to learn is to explain to someone else.
I caught a really good presentation from Chris Kranz(www.wafl.co.uk and @ckranz), Principal Solutions Architect responsible for Storage and Virtualisation projects at leading Systems Integrator, Kelway (UK) Ltd. at the Leeds VM user group last month. Chris first encountered virtualisation technologies back in 2005 with early releases of VMware ESX and has since gained the highest level of certification with VMware and continues to expand his knowledge with Microsoft and Citrix virtualisation technologies.
His talk was on virtualising tier 1 SQL Server applications and he has kindly translated this into a guest post - take it away Chris..
There are some real challenges around virtualisation at this stage, but (un)fortunately most of these are due to being over cautious about the technology now available or holding on to some of the key concepts and fears from when virtualisation first burst into the x86 market some years ago.
Many people have now started the journey into virtualisation, and many have a little experience of the process of virtualising smaller applications. This has been hugely successful and a favoured route for people to follow while they are getting to grips with this new technology. Grab the “low hanging fruit” and virtualise these first, then learn from mistakes and move on and up the service stack. The challenge comes in that many people stall at around 70-80% virtualised; around this time we get to the business critical or performance sensitive applications. Through the initial virtualisation process, performance issues and capacity issues are often encountered and dealt with through the normal learning curve, but this creates a concern and business hesitance for tier-1 applications, specifically for SQL DBAs!
However an important point to understand is that virtualising tier-1 applications should not be the same as virtualising the rest of the infrastructure! Tier-1 is very important and business critical, so why consolidate this? The platform costs are rarely an issue as these systems pay for themselves through business services and their availability is hard to put proper costs on as they are critical to the business actually functioning. So we need to create new rules for virtualising tier-1 that are different from standard virtualisation.
A very important statement to drill home: “Good practices are industry recommendations. Best practices are validated by yourself based on your services”. Don’t believe everything you read and make sure you validate your design yourself. Even this article here, validate my recommendations and others to prove that they work for you. Public Enemy said it best: “Don’t believe the hype”.
Check with your vendors and resellers about licensing and support. Many software vendors are now fully on board with virtualisation, Microsoft have the Microsoft Server Virtualisation Validation Program (SVVP) and VMware have an ISV portal specifically designed to encourage ISVs to get VMware approval. Hassle your ISV if they haven’t certified yet! CPU’s can be restricted in virtual environment, so you could actually get license cost savings. Make sure you do your research though! There’s no point in me covering the specifics of licensing here as the vendors seem to change their mind quite often! Different licensing models may be more effective for you once you are virtualised from how you license the systems today.
Virtualisation efficiency has improved phenomenally over the years. 6 years ago when I first got into virtualisation the overheads were 20% or greater, but today with better CPU efficiency, hardware offloading and general hypervisor improvements, the overhead should be less than 5% on CPU, and memory. IO throughput is large enough to satisfy even the most resource intensive applications. The advantage of virtualisation is that you have the ability to choose between scale-up and scale-out with fairly easy and simple management and control. Both offer their own arguments and different styles in making your infrastructure agile, although a scale-out approach tends to be favoured to create a more modular infrastructure. Remember this is just one point of view, work out what works best for you and validate!
Scale Up Approach
Scale Out Approach
Multiple databases per VM
Single databases per VM
Fewer VMs
Better workload isolation
Greater single point of failure
Easier change management
Larger VMs (SMP overheads)
Load balancing more effective
OS bottlenecks
Faster migrations
Less flexibility or load balancing
Greater performance due to multiple BUS and IO planes
Greater impact on maintenance
Quicker provisioning
While you’re analyzing the infrastructure, consider moving the servers to a scale-out design when virtualised. This will make the adoption quicker as you can migrate single instances and applications rather than entire database servers. This will also minimise any downtime or impacts of configuration issues as you migrate and the effected services will be greatly reduced. Another nice feature of virtualisation is being able to create virtual appliances. This allows you to tie a database server to an application server and package these up. This is really compelling when you come to consider moving to a shared infrastructure as you can pickup individual applications and services and move them around much more flexibly.
While talking scale-up / scale-out it is important to ask the question, do you really need multiple CPUs? Do you understand the overhead that SMP can cause? Now while you may never question that SQL requires multiple CPUs, do other VMs that share the same hardware require this? Whenever you move from 1 CPU to 2 CPUs you add the overhead of CPU scheduling. Every CPU thread needs to be scheduled at the same time, and if that number of cores is not available, then the CPU is put into a wait state and the transactions pause. Additionally don’t forget the hypervisor. A SQL VM with 8 vCPUs assigned to a dual socket, quad core system will be in direct competition with the hypervisor as the SQL VM will be requesting all CPUs at once. This is important in the planning stages as you don’t want to create this sort of contention. Remember that with Windows 2008, CPU and memory can be hot-add to virtual machines. I have seen application servers run quicker as single CPU servers because of the CPU scheduling overhead on a larger shared infrastructure. Do you testing and don’t give away SMP unless it is proven to give a performance improvement.
Remember to read and follow the Microsoft best practices for SQL deployments. These don’t change critically just because it’s a VM, you should still follow the basic rules defined by Microsoft. Evaluate your load and run your performance planning when the SQL server is under intensive load. It’s no use getting the capacity reports for a 5 day business week if the SQL server does a huge amount of batch processing and backups over the weekend! While you’re sizing the solution, make sure you consider the back-end storage requirements and the connectivity media. 1GbE iSCSI may not be able to deliver if you are serving storage over 4Gb FC today. This can have a huge impact on performance if it’s done wrong! Also consider defragmenting your SQL databases (http://support.microsoft.com/kb/943345). This can have a big performance benefit to your SQL server, but make sure you consult your storage administrator as it can have a major impact (negatively) on the SAN! Monitor all aspects of the existing implementation, including disk performance and queues. High queues could show that there is an existing bottleneck that may be hiding other potential configuration issues. Make sure that you always have dual paths to the storage and you are using full multi-pathing software when it is available.
When sizing and placing the storage, don’t forget to consider that multiple virtual disks on a single data store or LUN will not provide physical IO separation, and you may require this for separating database files or logs. Make sure the back-end storage is built in such a way that you are using as many spinning disks as possible, or if you are lucky enough to have SSD or Flash, make full use of what is available! If you separate data files for each of your databases (which can be a very good idea to effectively spread the database load across multiple storage areas), make sure you use equal sized data files. SQL uses a proportional fill algorithm that favours allocations in files with more free space, so if these are all equal in size, the allocation across all files should be equal. Hopefully it should go without saying that you should pre-size the data files, both for databases and logs. Auto-grow can have a huge impact on both performance and data fragmentation (which will affect all future read performance), if you haven’t sized the data files effectively at the start, then grow the database manually to prevent too many file extensions! If you do use auto-grow, set the growth iterations large enough to minimise the number of extensions a database will have to make. Make sure that log files are designed the same way; pre-size these for the expected load (typically 10% of the database size). A good rule of thumb is that a separate TempDB should be created for each CPU in the system, so size for the number of vCPUs. Testing has shown that above 4 TempDBs, the performance improvements start to diminish, so look at a ceiling point of 4 TempDBs (even with 8/16 CPU systems).
Monitoring the performance is probably the most important aspect of virtualisation, especially after you have virtualised. It helps you pre-empt any configuration issues and plan for performance growth and requirements. Some key areas to monitor from within PerfMon are the following…
These should give you a good overview of how the system is performing. Also check performance at the hypervisor level and make sure you don’t have any contention issues. A traditionally simple way to diagnose CPU contention issues is if the clock is more skewed than you expect as the system clock usually relies on CPU cycles.
Virtualising SQL should not be such a dangerous project, and if you approach it carefully with a clear plan of what you want to achieve and how you want to achieve it, it will be a success! You don’t need expensive infrastructures or lengthy consultancy engagements, with the above information and knowledge you should be able to approach this and succeed.
The last thing I’ll leave you with is this: validate your own designs and develop your own best practices! My recommendations are only good practices!
While Excel is definitely the most widely used BI end user tool, SQL skills are often needed to get data from a source and into Excel be that Excel stand alone or with an add-on like PowerPivot. There are many big differences between Excel expressions and SQL but it’s the little ones that floor us sometimes in this case the difference between the way BLANK works in Excel and NULL in SQL:
In SQL:
NULL + 3 = NULL
NULL + ‘Deep Fat’ = NULL
However in Excel if I have a cell with nothing in it say AF1 such that =ISBLANK() returns TRUE or 1 then:
=AF1 + 3 returns 3
=AF1 & “Deep Fat” returns “Deep Fat”
This divergence goes back a long way and to change it now would be like trying to get us to drive and the same side as the road as the French.
Anyway just FYI as it caught a few of us out the other day but I am not naming any other names!
“Happiness lies in being privileged to work hard for long hours in doing whatever you think is worth doing.”
- Robert A. Heinlein, “To Sail Beyond The Sunset”
I want to make two comments about that quote; firstly it pretty much sums up working at Microsoft, secondly that is on an e-mail signature of one of my colleagues Dave Wickert (PowerPivot Geek) and illustrates some of the freedom we have. This ethos is partly why I stay at Microsoft, the other being trust and mutual respect; I am trusted to be smart on my blog and my ideas are respected on merit.
I mention this because occasionally I am asked if there are any jobs here, and yes there are, all detailed on the Microsoft vacancies portal for the UK. It’s how I applied 4 years and although the process was time consuming and tough I can definitely say it was worth it.
So if you want to do what you love then you could do worse than apply.
PS that’s where the Do What You Love icon on my blog takes you
PPS my other favourite e-mail signature is from private cloud expert Tim Cerling:
..with enough thrust, pigs fly just fine
Good diary management is career mission critical at Microsoft and may well be the same for you and if it is I have some free stuff for you to try. The Microsoft BI team have issued a calendar analytics spreadsheet that shows you how you are spending your time. It works by connecting to exchange and picks up the appointments for a named e-mail account and then stuffs the data into PowerPivot The spreadsheet has got all sorts of analytics in it and an instruction tab to show you how to get it working. It’s also Office 365 aware so if you have your e-mail in that then this will still work.
Here’s what it looks like with my diary for May 2011..
If this sounds interesting then you need to get the PowerPivot add-in for Excel (you’ll need Excel 2010 and there is an x86 and x64 version of this). Then you need to download and install the Calendar Analytics spreadsheet which will end up on your desktop. Initially it will have dummy data in and to get it to pick up your diary follow the instructions on the instructions tab.
I wonder what this would look like for Dr Who!
Despite what I posted yesterday about clustering, mirroring is the preferred option for many DBAs in a virtual world although you can of course combine the two. On the up side mirroring gives you one (and only one) copy of the database in another location which you can’t really use, and failover is instantaneous, the down side is that the connection needs to be mirror aware (e.g.OLE DB) and you are only protecting a database at a time.
However the SQL Server product team have a cunning plan for the next release (Codenamed Denali) originally called HADRON, now called AlwaysOn which provides mirroring like ease of use but is built on Windows Server failover clustering (WSFC). Don’t panic all you need to do in WSFC is turn on the feature and setup a cluster..
As you can see from the above you don’t need shared storage so forget about FCoE, ISCSI Fibre Channel etc. You then enable Always On in configuration manager by right clicking on the SQL Server service and selecting its properties specifically the SQL HADR tab (you’ll need to do this on each node on the cluster)..
The next step is to create an availability group from SQL Server Management Studio (under management), select some databases to include in it and your done. One catch here is the databases have to be suitable , the full list of restrictions is here but essentially they need to be in full recovery mode and backed up. The wizard does all the work for you and of course there are T-SQL commands to do this programmatically as well as PowerShell support for control and management and of course the wizard will generate a script for you as well.
Here you can see I have declared a replica server (in ctp1 you can only have one), and I can decide which connections to allow..
The process also sets up endpoints (note the option to encrypt data)..
You can then synch the data (I created a share called backup for this)..
and then when you go back to management studio you can see that you have something like mirroring setup..
so interesting stuff but you need to be aware that
I am pretty sure the term guest clustering is not a standard industry term nor is it official Microsoft speak, so what do I mean by it? I mean the business of creating a cluster out of a group of virtual machines – you might call this a virtual cluster but that might confuse it with clustering physical machines to run virtual machines on them so that no physical machine is a single point of failure.
Clustering of any kind is about improving availability and if your physical servers are clustered why would then cluster the virtual machines running on them?
The answer is to improve the availability of the application in the virtual machine. A physical cluster will fail over if there’s a hardware or physical operating system problem, but can’t respond to a dead service like SQL Server, while a guest cluster will do this and allow you take nodes off line for maintenance patching upgrade etc. while keeping the rest of the cluster running.
Windows clustering of any kind has traditionally been seen as difficult and for me this all changed in 2008 with the dramatic changes to clustering both in Windows Server 2008 and in SQL Server 2008:
I understand implementing guest clusters places a lot of restrictions on Vmware like:
note: I am not a Vmware expert so please check the Vmware resources and forums for the definitive word on this, and please correct me if I am wrong.
I do know that in Hyper-V a cluster behaves exactly like a real cluster and there isn’t this loss of functionality so virtual machines can be live migrated and moved between physical servers as required. In other words you so you have the power of clustering and the added flexibility of virtualisation and this shouldn’t affect your performance , licensing etc. compared with a physical cluster running on the same spec of machine.
Try it yourself:
I really enjoy going to technical community events even the ones that are run by Vmware, but you would think from the Vmware ones that Microsoft doesn’t have a Virtual Desktop Infrastructure (VDI) solution at all. I don’t intend to turn this blog into a feature comparison of the two or anything like that I just want to explain what there is and that it does actually work. I do have a private theory that anything really good from Microsoft is often not widely publicised and the VDI stack is a good example of this.
Firstly what is VDI and how does it differ from good old remote desktop services (nee terminal services) that has been around for years and why is there a need for a new one?
VDI is the business of providing a pool or individual virtual machines running windows client to your users. In an extreme example you would migrate each users desktop PC to a Virtual Machine (VM) and then run all those VMs on a server and replace the desktop PCs with thin client devices. This can achieve some power savings and save you having to manage those physical machines, however you still have to manage the OS in each virtual machine and the applications users want to run in pretty much the same way as you did before. Those backend servers have got to be pretty powerful too so they can run all those VMs plus they have to be bought and paid for.
I have already written this post showing that you can support more users per server with Remote Desktop Services (RDS) than you can with VDI so why bother with VDI, especially when you virtualise applications with App-V onto the standard RDS desktop thus giving each users the apps they need on a group by group basis? Some applications aren’t easily susceptible to this approach like trading systems in banks, CAD and other compute intensive solutions such as development environments while VDI enables these.
Given that VDI can result in higher costs than RDS, is is essential that VDI is managed efficiently and that you get the most out of the hardware and licenses you are using. Given my views on RDS you might be forgiven for thinking that Microsoft isn’t serious about VDI? A quick review of the recent developments that affect VDI shows that it is :
The resources on remote desktop are already pretty extensive but to help get you started on VDI then I would ask you join join Sarah Mannion and myself next Tuesday (10th May) for our TechDays Online session on VDI . Sarah is the expert on VDI in Microsoft and advisers enterprise customers on deployment and best practice, so do try and make it.
I spent yesterday at the Best of the Microsoft Management Summit in London and rather than have endless debates about what is or isn’t private cloud the term extreme standardisation was used to explain Microsoft’s approach to the modern data centre. Although this term doesn’t implicitly refer to virtualisation this is a good thing:
Standardisation can only be truly achieved if it is automated. It also plays well into the non-technical aspects of running IT in a business:
So if you have an automated process to provision a service the rules to meet these standards can be written into that process.
Extreme standardisation manifests it self in other ways as well:
All of this together is private cloud as per the National Institute of Standards & Technology (NIST) definition, but my point is that this approach articulates it in terms of outcomes.
If that sounds a bit more real and practical than Private Cloud, you might want to find out how to do some of this stuff and I would suggest taking a day out of the office for to come to Days Live for the event on Transforming your datacentre with Hyper-V and System Center.
The annoying thing about cloud services like SQL Azure is that they keep changing as more features are added.
The great thing about cloud services like SQL Azure is that they keep changing as more features are added.
So if I write post about version x of SQL Server that has some value while that version is still being used somewhere however with SQL Azure when the service changes the old version. This catches a lot of people out including Microsofties like me, and my good friend Alan le Marquand who owns a lot of the content on the excellent new Microsoft Virtual Academy (MVA) is no exception. He posted up the SQL Azure content for internal review and got feedback that it was already out of date, so he asked me to do reshoot part of it.
Essentially the SQL Azure interface has now changed to integrate it with other Azure services and to bring in the lightweight management tool introduced as Project Houston. If you go into MVA you can watch my me setting up the firewall rules..
As well as this I need to post a quarterly update on SQL Azure to explain what’s changed and what’s coming next, so adding that to my Outlook to do list now.
Virtual machine need resources from the host operating system/hypervisor and in the Hyper-V world this is done through integration components. The same thing is true of Virtual PC however they the VM additions in Virtual PC are totally different from Hyper-V integration components, so although Virtual PC uses the same VHD format for virtual hard disks as Hyper-V moving a virtual machine from from Virtual PC to Hyper-V means doing a few things..
1. Uninstall the Virtual Machine Additions.
2. Insert the Hyper-V integration components from the VM console actions menu option
3. "Detect HAL" in msconfig after moving to Hyper-V
a. Open the System Configuration utility (MSConfig.exe) -- click Start > Run type msconfig, and then click OK. b. Click the Boot tab, and then click Advanced options. c. Select the Detect HAL check box, click OK, and then restart the virtual machine.
a. Open the System Configuration utility (MSConfig.exe) -- click Start > Run type msconfig, and then click OK.
b. Click the Boot tab, and then click Advanced options.
c. Select the Detect HAL check box, click OK, and then restart the virtual machine.
This will then cause at least one reboot and what has happened to this VM is that all the hardware it was running on has now changed , in the physical world this is the equivalent of me taking my hard disk out of Dell laptop and sticking in Simon’s HP laptop – it’s going to get upset, but should sort itself out. The same sort of thing applies to moving VHDs between Citrix Xen Server and Hyper-V as Xen also uses the VHD format.
Integration components also need to be upgraded and as I have already mentioned you might already need to do this for service pack 1 of Windows Server 2008 R2 which adds dynamic memory to Hyper-V. Question how do you know which integration components are installed in a given VM?
For people to whom hyper-V is just another way to get stuff done then my top tip is to download the new Hyper-V Best Practices Analyser (this is a KB) which adds functionality into server manager so that when you expand the hyper-V role it tells you what you need to do..
If you have SCVMM in your environment the this command (courtesy of Michael Michael) will get you the answer..
PS D:\Windows\system32> get-vm | select name, hostname, hasvmadditions, vmaddition | format-list
For the serious scripting orientated data centre admin then Christian Edwards has this blog on scripting the answer from the registry key.
So integration components need to treated with the same consideration as any drivers, keep them current or they will affect performance and reliability
eI am thinking of starting a new royal society the for the protection of cruelty to SQL Server as I am seeing my favourite database suffering a lot of abuse out there as part of the blind rush to virtualisation. A good example is, Gillian, a dba I met at SQL Bits who was nearly in tears because she was getting loads of timeouts after her data centre administrator subjected SQL server to this. What made her really upset was that this ‘virtualisation expert’ couldn’t see the problem, however her users certainly could and this was obviously very real for her.
I don’t exactly what the root cause of the problem is in that situation but I routinely have conversations of this kind. so to protect and care for y0our SQL Server treat it the same way you would a pet:
Understand its dietary needs SQL Server thrives on healthy IO with plenty of RAM and CPU (in that order). IO is the one that’s neglected as it’s not obvious where you declare this in most hypervisors. It is all to easy to setup a VM that is asking for lots of IO, doesn’t get and yet the actual storage in the physical environment is not stressed as in Gillian’s example. Regular health checks Looking at a VM from the outside is no indication of what's happening to the services on the inside. Also you need to understand what your performance is before you virtualise. Gillian did this bit fine she knew her database were all healthy on her physical environment and understood the performance of them. However when they went virtual no attempt was made by the data centre admin to provide comparable resources or even test that performance before going live. There are the obvious free tools like Perf Mon in the OS and MAPT (Microsoft Assessment & Planning Toolkit) which you can download. Regular Exercise My favourite approach for checking the health of SQL Server and other services is to exercise them in System Center Operations Manager by using synthetic transactions to test the response time and error conditions on a periodic basis from a designated machine. This allows you to test that you are achieving your SLA and warn you if you aren’t, before the help desk even rings. Obedience Training SQL Server 2008 has policy based management which can be used to check that all the servers databases and objects in those databases conform to rules that you define, and you can also check policies on earlier versions of SQL Server.
Understand its dietary needs
SQL Server thrives on healthy IO with plenty of RAM and CPU (in that order). IO is the one that’s neglected as it’s not obvious where you declare this in most hypervisors. It is all to easy to setup a VM that is asking for lots of IO, doesn’t get and yet the actual storage in the physical environment is not stressed as in Gillian’s example.
Regular health checks
Looking at a VM from the outside is no indication of what's happening to the services on the inside. Also you need to understand what your performance is before you virtualise. Gillian did this bit fine she knew her database were all healthy on her physical environment and understood the performance of them. However when they went virtual no attempt was made by the data centre admin to provide comparable resources or even test that performance before going live.
There are the obvious free tools like Perf Mon in the OS and MAPT (Microsoft Assessment & Planning Toolkit) which you can download.
Regular Exercise
My favourite approach for checking the health of SQL Server and other services is to exercise them in System Center Operations Manager by using synthetic transactions to test the response time and error conditions on a periodic basis from a designated machine. This allows you to test that you are achieving your SLA and warn you if you aren’t, before the help desk even rings.
Obedience Training
SQL Server 2008 has policy based management which can be used to check that all the servers databases and objects in those databases conform to rules that you define, and you can also check policies on earlier versions of SQL Server.
Treats Show your affection for your database by giving it regular treats such as new service packs and hot fixes. Don’t forget the same applies to the operating system and the hypervisor, as these can also significantly affect performance. A good example is the recent service pack 1 for Windows Server 2008 R2 which adds dynamic memory. Dog Whisperer The closest thing we have to this is the SQL CAT (Customer Advisory Team), who have excellent white papers on optimising SQL Server on Hyper-V and a new one on SQL Server and the private cloud. There are also resources on Vmware’s site for optimising SQL Server on their hypervisor, so ignorance is no excuse. Of course you can call in the many performance tuning experts in the UK and many of them have already come across virtualisation starvation issues. So don’t give virtualisation or SQL Server a bad name, read the documents, do the work and listen to your DBAs.
Treats
Show your affection for your database by giving it regular treats such as new service packs and hot fixes. Don’t forget the same applies to the operating system and the hypervisor, as these can also significantly affect performance. A good example is the recent service pack 1 for Windows Server 2008 R2 which adds dynamic memory.
Dog Whisperer
The closest thing we have to this is the SQL CAT (Customer Advisory Team), who have excellent white papers on optimising SQL Server on Hyper-V and a new one on SQL Server and the private cloud. There are also resources on Vmware’s site for optimising SQL Server on their hypervisor, so ignorance is no excuse. Of course you can call in the many performance tuning experts in the UK and many of them have already come across virtualisation starvation issues.
So don’t give virtualisation or SQL Server a bad name, read the documents, do the work and listen to your DBAs.
I just noticed a comment on our UK TechNet blog about how public cloud could put emerging economies at more of a disadvantage than those in developed countries.
The comment I saw specifically mentioned broadband as the problem as cloud services need internet connectivity. However while in some cases this can be higher than would be the case if your services run in your data centres, this is not always the case. If you think about an e-commerce site running locally the speed your customers see is only as good as your outbound connectivity. However if this service was in the cloud then this problem would be replaced by the speed customers get to that site. Actually in many economies broadband speed is better in the UK - my friend Senthil in Bangalore get 20 Mbs to my meagre 1.5 so who’s deprived here. The other factor is GPRS which is nearly universally available and bypasses the need for landlines for phones and data, and costs and performance will only come down in price.
However there are other barriers to adopting technology in emerging countries apart from pervasive internet connectivity, for example:
The cloud takes all of this away and providers like Microsoft can choose to make its offerings affordable to these emerging market to stimulate new markets or out of a sense of citizenship.
So I don’t see this as a problem in fact I think the reverse is true, the cloud will enable emerging market to compete globally for business, and enable health and education programs to run more efficiently.
Discuss..
My diary is solid for the next few weeks as there seem to be a lot of events on. This is good for me as the best bit of my job is swapping ideas and stories with like minded individuals, not to mention the odd lively debate. I also get the impression that many of you enjoy this too and I often get asked why we don’t do more of this, and that would be partly down to costs not just ours but yours too as it’s a big ask for you to get away from your desks for a morning or a whole day.
Obviously Online events are less expensive to put on and to attend so you’ll notice a lot more of these, and my diary has these in:
The Offline events I know about are:
It may not be obvious but these are all UK events, but of course anyone around the world is welcome to join the online meetings and we’ll do our best to use BBC English to help our intenrnational guests get the most from this.
Dynamic memory has some people worried. I get it because even with my monster orange laptop (Dell Precision M6500) with 16Gb RAM and 600Gb of storage across 3 SSDs I can see my memory is better optimised and I can be really aggressive with the memory each virtual machine gets on start up and let my priority settings handle the excess. At the other end of the scale my good friend Jeff Woolsey gets it because was able to provision more virtual machines on less memory for the labs at MMS.
Why is this possible? Airlines give you a baggage allowance but the plane wouldn’t take off if everyone used that allowance, they rely on some people just having carry on bags. The situation isn’t quite the same in dynamic memory as demand changes moment by moment as each VM asks for and releases memory. What this means is that you can cram in more virtual machines because you can start them with the bare minimum and then allow the rules you define to decide who wins when there is pressure for memory, for exampl in a VDI scenario you might be able to get 25-50% more VM’s running according to another good friend of mine, Kleefy. So what’s to worry about? Pushing and pulling memory in and of windows can make understanding what’s happening to your memory harder. Possibly and this is already a reality on other virtualisation platforms, but what do you need this for: second guessing the way Hyper-V works out what to give or to tune and understand a particular service. I would point you to the excellent post the SQL Server team have done on dynamic memory and then apply this to your application. You might have thought there was some sort of smoke and mirrors going on in dynamic memory and I would point you to another colleague Hector Linares who is delighted that even Vmware get that dynamic memory works OK.
Why is this possible?
Airlines give you a baggage allowance but the plane wouldn’t take off if everyone used that allowance, they rely on some people just having carry on bags. The situation isn’t quite the same in dynamic memory as demand changes moment by moment as each VM asks for and releases memory. What this means is that you can cram in more virtual machines because you can start them with the bare minimum and then allow the rules you define to decide who wins when there is pressure for memory, for exampl in a VDI scenario you might be able to get 25-50% more VM’s running according to another good friend of mine, Kleefy.
So what’s to worry about?
Pushing and pulling memory in and of windows can make understanding what’s happening to your memory harder. Possibly and this is already a reality on other virtualisation platforms, but what do you need this for: second guessing the way Hyper-V works out what to give or to tune and understand a particular service. I would point you to the excellent post the SQL Server team have done on dynamic memory and then apply this to your application.
You might have thought there was some sort of smoke and mirrors going on in dynamic memory and I would point you to another colleague Hector Linares who is delighted that even Vmware get that dynamic memory works OK.
And of course if you are worried about it in certain scenarios because you have proved it’s an issue then turn it off for that virtual machine.
My final thought about these concerns is that it works for me, and you can only make that statement if you have turned it on and tried it yourself.