Пример #1
0
  public void main(String[] strings) throws MsgException {

    double startTime = 0;
    double endTime = 0;

    /* get hosts 1 and 2*/
    try {
      host0 = Host.getByName("host0");
      host1 = Host.getByName("host1");
      host1 = Host.getByName("host2");
    } catch (HostNotFoundException e) {
      e
          .printStackTrace(); // To change body of catch statement use File | Settings | File
                              // Templates.
    }

    // Robustness on the SRC node
    // for (int i =0 ; i < 55000 ; i++)
    //  test_vm_migrate(host1, i);

    // Robustness on the DST node
    // for (int i =0 ; i < 55000 ; i++)
    //  test_vm_migrate(host2, i);

    /* End of Tests */
    Msg.info("Nor more tests, Bye Bye !");
    Main.setEndOfTest();
  }
Пример #2
0
  public static void test_vm_migrate(Host hostToKill, long killAt) throws MsgException {
    Msg.info(
        "**** **** **** ***** ***** Test Migrate with host shutdown ***** ***** **** **** ****");
    Msg.info(
        "Turn on one host, assign a VM on this host, launch a process inside the VM, migrate the VM and turn off either the SRC or DST");

    host1.off();
    host2.off();
    host1.on();
    host2.on();

    // Create VM0
    int dpRate = 70;
    XVM vm0 = null;
    vm0 =
        new XVM(
            host1,
            "vm0",
            1, // Nb of vcpu
            2048, // Ramsize,
            125, // Net Bandwidth
            null, // VM disk image
            -1, // size of disk image,
            125, // Net bandwidth,
            dpRate // Memory intensity
            );
    vm0.start();
    vm0.setLoad(90);

    String[] args = new String[3];

    args[0] = "vm0";
    args[1] = "host1";
    args[2] = "host2";
    new Process(host1, "Migrate-" + new Random().nextDouble(), args) {
      public void main(String[] args) {
        Host destHost = null;
        Host sourceHost = null;

        try {
          sourceHost = Host.getByName(args[1]);
          destHost = Host.getByName(args[2]);
        } catch (Exception e) {
          e.printStackTrace();
          System.err.println("You are trying to migrate from/to a non existing node");
        }
        if (destHost != null) {
          if (sourceHost.isOn() && destHost.isOn()) {

            try {
              Msg.info("Migrate vm " + args[0] + " to node " + destHost.getName());
              VM.getVMByName(args[0]).migrate(destHost);
            } catch (HostFailureException e) {
              e.printStackTrace();
              Msg.info("Something occurs during the migration that cannot validate the operation");
            }
          }
        }
      }
    }.start();

    // Wait killAt ms before killing thehost
    Process.sleep(killAt);
    hostToKill.off();
    Process.sleep(5);
    Msg.info("The migration process should be stopped and we should catch an exception\n");
    Process.sleep(5);

    Process.sleep(50000);
    Msg.info("Destroy VMs");
    vm0.shutdown();
    Process.sleep(20000);
  }