HP CloudSystem Matrix 1.x, CloudSystem Matrix 6.x, CloudSystem Matrix 7.x White Paper

HP CloudSystem Foundation and Enterprise Software
Creating Virtual Machine
se w HP CloudSystem
Microsoft Windows
Images for U
ith ESXi Compute Clusters in
This paper describes the process for creating Windows VMDK images to use with ESXi cluster compute nodes in a CloudSystem environment. Images are the basis for virtual machine (VM) instances in HP CloudSystem. You can create and import images from underlying hypervisor platforms into CloudSystem.
An overview of image concepts
HP CloudSystem Foundation is based on HP Cloud OS, which is based on open source OpenStack cloud technology. Images are uploaded into the CloudSystem image repository, and then users can launch VM instances based on those images. The OpenStack service that manages images is called ‘Glance’. Images are disk files with pre-installed, bootable Windows or Linux operating systems. Images may also have pre-installed applications.
Supported image formats and guest operating systems in CloudSystem
CloudSystem supports the guest operating systems that are supported by the underlying hypervisor platform. Consult VMware and Red Hat documentation for a list of supported guest operating systems.
The following image formats are supported:
For ESXi, images must be in VMDK format.
For KVM, images must be in qcow2 format.
CloudSystem Foundation and CloudSystem Enterprise
The CloudSystem solution is offered in two packages. Foundation is an Openstack-centric IaaS solution, where images are loaded and used to launch individual VM instances within the OpenStack paradigm. Enterprise is centered on HP Cloud Service Automation (CSA), offering advanced orchestration, complex service design, and a Market place Portal user experience. When provisioning VMs defined in an Enterprise service offering against the CloudSystem Foundation provider, you can use images that were previously uploaded into Foundation.
What makes an image “cloud ready”? When creating images to use with virtual machines (VMs) in CloudSystem, keep the following details in mind:
Disk partitions must be able to be resized during launch. OpenStack allows users to select multiple ‘flavors’, which
define different sizes of compute resources and boot disks.
The operating system (OS) in the image must support new MAC addresses. Each time an image is launched as a VM,
it is assigned new MAC addresses for virtual NICs.
A user login mechanism must be part of the image’s software and configuration. Typically, Remote Desktop
Protocol (RDP) is used for Windows and Secure Shell (SSH) is used for Linux.
The root/Administrator account can be disabled and logins can be prohibited. This makes it easier to support the
VM instances from central IT.
1
Creating Windows Virtual Machine images for use with ESXi compute clusters in HP CloudSystem
Firewalls are often disabled. OpenStack security groups provide a method for creating and applying firewalls as
each VM is instantiated by the end user. If default or minimum firewalls are already set in the image, network troubleshooting can be difficult.
Use a secure user login authentication mechanism that provides each end user with a unique password or key.
Configuring passwords into a common image is not a recommended solution. Instead, for Windows, end users should set a password for an account in the launch dialog. For Linux, end users should choose a key pair for the VM instance when the image is created.
OpenStack supports the ‘cloud-init’ mechanism for passing data and scripts to a newly created VM instance. A
common practice is to perform final customization of the image when it first boots as a VM instance, using specific information provided in the ‘create’ or ‘launch’ request.
Make sure to log information to the console. When troubleshooting image issues during startup or issues related
to networking, it is extremely helpful to have the image log information to its console. You can access the console through the CloudSystem Portal or through the virtualization layer using vSphere client, KVM command line virsh commands, or Virtual Network Computing (VNC).
Confirm the supported guest OS against the underlying hypervisor. VMware guest OS support is fairly broad; Red
Hat less so. To ensure a vendor supported configuration, make sure to conform to the vendor’s guest OS support list.
Make use of hypervisor tools and optimizations. CloudSystem provides a complete management environment for
images and provisioned VM instances. In addition, the virtualization layers (ESXi or KVM) have a critical role in troubleshooting, development and performance optimization.
Whenever possible, image size should be minimized. Image size impacts actions such as moving, using, and storing
images.
You must account for any OS and software licensing for images instantiated as VMs. When a site license is available,
it can be configured in the image. Another approach is to connect images to license management frameworks during configuration or after the VM instance is created.
Cloud-init tool for cloud images
Many of the issues described in the previous list have been solved for Linux and Windows images by the open source project cloud-init. You can find information on cloud-init at https://cloudinit.readthedocs.org/en/latest/.
Originally developed for Amazon Web Service (AWS) and Amazon Elastic Compute Cloud (Amazon EC2) images, cloud-init is fully functional in an OpenStack environment..
Where do images come from?
Images used in CloudSystem provisioning come from three major sources:
1. Images created in the hypervisor platform and then imported for use into CloudSystem.
2. Images downloaded from a public source and then imported for use into CloudSystem.
3. Snapshots of running VM instances in CloudSystem that are saved as images, and then used to provision new VM instances.
Option 1: Creating images from scratch
This approach is covered in detail in later sections of this paper. It gives you complete control over the contents, behavior and features of the images used by your users.
2
Creating Windows Virtual Machine images for use with ESXi compute clusters in HP CloudSystem
Option 2: Downloading images from a public source
Pre-created images for use in OpenStack based clouds are available from various sources. The OpenStack documentation provides a list of some of these publically available images at
guide/content/ch_obtaining_images.html. Many are Linux images supplied directly by the major Linux vendors. An OpenStack-
compliant Windows image is provided by Cloud Base at http://www.cloudbase.it. The advantage of publically available images is that the images are ready to use, have cloud-init, and have ‘cloud-ready’ properties. When using images created by another source, consider the following:
Security: Do you trust the security and integrity of the image and its provider?
Licensing: What are the licensing constraints, if any, associated with the image and the software inside it?
Support: Who is supporting the image if you have problems?
Option 3: Creating images from snapshots of launched VMs
Once you have images loaded in CloudSystem and you have created VM instances, you can take a snapshot of a VM instance and use it as an image. This approach gives you the flexibility to upload simple, customizable images. This option is only available once you uploaded initial images in your environment using option1 or 2.
http://docs.openstack.org/image-
Building a Windows image for use with ESXi compute clusters
This section provides a high-level overview of the steps required to create a Windows VMDK image for use in CloudSystem. Some steps are required, while others are optional.
Step 1 Create the source virtual machine in vCenter Server o Two key settings are required for your Windows image to work:
SCSI Controller -> LSI Logic SAS Virtual Device Node -> SCSI
o Where possible, choose the smallest boot disk size that will work for your Windows version and options.
CloudSystem allows users to request a larger boot disk size for the resulting VM at launch so the size only needs to be big enough to support the installation and preparation of the image.
Step 2 Install Windows and customize options o Multiple Windows versions are supported and there are no specific options that are required for your image to boot.
That being said, there are a number of aspects that are best practices for images provided as a service to users in a cloud. This step is an opportunity to configure the options, software and settings you want to include in your images.
Step 3 Add VMware tools to the virtual machine
o VMware tools are required to allow CloudSystem to shut down VM instances created from the image. Additionally,
VMware tools provide the ability to manage the image from within the VMware hypervisor platform.
Step 4 Create an unattended file using Microsoft System Image Manager
o Advanced IT deployments leverage Windows Sysprep to set the final settings of the deployed VM at first boot on
launch as an alternative to making all settings and customizations when the Windows OS is installed. This allows you to take a common image created to this point and derive additional image variations for users with different settings, such as internationalization.
o For simpler use cases and testing, you can skip this step and instead use Step 2 Install Windows and customize
options, and optionally, Step 5 Install Cloud-init, to customize the image.
Step 5 Install cloud-init
o Cloud-init is the open source mechanism for customizing the operating system of a newly provisioned VM instance.
It can be used to handle many actions, particularly passing metadata from the CloudSystem GUI or CLI interfaces into the VM instance for interpretation and execution with scripts you’ve configured into the image. For example, this cloud-init step sets up an administrative user account and lets the requesting user from CloudSystem set the password for it.
o If OS customization is not required, then you do not need to perform this step.
Step 6 Run Sysprep o Sysprep prepares the image to use specific Windows values based on unattended files created in Step 4. If you are
using cloud-init, this step is required.
o If you are not creating an unattended file or using cloud-init, then you do not need to perform this step. All
behavior and settings are controlled by the options configured in Step 2.
Step 7 Set required VMware image properties with VMware tools o A VMDK image can be flat or sparse format. The properties must be set correctly before loading the images into
CloudSystem.
For flat images, fully expand the VMDK image using the vmfstools ‘-d eagerzeroedthick’ option.
3
Creating Windows Virtual Machine images for use with ESXi compute clusters in HP CloudSystem
For sparse images, make sure they are already configured as sparse or convert them to sparse using the
vmware-vdiskmanager with ‘-t 0’ option.
Step 8 Upload the image to CloudSystem
o You can upload an image by copying it to the CloudSystem Glance image repository or by entering a link to an
HTTP server that hosts the image. In the second scenario, when CloudSystem needs the image for an operation, it fetches it from the HTTP server.
o When you copy the image into CloudSystem’s Glance repository, you can use the CloudSystem Portal, the
CloudSystem Console, or the Glance CLI. The CLI provides more control and more options and handles larger image sizes than the GUI options. Using the CLI is the recommended best practice when working with Windows VMDKs.
Step 9 Set required CloudSystem properties
o The CLI tool is used to set the two CloudSystem required properties for Windows VMDKs:
vmware_ostype=<OSType>
Example: ‘windows8Server64Guest’ for Windows 2012
vmware_adaptertype=lsiLogicsa
o If your image is sparse VMDK format, you are also required to set:
vmware_disktype=sparse
o Additional image options can be set at this time to establish a minimum disk size and memory for the image to
restrict users from requesting an instance with insufficient resources. These are optional.
min_disk=<minimum disk size in GB independent of user selected flavor> min_ram=<minimum RAM MB independent of user selected flavor>
Step 1: Create the virtual machine source in vCenter Server
In your VMware development environment, create a virtual machine to use as the source of the image. Most parameters are supported with a wide range of values, but two parameters require specific values in order for the image to work.
The two required properties are:
SCSI Controller -> LSI Logic SAS
Virtual Device Node -> SCSI
Creating the virtual machine source in vCenter Server
Create the virtual machine. Customize the configuration.
a. Name and Location -> <Your choice > b. Storage -> <Your choice> c. Virtual Machine Version -> Virtual Machine Version 8 (This is the default) d. Guest Operating System -> Windows Version
Example: ‘Microsoft Windows Server 2012 (64-bit)’
e. CPUs
Number of virtual sockets -> <Your choice> Number of cores per virtual socket -> <Your choice>
In CloudSystem, the actual value for CPUs to support the instance is a function of the OpenStack Nova flavor selected for the instance. The values you set for the VM at this time have no effect. Pick the values you want while you are developing the virtual machine image.
4
Creating Windows Virtual Machine images for use with ESXi compute clusters in HP CloudSystem
f. Memory size -> <Your choice>
In CloudSystem, the actual value of RAM is a function of the OpenStack Nova flavor selected for the VM instance and any min_ram value that was set as a property of the image in CloudSystem. Setting the min_ram size is covered in step 7. At this point, just enter a value that allows you to develop the virtual machine image.
g. Network
Set the network adapter to ‘E1000’ or ‘E1000E’
E1000 and E1000E drivers are commonly available in Windows by default. Other NIC types could work but you must make sure that you included the driver.
Number of NICs -> <Your choice>
The number of NICs attached to an instance is determined by the user during provisioning.
h. SCSI Controller -> LSI Logic SAS
IMPORTANT: LSI Logic SAS is the only supported value for a Windows VMDK in CloudSystem.
i. Create the disk.
Capacity –> < Your choice>
Best practice is to set the size as small as possible for staging the image. The actual boot disk of the VM is determined by the user when the VM is instantiated.
During provisioning, the actual value of the VM’s boot disk is a function of the OpenStack Nova flavor selected for the VM instance and any min_disk value that was set as a property of the image in CloudSystem. Setting the min_disk size is covered in while developing the virtual machine.
For example, the recommended minimum size reported by Windows 2012 for a standard image with GUI options is 18GB. But it is fairly straightforward to create a ‘hello world’ functional Windows 2012 standard edition image at around 9GB in size. You can work with an image size of 9GB during staging, set a minimum of 40GB for users and then they can use flavors to create VMs based on the image with even larger boot disks.
IMPORTANT: If you usually work with ‘hello world’ Linux images, which are generally much smaller (200-
500MB), then the processing time and storage for these larger Windows images will be considerably larger.
Disk Provisioning –> <Your choice>
The size and format options of the image and how it is stored as it is moved into and used in CloudSystem is configured later. At this point, choose thick or thin provisioning while you are developing the VM.
j. Set advanced options.
Virtual Device Node -> SCSI
IMPORTANT: SCSI is the only supported value for a Windows VMDK in CloudSystem.
step 7. At this time, just select a value to use
Step 2: Install Windows and customize options
The purpose of this section is to choose the options in the Windows OS that allow the image to be used as a Windows VMDK. For example, after launching the instance, a user could gain console access via the CloudSystem Portal, but typically the expected interaction is for the user to access the console via Remote Desktop Protocol (RDP).
Some of the properties and options can be set using the procedure in step 4. Others are so common to all versions of Windows images that they are best set using this procedure.
5
Loading...
+ 11 hidden pages