Subversion Repositories havirt

Rev

Rev 39 | Last modification | Compare with Previous | View Log | Download | RSS feed

Last modification

Path Last modification Log Download RSS
[NODE] [FILE] CHANGES.md 26  128 d 6 h rodolico Log Download RSS
[NODE] [FILE] cluster.pm 40  98 d 6 h rodolico Log Download RSS
[NODE] [FILE] config.sample.yaml 26  128 d 6 h rodolico Log Download RSS
[NODE] [FILE] domain.pm 39  98 d 13 h rodolico Log Download RSS
[NODE] [FILE] havirt 38  127 d 7 h rodolico Log Download RSS
[NODE] [FILE] havirt.pm 38  127 d 7 h rodolico Log Download RSS
[NODE] [FILE] havirt.sample.cron 26  128 d 6 h rodolico Log Download RSS
[NODE] [FILE] INSTALL.md 26  128 d 6 h rodolico Log Download RSS
[NODE] [FILE] node.pm 38  127 d 7 h rodolico Log Download RSS
[NODE] [FILE] PROGRAMMING.md 26  128 d 6 h rodolico Log Download RSS
[NODE] [FILE] README.md 28  128 d 6 h rodolico Log Download RSS
[NODE] [FILE] TODO.md 26  128 d 6 h rodolico Log Download RSS
[NODE] [FILE] USAGE.md 25  130 d 4 h rodolico Log Download RSS
[NODE] [FILE] virt-install.template.sample 14  160 d 11 h rodolico Log Download RSS

havirt

Script to macro manage cluster of nodes (hypervisors) and the domains

(virtuals) on them.

Used as an extension to virsh, which it calls quite often, but with a

cluster of nodes (hypervisors) with shared block devices (tested with

iSCSI).

Also, includes code to verify there are enough resources on a node

for the requested action, and protection against running the same domain

on multiple nodes simultaneously, which an result in block device

corruption.

All nodes must be able to make an ssh connection to all other nodes using

public key (no passwords).

Very similar to virsh (on purpose); just adds some protection against

running domains on multiple nodes, allowing monitoring, etc... Samples are:

virsh start domainname # virsh way
havirt domain start domainname nodename

These will both start domainname. The virsh command will start it on the

node you are currently logged into. The havirt command will first verify

domainname is not running on any node, verify the target node has enough

resources, then start it on nodename (or the current node, if nodename not

specified) and modify it's state file to reflect the status change.

The other difference is that the virsh command uses the configuration

domainname.xml stored in /etc/virtlib/qemu, while havirt does a 'virsh

create' using the domainname.xml stored in installdir/conf. This allows

sharing of the same domain configuration on all nodes, at the expense of

some functionality.

By default, havirt will simply emit the command it will normally run. If the

flag --dryrun is defaulted to false (0) in the config file, will actually

run the command(s) unless it is turned back on by passing as a cli

parameter (see config.sample.yaml).

havirt creates two subdirectories, installdir/conf/ and installdir/var/ if

they don't exist.

conf/ stores the xml configuration of all domains

var/ stores the state file (yaml) and some temporary files.

havirt automatically creates a configuration file (config.yaml) in the executables

directory if it doesn't exist, allowing you to modify the default behavior

of the system.

Can be downloaded via subversion at

http://svn.dailydata.net/svn/havirt/stable

Highly recommended you do not use trunk, as we modify that on a regular

basis and check in broken code sometimes