[haizea-commit] r808 - in branches/1.1/src/haizea/core: enact scheduler scheduler/preparation_schedulers
haizea-commit at mailman.cs.uchicago.edu
haizea-commit at mailman.cs.uchicago.edu
Tue Jun 22 14:37:28 CDT 2010
Author: borja
Date: 2010-06-22 14:37:28 -0500 (Tue, 22 Jun 2010)
New Revision: 808
Modified:
branches/1.1/src/haizea/core/enact/simulated.py
branches/1.1/src/haizea/core/scheduler/preparation_schedulers/imagetransfer.py
branches/1.1/src/haizea/core/scheduler/vm_scheduler.py
Log:
- In some cases an error was carried over in the estimated migration times that would result in the sanity check failing.
- Migration bandwidth was hardcoded; now taken from configuration file.
Modified: branches/1.1/src/haizea/core/enact/simulated.py
===================================================================
--- branches/1.1/src/haizea/core/enact/simulated.py 2010-06-22 18:34:55 UTC (rev 807)
+++ branches/1.1/src/haizea/core/enact/simulated.py 2010-06-22 19:37:28 UTC (rev 808)
@@ -19,6 +19,7 @@
from haizea.core.leases import Capacity
from haizea.core.scheduler.resourcepool import ResourcePoolNode
from haizea.core.enact import ResourcePoolInfo, VMEnactment, DeploymentEnactment
+from haizea.common.utils import get_config
import haizea.common.constants as constants
import logging
@@ -61,7 +62,7 @@
return self.resource_types
def get_migration_bandwidth(self):
- return 100 # TODO: Get from config file
+ return get_config().get("imagetransfer-bandwidth")
class SimulatedVMEnactment(VMEnactment):
def __init__(self):
Modified: branches/1.1/src/haizea/core/scheduler/preparation_schedulers/imagetransfer.py
===================================================================
--- branches/1.1/src/haizea/core/scheduler/preparation_schedulers/imagetransfer.py 2010-06-22 18:34:55 UTC (rev 807)
+++ branches/1.1/src/haizea/core/scheduler/preparation_schedulers/imagetransfer.py 2010-06-22 19:37:28 UTC (rev 808)
@@ -129,13 +129,14 @@
def estimate_migration_time(self, lease):
migration = get_config().get("migration")
if migration == constants.MIGRATE_YES:
+ bandwidth = self.resourcepool.info.get_migration_bandwidth()
vmrr = lease.get_last_vmrr()
- images_in_pnode = dict([(pnode,0) for pnode in set(vmrr.nodes.values())])
- for (vnode,pnode) in vmrr.nodes.items():
- images_in_pnode[pnode] += lease.software.image_size
- max_to_transfer = max(images_in_pnode.values()) * 2 # Kludge
- bandwidth = self.resourcepool.info.get_migration_bandwidth()
- return estimate_transfer_time(max_to_transfer, bandwidth)
+ #images_in_pnode = dict([(pnode,0) for pnode in set(vmrr.nodes.values())])
+ transfer_time = estimate_transfer_time(lease.software.image_size, bandwidth) * len (vmrr.nodes)
+ #for (vnode,pnode) in vmrr.nodes.items():
+ # images_in_pnode[pnode] += lease.software.image_size
+ #max_to_transfer = max(images_in_pnode.values()) * 2 # Kludge
+ return transfer_time
elif migration == constants.MIGRATE_YES_NOTRANSFER:
return TimeDelta(seconds=0)
Modified: branches/1.1/src/haizea/core/scheduler/vm_scheduler.py
===================================================================
--- branches/1.1/src/haizea/core/scheduler/vm_scheduler.py 2010-06-22 18:34:55 UTC (rev 807)
+++ branches/1.1/src/haizea/core/scheduler/vm_scheduler.py 2010-06-22 19:37:28 UTC (rev 808)
@@ -133,16 +133,14 @@
"""
migration = get_config().get("migration")
if migration == constants.MIGRATE_YES:
+ bandwidth = self.resourcepool.info.get_migration_bandwidth()
vmrr = lease.get_last_vmrr()
#mem_in_pnode = dict([(pnode,0) for pnode in set(vmrr.nodes.values())])
- max_mem_to_transfer = 0
+ transfer_time = 0
for pnode in vmrr.nodes.values():
mem = vmrr.resources_in_pnode[pnode].get_by_type(constants.RES_MEM)
- max_mem_to_transfer += mem
- #mem_in_pnode[pnode] += mem
- #max_mem_to_transfer = max(mem_in_pnode.values()) * 2 # Kludge
- bandwidth = self.resourcepool.info.get_migration_bandwidth()
- return estimate_transfer_time(max_mem_to_transfer, bandwidth)
+ transfer_time += estimate_transfer_time(mem, bandwidth)
+ return transfer_time
elif migration == constants.MIGRATE_YES_NOTRANSFER:
return TimeDelta(seconds=0)
More information about the Haizea-commit
mailing list