Virtual Server Image Import to K5: Using the K5 Command Console

Fujitsu Cloud Service K5 makes it possible for customers to upload their own images to the K5 platform for use. At this time, importing Virtual Server Images needs to be carried out through the APIs and there a a few steps that you need to go through to successfully import an image:

  1. Prepare the source Virtual Server that will be used as the image according to the guide in the K5 IaaS Features Handbook.
  2. Obtain the VMDK file for the source Virtual Server that you will be importing to K5, some important notes:
    1. If the source Virtual Server file is not a VMDK you will need to convert it to a VMDK file as this is the only type of image you can import.
    2. You can only upload a single Virtual Server Hard Disk as an image
  3. Upload the Virtual Server Image File to an Object Storage Container in the ‘default’ project in your K5 account, some important notes:
    1. The ‘default’ project name is your Contract ID plus ‘-prj’.
    2. K5 Object Storage has a maximum object size of 5GB. If the Image is larger than 5GB then you’ll need to do a multi-part upload and bring it back together with a manifest file. I’ll blog on this in the coming days and link this in.
  4. Execute an Image Import API command to import the Image from Object Storage.
  5. Publish the imported Image to the projects in your K5 account that you want to use it in.

Fortunately, all of the above from step 2 to 5 has been wrapped up in to my K5 Command Console Application. This is not an official Fujitsu application and usage of it remains at your own risk.

You can find the latest version of the application at https://github.com/fujitsuk5/K5-Command-Console.

This blog will walk you through the steps to use the K5 Command Console to upload and import a Virtual Server image, please ensure you are using a image that has been prepared in line with the guidelines in the K5 IaaS Features Handbook.

Step 1: Login to the K5 Region

Once you have downloaded the K5 Command Console and opened it up, enter your Contract ID (Domain), Username, Password and the K5 Region you want to upload the image to and press ‘Authenticate’

blog-imageimport-step1

Important Note: The User Account that you use to Import the Virtual Server image must have the System Owner Role on the Default Project or a custom Imager Role created and assigned. The user account and password used

Step 2: Scope to the Default Project

Find the ‘Default’ Project in the list and press the ‘Scope To’ button. It will be the one ending in ‘-prj’:

blog-imageimport-step2.png

Step 3: Upload to Object Storage

Once authenticated and scoped to the Default Project, navigate to the “Storage” Tab and then the “Object Storage” Tab under that

Pressing the “List Containers” button will present a list of Object Containers that already exist in the Project’s Object Storage area. It’s best practise to create a new Container for each Image that you will be uploading to K5.

To create a new Container, provide a name for the Container in the ‘Container Name’ input box and press ‘Create Container’:

blog-imageimport-step3

Once created, select the Container you have just created in the list and press the “Show Objects >>>>>” button:

blog-imageimport-step4

Next we can proceed with the Upload of our VMDK file, click the ‘Upload Object’ to be presented with a File Section Dialog:

blog-imageimport-step5

Once you select the file, you will get the following window appear that will progress the upload. The application will automatically chunk the file in to 200MB chunks and upload to Object Storage, it will pull it back together at the end using a manifest file.

blog-imageimport-step6

Once uploaded, click on ‘Show Objects >>>>>’ again to refresh the view for the Container that you uploaded to and you should see the Object has been uploaded. If the file size was larger than 200MB you will see multiple objects suffixed with -00000 (incremental numbers).

Step 4: Initiate Import of Image

Select the object name that matches the file you uploaded (the one without the -00000 suffixes) and then from the ‘Import As’ drop down select the type of Image you are importing and then press the ‘VM Import from Object’ button:

blog-imageimport-step7

This will initiate an Import Task for that Image from Object Storage. Pressing the ‘Check Import Status’ button will allow you to view the status of this Import.

Step 5: Checking the Import Process

Pressing the ‘Check Import Status’ button will take you to the ‘Tasks’ screen that allows you to monitor the progress. This screen will update every 30 seconds automatically:

blog-imageimport-step8

Step 6: Sharing the Imported Image with other Projects

Once the Image has been successfully imported it will be available for use in the ‘Default’ Project in your account. To use it in other Projects you will need to publish the Image to the other Projects.

To do this, head to the ‘Compute’ and then ‘Images’ Tab and press the ‘List Images’ button. This will present a list of all Images in the ‘Default’ Project:

blog-imageimport-step9

Find the Image you Imported and then in the ‘Project ID to Share With’ input enter the Project UID of the Project you want to share with and click the ‘Share’ button.

Once you have done this click on the ‘Projects’ tab and scope to the Project you have just shared the image with.

Now enter the Image UID of the image you imported (can be found via the’Show\Hide Debug button) in the ‘Image ID to Accept’ input and click the ‘Accept’ button.

You have now successfully uploaded, imported and published the Image to a project. From within K5 you can now use this Image to create new Virtual Servers.

I’ll create more detailed blog posts detailing out the API calls in the coming weeks.

Advertisements