The usage of queue_if_no_path option can lead to D state processes being hung and not killable in situations where all the paths to the LUN go offline. It is advisable to use the no_path_retry option instead.

If you want to set no_path_retry option explicitly, in an attempt to make sure that failed I/O requests are not queuing up and waiting patiently for a path to come back online, you need to add to your /etc/multipath.conf this:

Note: after Microsoft had terminated support for older versions and forced everyone to update their Skype this step returns an error now:

2014-08-23 11:13:58.912 defaults[45773:707] Rep argument is not a dictionaryDefaults have not been changed.

However, I just ignored it and started up Skype and it worked. I can still run two copies of Skype as before.

Press Return.

You can rename Skype copy to anything you’d like it to be. For example, you could use Skype business instead. This comes in handy, because when placed on a dock a tooltip will display this Skype business name and make easy for you to distinguish which Skype dock icon represents what instance.

After reading ‘man exports’ it was clear that the key to configuring writeable NFS share were all_squash, anonuid and anonguid options.

In plain English, when Finder copies to NFS share/export files and folders they have to be created on the NFS server. The server then has to decide who these files are going to belong to. Since the server has no way to tell what user (user ids, the UID and GID) are currently used on the client OS X machine, and also because it is, in fact, not always desired that files are created on a server with the same UID/GID of the user that runs NFS client software, there are basically two options.

First, is to use all_squash which is going to ‘anonymize’ UID/GID and instruct NFS server to create files in such a way that they belong to nobody user. Alternatively, you can set all_squash, as well as anonuid=1000 and anongid=1000 to match first non-system user on a modern Linux system.

So, I know that I store files on the disk that is exported as a specific user, so I configured my NFS export/share to create files on behalf of a client (Finder in Mac OS X) as that specific user (that’s what anonuid and anongid are for).

One more thing. Just for the sake of completeness, this is how I mount the disk and make it available for NFS export:

I first mount this disk device with unique identifier (UUID) in /mnt/seagate1TB, then bind it to /srv/nfs4/seagate1TB. I like to keep things multihomed sort of. Meaning, they can do many functions simultaneously, so this disk isn’t used for NFS alone and it makes sense to mount it in /mnt/seagate1TB first.

If you couldn’t care less about such things, just mount it directly to /srv/nfs4/seagate1TB to have it as a reminder that it is explicitly used for NFS.

You can also use symlinks, that are really handy. Consider the following example:

In fact, I’ve switched to using symlink because it lets me maintain NFS export handles in a consistent fashion regardless of where the actual filesystems/disks are mounted. So, I can always access them as:

myserver.net:/srv/nfs4/disk
myserver.net:/srv/nfs4/disk-1
etc

while the disk are mounted elsewhere.

Firewall and NFS4

If you have a restrictive firewall things get really interesting. rpcbind daemon uses random ports to facilitate client to server connections. Fun! Honestly, I don’t know how to deal with this. Well, except restarting firewall manually or granting access to all destination ports for the host in question (this is what I’m doing on my home LAN).

When working in a guest VM console over VNC you may end up clicking into the black area. Which grabs and locks your mouse pointer.

Actually, you don’t have to click the VM console screen area, if all you want to do is type in something. However, if you must use mouse to click something inside the terminal view it’s going to get locked.

To release your mouse pointer, normally you’d press Ctrl_L+Alt_L, as it is stated in the window title.

However, it doesn’t work on Mac. Instead you need to use:

Ctrl_L+Command_L

PS: Interestingly, it is one of the top posts on this blog. I find it ironic. Apparently, way too many people run into this problem. If you’re one of them let me know in the comments section down below.

GnuCash can deal with multiple currencies. However, its behavior when setting currency exchange rates is somewhat obscure and had me spend literally hours to figure out how to get it under control a couple of times.

The use case. Account A is in USD currency, account B is in UAH currency. You need to transfer funds from A to B, which involves currency exchange rate.

When you do this the very first time, you enter Description of the transaction, specify the account B to transfer funds to, and key in Debit/Withdraw value of say 150USD and then hit Enter key, GnuCash then will present you with an exchange rate editor window where you should be able to enter the exchange rate for this transaction.

As it often happens, many transactions are repetitive, and luckily GnuCash helps making these records fast by offering you a history autocompletion function, much like one found in LibreOffice and Bash/Linux/UNIX terminal.

So, typically a user would quickly create another new record in a ledger for account A, specify a different amount of Debit/Withdrawal this time and find out that the resulting value in account B is wrong.