Ensuring dm-multipath devices are named consistently across cluster nodes
If you are using the Linux dm-multipath package to provide mulit-pathing in clustered environments, it is super important that the dev-mapper devices show up with the same name on each node. One way to achieve this is through multipath.conf aliases, which allow you to assign a name to a mapper device based on it's WWID: If you want to stick with mpath[0-9]+ names, you can propagate the /var/lib/multipath/bindings file to each node in the cluster. This file contains the name of each mpath device, along with the WWID that is assigned to it: The device-mapper is pretty sweet, and the price tag (free) is even better!
$ read more →Compiling mpt-status on CentOS Linux hosts
I use mpt-status to monitor LSI Logic RAID controllers in my Linux hosts. While attempting to build a package for CentOS 5.3, I ran into the following error: It appears that the compiler.h header doesn't come with the CentOS kernel-headers package (and according to a couple of posts I read, it is no longer a publicly consumable header file), so I removed it from mpt-status.c. This allowed mpt-status.c to build and install correctly: If you are attempting to build mpt-status.c for the first time, make sure you properly install the CentOS Linux kernel source. I received a couple of e-mails from individuals who were trying to get mpt-status working, and in each case the Linux kernel source was not installed properly.
$ read more →Net-snmp returns zeros for various UDP and TCP mibII data
While testing out the latest net-snmp bits, I noticed that various TCP and UDP mibII OIDs would continuosly display zeros on my Solaris 10 update 6 host: Generate lots of UDP traffic. This turns out to be caused by a net-snmp bug, which is fixed by applying the patch attached to the bug report. I am posting this here to help others who may bump into this issue.
$ read more →Debugging net-snmp problems
I spent a fair amount of time debugging a bizarre net-snmp issue yesterday, and learned a TON about how net-snmp is implemented. While reading through the net-snmp code, I came across a number of macros similar to the following: The first argument to the DEBUGMSGCTL() macros contains a token name, which can be passed to the snmpd daemon's "-D" option to get verbose debugging data: To find the tokens that are available, you can bust out the trusty find utility: While the debugging output is a bit primitive, it is extremely useful when you can compare it side-by-side with the net-snmp source code. This helped me locate and fix an annoying bug (data is incorrect on Solaris 10 u4+ hosts), which allowed me to roll out the new version of the code to various hosts (the new version fixes a couple of bugs that lead to the daemon hanging after a period of time). Debugging is a bunch of fun, and there is nothing better than finding a solution to an issue!
$ read more →Configuring the open-iscsi initiator on CentOS Linux hosts
My lab environment at home consists of numerous hosts running Linux, Solaris, HP-UX and Windows. To allow me to rebuild hosts with little impact to the applications they run, I typically assign one or more iSCSI LUNs to each host. Configuring the Solaris iSCSI initiator is pretty straight forward, and I documented it a while back for SysAdmin magazine. The Linux Open iSCSI initiator is just as easy to configure, and I thought I would document the process here for future reference…
$ read more →