]> git.proxmox.com Git - pve-cluster.git/commitdiff
pvecm create: add corosync.conf parameters for ipv6
authorWolfgang Bumiller <w.bumiller@proxmox.com>
Thu, 21 May 2015 11:07:43 +0000 (13:07 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 21 May 2015 11:21:03 +0000 (13:21 +0200)
pvecm create now adds the following additional corosync.conf parameters:
 * totem.ip_version
 * totem.interface.ringnumber
 * totem.interface.bindnetaddr

For ipv6 corosync needs a 'totem.interface' list with at least one entry
containing a bindnetaddr setting. Additionally 'totem.ip_version' needs to
explicitly be set to ipv6 (or an 'mcastaddr' set, which corosync can
choose automatically, though, so we let it do just that).

data/PVE/pvecm

index f5cacf1d393605aa47cf89c8102dd9a5c0a3504a..0eb2dce42e9214e1c0629fce7ab40f686f47d8f5 100755 (executable)
@@ -5,6 +5,7 @@ use warnings;
 use Getopt::Long;
 use Socket;
 use IO::File;
+use Net::IP;
 use File::Path;
 use File::Basename;
 use Data::Dumper; # fixme: remove 
@@ -154,12 +155,20 @@ __PACKAGE__->register_method ({
 
        $param->{votes} = 1 if !defined($param->{votes});
 
+       # No, corosync cannot deduce this on its own
+       my $ipversion = Net::IP::ip_is_ipv6($local_ip_address) ? 'ipv6' : 'ipv4';
+
        my $config = <<_EOD;
 totem {
   version: 2
   secauth: on
   cluster_name: $clustername
   config_version: 1
+  ip_version: $ipversion
+  interface {
+    ringnumber: 0
+    bindnetaddr: $local_ip_address
+  }
 }
 
 nodelist {