This chapter describes how to configure and administer network function virtualization (NFV) for Oracle Communications Evolved Communications Application Server (OCECAS).
For an understanding of NFV concepts and implementation, see Oracle Communications Evolved Communications Application Server Concepts. For information on using Oracle Communications Application Orchestrator, see Oracle Communications Application Orchestrator User Guide at the Oracle Communications Application Orchestrator web site:
https://docs.oracle.com/cd/E65520_01/doc/ao_11_userguide.pdf
Configuring and administering NFV consists of the following tasks:
The chapter provides the following CNFD examples:
This procedure creates a Web-server type of OVA file from Oracle installation media using Oracle VM VirtualBox.
Note:
Oracle recommends that you are thoroughly familiar with the OCECAS installation procedure described in the Oracle Communications Evolved Communications Application Server Installation Guide before creating an OVA image file.Follow these steps to create the OVA image file to be configured and deployed using Application Orchestrator.
Run the following command as root to install Java JRE and JDK:
install_java.sh
If not already installed, run the following command as root to install netcat
:
yum install nc
Execute the following commands as root to create the user occas.
mkdir /middleware groupadd occas useradd -d /middleware/occas -g occas occas
Create oracle directory as root and change the owner to user occas:
mkdir /opt/oracle chown -R occas /opt/oracle
Execute the following commands as user occas to run the OCECAS installer:
export JAVA_HOME=/usr/java/latest export PATH=/usr/java/latest/bin:$PATH java -jar ocecas_generic.jar -silent -responseFile /opt/oracle/ins.res -invPtrLoc /opt/oracle/ins.loc
Note:
This executes a silent install, which requires a response file. See ”Installing OCECAS in Silent Mode” for more information on using silent mode, and creating a response file.The content of the ins.res response file is:
occas> cat /opt/oracle/ins.res [ENGINE] #DO NOT CHANGE THIS. Response File Version=1.0.0.0.0 [GENERIC] #The oracle home location. This can be an existing Oracle Home or a new Oracle Home ORACLE_HOME=/opt/oracle/occas #Set this variable value to the Installation Type selected. e.g. Evolved Communications Application Server, Converged Application Server (SIP Container). INSTALL_TYPE=Evolved Communications Application Server #Provide the My Oracle Support Username. If you wish to ignore Oracle Configuration Manager configuration provide empty string for user name. MYORACLESUPPORT_USERNAME= #Provide the My Oracle Support Password MYORACLESUPPORT_PASSWORD=<SECURE VALUE> #Set this to true if you wish to decline the security updates. Setting this to true and providing empty string for My Oracle Support username will ignore the Oracle Configuration Manager configuration DECLINE_SECURITY_UPDATES=true #Set this to true if My Oracle Support Password is specified SECURITY_UPDATES_VIA_MYORACLESUPPORT=false #Provide the Proxy Host PROXY_HOST= #Provide the Proxy Port PROXY_PORT= #Provide the Proxy Username PROXY_USER= #Provide the Proxy Password PROXY_PWD=<SECURE VALUE> #Type String (URL format) Indicates the OCM Repeater URL which should be of the format [scheme[Http/Https]]://[repeater host]:[repeater port]
The content of the ins.loc file is:
cat /opt/oracle/ins.loc inventory_loc=/opt/oracle/local_inventory inst_group=occas
Copy NoSQL to the /opt/oracle/occas directory:
ls -ltr /opt/oracle/occas/nosql total 8 drwxrwxr-x. 6 occas occas 4096 Jul 14 2014 kv-3.0.14 drwxrwxr-x. 2 occas occas 4096 Jul 6 17:03 kvroot
If the image includes the Oracle database, run install_oracle.sh:
install_oracle.sh occas
And as user root, run the following scripts:
/middleware/occas/oracle/oraInventoryDB/orainstRoot.sh /middleware/occas/oracle/product/12.1.0/root.sh
Create an oracledb file in /etc/init.d using the script oracledb.sh.
As user root, modify ORACLE_HOME and ORACLE_USER as appropriate:
chmod 755 oracledb /sbin/chkconfig oracledb on /sbin/service oracledb start
Create the SDC and OPSS database schemas:
export ORACLE_HOME=/middleware/occas/oracle/product/12.1.0; export ORACLE_BASE=/middleware/occas/oracle; export UNIX_USER=occas; export CONTINUE_ON_ERROR=1; bash /middleware/occas/sdc-root/sdc/sdc_1/root.sh <<STDIN -d remove -u occas -g occas -b /middleware/occas/oracle -h /middleware/occas/oracle/product/12.1.0 -c false sdc sdc sys sys manager manager sdc_admin sdc_admin sdc_opss sdc_opss STDIN
As user root, remove all unnecessary files to shrink the size of the image:
cat /dev/zero > /zero.fill; sync; sleep 1; sync; rm -f /zero.fill; echo "/ cleared.."
As user root, remove any pre-existing network configurations:
cat /etc/sysconfig/network-scripts/ifcfg-eth0; should look like DEVICE=eth0 TYPE=Ethernet ONBOOT=yes rm /etc/udev/rules.d/70*net*
Stop the Oracle database:
service oracledb stop
Disable Internet protocol, version 6 (IPV6) by adding the following lines to the /etc/sysctl.conf file:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
Edit the java.security file to set securerandom.source
as follows:
vi /usr/java/latest/jre/lib/security/java.security securerandom.source=file:/dev/./urando
Add the following lines to the rc.local file to mount the OpenStack configuration disk, stop firewall rules, set permissions, and apply bootstrap data.
/bin/mount /dev/sr0 /mnt /sbin/service iptables stop /usr/sbin/setenforce permissive /usr/bin/python /root/setup-machine.py
Add setup-machine.py:
cat /root/setup-machine.py import json, os userDataFile = '/mnt/openstack/latest/user_data' with open(userDataFile, 'r') as data_file: userData = json.load(data_file) targetname = userData["bootparams"]["targetname"] mgmtip = userData["bootparams"]["mgmtIp"] netmask = userData["bootparams"]["netmask"] publickey = userData["bootparams"]["publickey"] etcHostEntry = mgmtip + ' ' + targetname if publickey != None: if os.path.exists('/middleware/occas/.ssh') == False: os.system('su - occas -c "mkdir -p /middleware/occas/.ssh; chmod 700 /middleware/occas/.ssh; echo ' + publickey + ' >> /middleware/occas/.ssh/authorized_keys; chmod 0600 /middleware/occas/.ssh/authorized_keys"') if mgmtip != None: os.system('/sbin/ifconfig eth0 ' + mgmtip + ' netmask ' + netmask + ' up') os.system('/bin/hostname ' + targetname) os.system('/bin/grep ^' + mgmtip + ' /etc/hosts || /bin/echo ' + etcHostEntry + ' >> /etc/hosts')
Shut down the machine and export it as a new OVA appliance. VirtualBox should create a file with the extension .vmdk. For example:
pwd ~/VirtualBox VMs/ecas-nfv ll total 4329956 -rw-------. 1 user group 4434624512 Jul 9 09:36 ecas-nfv-disk1.vmdk -rw-------. 1 user group 55292 Sep 27 21:00 ecas-nfv.vbox -rw-------. 1 user group 55449 Sep 27 21:00 ecas-nfv.vbox-prev drwx------. 2 user group 4096 Sep 25 14:23 Logs drwx------. 2 user group 4096 Sep 27 21:00 Snapshots
Import the image into VM Player.
Note:
This step is required because Application Orchestrator does not accept an OVA file that has been generated by VirtualBox.VMWare generates a new .vmx file. For example:
pwd
~/vmware/ecas-nfv-1
ll
total 6376272
-rw-------. 1 user group 4439080960 Aug 26 13:38 ecas-nfv-1-disk1.vmdk
-rw-------. 1 user group 2090994176 Aug 26 13:42 ecas-nfv-1.ova
-rw-r--r--. 1 user group 0 Aug 26 13:38 ecas-nfv-1.vmsd
-rwxr-xr--. 1 user group 1132 Aug 26 13:38 ecas-nfv-1.vmx
-rw-r--r--. 1 user group 265 Aug 26 13:38 ecas-nfv-1.vmxf
drwxrwxrwx. 2 user group 4096 Aug 26 13:38 ecas-nfv-1.vmx.lck
Run the ovftool
command to convert the .vmx file to OVA format. For example:
ovftool ecas-nfv-1.vmx ecas-nfv-1.ova
The image is now ready for use by Application Orchestrator.
You configure the domain and CNF for the AO adapter through XML composite network function descriptor (CNFD) files. The CNFD files provide the following information:
CNF and NF group details
Minimum and maximum deployment units (DUs)
Resource requirements such as CPU, memory, disk, and so on, for deployment units
Registered KPIs, including threshold criteria and scaling policies, and the source adapter
Each CNF, or domain, requires a separate CNFD file. For OCECAS, for example, there is a separate CNFD file for the Management, Testing, Staging, Production, and UDR domains, if the UDR exists in a separate domain.
You create CNFD parameters using the Application Orchestrator user interface (UI), which you can access using your browser by specifying the hostname and port of the AO server:
https://hostname:port
The CNFD file has different sections , which are configurable through the UI screens. The following sections describe the CNF and NF group details.
See "Example CNFD Parameters for a Management Domain" for an example of CNFD parameters for a management domain. See "Example CNFD Parameters for a Runtime Domain" for an example of CNFD parameters for a runtime domain.
You specify CNF capacity through the UI during staging of the CNF. Staging is done in the Application Orchestrator section of the UI under Onboarding >Catalogue. For the CNF being staged, you must specify the maximum number of subscribers, the minimum number of subscribers, and the sizing model. Based on the maximum and minimum number of subscribers, the adapter calculates the number of deployment units (DUs). The calculated number of deployment units are activated immediately when the NF group is deployed.
The following example shows sample CNFD parameters generated for the maximum number of subscribers, the minimum number of subscribers, and the sizing model:
<parameter description="Maximum Number Of Subscribers" label="Max # of Subscriber" name="MaximumNumberOfSubscribers" password="false" readOnly="false" required="true" value="20000000" valueType="NumberField"> <validValues name=""/> </parameter> <parameter description="Minimum Number Of Subscribers" label="Min # of Subscriber" name="MinimumNumberOfSubscribers" password="false" readOnly="false" required="true" value="100000" valueType="NumberField"> <validValues name=""/> </parameter> <parameter description="Sizing Model" label="Sizing Model" name="SizingModel" password="false" readOnly="false" required="true" value="Small" valueType="ComboBox"><validValues name="Small" /><validValues name="Medium" /> <validValues name="Large" /> </parameter>
The NF groups are specified through the OVA file. For more information, see ”About the OVA File” in Oracle Communications Evolved Communications Application Server Concepts.
When you specify a sizing model during CNF staging, however, you indirectly specify the number of DUs and associated resources such as CPUs, memory and disk space, which are calculated as a result. The following example shows sample sizing allocation parameters for NF group SCE.
<nfGroup name="SCE" componentType="SCE" softwareVersion="1.0" emsType="OCECASEM" maximumNumberDU="50" minimumNumberDU="1" order="2"> <resiliencePolicy name="STANDALONE" activeDevicesPerDU="1"/> <resource isVirtual="true"> <virtual minimumCpus="8" maximumCpus="8" minimumDiskBytes="13958643712" maximumDiskBytes="13958643712" minimumMemoryBytes="8589934592" maximumMemoryBytes="8589934592" managementIPCount="1"> <Interfaces name="eth0" order="0"/> <SizingAllocation> <SupportedAllocation name="SizingModel" size="Small" cpus="8" memoryBytes="17179869184" diskBytes="13958643712"> <SupportedAllocationKPI> <parameter description="Number of Subscribers" label="Subscribers" name="SubscriberPerVm" password="false" readOnly="false" required="true" value="100000" valueType="NumberField"><validValues name="" /></parameter> </SupportedAllocationKPI> </SupportedAllocation> <SupportedAllocation name="SizingModel" size="Medium" cpus="16" memoryBytes="34359738368" diskBytes="13958643712"> <SupportedAllocationKPI> <parameter description="Number of Subscribers" label="Subscribers" name="SubscriberPerVm" password="false" readOnly="false" required="true" value="200000" valueType="NumberField"><validValues name="" /></parameter> </SupportedAllocationKPI> </SupportedAllocation> <SupportedAllocation name="SizingModel" size="Large" cpus="32" memoryBytes="34359738368" diskBytes="13958643712"> <SupportedAllocationKPI> <parameter description="Number of Subscribers" label="Subscribers" name="SubscriberPerVm" password="false" readOnly="false" required="true" value="400000" valueType="NumberField"><validValues name="" /></parameter> </SupportedAllocationKPI> </SupportedAllocation> </SizingAllocation> </virtual> </resource>
The VIM delivers boot parameters to the VM when the VM is booted. You specify boot parameters through the AO Orchestration section of the OCAO UI. For specific steps, see ”Specify Common Boot Parameters” in Oracle Communications Application Orchestrator User Guide at the Oracle Communications Application Orchestrator Documentation web site:
https://docs.oracle.com/cd/E65520_01/index.htm
The following example shows sample boot parameters for the SCE runtime NF group:
<bootParameters> <!-- The parameters given to the VIM to boot the VM. --> <commonParameters> <parameter description="Default Gateway" label="Default Gateway" name="defaultGW" password="false" readOnly="false" required="true" value="10.0.0.1" valueType="Ipv4"/> <parameter description="Netmask" label="Netmask" name="netmask" password="false" readOnly="false" required="true" value="255.255.255.0" valueType="TextField"/> <parameter description="Public Key" label="Public Key" name="publickey" password="false" readOnly="false" required="true" value="" valueType="TextArea"/> </commonParameters> <deviceParameters> <parameter description="Hostname" label="Hostname" name="targetname" password="false" readOnly="false" required="true" value="engine" valueType="TextField"/> <parameter description="Management IP Address" label="IP Address" name="mgmtIp" password="false" readOnly="false" required="true" value="10.0.0.71" valueType="Ipv4"/> </deviceParameters> </bootParameters>
You specify a KPI threshold policy through the AO Orchestration section of the OCAO UI. For specific steps, see "Add a KPI Threshold Policy" in Oracle Communications Application Orchestrator User Guide.
Note:
The Relative limit, Warning %, Critical %, Growth Duration and Decline Duration parameters apply to the default scaling policy for the adapter and are unique to the component type.The following example shows sample capacity scaling parameters for the SCE runtime NF group:
<capacity scalingPolicy="AO standard scaling policy"> <registeredKpis> <KPI name="Device CPU" referenceName="Device CPU" source="VIMAdaptor" description="Current CPU load as identified by VIM"> <threshold relativeLimit="100"> <parameter description="Percentage to start monitoring for spin up" label="warningThreshold" name="warningThreshold" password="false" readOnly="false" required="true" value="70" valueType="TextField"/> <parameter description="Percentage to force immediate spinup" label="criticalThreshold" name="criticalThreshold" password="false" readOnly="false" required="true" value="85" valueType="TextField"/> <parameter description="Minutes to wait before spin up" label="growthDuration" name="growthDuration" password="false" readOnly="false" required="true" value="2" valueType="TextField"/> <parameter description="Minutes to wait before spin down" label="declineDuration" name="declineDuration" password="false" readOnly="false" required="true" value="4" valueType="TextField"/> </threshold> </KPI> </registeredKpis> <parameter name="loadShedKpi" label="Load shedding KPI" description="KPI to use for Load Shedding" value="Device CPU" password="false" readOnly="false" required="true" valueType="TextField"/> <parameter name="loadShedThreshold" label="Load shedding threshold" description="Load shedding threshold value" value="20" password="false" readOnly="false" required="true" valueType="TextField"/> <parameter name="loadShedTimeout" label="Load shedding timeout (minutes)" description="Load shedding timeout (minutes)" value="1" password="false" readOnly="false" required="true" valueType="TextField"/> </capacity>
In addition to CNFD parameters, you must also specify element manager (EM) configuration parameters in the OCAO Application Orchestrator section.
In the Deployed folder, click CNF.
In the Composite Network Functions section, select the CNF for OCECAS and click Expand.
Select the runtime NF group, click the Manage drop-down list and then click Edit.
Click the EM tab and complete the entries described in Table 6-1 and Table 6-2.
Click Apply.
Table 6-1 Element Manager Parameters
Entry | Description |
---|---|
Admin User |
WebLogic administration user name. |
Admin Password |
WebLogic administration password. |
ssh User |
The ssh user name. |
ssh Private Key |
Private key for ssh login. |
KVL NoSQL Directory |
/opt/oracle/occas/nosql . |
Specify the entries in Table 6-2 for each runtime domain (testing, staging, production).
Table 6-2 Runtime Domain Parameters
Entry | Description |
---|---|
Runtime Domain |
Select the runtime domain from the drop-down list. |
Domain Admin Host Address |
Address for the Administration server. |
SIP Listen Port |
Listen port for inbound SIP messages. Default: 5060 |
SIPS Listen Port |
Listen port for inbound secure SIP messages. Default: 5061 |
OCECAS uses a load monitoing and management framework to help the adapter to monitor and manage overload conditions using JMX. The CNFD configuration, in combination with MBean object sourcing, determines which KPIs are fetched. For example, the following MBean object source statement, in combination with the CNFD configuration, causes ActiveCallStates KPIs to be fetched:
com.bea:ServerRuntime=${serverName},Name=${serverName},Type=SipPerformanceRuntime,SipServerRuntime=${serverName}
The following example illustrates the corresponding CNFD XML configuration that's needed to trigger the collection of ActiveCallStates KPIs.
<KPI name="ActiveCallStates" referenceName="ActiveCallStates" source="EMAdaptor" description="com.bea:ServerRuntime=${serverName},Name=${serverName}, Type=SipPerformanceRuntime,SipServerRuntime=${serverName}"> <threshold relativeLimit="100"> <parameter description="Number to start monitoring for spin up" label="warningThreshold" name="warningThreshold" password="false" readOnly="false" required="true" value="40" valueType="TextField"/> <parameter description="Number to force immediate spinup" label="criticalThreshold" name="criticalThreshold" password="false" readOnly="false" required="true" value="45" valueType="TextField"/> <parameter description="Minutes to wait before spin up" label="growthDuration" name="growthDuration" password="false" readOnly="false" required="true" value="2" valueType="TextField"/> <parameter description="Minutes to wait before spin down" label="declineDuration" name="declineDuration" password="false" readOnly="false" required="true" value="0" valueType="TextField"/> </threshold> </KPI>
OCECAS also collects NoSQL KPIs over JMX. The following example illustrates the CNFD configuration that's needed to trigger the collection of MultiIntervalTotalRequests KPIs:
<KPI name="MultiIntervalTotalRequests" referenceName="MultiIntervalTotalRequests" source="EMAdaptor" description="MultiIntervalTotalRequests"> <threshold relativeLimit="1000"> <parameter description="Number to start monitoring for spin up" label="warningThreshold" name="warningThreshold" password="false" readOnly="false" required="true" value="500" valueType="TextField"/> <parameter description="Number to force immediate spinup" label="criticalThreshold" name="criticalThreshold" password="false" readOnly="false" required="true" value="1000" valueType="TextField"/> <parameter description="Minutes to wait before spin up" label="growthDuration" name="growthDuration" password="false" readOnly="false" required="true" value="1" valueType="TextField"/> <parameter description="Minutes to wait before spin down" label="declineDuration" name="declineDuration" password="false" readOnly="false" required="true" value="4" valueType="TextField"/> </threshold> </KPI>
The following example shows snippets of possible CNFD elements for a Management CNF, or domain:
<?xml version="1.0" encoding="utf-8"?> <CNF name="OCECAS_DESIGN" version="1.0" adaptorName="OcecasCNFAdaptor" adaptorVersion="1.0" vendor="ORACLE" vendorId="ACME" description="This CNF is composed of Management domain"> <sizingInfo> <parameter description="Sizing Model" label="Sizing Model" name="SizingModel" password="false" readOnly="false" required="true" value="Small" valueType="ComboBox"><validValues name="Small" /><validValues name="Medium" /> <validValues name="Large" /> </parameter> </sizingInfo> <nfGroup name="MgmtAdmin" componentType="MgmtAdmin" softwareVersion="1.0" emsType="OCECASEM" maximumNumberDU="1" minimumNumberDU="1" order="1"> <resiliencePolicy name="STANDALONE" activeDevicesPerDU="1"/> <resource isVirtual="true"> <virtual minimumCpus="8" maximumCpus="8" minimumDiskBytes="13958643712" maximumDiskBytes="13958643712" minimumMemoryBytes="8589934592" maximumMemoryBytes="8589934592" managementIPCount="1"> <Interfaces name="eth0" order="0"/> <SizingAllocation> <SupportedAllocation name="SizingModel" size="Small" cpus="8" memoryBytes="17179869184" diskBytes="13958643712"> <SupportedAllocationKPI> </SupportedAllocationKPI> </SupportedAllocation> <SupportedAllocation name="SizingModel" size="Medium" cpus="16" memoryBytes="34359738368" diskBytes="13958643712"> <SupportedAllocationKPI> </SupportedAllocationKPI> </SupportedAllocation> <SupportedAllocation name="SizingModel" size="Large" cpus="32" memoryBytes="34359738368" diskBytes="13958643712"> <SupportedAllocationKPI> </SupportedAllocationKPI> </SupportedAllocation> </SizingAllocation> </virtual> </resource>which allows access <bootParameters> <!-- The parameters given to the VIM to boot the VM. --> <commonParameters> <parameter description="Default Gateway" label="Default Gateway" name="defaultGW" password="false" readOnly="false" required="true" value="10.0.0.1" valueType="Ipv4"/> <parameter description="Netmask" label="Netmask" name="netmask" password="false" readOnly="false" required="true" value="255.255.255.0" valueType="TextField"/> <parameter description="Public Key" label="Public Key" name="publickey" password="false" readOnly="false" required="true" value="" valueType="TextArea"/> </commonParameters> <deviceParameters> <parameter description="Hostname" label="Hostname" name="targetname" password="false" readOnly="false" required="true" value="mgmtadmin" valueType="TextField"/> <parameter description="Management IP Address" label="IP Address" name="mgmtIp" password="false" readOnly="false" required="true" value="10.0.0.50" valueType="Ipv4"/> </deviceParameters> </bootParameters> <dependencies> <notifications> </notifications> <groups> </groups> </dependencies> <capacity scalingPolicy="AO standard scaling policy"> <registeredKpis> <KPI name="Device CPU" referenceName="Device CPU" source="VIMAdaptor" description="Current CPU load as identified by VIM"> <threshold relativeLimit="100"> <parameter description="Percentage to start monitoring for spin up" label="warningThreshold" name="warningThreshold" password="false" readOnly="false" required="true" value="70" valueType="TextField"/> <parameter description="Percentage to force immediate spinup" label="criticalThreshold" name="criticalThreshold" password="false" readOnly="false" required="true" value="85" valueType="TextField"/> <parameter description="Minutes to wait before spin up" label="growthDuration" name="growthDuration" password="false" readOnly="false" required="true" value="2" valueType="TextField"/> <parameter description="Minutes to wait before spin down" label="declineDuration" name="declineDuration" password="false" readOnly="false" required="true" value="4" valueType="TextField"/> </threshold> </KPI> </registeredKpis> <parameter name="loadShedKpi" label="Load shedding KPI" description="KPI to use for Load Shedding" value="Device CPU" password="false" readOnly="false" required="true" valueType="TextField"/> <parameter name="loadShedThreshold" label="Load shedding threshold" description="Load shedding threshold value" value="20" password="false" readOnly="false" required="true" valueType="TextField"/> <parameter name="loadShedTimeout" label="Load shedding timeout (minutes)" description="Load shedding timeout (minutes)" value="1" password="false" readOnly="false" required="true" valueType="TextField"/> </capacity> </nfGroup> <nfGroup name="SDC" componentType="SDC" softwareVersion="1.0" emsType="OCECASEM" maximumNumberDU="1" minimumNumberDU="1" order="2"> <resiliencePolicy name="STANDALONE" activeDevicesPerDU="1"/> <resource isVirtual="true"> <virtual minimumCpus="8" maximumCpus="8" minimumDiskBytes="32212254720" maximumDiskBytes="32212254720" minimumMemoryBytes="8589934592" maximumMemoryBytes="8589934592" managementIPCount="1"> <Interfaces name="eth0" order="0"/> <SizingAllocation> <SupportedAllocation name="SizingModel" size="Small" cpus="8" memoryBytes="17179869184" diskBytes="32212254720"> <SupportedAllocationKPI> </SupportedAllocationKPI> </SupportedAllocation> <SupportedAllocation name="SizingModel" size="Medium" cpus="16" memoryBytes="34359738368" diskBytes="32212254720"> <SupportedAllocationKPI> </SupportedAllocationKPI> </SupportedAllocation> <SupportedAllocation name="SizingModel" size="Large" cpus="32" memoryBytes="34359738368" diskBytes="32212254720"> <SupportedAllocationKPI> </SupportedAllocationKPI> </SupportedAllocation> </SizingAllocation> </virtual> </resource> <bootParameters> <!-- The parameters given to the VIM to boot the VM. --> <commonParameters> <parameter description="Default Gateway" label="Default Gateway" name="defaultGW" password="false" readOnly="false" required="true" value="10.0.0.1" valueType="Ipv4"/> <parameter description="Netmask" label="Netmask" name="netmask" password="false" readOnly="false" rwhich allows accessequired="true" value="255.255.255.0" valueType="TextField"/> <parameter description="Public Key" label="Public Key" name="publickey" password="false" readOnly="false" required="true" value="" valueType="TextArea"/> </commonParameters> <deviceParameters> <parameter description="Hostname" label="Hostname" name="targetname" password="false" readOnly="false" required="true" value="sdc" valueType="TextField"/> <parameter description="Management IP Address" label="IP Address" name="mgmtIp" password="false" readOnly="false" required="true" value="10.0.0.51" valueType="Ipv4"/> </deviceParameters> </bootParameters> <dependencies> <notifications> </notifications> <groups> </groups> </dependencies> <capacity scalingPolicy="AO standard scaling policy"> <registeredKpis> <KPI name="Device CPU" referenceName="Device CPU" source="VIMAdaptor" description="Current CPU load as identified by VIM"> <threshold relativeLimit="100"> <parameter description="Percentage to start monitoring for spin up" label="warningThreshold" name="warningThreshold" password="false" readOnly="false" required="true" value="70" valueType="TextField"/> <parameter description="Percentage to force immediate spinup" label="criticalThreshold" name="criticalThreshold" password="false" readOnly="false" required="true" value="85" valueType="TextField"/> <parameter description="Minutes to wait before spin up" label="growthDuration" name="growthDuration" password="false" readOnly="false" required="true" value="2" valueType="TextField"/> <parameter description="Minutes to wait before spin down" label="declineDuration" name="declineDuration" password="false" readOnly="false" required="true" value="4" valueType="TextField"/> </threshold> </KPI> </registeredKpis> <parameter name="loadShedKpi" label="Load shedding KPI" description="KPI to use for Load Shedding" value="Device CPU" password="false" readOnly="false" required="true" valueType="TextField"/> <parameter name="loadShedThreshold" label="Load shedding threshold" description="Load shedding threshold value" value="20" password="false" readOnly="false" required="true" valueType="TextField"/> <parameter name="loadShedTimeout" label="Load shedding timeout (minutes)" description="Load shedding timeout (minutes)" value="1" password="false" readOnly="false" required="true" valueType="TextField"/> </capacity> </nfGroup> </CNF>
The following example shows snippets of possible CNFD elements for a Runtime CNF, or domain:
<?xml version="1.0" encoding="utf-8"?> <CNF name="OCECAS_RUNTIME_PRODUCTION" version="1.0" adaptorName="OcecasCNFAdaptor" adaptorVersion="1.0" vendor="ORACLE" vendorId="ACME" description="This CNF is composed of Production domain"> <sizingInfo> <parameter description="Maximum Number Of Subscribers" label="Max # of Subscriber" name="MaximumNumberOfSubscribers" password="false" readOnly="false" required="true" value="20000000" valueType="NumberField"> <validValues name=""/> </parameter> <parameter description="Minimum Number Of Subscribers" label="Min # of Subscriber" name="MinimumNumberOfSubscribers" password="false" readOnly="false" required="true" value="100000" valueType="NumberField"> <validValues name=""/> </parameter> <parameter description="Sizing Model" label="Sizing Model" name="SizingModel" password="false" readOnly="false" required="true" value="Small" valueType="ComboBox"><validValues name="Small" /><validValues name="Medium" /> <validValues name="Large" /> </parameter> <parameter description="SCF Redundancy Factor (n+m)" label="SCF Redundancy Factor" name="scfRedundancyFactor" password="false" readOnly="false" required="true" value="1" valueType="TextField"> <validValues name=""/> </parameter> <parameter description="UDR Redundancy Factor (n+m)" label="UDR Redundancy Factor" name="udrRedundancyFactor" password="false" readOnly="false" required="true" value="1" valueType="TextField"> <validValues name=""/> </parameter> </sizingInfo> <nfGroup name="RuntimeAdmin" componentType="RuntimeAdmin" softwareVersion="1.0" emsType="OCECASEM" maximumNumberDU="1" minimumNumberDU="1" order="1"> <resiliencePolicy name="STANDALONE" activeDevicesPerDU="1"/> <resource isVirtual="true"> <virtual minimumCpus="8" maximumCpus="8" minimumDiskBytes="13958643712" maximumDiskBytes="13958643712" minimumMemoryBytes="8589934592" maximumMemoryBytes="8589934592" managementIPCount="1"> <Interfaces name="eth0" order="0"/> <SizingAllocation> <SupportedAllocation name="SizingModel" size="Small" cpus="8" memoryBytes="17179869184" diskBytes="13958643712"> <SupportedAllocationKPI> </SupportedAllocationKPI> </SupportedAllocation> <SupportedAllocation name="SizingModel" size="Medium" cpus="16" memoryBytes="34359738368" diskBytes="13958643712"> <SupportedAllocationKPI> </SupportedAllocationKPI> </SupportedAllocation> <SupportedAllocation name="SizingModel" size="Large" cpus="32" memoryBytes="34359738368" diskBytes="13958643712"> <SupportedAllocationKPI> </SupportedAllocationKPI> </SupportedAllocation> </SizingAllocation> </virtual> </resource> <bootParameters> <!-- The parameters given to the VIM to boot the VM. --> <commonParameters> <parameter description="Default Gateway" label="Default Gateway" name="defaultGW" password="false" readOnly="false" required="true" value="10.0.0.1" valueType="Ipv4"/> <parameter description="Netmask" label="Netmask" name="netmask" password="false" readOnly="false" required="true" value="255.255.255.0" valueType="TextField"/> <parameter description="Public Key" label="Public Key" name="publickey" password="false" readOnly="false" required="true" value="" valueType="TextArea"/> </commonParameters> <deviceParameters> <parameter description="Hostname" label="Hostname" name="targetname" password="false" readOnly="false" required="true" value="runtimeadmin" valueType="TextField"/> <parameter description="Management IP Address" label="IP Address" name="mgmtIp" password="false" readOnly="false" required="true" value="10.0.0.70" valueType="Ipv4"/> </deviceParameters> </bootParameters> <dependencies> <notifications> </notifications> <groups> </groups> </dependencies> <capacity scalingPolicy="AO standard scaling policy"> <registeredKpis> <KPI name="Device CPU" referenceName="Device CPU" source="VIMAdaptor" description="Current CPU load as identified by VIM"> <threshold relativeLimit="100"> <parameter description="Percentage to start monitoring for spin up" label="warningThreshold" name="warningThreshold" password="false" readOnly="false" required="true" value="70" valueType="TextField"/> <parameter description="Percentage to force immediate spinup" label="criticalThreshold" name="criticalThreshold" password="false" readOnly="false" required="true" value="85" valueType="TextField"/> <parameter description="Minutes to wait before spin up" label="growthDuration" name="growthDuration" password="false" readOnly="false" required="true" value="2" valueType="TextField"/> <parameter description="Minutes to wait before spin down" label="declineDuration" name="declineDuration" password="false" readOnly="false" required="true" value="4" valueType="TextField"/> </threshold> </KPI> </registeredKpis> <parameter name="loadShedKpi" label="Load shedding KPI" description="KPI to use for Load Shedding" value="Device CPU" password="false" readOnly="false" required="true" valueType="TextField"/> <parameter name="loadShedThreshold" label="Load shedding threshold" description="Load shedding threshold value" value="20" password="false" readOnly="false" required="true" valueType="TextField"/> <parameter name="loadShedTimeout" label="Load shedding timeout (minutes)" description="Load shedding timeout (minutes)" value="1" password="false" readOnly="false" required="true" valueType="TextField"/> </capacity> </nfGroup> <nfGroup name="SCE" componentType="SCE" softwareVersion="1.0" emsType="OCECASEM" maximumNumberDU="50" minimumNumberDU="1" order="2"> <resiliencePolicy name="STANDALONE" activeDevicesPerDU="1"/> <resource isVirtual="true"> <virtual minimumCpus="8" maximumCpus="8" minimumDiskBytes="13958643712" maximumDiskBytes="13958643712" minimumMemoryBytes="8589934592" maximumMemoryBytes="8589934592" managementIPCount="1"> <Interfaces name="eth0" order="0"/> <SizingAllocation> <SupportedAllocation name="SizingModel" size="Small" cpus="8" memoryBytes="17179869184" diskBytes="13958643712"> <SupportedAllocationKPI> <parameter description="Number of Subscribers" label="Subscribers" name="SubscriberPerVm" password="false" readOnly="false" required="true" value="100000" valueType="NumberField"><validValues name="" /></parameter> </SupportedAllocationKPI> </SupportedAllocation> <SupportedAllocation name="SizingModel" size="Medium" cpus="16" memoryBytes="34359738368" diskBytes="13958643712"> <SupportedAllocationKPI> <parameter description="Number of Subscribers" label="Subscribers" name="SubscriberPerVm" password="false" readOnly="false" required="true" value="200000" valueType="NumberField"><validValues name="" /></parameter> </SupportedAllocationKPI> </SupportedAllocation> <SupportedAllocation name="SizingModel" size="Large" cpus="32" memoryBytes="34359738368" diskBytes="13958643712"> <SupportedAllocationKPI> <parameter description="Number of Subscribers" label="Subscribers" name="SubscriberPerVm" password="false" readOnly="false" required="true" value="400000" valueType="NumberField"><validValues name="" /></parameter> </SupportedAllocationKPI> </SupportedAllocation> </SizingAllocation> </virtual> </resource> <bootParameters> <!-- The parameters given to the VIM to boot the VM. --> <commonParameters> <parameter description="Default Gateway" label="Default Gateway" name="defaultGW" password="false" readOnly="false" required="true" value="10.0.0.1" valueType="Ipv4"/> <parameter description="Netmask" label="Netmask" name="netmask" password="false" readOnly="false" required="true" value="255.255.255.0" valueType="TextField"/> <parameter description="Public Key" label="Public Key" name="publickey" password="false" readOnly="false" required="true" value="" valueType="TextArea"/> </commonParameters> <deviceParameters> <parameter description="Hostname" label="Hostname" name="targetname" password="false" readOnly="false" required="true" value="engine" valueType="TextField"/> <parameter description="Management IP Address" label="IP Address" name="mgmtIp" password="false" readOnly="false" required="true" value="10.0.0.71" valueType="Ipv4"/> </deviceParameters> </bootParameters> <dependencies> <notifications> </notifications> <groups> </groups> </dependencies> <capacity scalingPolicy="AO standard scaling policy"> <registeredKpis> <KPI name="ActiveCallStates" referenceName="ActiveCallStates" source="EMAdaptor" description="com.bea:ServerRuntime=${serverName},Name=${serverName},Type=SipPerformanceRuntime,SipServerRuntime=${serverName}"> <threshold relativeLimit="100"> <parameter description="Number to start monitoring for spin up" label="warningThreshold" name="warningThreshold" password="false" readOnly="false" required="true" value="40" valueType="TextField"/> <parameter description="Number to force immediate spinup" label="criticalThreshold" name="criticalThreshold" password="false" readOnly="false" required="true" value="45" valueType="TextField"/> <parameter description="Minutes to wait before spin up" label="growthDuration" name="growthDuration" password="false" readOnly="false" required="true" value="2" valueType="TextField"/> <parameter description="Minutes to wait before spin down" label="declineDuration" name="declineDuration" password="false" readOnly="false" required="true" value="0" valueType="TextField"/> </threshold> </KPI> </registeredKpis> <parameter name="loadShedKpi" label="Load shedding KPI" description="KPI to use for Load Shedding" value="ActiveCallStates" password="false" readOnly="false" required="true" valueType="TextField"/> <parameter name="loadShedThreshold" label="Load shedding threshold" description="Load shedding threshold value" value="20" password="false" readOnly="false" required="true" valueType="TextField"/> <parameter name="loadShedTimeout" label="Load shedding timeout (minutes)" description="Load shedding timeout (minutes)" value="1" password="false" readOnly="false" required="true" valueType="TextField"/> </capacity> </nfGroup> <nfGroup name="UDR" componentType="UDR" softwareVersion="1.0" emsType="OCECASEM" maximumNumberDU="50" minimumNumberDU="1" order="3"> <resiliencePolicy name="STANDALONE" activeDevicesPerDU="1"/> <resource isVirtual="true"> <virtual minimumCpus="8" maximumCpus="8" minimumDiskBytes="13958643712" maximumDiskBytes="13958643712" minimumMemoryBytes="8589934592" maximumMemoryBytes="8589934592" managementIPCount="1"> <Interfaces name="eth0" order="0"/> <SizingAllocation> <SupportedAllocation name="SizingModel" size="Small" cpus="2" memoryBytes="17179869184" diskBytes="13958643712"> <SupportedAllocationKPI> <parameter description="Number of Subscribers" label="Subscribers" name="SubscriberPerVm" password="false" readOnly="false" required="true" value="100000" valueType="NumberField"><validValues name="" /></parameter> </SupportedAllocationKPI> </SupportedAllocation> <SupportedAllocation name="SizingModel" size="Medium" cpus="2" memoryBytes="17179869184" diskBytes="13958643712"> <SupportedAllocationKPI> <parameter description="Number of Subscribers" label="Subscribers" name="SubscriberPerVm" password="false" readOnly="false" required="true" value="200000" valueType="NumberField"><validValues name="" /></parameter> </SupportedAllocationKPI> </SupportedAllocation> <SupportedAllocation name="SizingModel" size="Large" cpus="4" memoryBytes="17179869184" diskBytes="13958643712"> <SupportedAllocationKPI> <parameter description="Number of Subscribers" label="Subscribers" name="SubscriberPerVm" password="false" readOnly="false" required="true" value="400000" valueType="NumberField"><validValues name="" /></parameter> </SupportedAllocationKPI> </SupportedAllocation> </SizingAllocation> </virtual> </resource> <bootParameters> <!-- The parameters given to the VIM to boot the VM. --> <commonParameters> <parameter description="Default Gateway" label="Default Gateway" name="defaultGW" password="false" readOnly="false" required="true" value="10.0.0.1" valueType="Ipv4"/> <parameter description="Netmask" label="Netmask" name="netmask" password="false" readOnly="false" required="true" value="255.255.255.0" valueType="TextField"/> <parameter description="Public Key" label="Public Key" name="publickey" password="false" readOnly="false" required="true" value="" valueType="TextArea"/> </commonParameters> <deviceParameters> <parameter description="Hostname" label="Hostname" name="targetname" password="false" readOnly="false" required="true" value="udr" valueType="TextField"/> <parameter description="Management IP Address" label="IP Address" name="mgmtIp" password="false" readOnly="false" required="true" value="10.0.0.80" valueType="Ipv4"/> </deviceParameters> </bootParameters> <dependencies> <notifications> </notifications> <groups> </groups> </dependencies> <capacity scalingPolicy="AO standard scaling policy"> <registeredKpis> <KPI name="MultiIntervalTotalRequests" referenceName="MultiIntervalTotalRequests" source="EMAdaptor" description="MultiIntervalTotalRequests"> <threshold relativeLimit="1000"> <parameter description="Number to start monitoring for spin up" label="warningThreshold" name="warningThreshold" password="false" readOnly="false" required="true" value="500" valueType="TextField"/> <parameter description="Number to force immediate spinup" label="criticalThreshold" name="criticalThreshold" password="false" readOnly="false" required="true" value="1000" valueType="TextField"/> <parameter description="Minutes to wait before spin up" label="growthDuration" name="growthDuration" password="false" readOnly="false" required="true" value="1" valueType="TextField"/> <parameter description="Minutes to wait before spin down" label="declineDuration" name="declineDuration" password="false" readOnly="false" required="true" value="4" valueType="TextField"/> </threshold> </KPI> </registeredKpis> <parameter name="loadShedKpi" label="Load shedding KPI" description="KPI to use for Load Shedding" value="MultiIntervalTotalRequests" password="false" readOnly="false" required="true" valueType="TextField"/> <parameter name="loadShedThreshold" label="Load shedding threshold" description="Load shedding threshold value" value="10" password="false" readOnly="false" required="true" valueType="TextField"/> <parameter name="loadShedTimeout" label="Load shedding timeout (minutes)" description="Load shedding timeout (minutes)" value="1" password="false" readOnly="false" required="true" valueType="TextField"/> </capacity> </nfGroup> </CNF>