I frequently encounter a very annoying error message in the XenCenter administration tool:
Xenops_interface.Internal_error("Packet.Error("EQUOTA")"
When this happens the virtual machine cannot be moved to a different XenServer host. The VM must be restarted to fix this problem, however the VM itself is running just fine so one could leave it alone. It just can't be moved around anymore.
The reason why this happens is unclear to me. I can't remember seeing this problem at all on XenServer 5.x but it occurs frequently (several times a week) on XenServer 6.1.
To check the quotas for a VM use the following command:
[root@server18 ~]# /opt/xensource/debug/xs debug quota <dom-id> dom35 quota: 1000/1000 [root@server18 ~]#
The parameter <dom-id> is the id of the virtual machine which can be listed using:
[root@server18 ~]# xl list Name ID Mem VCPUs State Time(s) Domain-0 0 741 4 r----- 90475.7 s0036 xxxxxxxxx 2 2048 4 -b---- 31123.8 s0114 xxxxxxn 4 2048 2 -b---- 25281.9 s0107 xxxxxxxx 30 1024 8 -b---- 5623.5 s0122 xxxx 35 4096 4 -b---- 22753.6 s0073 xxxxxxxxx 42 4096 4 -b---- 9655.8 [root@server18 ~]#
These two commands can be combined by the following trivial and intuitive shell command:
[root@server18 ~]# for h in `xl list | sed 's/.\{44\}//' | tail -n +2 | awk '{print $1}'`; do i=`/opt/xensource/debug/xs debug quota $h`; j=`xl list $h | tail -1`; printf "%25s %s\n" "$i" "$j" ; done dom0 quota: 1057/1000 Domain-0 0 741 4 r----- 90488.0 dom2 quota: 68/1000 s0036 xxxxxxxxx 2 2048 4 -b---- 31131.6 dom4 quota: 68/1000 s0114 xxxxxxx 4 2048 2 -b---- 25285.0 dom30 quota: 49/1000 s0107 xxxxxxxx 30 1024 8 -b---- 5627.1 dom35 quota: 1000/1000 s0122 xxxx 35 4096 4 -b---- 22779.3 dom42 quota: 755/1000 s0073 xxxxxxxxx 42 4096 4 -b---- 9677.4 [root@server18 ~]#
This lists the current quotas of all VMs on this host. You can see that dom35 - which is the VM having problems - has in fact used up its resource quota. The dom42 VM - which has the name 's0073 xxxxxxxxx' is running out of resources too. So it would be 'immovable' in a couple of days too.
Workaround: If the quota is not yet reached, move the VM to a different host. The quota will then reset to a low value.
It is also possible to increase the quota or deactivate it in the file /etc/xen/oxenstored.conf
and restart the XenServer host:
... # Activate quota quota-activate = true quota-maxentity = 1000 quota-maxsize = 2048 quota-maxwatch = 100 quota-transaction = 10 ...
I did not try this myself though and I don't know whether changing this file might have any adversary effects.
Here is a lengthy discussion thread regarding this problem on the Citrix forum:
http://forums.citrix.com/thread.jspa?threadID=320691&start=0&tstart=0 (free registration required).