With more and more users and applications with licenses, the use of a centralized license server is becoming important.
But what happens if the license server goes down.
With FlexLM it is possible to implement a redundant license server solution.
The configuration is as follows:Â
1 Master License Server
2 Redundant License Servers
3 Machines in Different locations
Automatic Failover Implemented by FlexLM
Â
License Server allocation:
- Master server
- Secondary server
- Quorum server, will never be master
Benefits:
- High Availability
- No single point of failure
- Master Server down, Secondary Server takes over as Master and communicates with Quorum server
- Secondary Server down, Master Server communicates with Quorum server
- Quorum Server down, no change
In case of 2 servers down, Windows users with a valid license will still be able to work.
License is cached for 3 days or until the license servers come back.
The License File is generated on the IBM Rational Site
All floating licenses are added to one file (default)
In case of other products (Non IBM) the product must be added manually to this license file after generation
Copies of the license file must be on all servers (simple scp command to do this)
Automatic startup (Solaris 10)
- smf (Service Management Facility) startup
- All servers start at boot time
- License available when 2 servers started
- Dedicated user for all 3 servers created
- Script for restart of servers from master server
FlexLM service definition in smf is named svc:/network/flexlm:flexlm
Import of the flexlm configuration file
- svccfg import /opt/rational/config/flexlm.xml
Â
cat /opt/rational/config/flexlm.xml
<?xml version=”1.0″?>
<!DOCTYPE service_bundle SYSTEM “/usr/share/lib/xml/dtd/service_bundle.dtd.1”>
<service_bundle type=’manifest’ name=’LNFflexlm:flexlm’>
<service
       name=’network/flexlm’
       type=’service’
       version=’1′>
       <single_instance />
       <instance name=’flexlm’ enabled=’false’>
               <!–
                 Wait for network interfaces to be initialized.
               –>
               <dependency name=’network’
                   grouping=’require_all’
                   restart_on=’error’
                   type=’service’>
                   <service_fmri value=’svc:/milestone/network:default’/>
               </dependency>
               <!–
                 Wait for all local filesystems to be mounted.
               –>
               <dependency name=’filesystem-local’
                   grouping=’require_all’
                   restart_on=’none’
                   type=’service’>
                   <service_fmri
                       value=’svc:/system/filesystem/local:default’/>
               </dependency>
               <exec_method
                       type=’method’
                       name=’start’
                       exec=’/lib/svc/method/flexlm start’
                       timeout_seconds=’60’>
                       <method_context>
                               <method_credential user=’nobody’ group=’noaccess’/>
                       </method_context>
               </exec_method>
               <exec_method
                       type=’method’
                       name=’stop’
                       exec=’/lib/svc/method/flexlm stop’
                       timeout_seconds=’60’>
                       <method_context>
                               <method_credential user=’nobody’ group=’noaccess’/>
                       </method_context>
               </exec_method>
               <exec_method
                       type=’method’
                       name=’refresh’
                       exec=’/lib/svc/method/flexlm refresh’
                       timeout_seconds=’60’>
                       <method_context>
                               <method_credential user=’nobody’ group=’noaccess’/>
                       </method_context>
               </exec_method>
       </instance>
       <stability value=’Evolving’ />
       <template>
               <common_name>
                       <loctext xml:lang=’C’>
                               FLEXlm License Manager
                       </loctext>
               </common_name>
               <documentation>
                       <doc_link name=’flexlm’
                               uri=’file://@CLIENT_BASEDIR@/share/doc/flexlm/’ />
               </documentation>
       </template>
</service>
</service_bundle>
Leave a Reply
You must be logged in to post a comment.