Re: Higher Grained Definition ofIP AddressAssignments

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Aye-aye. Will do.

Kaloyan Kovachev wrote:
On Thu, 17 Jun 2010 14:59:59 -0500, Dustin Henry Offutt
<dhoffutt@xxxxxxxxx> wrote:
  
Believe this issue has been resolved by altering
    
/usr/share/cluster/ip.sh.
  
The resulting script has added new XML for a new "device" parameter.

New variable 'device' is passed to the ip_op function and then to
    
functions
  
ipv4 and ipv6. The ipv4 and ipv6 function iterate through all network
devices and, upon finding a device with a configuration similar to the
    
IP
  
needing to be assigned, would assign the IP there, which caused all the
    
IPs
  
to bunch up on one device. The added logic here will go through the
iteration, and if there is a "device" variable requested it is matched
against the device name in the function.

Is there some way to get this put into the Cluster Suite officially so
    
that
  
it may be supported?

Thank you...

(diff -cB)
    

You should also modify cluster.rng and add 'device' as an optional
attribute to the 'ip' element (around line 1010) or else the config won't
validate

why not use OSCF_RESKEY_device inside ipv4/6 directly, instead of passing
it to ip_op?
  ip_op <family> <operation> <address> <device> [quiet]
... if device is empty, but there is quiet present it will be accepted as
device

  
*** ip.sh.original    2010-06-17 10:43:00.000000000 -0500
--- ip.sh    2010-06-17 14:42:26.000000000 -0500
***************
*** 86,91 ****
--- 86,104 ----
              <content type="string"/>
          </parameter>

+         <parameter name="device">
+             <longdesc lang="en">
+                 Specify network device to bring this
+                 IP up on. Optional. Example: "eth0"
+             </longdesc>
+
+             <shortdesc lang="en">
+                 Network device
+             </shortdesc>
+
+             <content type="string" default="auto"/>
+         </parameter>
+
          <parameter name="monitor_link">
              <longdesc lang="en">
                  Enabling this causes the status check to fail if
***************
*** 571,576 ****
--- 583,589 ----
      declare addr_exp=$(ipv6_expand $addr)

      while read dev ifaddr_exp maskbits; do
+             if ([ -z $3 ] || [ "$3" = "auto" ]) || [ "$dev" = "$3" ];
then
              if [ -z "$dev" ]; then
                  continue
          fi
***************
*** 636,641 ****
--- 649,655 ----
          fi

          return 0
+             fi
      done < <(ipv6_list_interfaces)

      return 1
***************
*** 651,656 ****
--- 664,670 ----
      declare addr=$2

      while read dev ifaddr maskbits; do
+             if ([ -z $3 ] || [ "$3" = "auto" ]) || [ "$dev" = "$3" ];
then
              if [ -z "$dev" ]; then
                  continue
          fi
***************
*** 715,720 ****
--- 729,735 ----
          fi

          return 0
+             fi
      done  < <(ipv4_list_interfaces)

      return 1
***************
*** 813,819 ****

  #
  # Usage:
! # ip_op <family> <operation> <address> [quiet]
  #
  ip_op()
  {
--- 827,833 ----

  #
  # Usage:
! # ip_op <family> <operation> <address> <device> [quiet]
  #
  ip_op()
  {
***************
*** 866,872 ****

      case $1 in
      inet)
!         ipv4 $2 $3
          return $?
          ;;
      inet6)
--- 880,886 ----

      case $1 in
      inet)
!         ipv4 $2 $3 $4
          return $?
          ;;
      inet6)
***************
*** 923,929 ****
          ocf_log debug "${OCF_RESKEY_address} already configured"
          exit 0
      fi
!     ip_op ${OCF_RESKEY_family} add ${OCF_RESKEY_address}
      if [ $? -ne 0 ]; then
          exit $OCF_ERR_GENERIC
      fi
--- 937,943 ----
          ocf_log debug "${OCF_RESKEY_address} already configured"
          exit 0
      fi
!     ip_op ${OCF_RESKEY_family} add ${OCF_RESKEY_address}
${OCF_RESKEY_device}
      if [ $? -ne 0 ]; then
          exit $OCF_ERR_GENERIC
      fi


On Thu, Jun 17, 2010 at 9:00 AM, Dustin Henry Offutt
<dhoffutt@xxxxxxxxx>wrote:

    
Using the node's IPs would not work. The software being made HA must
      
keep
  
its IPs the same no matter what node its running on. Could script an IP
change, but then we're putting IP logic and monitoring in two places:
      
The
  
cluster software and in our custom scripting. That's not a clean
      
solution
  
and is rather going backwards.

We may as well just do our own HA if we were starting down that road.
When
we sell our product the customer must also purchase Redhat Support for
their
OS and cluster software. I would think Redhat should pony up to get
      
this
  
done as the product we are selling is selling well and inducing Redhat
Support sales.

An official feature request has been submitted to Redhat.

Also, I'm working on the /usr/share/cluster/ip.sh script myself to add
the
feature. Hopefully it works out.



On Thu, Jun 17, 2010 at 2:09 AM, Kit Gerrits <kitgerrits@xxxxxxxxx>
wrote:

      
 In that case, might it be easier to simply use the host IP adresses
        
and
  
not the cluster IP's?
(the application will need to handle up/down events itself)


Regards,

Kit

 ------------------------------
*From:* linux-cluster-bounces@xxxxxxxxxx [mailto:
linux-cluster-bounces@xxxxxxxxxx] *On Behalf Of *Dustin Henry Offutt
*Sent:* dinsdag 15 juni 2010 14:40
*To:* linux clustering
*Subject:* Re:  Higher Grained Definition ofIP
AddressAssignments

I've spent the past year architecting an HA cluster with RHCS and it's
working wonderfully. I have not seen anything superior.

Due to a new customer-driven feature of our software, we need to add
        
the
  
ability for a cluster service/resource group to have up to eight
distinct
IPs on one particular network due to the software being made highly
available via RHCS performing its own load balancing. Placing the load
balancing elsewhere is not an option due to the nature of the product.

Regarding "OCF_RESKEY_," will google more on this and appreciate the
tip.
Must work this out some way.

~ Dusty

C. Handel wrote:

[define interface of cluster controlled ip resource]



/usr/share/cluster/ip.sh appears to perform the link-monitoring in the


This is a resource agent script. What attributes a resource agent
accepts can be found by calling it with the option meta-data

/usr/share/cluster/ip.sh meta-data

There is no attribute interface. The agent will add the additional
address to the first interface that is in the same subnet.

You could edit the script and add a parameter interface yourself. Add
a new parameter into the XML at the beginning and access it in the
script with OCF_RESKEY_...

I don't understand what you are trying to do. If you are only handling
network interfaces as services, then rhcs is most likely the wrong
tool. If you would explain your goal we could probably suggest other
solutions.

Greetings
   Christoph

--
Linux-cluster mailing

        
listLinux-cluster@xxxxxxxxxxxxxxx://www.redhat.com/mailman/listinfo/linux-cluster
  
No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 9.0.829 / Virus Database: 271.1.1/2939 - Release Date:
        
06/15/10
  
08:35:00


--
Linux-cluster mailing list
Linux-cluster@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/linux-cluster

        
      

--
Linux-cluster mailing list
Linux-cluster@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/linux-cluster

  

--
Linux-cluster mailing list
Linux-cluster@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/linux-cluster

[Index of Archives]     [Corosync Cluster Engine]     [GFS]     [Linux Virtualization]     [Centos Virtualization]     [Centos]     [Linux RAID]     [Fedora Users]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite Camping]

  Powered by Linux