Contact

Subscribe via Email

Subscribe via RSS/JSON

Categories

Creative Commons Attribution 4.0 International License
© Rakhesh Sasidharan

Elsewhere

Power cycle/ Reset an HP blade server

Was getting the following error on one of our servers. It’s from ESXi. None of the NICs were working for the server (the NICs seemed to be working, just that the driver wasn’t loading). 

error

Power cycle required. 

I switched off and switched on the server but that didn’t help. Turns out that doesn’t actually power cycle the server (because the server still has power – doh!). What you need to do is do something called an e-fuse reset. This power cycles the blade. You have to do this by opening an SSH session to the Onboard Administrator, finding the bay number of the blade you want to power cycle, and typing the command reset server <bay number>

Good to know!

Note: The command does not appear when you type help, but it’s there:

Also, to get a list of your bays and servers use the show server list command. To do the same for interconnects use the show interconnect list command.

Install a vSphere web-client plugin offline

Trying out vCloud Air at work and I wanted to install the vCloud Air plugin for vSphere web-client. The installation kept failing though. Initially it was due to the vCenter server not having access to the Internet (not your browser, the vSphere web-client itself needs to have access) but even after I specified a proxy (check out this post on how to specify a proxy) and gave vSphere web-client access to the Internet the download would begin and fail. 

install-failed

It’s possible to download the plugin, but how to add it to vSphere web-client?

Through a bit of trial and error I found a way. :)

Turns the plugins are store at C:\Program Files\VMware\Infrastructure\vSphereWebClient\plugin-packages on the server. So all you have to do is:

  1. Download the plugin zip file. 
  2. Create a folder in the above location and extract the zip file to this folder.
  3. Restart the vSphere web-client service. 

And that’s it! Then your plugin will appear under Administration > Client Plug-Ins

plugins

It’s very simple but I couldn’t find any info on how to download and install a plugin when I Googled for it, so thought I’d make a post. Hope it helps someone!

Unable to login to vSphere because the admin@system-domain password cannot be reset

vSphere 5.1 has admin@system-domain as the default admin account. vSphere 5.5 changes that to administrator@vsphere.local. However, if you upgrade from 5.1 to 5.5 the default admin account remains admin@system-domain. Which is fine and dandy until the password for this account expires. Then you are unable to reset or login! See below. :)

Trying to login as usual

1 - login

Password has expired, needs a reset

2 - reset

Reset fails though coz you can only reset for the vsphere.local domain

3 - reset fails

Missed out on taking a screenshot but if you were to try and login with administrator@vsphere.local instead you get an error that the credentials are invalid (because that account doesn’t exist!). So you are stuck!

What do you do?

Solution is to reset the admin password

When you do this vSphere automatically creates the administrator@vsphere.local account. Follow the steps in this KB article.

4 - reset password

Now you can login with administrator@vsphere.local and the generated password.

Notes on .NET (copy paste from other places)

Yes, just copy paste from other places so I can quickly refer to this post later than all those other posts. I don’t know much about .NET but had to read a bit about it today, so figured I might as well put some snippets here.

.NET Framework has two components:

  1. Common Language Runtime (CLR)
  2. .NET Framework Class Library

The CLR is like the foundation/ core of the .NET Framework. It “manages memory, thread execution, code execution, code safety verification, compilation, and other system services. These features are intrinsic to the managed code that runs on the common language runtime. Code that targets the runtime is known as managed code, while code that does not target the runtime is known as unmanaged code. The managed environment of the runtime eliminates many common software issues. For example, the runtime automatically handles object layout and manages references to objects, releasing them when they are no longer being used. This automatic memory management resolves the two most common application errors, memory leaks and invalid memory references. The runtime also accelerates developer productivity. For example, programmers can write applications in their development language of choice, yet take full advantage of the runtime, the class library, and components written in other languages by other developers. Any compiler vendor who chooses to target the runtime can do so. Language compilers that target the .NET Framework make the features of the .NET Framework available to existing code written in that language, greatly easing the migration process for existing applications.” (source)

The .NET Framework Class Library is “a collection of reusable types that tightly integrate with the common language runtime. The class library is object oriented, providing types from which your own managed code can derive functionality. For example, the .NET Framework collection classes implement a set of interfaces that you can use to develop your own collection classes. Your collection classes will blend seamlessly with the classes in the .NET Framework.” (source)

“Each version of the .NET Framework contains the common language runtime (CLR), the base class libraries, and other managed libraries. Each new version of the .NET Framework retains features from the previous versions and adds new features. The CLR is identified by its own version number. The .NET Framework version number is incremented at each release, although the CLR version is not always incremented. For example, the .NET Framework 4, 4.5, and later releases include CLR 4, but the .NET Framework 2.0, 3.0, and 3.5 include CLR 2.0. (There was no version 3 of the CLR.)” (source)

“In general, you should not uninstall any versions of the .NET Framework that are installed on your computer, because an application you use may depend on a specific version and may break if that version is removed. You can load multiple versions of the .NET Framework on a single computer at the same time. This means that you can install the .NET Framework without having uninstall previous versions.” (source)

“The .NET Framework 4.5 is an in-place update that replaces the .NET Framework 4 on your computer, and similarly, the .NET Framework 4.5.1 4.5.2, 4.6, 4.6.1, and 4.6.2 are in-place updates to the .NET Framework 4.5, which means that they use the same runtime version, but the assembly versions are updated and include new types and members. After you install one of these updates, your .NET Framework 4, .NET Framework 4.5, or .NET Framework 4.6 apps should continue to run without requiring recompilation. However, the reverse is not true. We do not recommend running apps that target a later version of the .NET Framework on the an earlier version of the .NET Framework. For example, we do not recommend that you run an app the targets the .NET Framework 4.6 on the .NET Framework 4.5.” (source)

How to determine which .NET Framework versions are installed – see here. Basically, check the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP registry subkey. The versions are listed as subkeys under this. In each of those subkeys an entry called Version has the version number.

NET Versions

If you have .NET 4.5 and above installed there will be an additional key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. The Release entry in this key indicates the version of .NET Framework.

NET 45

In the screenshot above Release 379893 corresponds to .NET Framework 4.5.2.

Lastly, what is the .NET Multi-Targeting Pack? It was to learn more about it that I started reading about .NET today. Found this post about it but it mostly went over my head. :) Best I could understand is that it is used as part of compiling programs and installed as part of Visual Studio so doesn’t matter much from a Sys Admin point of view.

Notes on DFS referrals

Was brushing up about DFS referrals today as I had a doubt about something at work. Thought I’d put a shout out to this interesting link that I came across.

A DFS namespace (e.g. \\contoso\pub) has links (e.g. \\contoso\pub\documents). These links can point to multiple targets (e.g. \\server1\documents, \\server2\documents, and so on). When a client visits the link the target that’s chosen is the one in the same AD site as the client. If there is no target in the same site as the client then one of three situation can happen (you have to choose what happens per namespace, but can override it per link):

  • A list of targets from all sites is returned at random.
  • A list of targets is returned based on cost.
    • All sites in the domain will have a cost from the site the client is in. This cost is defined in “AD Sites & Services” and is cumulative (i.e. if Site A to Site B has cost 10, and Site B to Site C has cost 10, and there’s no explicit cost defined between Site A to Site C then the cost from Site A to Site C is taken as 10+10 = 20).
    • Targets from sites closest to the client site are listed in random, followed by targets from sites further away from the client site, and so on.
  • No targets are returned (this is also called in-site only).
    • So if there are no targets in the same site as the client, then the path fails.

Ordering

Apart from these three possibilities, there’s also a fail back (which is hidden behind the drop down in the screen shot above).

Failback

So if a server has no targets to offer a client, it will fail back to whatever targets are set as preferred for a link. I’ll show what preferred targets are in a bit. 

The above settings can be defined on the namespace itself or on each DFS link.

Link Ordering

Now on to preferred targets. If you go to the Properties > Advanced tab of each target, you can set its priority. That is to say, if a target is on same preference level as a bunch of other targets (because they are all in the same site or not) then you can set it to have a higher or lower priority.

Preferred Target

By default there are no preferred targets.

The cool thing I learnt from that post is that if the referral order is set to in-site (i.e. exclude targets from outside the client site) and fail back to preferred targets is enabled (the default) and a target outside the site is set as preferred, then it too will be returned in the list of targets along with the ones in site. This way you can limit referrals to be in-site but have a few selected targets out of site as a fail-back.

One thing to keep in mind though is that since you want the out of site target to be set to lower priority than the in-site one, you must specify its priority as “Last among all targets”. Because if it were set as “First among all targets” then it will take precedence over the in-site target too – which is not what we want. Lastly, there’s no point setting the priority to “First among targets of equal cost” (or “Last”) in the case of in-site referrals as it will have no effect (because the cost of the in-site target and the external targets are different so it doesn’t apply).