Wired VS wireless connection, and SMB v3

Today I was busy creating some new VM with German version of Windows Server 2012 R2 when all of a sudden I run out of space on a drive where my VMs are stored… To run out of drive space is not so difficult when using SSD drives which are offering superb performance, but still limited in capacity and expensive if compared with conventional HDDs.

Unfortunately VMware Workstation 11 just expands drives silently without any advance warnings until it claims all available space on the drive and then just stops with disk write error message offering only Retry and Abort options with high probability of losing all your unsaved job. So it doesn’t do proactive capacity planning for you :)

The next thing I discover is that I unable to delete anything from my VMs drive and there is no space on other local drive to move some of them, so I decided to move over the network couple of less frequently used VMs each about 50 GB in size… And after spending 4+ hours trying to do this while one of the machines was connected via the wireless I realized that I need to use wired connection otherwise I can spend whole day copying it. I had my recently bought gigabit Cisco switch, but didn’t have extra patch cord close at hands (yes Cisco doesn’t throw even single patch cord into their router box), so I had very good opportunity to see inferiority of wireless connection by contrast with wired one in terms of speed.

So despite all the shiny stickers you may see on wireless routers packaging for WiFi speeds it’s all exaggerated and unrealistic values in terms of data transfer rates. For example I’m using ASUS RT-N66U wireless router, which is not the worst one (I actually like it) and you may see that in product description there are claims about its mythical “Strong Signal Strength and Ultra-Fast Connection Rates up to 900Mbps”, well this is too good to be true, but even a bit more realistic 130 Mbps which Wi-Fi connection status shows me in Windows when I connected over Wi-Fi to this router can be safely divided by 10 to give you an idea about real data transfer rates. While copying 50 GB VM it was clear that it barely gives 13 Mbps (less then 10 Mbps most of the time). By the end of the day I decided I’d better take a short walk to get extra Ethernet cable and switch to wired connection.

So when I returned back with a cable it was still trying to finish copy operation and I had an opportunity to see in practice expected benefits of wired connectivity and SMB v3 protocol. As you probably know Windows Server 2012 and Windows 8 use SMB 3.0 (3.02 for Server 2012/Windows 8.1) which gives you such amazing things like graph of transfer speed when you performing copy operation along with pause/resume button in terms of visible changes, but it hides loads of improvements under the hood (things like MPIO support and many other goodies). As soon as I connected Ethernet cable my WiFi connection was automatically disabled once wired one was established without any interruption for file copy operation, and immediately transfer speed went up from less than 10 Mbps to values like 140 Mbps and above, shrinking remaining time estimate of about 40 minutes which I saw when connected over Wi-Fi to less than 4 minutes, completing copy operation in no time.

Conclusion: No matter how convenient Wi-Fi connection, when you need really good speed to transfer files or for something else and stability you should always prefer wired connection. Even the best wireless router in ideal conditions won’t give you anything close to wired connection in terms of speed, and to be honest in terms of connection stability and security also. Wi-Fi just more convenient for wire-free work place and mobility – that’s it.

And second conclusion SMB v3 is really cool improvement which works silently behind the scenes, but it one of the coolest improvement in latest Windows releases you just need some time to discover / fully appreciate it. Here is huge list for those who may want to read on about all SMB 3.02 improvements and how they are leveraged by other Windows features:

Updated Links on Windows Server 2012 R2 File Server and SMB 3.02

P.S. While installing German version of Server 2012 I discovered that  “Anmelden als Dienst” means “Log on as a service” in German :)

Merriam-Webster: Words of the Year 2014

Merriam-Webster recently announced top 10 words of the years of 2014 based on look ups frequency in their online dictionary. So this list is data driven (they are using look up frequency and also have temporal distribution of it across the year) and It’s quite interest to see how spikes in interest to certain words are correlate with real world events. It’s interesting to see that French expression “Je ne sais quoi” (“a pleasant quality that is hard to describe”) made its way into this list (guess what made people wondering about this phrase :) ). I can not help but notice that modern technology makes life of modern lexicographers, dictionary editors and comparative linguist much more easier and unbelievable well equipped for their tasks by contrast with such pioneers of that field as James Murray – for those all luxuries of technology were unavailable (though while working on OED James Murray was already employing crowd sourcing techniques using newspaper adverts and postal service).

Here is video of Peter Sokolowski Merriam-Webster’s editor at large talking about Merriam-Webster top 10 Word of the Year look-ups for 2014:

You may also read about these 10 words on Merriam-Webster web site. Top 10 words are following: Culture, Nostalgia, Insidious, Legacy, Feminism, Je ne sais quoi, Innovation, Surreptitious, Autonomy, Morbidity.

Really interesting to see how real world events influence the look up frequency for certain words.

K2 for SharePoint and SharePoint 2013 Distributed Cache Service

Recently I heard about situation when there were issues with installing K2 for SharePoint application related with missing Distributed Cache Service on SP server (there were related errors in SP logs and errors when adding K2 app in SP). This forced me to learn a bit about this Distributed Cache Service technology.

As with many of utility services or infrastructure things which supposed to do their job silently and transparently you may appreciate their usefulness and complexity only when things went wrong with them. Once such stuff broken you first realize how useful it was and what doesn’t work without it, and next when you trying to fix the stuff you start learning about complexities of this stuff :)

Short definition: SP Distributed Cache is a service that provides caching functionality which runs on an application server in SharePoint Server 2013. All microblog features in SharePoint Server 2013 depend on the Distributed Cache service.

The way Distributed Cache being leveraged by SP and solutions based on SP definitely deserves separate post along with clarifying the question when it is really required and what doesn’t work without it.

So far I just note that this service should be in place and properly configured for SP 2013 farms with multiple web front ends (on all WFEs).

Most useful links which I found researching this are (exactly in this order):

AppFabric Caching and SharePoint: Concepts and Examples (Part 1)

AppFabric Caching (and SharePoint): Configuration and Deployment (Part 2)

Plan for feeds and the Distributed Cache service in SharePoint Server 2013

First 2 posts by Josh Gavant [MSFT] are definitely must read if you want to understand how caching works in SP.

How to get listing of stored procedures for SQL server database

Just a quick note on how to get listing of stored procedures for SQL server database. Following query will do this for you (as long as you’re not in the master database, system stored procedures won’t be returned):

SELECT *
FROM DatabaseName.information_schema.routines
WHERE routine_type = ‘PROCEDURE’

You may add AND specific_name LIKE ‘%part_of_specific_name%’ to WHERE clause to filter/look up for specific stored procedure by name.

If for some reason you had non-system stored procedures in the master database, you could use the query (this will filter out MOST system stored procedures):

SELECT *
FROM master.information_schema.routines
WHERE routine_type = ‘PROCEDURE’
AND Left(Routine_Name, 3) NOT IN (‘sp_’, ‘xp_’, ‘ms_’)

Source – question on stackowerflow.com: Query that returns list of all Stored Procedures in an MS SQL database.

How to control Local Administrators group membership on a DC

Reasons and security ramifications aside this is just a quick note on how to control Local Administrators group membership on a DC. So if you try to use lusrmgr.msc on a DC you it will open you Local Users and Groups console with a red cross and warning in central pane:

“The computer %DC_NAME% is a domain controller. This snap-in cannot be used on a domain controller. Domain accounts are managed with the Active Directory Users and Computers snap-in.”

Well thanks for letting me know, but I need to manage this anyway :) So to command prompt.

Issuing this:

net localgroup Administrators

will list current local Administrators group membership.

And using following syntax we can add members to local Administrators group:

net localgroup Administrators /add domain\user_name

There used to be nice video on YouTube showing all this, but this one seems to be no longer available.

Cargo Cult & System Administration

By chance I stumbled upon excellent post on “Cargo Cult System Administration”. I remember this cargo cult story which was mentioned in the fascinating book “The God Delusion” which one of my friends recommended to me quite a while ago. Apart from provoking title (for Russian translation it sounds more like “God as Illusion”) this book touches on interesting things starting from famous Russel’s teapot, to this cargo cult example. Unfortunately I have not managed to read this book yet and it is still on my reading list, but it definitely worth giving it a read I believe.

But post I mentioned in the very beginning draws unexpected parallel between cargo cult and systems administration/support. This one definitely must read if you working in this field – very important stuff.

VMware Workstation: Cannot scan local directory error

Imagine that you are trying to copy file or folder from your host machine into VMware Workstation VM and receive following error:

 VMWareWorkstation_Long_Path_Error

Any idea what VMware Workstation trying to tell you? :)

Well being acquainted with this software and its occasional quirks my “knee jerk” reaction was to restart VMware Tools service and run repair for VMware Tools as I was more than sure that I have all the necessary permissions. After this didn’t help I looked for other possible reasons and it turned out to be plain old issue with file path being to long for handling… So WMware Workstation is unable to express itself properly and tell you that it is path length issue (probably it could be generic message from OS, I’m not sure). Anyway if you see this error message just modify folder names or move your file or folder couple of levels up the folder three – it will fix your issue.

I tested this with both VMware Workstation 10 & 11 running on Windows 8.1 as a host and with Windows Server 2012 as a guest – so even the latest version has this imprecise/misleading wording in error message.