Virtual Machines and Openstack¶
A virtual machine in openstack consists of an instance which is based on an image and attached to a volume, living in a tenant. All ACM virtual machines run through openstack live in the admin tenant and can be administered from gomes through command line tools.
VM Configuration¶
The gotchas discussed in the openstack user docs are, of course, still preseent.
RADOS Block Devices via virtio¶
Apparently the default virtio-block
parameters result in some
inefficiencies when backed with rbds; the former assumes 512KiB IOs as the
largest while the latter prefers IOs which match the object size, which
defaults to 4MiB. Fortunately, there is an easy way to automate fixing this
on Linux using udev.
In something like /etc/udev/rules.d/99-virtio-rbd-io-size.rules
, place
the following line:
KERNEL=="vd*[!0-9]", RUN+="/bin/sh -c 'echo 4096 > /sys%p/queue/max_sectors_kb'"
You can force this to happen on an existing VM without rebooting by running, for example:
udevadm trigger -s block
AFS on an OpenStack VM¶
Since our VMs are (usually) not backed by compute-node-local storage, there’s not a great deal of utility (I think) in providing an AFS disk cache.
Adjust
/etc/openafs/afs.conf
to haveOPTIONS="${VERBOSE} -memcache"
rather thanOPTIONS=AUTOMATIC
(or just add-memcache
if you have something else)Adjust
/etc/openafs/cacheinfo
to have a moderate cache size (you still need to name the directory, but that’s OK, it won’t be used)If you’re making this change live on a machine, free up the space used by the old cache files
/etc/init.d/openafs-client stop rm -rf /var/cache/openafs/* /etc/init.d/openafs-client start
Maintenance Tasks¶
Getting a shell on a VM with no floating IP¶
Log in to gomes. Identify the correct network namespace by running a variant on
for i in `ip netns list`; do echo $i;
sudo ip netns exec $i ip addr show | grep 192.168.128;
done
(There will probably be two; either one should work.)
Then
sudo ip netns exec ${THAT_NAMESPACE} ssh -i $HOME/.ssh/id_rsa -v ${VM_USER}@${VM_IP_ADDRESS}
should get you a shell on that machine. Isn’t this exciting?