コード例 #1
0
ファイル: TestHostOnOff.java プロジェクト: FlorianPO/simgrid
  public static void test_vm_shutdown_destroy() throws HostFailureException {

    Msg.info("**** **** **** ***** ***** Test shutdown a VM ***** ***** **** **** ****");
    Msg.info(
        "Turn on host1, assign a VM on host1, launch a process inside the VM, and turn off the vm, "
            + "and check whether you can reallocate the same VM");

    // 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
            );
    Msg.info("Start VM0");
    vm0.start();
    vm0.setLoad(90);

    Process.sleep(5000);

    Msg.info("Shutdown VM0");
    vm0.shutdown();
    Process.sleep(5000);

    Msg.info("Restart VM0");
    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);

    Msg.info(
        "You suceed to recreate and restart a VM without generating any exception ! Great the Test is ok");

    Process.sleep(5000);
    vm0.shutdown();
  }
コード例 #2
0
ファイル: TestHostOnOff.java プロジェクト: FlorianPO/simgrid
  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);
  }