OpenStack

From CAC Documentation wiki
Jump to navigationJump to search

OpenStack is an open-source cloud stack that is currently running on Red Cloud. Also, for more information, see the Official Documentation for OpenStack.

This page is intended as a quick walk-through of the most-used features of OpenStack, so it is not comprehensive, but links to a lot of supporting documentation for more thorough explanations and advanced topics.

Using the OpenStack Web Interface (Horizon)

There are two ways to manage Red Cloud resources:

  1. OpenStack Web Interface
  2. OpenStack CLI

Most users will use the OpenStack Web Interface (called Horizon). This web-based interface can be used to manage instances and volumes. For Linux Instances, however, some users may choose to use the OpenStack CLI. This section focuses on the OpenStack Web Interface.

Logging In

Log in to the OpenStack Web Interface to create and manage Red Cloud resources. There are two ways to login:

RedCloudCACLogin.pngWhite square.pngRedCloudGlobusAuthLogin.png

  1. CAC Account - Enter cac as the "Domain" and your CAC username and password, not your Cornell NetID. If your CAC password has expired, you will need to reset it before you will be able to login to the OpenStack Web Interface.
  2. Globus Auth - Log in through Globus
    • Currently, this feature is only available to Aristotle users. This feature will be enabled for all users in the future.
    • You must link your Cornell account, or any accounts attached to the projects you are on, in order to have access to them when using Globus Auth.
    • If you can't log in with Globus Auth, it may be that you have not linked your account yet.

You can use the "Authenticate using" drop-down to switch between the two options. Neither option requires you to enter a project ID; you can switch between the projects you are on once logged in.

Overview Page

The Overview page is the first place you will be taken upon logging into Red Cloud.

Key Pairs

Overview KeyPairs Circled.png

To get to the Key Pairs page: select the "Compute" tab along the top (you should start here at login), then click on "Key Pairs" along the top bar as pictured above. If you are logged in already, you can also get to it by this link: Key Pairs.

On the Key Pairs page, you can view the list of available key pairs for your project. From here, you can also create or import a key pair. If you do not already have a key pair listed, you can either create one before launching an instance, or create or upload a key pair during instance setup.

For more information, here is a walk-through on OpenStack Key Pairs.

Security Groups

Overview SecurityGroups.png

To get to the Security Groups page: select the "Network" drop-down menu along the top, then click on "Security Groups" as pictured above. If you are already logged in, you can also get to it by following this link: Security Groups

On the Security Groups page, you can view a list of available security groups for your project, including a default security group. On this page, you can also create and delete security groups. It is not recommended that you use the default security group without modifying the rules to fit your needs. A good security practice is to have one security group per application or one per user. Instances that have no business talking to each other should generally be in separate security groups.

If you do not already have a security group set up, you will want to create one before launching an instance because you cannot create one during instance setup. However, you can assign a security group to an instance later, and even add or modify the rules of the security group at any time.

For more information, here is a walk-through on OpenStack Security Groups.

Instances

Each instance is a Virtual Machine (VM) in the cloud. You can select CPU/RAM/disk configurations (called "flavors") for the VM. The available VM configurations are:

Flavor CPUs GPUs RAM
c1.m8 1 None 8 GB
c2.m16 2 None 16 GB
c4.m32 4 None 32 GB
c8.m64 8 None 64 GB
c14.m112 14 None 112 GB
c20.m160 20 None 160 GB
c28.m224 28 None 224 GB
*c4.t1.m20 4 1 Nvidia Tesla T4 20 GB
*c14.g1.m60 14 1 Nvidia Tesla V100 60 GB
* GPU flavors

When you are first starting an instance, we recommend that you select the smallest flavor (least number of CPUs) that you think will be able to handle installation and configuration of the software and environment on your instance, and then resize the instance when you are ready to run. This way you will save core hours that would otherwise have been spent idle. This method is especially useful when configuring a GPU instance due to the number of cores. Also note: you can begin with a smaller instance size (or flavor) that does not contain a GPU, and later resize to one that does.

The root disk size of the instance will default to the size of the image you select. You have the option to create a volume as the root disk beyond the image size at launch time. Note that we do not oversubscribe physical RAM or CPU cores (hyperthreading is disabled).

To work with instances, select the "Instances" page under the "Compute" tab, as pictured below:

InstancesMenu.png

Launch an Instance

This section is a general walk-through for creating a new instance, which is not specific to an Operating System (OS). For more specific information per OS, see either of these pages:

To launch a new instance

  1. Create Key Pair
  2. Create a Security Group and be sure that you select the appropriate rule for connecting to your instance (SSH for Linux Instances and RDP for Windows Instances)
  3. Select "Launch Instance" on the top right side of the Instances page InstancesOptions.png

The full "Launch Instance" menu will pop up like this:

InstanceLaunchMenuFull.png

  • Tabs that you are required to fill out are marked with a *
  • It is recommended that you also select your own Security Group, otherwise the default security group will be selected, which may not be ideal for your work.
  • It is necessary that you select your own Key Pair, even though this field is not marked required, so that you are able to connect to your instance after creation.

Configuring the Instance

  1. Under the "Details" tab:
    • Enter a name for your instance
    • Count is the number of identical instances you would like to create (typically 1).
      • Note that if you create multiple instances this way, the names will be identical with a dash and number added at the end.
      • For example, if you set Instance Name to "my_instance" and you set Count to 3, you would start instances named "my_instance-1", "my_instance-2", and "my_instance-3".
  2. On the "Source" tab:
    • You must Select Boot Source, which is described on the page as "the template used to create an instance."
      • It is generally a good idea to start with an image as the source, unless you want to create an instance from a pre-existing source.
      • For more information on the other options, see Creating an Image.
    • You can select a specific source under the Available list by selecting the up arrow on the right-hand side.
    • Get more details about the specific source by selecting the right-arrow on the left-hand side next to the name.
    • You will have the option to Create New Volume if you have selected either "Image" or "Instance Snapshot" as the source (default is "Yes"):
      1. Yes: If selected, a volume will be created to be the instance's root disk. You will then have the options of extending the size of the volume beyond the image size, and deleting the volume when the instance is deleted.
        • Volume Size is the size of your root volume. The default number will match the size of the image you select, and can be increased.
        • Delete Volume on Instance Delete determines whether or not the root volume will be deleted automatically when you terminate the instance. The default is "No", which prevents your data from being deleted when you delete your instance (perhaps accidentally). However, if you do not need this extra level of protection, and you do not intend to re-use the root volume, you could unintentionally incur excess storage usage. Therefore, it can be a good idea to set this option to "Yes" so that the volume is deleted automatically when you terminate your instance. Your alternative is to find and delete the root volume manually, later (it will show up in the list of volumes with a name identical to its arbitrarily assigned ID, unless you give it a different name).
        • You can also customize the name of the volume under Device Name.
      2. No: If selected, the instance will boot off a root disk the same size as the image. The root disk will be deleted when the instance is deleted.
  3. The "Flavor" tab is where you select the VM configuration discussed above.
    • We recommend that you select the smallest flavor (least number of CPUs) that you think will be able to handle installation and configuration of the software and environment on your instance, and then resize the instance when you are ready to run. This way you will save core hours that would otherwise have been spent idle. Also note: you can begin with a smaller instance size (or flavor) that does not contain a GPU, and later resize to one that does.
    • You can select a configuration by selecting the up arrow on the right-hand side.
    • Get more details about the configuration by selecting the right-arrow on the left-hand side next to the name.
    • The "Total Disk" will show "0 GB" because the disk size will match the image you selected on the "Source" tab.
  4. For the "Networks" tab, two options are available:
    1. You can make the instance available on the public net. This is the simplest and most common selection.
    2. You can select your own private network, which has to be set up before you launch an instance. For more information, see the Networks page.
  5. On the "Security Groups" tab, select the security group you already created.
  6. On the "Key Pairs" tab, select the key pair you already created.

Instance States

OpenStack defines several Server States through which you can move your instances. You change the state of your instance by making a selection from a drop-down menu under the Actions column. Three significant actions to know about are "Resize Instance", "Shelve Instance", and "Unshelve Instance"; these are described below.

Allowed actions—i.e., the ones that appear in the drop-down menu—depend on the current state of the instance. For example, the "Resize Instance" action is allowed only for instances that are in the Active state. The figure below shows the possible states in OpenStack and the transitions that are allowed in each case.

Source: OpenStack[1]

When your instance has been created, the "Instances" tab will list its current state (as well as the state of your other instances) under the "Status" column. In the rightmost column called "Actions," you will see a drop-down menu for each instance. This menu lists the actions that are allowed for the given instance. Below we describe the typical states and list some of the common actions you will use to change instance state.

Important States

Note: The only state where you are NOT being charged for computational resources is Shelved Offloaded

  • Active: Instance is active, you can connect to it and are being billed for the computational resources dedicated to it.
  • Shelved Offloaded: The Instance is not resident on the compute host; this means you will not be billed for computational resources while the Instance is in this state (although you will be charged for the storage required to hold it). You can restart the server when you need it again.
  • Paused: In this state, the server state is preserved in RAM, but operations have been stopped and will resume when instructed. You are still being charged for the computational resources dedicated to the Instance.
  • Suspended: Instance state has been stored on disk, including the contents of its RAM. With Red Cloud's configuration, you are still paying for the computational resources you were using.
  • Stopped: This is like powering off a server; in this state, you are still being billed for the computational resources.
  • Resized: At this time, the Instance is being Resized to a different flavor—that is, a different allocation of vCPUs and RAM—and is not contactable.

Operations to transition between states

These options are available, subject to the current state of the Instances, from the dropdown available in the "Actions" column of the Instances page. Remember that Shelving is the only operation that will free up the computational resources your Instance has been using so that you stop being charged for them!

  • Pause Instance: Put instance into the Paused state.
  • Suspend Instance: Put instance into the Suspended state.
  • Shelve Instance: This is how you put the Instance aside so that you are no longer charged for computational resources being used; your Instance will still be visible on the Instances page with Status Shelved Offloaded. To get the Instance back up and running, select "Unshelve" from the actions menu.
  • Resize Instance: Allows you to select a new Instance flavor. After you have selected it, Status will be shown as "Confirm or Revert Resize/Migrate" you will have to confirm in the Actions dropdown, after which the Instance will be taken down and then come back up with the new computational resources available to it. On Linux you can check with commands such as lscpu or cat /proc/cpuinfo; on Windows you can, for example, use the "Performance" tab of Task Manager to see the available cores.
  • Resume Instance: Will restart the Instance from states of Paused and Suspended
  • Soft Reboot Instance or Hard Reboot Instance: Reboot your instance, either through issuing a command to the operation system ("Soft") or as if power-cycling the Instance ("Hard")
  • Shut Off Instance: Like powering off the Instance, an action you will need to confirm in a pop-up window. The Status shown will be Shutoff and you will need to "Restart" to get it back. Additionally, if you are logged into an instance and use an OS command such as sudo poweroff or sudo init, the Instances page will show the same status and you will need to select "Restart" to get the Instance back up and running. In this state, you are still being charged for computational resources.