DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.

DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
2) pool.storage.capacity.disablethreshold: Percentage (as a value between 0 and 1) of storage utilization above which allocators will disable using the pool for low storage available
3) VM Allocation Algorithmvm.allocation.algorithm: 'random', 'firstfit', 'userdispersing', 'userconcentratedpod_random', 'userconcentratedpod_firstfit' : Order in which hosts within a cluster will be considered for VM/volume allocation
4) network.throttling.rate: Default data transfer rate in megabits per second allowed in network.
5) router.template.id:
This needs to split This parameter was not in use. So removing this parameter and adding 5 parameters per each hypevisor to be able to provide the values for each hypervisor..
router.template.xen: Name of the default router template on Xenserver
router.template.kvm: Name of the default router template on KVM
router.template.vmware: Name of the default router template on Vmware
router.template.hyperv: Name of the default router template on Hyperv
router.template.lxc: Name of the default router template on LXC
These are initially set to default to SYSTEM template.
Admin can register new routing templates, so that these can be used to deploy router. These templates are marked as ROUTING type in the DB. We introduce a API change in the register/update template so that ADMIN can register ROUTING templates.
This registered template is only used for deploying router(not SSVM and CPVM). SSVM and CPVM uses the default system template. xenroutertemplateid: ID of the router template incase of xenserver
kvmroutertemplateid: ID of the router template incase of kvm
vsphereroutertemplateid: ID of the router template incase of vsphere
hypervroutertemplateid: ID of the router template incase of hyperv
6) Guest Domain Prefix: Default domain name for vms inside virtualized networks fronted by router
...
8) storage.cleanup.interval: The interval (in seconds) to wait before running the storage cleanup thread
Instead of over loading the present createZone API and updateZone API a new API is introduced say "UpdateZoneLevelParamter API".
During the creation of zone default values for these parameters will be set in the data_center_details table.
These can be updated using the "updateZoneLevelParamter" API each at a time by sending the name value pair with zone id.
...
API Name
...
...
API response
...
updateZoneLevelParamters
...
We will add the name value pairs of these zone level parameters in the data_center_details table*.*
...
4) cluster.memory.allocated.capacity.notificationthreshold: Percentage (as a value between 0 and 1) of memory utilization above which alerts will be sent about low memory available
Here we introduce new API called updateClusterLevelParameter to update the cluster level parameters. During the cluster creation time default values will be set to these parameters, later we can use this API to modify the value as per needed for each cluster.
...
API Name
...
API Paramerters
...
API Response
5) cluster.storage.allocated.capacity.notificationthreshold: Percentage (as a value between 0 and 1) of allocated storage utilization above which alerts will be sent about low storage available
6) cluster.storage.capacity.notificationthreshold: Percentage (as a value between 0 and 1) of storage utilization above which alerts will be sent about low storage available
...
updateClusterLevelParameters
...
We will add the name value pairs of these cluster level parameters in the cluster_details table as key value pairs*.*
...
2) remote.access.vpn.client.iprange: The range of ips to be allocated to remote access vpn clients. The first ip in the range is used by the VPN server
Here we introduce new API called updateAccountLevelParameter. During the account creation time default values will be set to these parameters, later we can use this API to modify the value as per needed for each account.
...
API Name
...
API Parameters
...
API Response
...
updateAccountLevelParameters
...
...
We will add the name value pairs of these account level parameters in the account_details table as key value pairs*.*
...
1) storage.overprovisioning.factor: Used for storage overprovisioning calculation; available storage will be (actualStorageSize * overprovisioningfactor)
Here we introduce new API called updateStorageLevelParameter. During the addition of storage pool default values will be set to these parameters, later we can use this API to modify the value as per needed for each storage.
...
API name
...
API Parameters
...
API Response
...
updateStorageLevelParameters
We will add the name value pairs of these storge level parameters in the storage_pool_details table as key value pairs*.*
We use existing updateConfugration and listConfguration APIs to update/list the configuration parameters at any level (Global/zone/cluster/pool/account).
We introduce 4 additional parameters corresponding to 4 scopes(zone/cluster/storagepool/account).
- If id is not mentioned then it is considered to update/list the global configuration.
- If id of zone/cluster/pool/account id given, then it considers at the specific level and update/list the corresponding parameter at that level.
- When updating the parameter with given id, first it validates the scope of the parameter corresponding to the id provided.
- checks the resource details table and updates there, if not present then will fetch from the global configuration parameters and create entry in the details table.
- If the value is set to null at a particular scope then it means to use the global value.
API name | Existing API Parameters | New optional API Parameters | API Response |
|---|---|---|---|
updateConfiguration | name: the name of the configuration | zoneid: ID of the zone | updateconfigurationresponse with scope and updated value |
listConfiguration | category: lists configurations by category | zoneid: ID of the zone | listconfigurationsresponse with scope and value at the corresponding scope of the parameters. |
registertemplate/updatetemplate |
| isrouting: true if the template type is routing i.e., if template is used to deploy router |
|
The API change in registerTemplate and updatetemplate is in support of newly introduced zone/global level parameters router.template.xen/vmware/kvm/lxc/hyperv.
The optional parameter isrouting can be set only by root admin.
...
We will add the name value pairs of these storge level parameters in the storage_pool_details table as key value pairs*.*
Here are the global config parameters and their proposed granularity.
Global Parameter | Description | Proposed change | Development | Comments or clarifications needed |
|---|---|---|---|---|
allow.public.user.templates | If false, users will not be able to create public templates. | Per Account, overrides the global, e.g. for resellers not end customers | The implementation goes like adding value in the account_details table. Whenever public template is created we need to check in the account details table and then proceed. |
|
storage.overprovisioning.factor | Used for storage overprovisioning calculation; available storage will be (actualStorageSize * storage.overprovisioning.factor) | per storage (per sysvol/datavol usage), overrides global | storage_pool_table will hold the key value pair of storage overprovisioning factor. During the check whether the storage pool has enough space for the volume we need to consider per storage level overprovisioning factor and while creating and updating the capacity entry in the for the storage. |
|
remote.access.vpn.client.iprange | The range of ips to be allocated to remote access vpn clients. The first ip in the range is used by the VPN server | Per Account, overrides the global | account_details table will hold the key, value pair. In RemoteAccessVPNManager we need to take the value from the account_details table, validate it and then use. |
|
storage.cleanup.interval | The interval (in seconds) to wait before running the storage cleanup thread. | Per AZ, eg for Private/Reseller AZ to offer differing storage service |
| Do we need to run different storage GC threads for different zones? |
CPU/Memory/Storage Notification and Capacity Thresholds: |
| Per cluster | CPU and Memory notification and capacity threshold values per cluster can be stored in the cluster_details table and these values can be used during capacity checking and raising alerts. Since as part of CPU and RAM overcommit feature cpu and ram are made at cluster level, so changing the notifications and capacity thresholds per cluster seems to be relevant. | |
VM Allocation Algorithm: vm.allocation.algorithm | If 'random', hosts within a pod will be randomly considered for VM/volume allocation. If 'firstfit', they will be considered on a first-fit basis. | Per Zone | data_center_details table holds the 'name, value' pairs of these parameters. |
|
VR Network Throttling Rate: | Default data transfer rate in megabits per second allowed in network | Per Zone | For the domRs Guest and Public networks we take network throttling from the corresponding Guest Virtual networkOffering. In case the value is not specified in the network offering it should consider the value from the global parameter network.throttling.rate. But right now there is a bug that noticed, guest and public networks are always considering network rate from the global parameter. | In case of user VMs for non default network the throttling rate is considered from the network offering, if this is not specified it considers the value from global value network.throttling.rate. |
Router Template ID: router.template.id | Default ID for template | Per Zone | In the current implementation, the details of the templates are stored in the vm_templates table. These include all systemVM templates for all hypervisors, During the router vm deployment it gets the list of templates based on the hypervisor type and takes the 1st template from the list. Otherwise we are not using this parameter to select the template. |
|
Guest Domain Suffix : guest.domain.suffix | Default domain name for vms inside virtualized networks fronted by router | Per Zone | The value can be stored in the data_center_details_table and during guest network and vpc creation we can consider the value per zone level from the data_center_details table. | |
External DNS Usage: use.external.dns | Bypass internal dns, use external dns1 and dns2 | Per Zone | The value can be stored in the data_center_details table and during finalizing the virtual machine's profile this value can be taken per zone corresponding to the deploy destination of the vm. |
|
|
|
|
|
|
...