Latency on a fiber channel network isn’t normally something you worry about. But something that you need to remember is that every meter of fiber optic cable that your data has to travel through takes time. Every fiber channel switch that you have to go through adds more latency.
When you are setting up something like synchronous replication between two storage arrays this latency starts to become more important as every millisecond that you spend waiting for the storage to respond is time that your application isn’t responding to your clients requests.
So, the basic math is that every meter of fiber optic that your data travels takes 5 nanoseconds. So if you have your server connected to your storage array via a one meter cable there will be 10 nanoseconds of delay. 5 nanoseconds for the data to get to the array, and 5 nanoseconds for the response to get back to the server from the array.
So using this math, for each 100 meters of fiber optic cable there is 1 microsecond of latency. For every kilometer of cable there is 10 microseconds. For every 100 kilometers of cable there is a 1 millisecond delay, and for every 1000 kilometers of cable there is 10 milliseconds of delay. So if you are replicating data from LA to New York that’s about 2778 miles, or 4470 kilometers which gives us a delay of about 44 milliseconds for each command which is being sent.
Now there is something else which needs to be taken into account when figuring out the storage latency time. And that is the fiber channel switches. If the ports on the fiber switch are on the same ASIC then there is no measurable latency through the switch, however if the two ports on the fiber switch are on different ASICs then there is an additional latency of 2 microseconds in each direction. While this isn’t much, if you keep in mind that between LA and New York there are probably hundreds of switches, those 2 microseconds are going to really start to add up.
Because of these numbers when using synchronous replication 30 miles is about as far as you want to replicate data. And farther than that and you’ll start to see network latency problems with your application. These problems will be amplified if you use something like SQL Server as with SQL Server and other databases, every nanosecond counts.
Hopefully this math will help you make more informed storage design decisions.
OK, so the odds are getting an XBox and a Windows 7 license are basically zero, but you could win one of them. How can you win some of this fantastic stuff? Well that’s the easy part, all you have to do is come and attend my free day of training on “Storage and Virtualization for the DBA“. Submit a survey, and you’ll get a ticket for the drawing.
Thanks to some great sponsors the lunch plans have changed a little for this event. Instead of everyone heading out for lunch a group of vendors has gotten together and sponsored lunch for everyone. The Lunch sponsors who I can’t thank enough are Microsoft, Emulex, Quest Software and Red Gate.
So head on over to the Event Bright page and get signed up. Seating is limited, as are the number of lunches, so be sure to get signed up quickly.
Tomorrow I’ll be speaking at the Orange County SQL Server Users Group. I’ll be presenting two sessions at the meeting. One will be “Exploring the DAC and everyone’s favorite feature the DACPAC“, and the other will be “Reading the SQL Server Execution Plan“.
The meeting starts at 6:30pm, and I believe that there will be pizza provided and who doesn’t like pizza and a DACPAC discussion.
The user group meets at the New Horizons Computer Learning Center in Anaheim.
1900 S. State College Blvd.
Anaheim, CA 92806
It’s right behind Angel’s stadium (or what ever its called this month), you can’t miss it.
I’ll have some SWAG with me, but not a whole lot (my supplies are starting to run low).
See you there.
Time is running out to register for a free full day of Storage and Virtulization training. If you’ll be in the Irvine, CA area on August 9th and you’ve got a free day be sure to come check out this free training event. This will be a very similar session to what I present at the SQL PASS summit in Seattle in November, where the session will cost $499 to see.
On top of that all attendees that turn in an evaluation form will be entered to walk about with one of the great prizes including a brand new XBox 360.
Seating is limited, and registrations need to be completed ahead of time. If the session does sell out, there is a waiting list, but being on the waiting list doesn’t guarantee that you’ll get a seat so act now.
Later this week (Thursday to be specific) I’ll be speaking at the Orange County SQL Server Users Group. I’ll be speaking on Thursday the 5th, starting at 6:30pm. I’ll be giving two sessions at the user group. The first will be Reading the Execution Plan, and in the second we’ll be looking at the Data Tier Applications, UCP, and DACPACs as well as some other new features in SQL Server 2008 R2.
The OC SQL Users Group meets at New Horizons in Anaheim (behind Angel’s stadium).
1900 S. State College Blvd, Suite 100
Anaheim, CA 92806
Hopefully I’ll see you there.
While I’m there I’ll be pimping my day long session in Irvine which is next week, and hopefully I’ll be giving away from SWAG during the meeting.
So you’ve got a bunch of machines that you want to run a quick query against. SQL Server 2008’s Management Studio gives you a quick and easy. Open up the Registered Servers in Management Studio and select a group of servers. Then right click on the group and click on the “New Query” option.
This will open a new query window where you can run a query against all the servers that are online in that group. In my sample query shown below you’ll see that I ran SELECT @@VERSION against all the servers. When I ran this 3 of the 6 servers in the group were online so three servers were able to return data.
Now if you look at the messages tab (look down) you’ll see which servers the query ran against, and which servers it failed against. It also tells you what accounts the query was run using (based on the connection info for each server).
Now you can’t merge data together in a temp table as everything in the query window will be run against each server. It simply displays the information together. You can pull a single value like I showed above, or you can query a table.
Now when querying from a tables on multiple servers you’ll need to make sure that the schema for those tables are identical otherwise it will only return the data for the first table that it queries. An error will be shown on the messages tab telling that you that the schemas don’t match if this is the problem.
So a couple of weeks ago Arnie Rowland started a project to give away a couple of MSDN licenses and some other goodies to some deserving out of work developers. The big requirement being that they do something worthy of getting the stuff. Continued »
On Monday August 9th, 2010 at the Microsoft Office in Irvine, CA I’ll be leading up an all day “Storage and Virtualization for the DBA” training session. In addition to a great day of training, one lucky attendee will walk away with a brand new XBox 360. There are lots of other great giveaways.
You must sign up to attend, and seats are limited. Be sure to sign up soon as seats are given away on a first come first served basis.
If you don’t know what KMS is, it’s the nightmare that Microsoft has unleashed upon the Windows Admins of the world since the release of Windows 2008 R1. In the good old days you stuck the Windows license key on the server and it connected to Microsoft to validate the license. Apparently that wasn’t good enough for Microsoft so you now have to have a Key Management Service (KMS) running on a server on your network.
In theory getting KMS working is a piece of cake. You just install windows on a server, put the KMS key in the machine as the license key and move on.
In the real world there is a little more to it.
For each different OS that you have to need to add the license key to the KMS server. Now you’d think that there would be a nice interface that shows you your licenses, how many you’ve used etc right? Yeah, not so much. Key management is done completely via a VB script which sits in the Windows\system32 folder.
So to install the new license key you have to run slmgr.vbs with the -ipk switch. Then run it again with the -ato switch so that you can activate the license.
cscript slmgr.vbs -ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
cscript slmgr.vbs -ato
Now if the license activates you are good to go, however if it doesn’t you have a problem you now need to get the info from the system so that you can call Microsoft. This requires using the -dlv parameter so that you can get the Activation Id from the application.
cscript slmgr.vbs -dlv
Then use the -dti parameter and the Activation Id that you just got to get the Installation Id. This is the number that the phone system will want from you to get the license activated. Check the phone.inf file to get your local phone number.
cscript slmgr.vbs -dti xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Now the Microsoft phone system will give you back a bunch of numbers. Note them without dashes in a notepad doc. Then use slmgr.vbs with the -atp parameter passing it the value you get back from Microsoft and the Activation Id that you got before.
cscript slmgr.vbs -atp 000000000000000000000000000000000000000000000000 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
At this point, unless you’ve fubar’ed any of these parameters your license will be activated.
Now if you’ve been using VMware to deploy templates of Windows you’ve probably got Customization Specifications setup. And you’ve probably got either your MAK or KMS keys entered in there. Both of those would be the wrong keys to use. You should be using the keys listed on this web page as these are the keys that tell Windows that it is a KMS client and that it should connect to your local KMS server.
Now if you’ve put your KMS key into all of your virtual machines as the key, you need to clean up your DNS as well. Within your internal DNS servers under your domain then _tcp subdomain you’ll see a bunch of domains under _VLMCS. You’ll want to make sure that you only have SRV records with this name pointing to your actual license server or servers.
On the machines which you have already deployed using your KMS keys, you’ll need to reset the keys on those machines. This can be done with the following commands, just put in the correct key from the page listed above.
cscript c:\windows\system32\slmgr.vbs -upk
cscript c:\windows\system32\slmgr.vbs -ipk PutYourKeyHere
cscript c:\windows\system32\slmgr.vbs -ato
This will remove the current license key, add the KMS client key, then register the computer with the local KMS server.
Now isn’t that easy?
UPDATE 2010.07.27: Corrected the scripts from csharp to cscript.
Register for Quest’s virtual SQL Server training conference. Sign up today to get free education-right from the convenience of your desk.
SQL Server experts Kevin Kline, Brent Ozar and Microsoft insider Buck Woody, will give you tips and tricks to take the pain out of tuning performance for your databases. You’ll walk away with mad skills and unique insight that will make your job easier than you ever imagined.
Event: Virtual Training for SQL Server – Performance Monitor and Wait Events
Date: Wednesday, July 21, 2010
Time: 7:45 a.m. Eastern (4:45 a.m. Pacific/ 12:45 p.m. United Kingdom/ 1:45 p.m. Central Europe)
Duration: Eight sessions to choose from, each 45-60 minutes
Can’t make it to the live training day? Be sure to register and you’ll be eligible to view the sessions on-demand for 30 days.
P.S. If you can’t make it to the actual event, the conference will be available on demand until August 21.