Now that we have a configuration file and a tracefile, we can run the simulator. You can run Haizea with the sample configuration file like this:
haizea -c /usr/share/haizea/etc/sample_trace.conf
Which results in the following output:
[2006-11-25 13:00:00.00] RM Starting resource manager [2006-11-25 13:00:00.00] TFILE Loading tracefile /usr/share/haizea/traces/sample.lwf [2006-11-25 13:00:00.00] TFILE Loaded workload with 0 requests () [2006-11-25 13:00:00.00] CLOCK Starting simulated clock [2006-11-25 13:00:00.00] CLOCK Simulated clock has stopped [2006-11-25 13:00:00.00] RM Stopping resource manager gracefully... [2006-11-25 13:00:00.00] RM --- Haizea status summary --- [2006-11-25 13:00:00.00] RM Number of leases (not including completed): 0 [2006-11-25 13:00:00.00] RM Completed leases: 0 [2006-11-25 13:00:00.00] RM Completed best-effort leases: 0 [2006-11-25 13:00:00.00] RM Queue size: 0 [2006-11-25 13:00:00.00] RM Accepted AR leases: 0 [2006-11-25 13:00:00.00] RM Rejected AR leases: 0 [2006-11-25 13:00:00.00] RM Accepted IM leases: 0 [2006-11-25 13:00:00.00] RM Rejected IM leases: 0 [2006-11-25 13:00:00.00] RM ---- End summary ----
Now that you've seen the tracefile, you can see why the simulator starts up and immediately stops: all the lease requests in the tracefile are commented out, and there's nothing to schedule. Go ahead and uncomment the first lease request, which looks like this:
<lease-request arrival="00:00:00"> <lease preemptible="true"> <nodes> <node-set numnodes="1"> <res type="CPU" amount="100"/> <res type="Memory" amount="1024"/> </node-set> </nodes> <start></start> <duration time="01:00:00"/> <software> <disk-image id="foobar.img" size="1024"/> </software> </lease> </lease-request>
This is a request for a best-effort lease (notice how the starting time is left empty, meaning it's up to Haizea to determine the start time), requested at time 00:00:00 (right at the start of the simulation), requiring 1 hour, and only one node. Now run Haizea again. You should now see the following:
[2006-11-25 13:00:00.00] RM Starting resource manager [2006-11-25 13:00:00.00] TFILE Loading tracefile /usr/share/haizea/traces/sample.lwf [2006-11-25 13:00:00.00] TFILE Loaded workload with 1 requests (1 Best-effort) [2006-11-25 13:00:00.00] CLOCK Starting simulated clock [2006-11-25 13:00:00.00] LSCHED Lease #1 has been requested. [2006-11-25 13:00:00.00] LSCHED Lease #1 has been marked as pending. [2006-11-25 13:00:00.00] LSCHED Queued best-effort lease request #1, 1 nodes for 01:00:00.00. [2006-11-25 13:00:00.00] LSCHED Next request in the queue is lease 1. Attempting to schedule... [2006-11-25 13:00:00.00] VMSCHED Lease #1 has been scheduled on nodes [1] from 2006-11-25 13:00:00.00 to 2006-11-25 14:00:00.00 [2006-11-25 13:00:00.00] VMSCHED Started VMs for lease 1 on nodes [1] [2006-11-25 14:00:00.00] VMSCHED Stopped VMs for lease 1 on nodes [1] [2006-11-25 14:00:00.00] VMSCHED Lease 1's VMs have shutdown. [2006-11-25 14:00:00.00] CLOCK Simulated clock has stopped [2006-11-25 14:00:00.00] RM Stopping resource manager gracefully... [2006-11-25 14:00:00.00] RM --- Haizea status summary --- [2006-11-25 14:00:00.00] RM Number of leases (not including completed): 0 [2006-11-25 14:00:00.00] RM Completed leases: 1 [2006-11-25 14:00:00.00] RM Completed best-effort leases: 1 [2006-11-25 14:00:00.00] RM Queue size: 0 [2006-11-25 14:00:00.00] RM Accepted AR leases: 0 [2006-11-25 14:00:00.00] RM Rejected AR leases: 0 [2006-11-25 14:00:00.00] RM Accepted IM leases: 0 [2006-11-25 14:00:00.00] RM Rejected IM leases: 0 [2006-11-25 14:00:00.00] RM ---- End summary ----
The above corresponds to the following schedule:
A best-effort request is received at 13:00 and, since the cluster is empty, it is scheduled immediately. Notice how the VMs for the lease start at 13:00 and stop at 14:00. For now, we're assuming that the disk images are predeployed on the physical nodes (we will modify this option in the next section).
Now go ahead and uncomment the second lease request, which looks like this:
<lease-request arrival="00:15:00"> <lease preemptible="false"> <nodes> <node-set numnodes="4"> <res type="CPU" amount="100"/> <res type="Memory" amount="1024"/> </node-set> </nodes> <start> <exact time="00:30:00"/> </start> <duration time="00:30:00"/> <software> <disk-image id="foobar.img" size="1024"/> </software> </lease> </lease-request>
This is a request for an advance reservation lease (notice how there is an exact starting time specified), requesting all four nodes for 30 minutes. So, what would happen if we also added this AR lease? Since it requires all the cluster resources from 13:30 to 14:00, the best-effort lease will be unable to run in that time interval. Since the leases are implemented as VMs, Haizea will still schedule the best-effort lease to start at 13:00, but will suspend it before the AR lease starts, and will resume it once the AR lease has finished. In effect, we want the schedule to look like this:
Uncomment the AR lease request, and run Haizea again. You should now see the following:
[2006-11-25 13:00:00.00] RM Starting resource manager [2006-11-25 13:00:00.00] TFILE Loading tracefile /usr/share/haizea/traces/sample.lwf [2006-11-25 13:00:00.00] TFILE Loaded workload with 2 requests (1 Best-effort + 1 AR) [2006-11-25 13:00:00.00] CLOCK Starting simulated clock [2006-11-25 13:00:00.00] LSCHED Lease #1 has been requested. [2006-11-25 13:00:00.00] LSCHED Lease #1 has been marked as pending. [2006-11-25 13:00:00.00] LSCHED Queued best-effort lease request #1, 1 nodes for 01:00:00.00. [2006-11-25 13:00:00.00] LSCHED Next request in the queue is lease 1. Attempting to schedule... [2006-11-25 13:00:00.00] VMSCHED Lease #1 has been scheduled on nodes [1] from 2006-11-25 13:00:00.00 to 2006-11-25 14:00:00.00 [2006-11-25 13:00:00.00] VMSCHED Started VMs for lease 1 on nodes [1] [2006-11-25 13:15:00.00] LSCHED Lease #2 has been requested. [2006-11-25 13:15:00.00] LSCHED Lease #2 has been marked as pending. [2006-11-25 13:15:00.00] LSCHED Scheduling AR lease #2, 4 nodes from 2006-11-25 13:30:00.00 to 2006-11-25 14:00:00.00. [2006-11-25 13:15:00.00] LSCHED Must preempt leases [1] to make room for lease #2 [2006-11-25 13:15:00.00] LSCHED Preempting lease #1... [2006-11-25 13:15:00.00] LSCHED ... lease #1 will be suspended at 2006-11-25 13:30:00.00. [2006-11-25 13:15:00.00] LSCHED AR lease #2 has been scheduled. [2006-11-25 13:29:28.00] VMSCHED Stopped VMs for lease 1 on nodes [1] [2006-11-25 13:29:28.00] VMSCHED Suspending lease 1... [2006-11-25 13:30:00.00] VMSCHED Lease 1 suspended. [2006-11-25 13:30:00.00] VMSCHED Started VMs for lease 2 on nodes [2, 3, 4, 1] [2006-11-25 13:30:00.00] LSCHED Next request in the queue is lease 1. Attempting to schedule... [2006-11-25 13:30:00.00] VMSCHED Lease #1 has been scheduled on nodes [1] from 2006-11-25 14:00:00.00 (resuming) to 2006-11-25 14:31:04.00 [2006-11-25 14:00:00.00] VMSCHED Stopped VMs for lease 2 on nodes [2, 3, 4, 1] [2006-11-25 14:00:00.00] VMSCHED Resuming lease 1... [2006-11-25 14:00:00.00] VMSCHED Lease 2's VMs have shutdown. [2006-11-25 14:00:32.00] VMSCHED Resumed lease 1 [2006-11-25 14:00:32.00] VMSCHED Started VMs for lease 1 on nodes [1] [2006-11-25 14:31:04.00] VMSCHED Stopped VMs for lease 1 on nodes [1] [2006-11-25 14:31:04.00] VMSCHED Lease 1's VMs have shutdown. [2006-11-25 14:31:04.00] CLOCK Simulated clock has stopped [2006-11-25 14:31:04.00] RM Stopping resource manager gracefully...
Notice how the above corresponds to the previous figure. In particular, notice the following:
Borja Sotomayor 2009-12-17