Sunteți pe pagina 1din 72

IBM SmartCloud Provisioning

Version 1.2
Installing and configuring

IBM SmartCloud Provisioning


Version 1.2
Installing and configuring

This edition applies to version 1 release 2 modification level 0 of IBM SmartCloud Provisioning (program number
5725-C88) and to all subsequent releases and modifications until otherwise indicated in new editions.
Copyright IBM Corporation 2011.
US Government Users Restricted Rights Use, duplication or disclosure restricted by GSA ADP Schedule Contract
with IBM Corp.
Note
Before using this information and the product it supports, read the information under Notices on page 59.
Contents
Installing and configuring . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Physical architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Installation overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Before you begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Installing using the GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Installing using the CLI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Verifying the installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Restarting all services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Shutting down a running environment . . . . . . . . . . . . . . . . . . . . . . . . . 24
Recovering kernel services virtual machines after a restart of your cloud . . . . . . . . . . . . . . 25
Upgrading. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Upgrading using the GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Upgrading using a script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Upgrading HBase and other nodes using a script . . . . . . . . . . . . . . . . . . . . . . 27
Configuring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Reconfiguring nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Other configuration tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Default ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Securing the communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Installing and configuring additional options . . . . . . . . . . . . . . . . . . . . . . . . 50
Installing topology management . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Installing and configuring the Iaas API . . . . . . . . . . . . . . . . . . . . . . . . . 51
Appendix. Support information . . . . . . . . . . . . . . . . . . . . . . . . . 55
Using IBM Support Assistant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Obtaining fixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Receiving weekly support updates . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Contacting IBM Software Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Determine the business impact of your problem . . . . . . . . . . . . . . . . . . . . . . 57
Describe your problem and gather background information . . . . . . . . . . . . . . . . . . 58
Submitting problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Copyright IBM Corp. 2011 iii
iv IBM SmartCloud Provisioning: Installing and configuring
Installing and configuring
The following topics describe how to install and configure SmartCloud
Provisioning.
The product file is CBH6H7ML.iso.
Physical architecture
This topic describes the topology of SmartCloud Provisioning.
There are two types of servers in a typical SmartCloud Provisioning environment:
Compute Nodes and Storage Nodes. The Storage Nodes are optimized for disk
and network I/O, while the Compute Nodes are optimized for CPU and RAM,
although I/O is also critical. The Storage Nodes host all images and persistent user
volumes, while the Compute Nodes are used to host the virtual machines.
The SmartCloud Provisioning environment requires two or more Storage Nodes
and two or more Compute Nodes, and it also requires a machine as a PXE Server
if you are going to use the automation installer. There are approximately 6:1
(average ratio) Compute Nodes to Storage Nodes. This is a recommended ratio
from practice, and you can adjust it according to your system workload.
SmartCloud Provisioning requires an isolated network because it has an internal
DHCP server. You must configure your network to guarantee that the DHCP
service is not affected and does not affect your existing network.
The following figure shows a typical SmartCloud Provisioning environment:
Copyright IBM Corp. 2011 1
SmartCloud Provisioning has the following components:
PXE Server
Provides DHCP, DNS, HTTP, and TFTP services. It is used to quickly set
up all SmartCloud Provisioning components over the network.
Zookeeper
Zookeeper is part of the Apache Hadoop project. It is a scalable resilient
distributed lock service. It must be deployed in odd numbers of servers
with a minimum of three nodes, as shown in the figure.
Web Service
All administrative and user access to SmartCloud Provisioning is provided
through a RESTful web service interface. At least one copy of this virtual
machine must be running. Multiple copies can run in parallel with a load
balancer (virtual machine or physical device) spreading out http traffic to
the group.
Web Console
At least one copy of the web console must be deployed to run the web UI.
As with the web service, multiple copies can be run in parallel with a
front-end load balancer.
LDAP Server
An open LDAP provides user authentication for the Web Console. It's
optional and configurable, though if you follow the installation procedure
2 IBM SmartCloud Provisioning: Installing and configuring
document in this set it is always installed. If you have no LDAP server, the
SmartCloud Provisioning installer can help you install an LDAP server.
Hadoop and HBase
HBase is part of the Apache Hadoop project. It is a distributed, scalable,
column-oriented data store modeled after Google's BigTable. HBase has
dependency on HDFS (Hadoop Distributed File System). To guarantee high
availability of the service, the minimum recommended deployment is three
copies of this virtual machine, but it is highly recommended to have more
nodes, for example, 7.
REST Server
The REST Server is a gateway for the HBase cluster. All requests to HBase
are processed by this component. The minimum is 1 node, but you can
have more nodes for balance purpose.
Storage Nodes
The Storage Nodes provide images and volumes services through the iSCSI
Target Server. The default iSCSI Target Server is Linux tgtd. The minimum
is 2 nodes. Each Storage Node is equipped with a storage bot. A storage
bot is an agent that manages all storage-oriented resources and tasks.
Compute Nodes
The Compute Nodes host the deployed virtual images. The minimum is 1
node but, depending on your environment and forecasted workload, you
can have more nodes. Each Compute Node is equipped with a compute
bot. A compute bot is an agent that manages all computing-oriented
resources and tasks.
Virtual Image Library
The Virtual Image Library component provides image management
services such as, for example, federation among heterogeneous image
repositories, comparison among images both pre installed products and per
files, inventory, search, versioning, and replication.
Image Construction and Composition Tool
The Image Construction and Composition Tool helps you build images that
are reusable, self-descriptive, customizable, shareable, and manageable.
Images can contain the basic operating system plus additional software
bundles.
In a typical deployment:
v The PXE Server is installed on a physical box, the so-called First Box, but it can
also be installed on a virtual machine.
v The Storage Nodes are deployed on physical machines, because this improves
their performances, but, if you have limited hardware resources, they can also be
virtualized.
v The Compute Nodes are deployed on physical boxes.
v If you choose VMware ESXi Server as system for the Compute Node, a
management virtual machine is created to host the compute bot on the VMware
ESXi Server.
v The other components, including ZooKeeper, Hadoop plus HBase, REST Server,
Web Service, Web Console and Administrative Console are all installed on
virtual machines. These virtual machines, often referred to as kernel services, can
run in any physical machines installed as KVM host, but the CPU of the
physical machines must support virtualization.
Installing and configuring 3
Installing
The following topics deal with the installation of SmartCloud Provisioning and all
of its nodes.
Installation overview
The PXE Server is used to build the images for the other servers so that they can
be installed quickly over the network.
At a very high level, the installation is performed as follows:
1. Set up the PXE Server using an automation script. This task sets up DHCP,
DNS, TFTP, HTTP, and NTP services on the PXE Server, which acts as a booting
and running environment for the cloud.
2. Install the Storage Nodes. This task installs the operating system on the node
and then configures it as a Storage Node.
3. Install the Compute Nodes. This task boots the node through the network,
loads the operating system image from the PXE Server and configures it as a
Compute Node.
4. Install the kernel service virtual machines. This task deploys a few virtual
machines, each with a kernel service (for example, a Zookeeper, an HBase, an
LDAP) that supports the cloud.
The installation can be performed in two ways:
v Using the GUI on the PXE Server. This is the recommended approach to perform
an installation. It can be minimal or custom.
v Using the CLI as described in the Installing and configuring set of topics, see
Installing using the CLI on page 9.
Before you begin
Complete the following prerequisites before you start an installation.
Before starting an installation, ensure that you have configured your environment
for PXE booting.
Before setting up the PXE Server, ensure that the following prerequisites are met
on its physical machine:
v Prepare an ISO file of Red Hat Enterprise Linux 6.0 or 6.1 x86_64, and place it
into a directory on the PXE Server, for example, place it in /tmp/ISCP. This file is
used to make the kernel services images and to make Red Hat as an RPM
repository for the whole environment, and it is also used to install ramdisk for
the Storage Nodes and Compute Nodes. All these steps are automatically
performed during the installation, and no manual actions are needed beyond
making an ISO file available in a directory on the PXE Server.
v Prepare the following packages and place them into a directory on the PXE
Server, for example, place them in /tmp/ISCP. The following packages, required
for the installation, correspond to Red Hat Enterprise Linux 6.0 or 6.1, which can
be downloaded from the Red Hat website:
for rhel 6.1:
ruby-devel-1.8.7.299-7.el6.x86_64.rpm
ruby-rdoc-1.8.7.299-7.el6.x86_64.rpm
rubygems-1.3.7-1.el6.noarch.rpm
ruby-ri-1.8.7.299-7.el6.x86_64.rpm
ruby-docs-1.8.7.299-7.el6.x86_64.rpm
4 IBM SmartCloud Provisioning: Installing and configuring
for rhel 6.0:
ruby-ri-1.8.7.299-4.el6.x86_64.rpm
rubygems-1.3.7-1.el6.noarch.rpm
ruby-rdoc-1.8.7.299-4.el6.x86_64.rpm
ruby-devel-1.8.7.299-4.el6.x86_64.rpm
ruby-docs-1.8.7.299-4.el6.x86_64.rpm
ruby-irb-1.8.7.299-4.el6.x86_64.rpm
Do not put packages for RHEL 6.0 and RHEL 6.1 together.
v Prepare the following packages and place them in a directory on the PXE Server,
for example, place them in /tmp/ISCP:
livecd-tools-031-1.el6.1.x86_64.rpm
python-imgcreate-031-1.el6.1.x86_64.rpm
The livecd-tools package can be downloaded from: http://ftp.redhat.com/pub/
redhat/rhel/beta/6/x86_64/os/Packages/livecd-tools-031-1.el6.1.x86_64.rpm.
The python-imgcreate package can be downloaded from: http://ftp.redhat.com/
pub/redhat/rhel/beta/6/x86_64/os/Packages/python-imgcreate-031-
1.el6.1.x86_64.rpm.It is at your sole discretion to decide to download these
packages or not. If you elect to download the packages, you must comply with
the licenses governing the use of the packages. IBM does not make any
warranties to the packages, including but not limited to fitness for a particular
purpose, merchantability and non-infringement. IBM does not indemnify you
against claims of any third party that the packages infringe the third party's
intellectual property right.
v Ensure that iptables does not block http, SSH, TFTP, DHCP, DNS:
chkconfig iptables off&&/etc/init.d/iptables stop
v Ensure that SELinux is disabled. You can disable SELinux in the following way:
1. Open the file /etc/selinux/config in edit mode.
2. Change SELINUX=enforcing to SELINUX=disabled.
3. Reboot.
Installing using the GUI
These topics describe how you perform an installation using the graphical user
interface on the machine that you want to set up as a PXE Server.
The installation through the GUI is the recommended approach for this task.
Launching the installation
Mount the media (.iso format or CD) or extract the package (.tar format) to any
directory on the PXE Server with at least 10 GB of disk space available.
For example, extract to $your_dir, then run .install.sh to start the installation
program. If you are using extracted packages, the install.sh file is located under
$your_dir/IBM_SmartCloud_Provisioning.
There are two types of installation: minimal and custom.
Minimal:
A minimal installation only supports the characteristics described in this topic.
v The only supported hypervisor is KVM.
v You need at least two Storage Nodes and one Compute Node.
Installing and configuring 5
Follows these steps to perform a minimal installation:
1. In the Prerequisites panel, provide the path to the Red Hat Enterprise Linux 6.0
or 6.1 installation image.
2. In the Network options panel, type:
v The DNS suffix (in other words, the domain name of your environment, for
example your.cloud.com).
v The address of the parent DNS server. This is the upstream DNS server to
which the local DNS server forwards non-authoritative requests.
v The network address that indicates the network segment for the whole
environment (for example, 10.10.0.0).
v The network mask (for example, 255.255.0.0).
v The DHCP range to be used by the virtual machines (for example,
10.10.192.10-10.10.192.254).
3. Read the pre-installation summary, modify anything if needed, and click Next
to start the installation.
4. The installation program first sets up the PXE Server performing the following
actions:
v Copying files to the /data directory.
v Setting up a YUM (RPM) repository.
v Setting up a DNS and DHCP server.
v Creating a Live CD image.
v Setting up the PXE Server.
5. When the PXE Server has been set up, you get a prompt that tells you that it is
safe to power on the Storage Nodes and you can proceed to install the two
Storage Nodes:
a. Power on the Storage Nodes and set the BIOS for PXE network booting.
This enables the installation of the operating system on the Storage Nodes.
The kernel service virtual machines are installed on Storage Nodes, so it is
required that the physical machines of the Storage Nodes support
virtualization and that this feature is turned on before the installation.
b. On the console of the systems to be used as Storage Nodes, a PXE Boot
Option menu is displayed. Select storage_node on the menu.
c. If the workstation has multiple network devices, choose the device that
connects to the cloud.
d. Reboot the Storage Node when prompted and change the BIOS settings to
let the hard disk be the first boot device.
6. During the setup of the Storage Nodes, you can also set up the Compute
Nodes on the KVM hypervisor:
a. Power on the physical machine.
b. Set the BIOS for PXE network booting. Since the Compute Nodes are using
a ramdisk with a stateless boot. Each boot means a fresh install on the root
partition. This means you must keep PXE booting as the first choice always.
7. The installation program detects that the Storage Nodes and the Compute
Nodes are booting up. A minimal installation requires at least 2 Storage Nodes
(with virtualization support). When they are installed and booted up, the
installation program starts the kernel services deployment.
Note: Do not restart any Storage Nodes until the whole installation
completes. The default password for Storage Nodes is passw0rd.
6 IBM SmartCloud Provisioning: Installing and configuring
Note: Based on the available memory and CPU, the required virtual
machines are deployed on the Storage Nodes.
At the end of the installation, a post-installation summary panel is shown to
indicate that the installation completed successfully. At this point, you can access
the web UI and the other components according to the information shown on the
summary panel .
Custom:
With a custom installation, you can install the optional Virtual Image Library
component, customize kernel services, and configure KVM and VMware
hypervisors.
Follow this steps to perform a custom installation:
1. Select the options that you want to install:
Deploy a Virtual Image Library
Deploy the Virtual Image Library component if you want to take
advantage of extended services for image management. This
component supports the VMware VMFS repository in addition to the
repository of SmartCloud Provisioning.
After you define the operational repository to the Virtual Image
Library and index the related images, all the information about the
images is stored in the Virtual Image Library DB. You can perform the
following operations on the indexed images:
v Searching images for specific files and products.
v Comparing two images and determining the differences in files and
products.
v Finding similar images.
The Virtual Image Library component also provides the ability to track
image version and provenance.
Note: Do not select this option if you are installing SmartCloud
Provisioning in an environment different from RHEL 6.1, 64-bit.
Virtual Image Library can be deployed only on a RHEL 6.1,
64-bit machine. To manually install Virtual Image Library, refer
to the Manually installing topic in the Virtual Image Library
documentation.
Managing VMware ESXi servers
Select this option if you want SmartCloud Provisioning to manage
your existing ESXi servers. The installation program sets up an
hypervisor on the servers.
2. In the Prerequisites panel, provide the path to the Red Hat Enterprise Linux
6.0 or 6.1 installation image.
3. In the Network options panel, type:
v The DNS suffix (in other words, the domain name of your environment, for
example your.cloud.com).
v The address of the parent DNS server.
v The network address that indicates the network segment for the whole
environment (for example, 10.10.0.0).
Installing and configuring 7
v The network mask (for example, 255.255.0.0).
v The DHCP range to be used by the virtual machines (for example,
10.10.192.10-10.10.192.254).
4. In the Kernel Services Settings panel:
a. Select the option Only deploy Kernel Service virtual machines to Storage
Nodes if you want to deploy the kernel services only on Storage Nodes,
and not on Storage Nodes and Compute Nodes. This is the default and
recommended selection.
5. If you selected the option to manage VMware EXSi servers, you are shown a
panel requesting additional information as follows:
v VMware vSphere CLI installation package path: the VMware vSphere CLI
installation package is required to set up a Compute Node on the ESXi
servers.
v ESXi Server Information: you can type the information for multiple
VMware ESXi servers. Provide the IP Address, user name, and root
password and click Add. If you want to delete or update an existing entry,
select the entry in the table and click the corresponding button.
6. Read the pre-installation summary, modify anything if needed, and click Next
to start the installation. At this point the installation program sets up the PXE
Server. This action includes:
v Copying files to the /data/directory.
v Setting up the YUM (RPM) repository.
v Setting up the DNS DHCP server.
v Creating a Live CD image.
v Setting up the PXE Server.
7. After the PXE Server has been set up, you can install the Storage Nodes and
the Compute Nodes. There must be two or more Storage Nodes in your
cloud. As opposed to the minimal installation, the custom installation
calculates the necessary resources according to the number of kernel services
that you selected.
a. Power on the Storage Nodes and set the BIOS for PXE network booting.
This enables the installation of the operating system on the Storage Nodes.
The default password for storage nodes is passw0rd. It is required that the
physical machines of the Storage Nodes support virtualization if you select
Only deploy Kernel Service virtual machines to Storage Nodes.
b. Choose storage_node on the boot menu.
c. If the workstation has multiple network devices, choose the device that
connects to the cloud.
d. Reboot the Storage Node when prompted and change the BIOS settings to
let the hard disk be the first boot device.
8. During the setup of the Storage Nodes, you can set up also the Compute
Nodes on a KVM hypervisor. The setup of the Compute Nodes is done as
follows:
a. Power on the physical machine.
b. Set the BIOS for PXE network booting. Because the Compute Nodes are
using a ramdisk with a stateless boot, each boot means a fresh install on
the root partition. This means you must always keep PXE booting as the
first choice.
9. The installation program detects when the Storage and Compute Nodes are
booting up. At that point, the installation program starts deploying the kernel
services.
8 IBM SmartCloud Provisioning: Installing and configuring
Note: Do not restart any Storage or Compute Nodes, until the whole
installation completes.
10. If you selected the option to manage the VMware ESXi servers, the installation
program sets up an hyper program on the ESXi servers.
11. If you selected the option to deploy a Virtual Image Library, the installation
program sets up the Virtual Image Library automatically. The instance can be
identified with the 'Tag' information that is set to image-library. In addition, a
persistent volume with the same tag is attached to the machine.
The default credentials to access Virtual Image Library are wasadmin/passw0rd.
At the end of the installation, a post-installation summary panel is shown to
indicate that the installation completed successfully. At this point, you can access
the web UI and the other components according to the information shown on the
summary panel .
Post-installation steps
If Virtual Image Library is deployed by the system, it is not a persistent image,
therefore, if it is terminated, the instance is lost. It is recommended to proceed by
capturing it as a new image template, to obtain a new template with Virtual Image
Library already installed and available for future needs.
Installing using the CLI
The following topics describe how SmartCloud Provisioning can be installed using
the command line interface.
Setting up the PXE Server
You setup a PXE Server using an automation script.
The following topic describe how to set up the PXE Server and then use PXE
network booting to install the Compute Nodes and the virtual machines.
Using an automation script:
This topic describes how to set up the PXE Server using an automation script.
Procedure
1. Prepare the repository and ensure that all prerequisites (ruby and livecd-tools)
are in this directory:
mkdir -p /data/repos/isaac
2. Extract install_media/IBM_SmartCloud_Provisioning/data/
IBM_SmartCloud_Provisioning-1.2.0.0-*.tgz to /data.
3. Navigate to /data/IBM_SmartCloud_Provisioning-1.2.0.0-*/.
4. Modify the settings in ISAAC.cfg:
Note: If the MAC address of a workstation is not specified in ISAAC.cfg, it
will automatically be installed as a Compute Node. If you plan on using
virtual machines to run kernel services, which is the default
configuration, make sure their MAC addresses start with 52:54, for
example, 52:54:00:00:00:01.
Installing and configuring 9
Field Description and sample value
iso_location The location of the RHEL6 iso, for example
"/data/RHEL6.0-20100922.1-Server-x86_64-DVD1.iso"
dns_suffix The domain name of your environment, for example
"your.cloud.com"
#gateway Optional. The gateway address. If not specified, the gateway
takes the first address of the network. For example, if the
network address is 10.10.1.0, the gateway address becomes
10.10.1.1.
dns_world The address of the parent DNS server
network The network address, for example "10.10.0.0"; it indicates
the network segment for the whole environment
netmask The network mask, for example "255.255.0.0"
dhcp_range The dhcp range to be used by the virtual machines, for
example "10.10.192.10-10.10.192.254".
storage_mac_addrs The comma-separated MAC addresses that the Storage
Nodes use, for example
"e4:1f:13:ef:36:8a,e4:1f:13:ef:36:de", or leave it blank
to identify the Storage Nodes from the boot menu.
zookeeper_mac_addrs The MAC addresses that the zookeepers virtual machines
use, for example
"52:54:00:00:00:01,52:54:00:00:00:02,52:54:00:00:00:03"
ldap_mac_addr The MAC address that the LDAP server virtual machine
uses, for example "52:54:00:00:00:04"
hbase_mac_addrs The MAC addresses that the HBase virtual machines use,
for example
"52:54:00:00:00:05,52:54:00:00:00:06,52:54:00:00:00:07"
webconsole_mac_addr The MAC address that the web console virtual machine uses
webservice_mac_addr The MAC address that the web service virtual machine uses
ntp_svr_addrs Comma separated NTP server addresses. Leave this blank if
PXE Server is used as NTP Server.
adm_console_mac_addrs The MAC address that the Administrative Consoles virtual
machine uses.
storage_hd The block device on which the Storage Node OS is installed.
5. Run the script:
./firstbox_run
Note: If you must change ISAAC.cfg again and run the script again, you
must remove all content in /var/lib/tftpboot.
Results
The PXE Server has been set up. A private DNS and DHCP service, required by
the cloud, have been setup and started in the PXE Server.
To verify if the installation was successful, check if there is content in the directory
/var/lib/tftpboot and check if the services dhcpd, named, httpd, xinetd are
running. If any of these services is not running, you must reconfigure ISAAC.cfg,
remove all content in /var/lib/tftpboot, and run the script again.
10 IBM SmartCloud Provisioning: Installing and configuring
Installing the Storage Nodes
After the PXE Server has been set up, you can install the Storage Nodes. There
must be two or more Storage Nodes in your cloud.
About this task
When the PXE Server is ready and available, power on the Storage Nodes and set
the BIOS for PXE network booting. This enables the installation of the operating
system on the Storage Nodes.
The default password for storage nodes is passw0rd.
It is recommended that the physical machines of the Storage Nodes support
virtualization.
Procedure
1. Power on the physical machine.
2. Set the BIOS for PXE network booting.
3. Choose Storage Node if the boot menu prompts.
4. If the workstation has multiple network devices, choose the device that
connects to the cloud.
5. Reboot the Storage Node when prompted and change the BIOS settings to let
the hard disk be the first boot device.
Installing Compute Nodes
The following topics describe how to install Compute Nodes on the different
hypervisors.
Installing Compute Nodes on a KVM hypervisor:
The Compute Nodes must be installed on physical machines.
Before you begin
(Optional) How to enable automatic rack configuration:
The Compute Node can identify its own rack automatically besides reading it from
/iaas/etc/hyper_bot.conf. It uses the host name, where the first four letters serves
as the rack name and the remaining letters as the node name. Follow these steps to
achieve this:
1. Modify /var/lib/tftpboot/startup.sh and comment out lines 170 and 171 so
that the code snippet looks as follows:
167 if [ -z "$HNAME" ]; then
168 if [ "$ROLE" = "storage" ]; then
169 HNAME=`ssh -o StrictHostKeyChecking=no $SERVER \
/var/lib/tftpboot/add_storage.sh $CLOUD_IFACE_MAC | \
grep "new storage node" | \cut -d -f5`
170 # elif [ "$ROLE" = "compute" ]; then
171 # HNAME=$(echo "v`echo "$CLOUD_IFACE_MAC" | \
tr [A-Z] [a-z] | tr -d :`")
172 fi
173 fi
2. Configure the Compute Node with host names that meet the required rule.
This must happen after the PXE Server has been set up and before the
Compute Node is booted. Modify /etc/dhcp/dhcpd.static on the PXE Server
Installing and configuring 11
and add blocks according to your Compute Node. An example follows. Ensure
to restart the dhcpd service after the update.
host r001pc01 {
hardware ethernet 1c:6f:65:0b:80:fc;
ddns-hostname = pick (option host-name, "r001pc01");
fixed-address 10.0.1.13;
}
3. Remove the rack configuration from hyper_bot.conf.
Modify /var/lib/tftpboot/common/etc/hyper_bot.conf on the PXE Server and
remove the nameand rack lines so that the file looks similar to what follows:
{
"main":{
},
"monitoring":{
"data_collect_interval":30,
"file_collect_interval":60
}
}
4. Prepare and boot the Compute Node.
You can also accomplish this after the Compute Nodes have been booted. A booted
Compute Node registers itself into /etc/dhcp/dhcpd.static on the PXE Server
after it finishes the installation typically as this:
host v1c6f650b80fc {
hardware ethernet 1c:6f:65:0b:80:fc;
ddns-hostname = pick (option host-name, "v1c6f650b80fc");
fixed-address 10.0.128.106;
}
Then you only need to replace the name with an appropriate name. v1c6f650b80fc
is a typical name if the node is booted from the PXE Server. If the node is
manually installed, the name might be set according to r001pc01, r002pc09 ... and
so forth. After this file is modified, you must restart the dhcpd service with the
command /etc/init.d/dhcpd restart.
About this task
Note: Except for Compute Nodes, the MAC addresses of all nodes are stored
in the PXE Server. This means that all nodes whose MAC address is not in
the PXE Server are all set up as Compute Nodes when booted from the
network.
The default password for Compute Nodes is passw0rd.
The Compute Node is up and running after the installation. There is no need to
restart it.
1. Power on the physical machine.
2. Set the BIOS for PXE network booting. Since the Compute Nodes are using a
ramdisk with stateless boot, each boot means a fresh install on the root
partition. This means you must keep PXE booting as the first choice always.
The installation of a Compute Node can be done on a pristine machine or on a
machine that already has an operating system or that has partitions on hard disks:
12 IBM SmartCloud Provisioning: Installing and configuring
Installation on a pristine machine
If the machine has no operating system already installed, power it on. The
PXE installation makes the following partitions automatically:
v /dev/sda1 with 8 GB
v /dev/sda2 with 8 GB
v /dev/sda3 with 16 GB
v /dev/sda4 with the remaining space of the first disk
Installation on a machine that has an OS or that has partitions
The are three choices:
Change FORCE_PARTITION=no to FORCE_PARTITION=yes in the file
/var/lib/tftpboot/pxelinux.cfg/default
The default value for FORCE_PARTITION is no, if set to yes, the
ramdisk partitions the hard disk as mentioned before. This is the
most convenient way, but you must ensure that this setting is
suitable for all Compute Nodes
Remove the existing partitions
Remove the partitions and set the BIOS for PXE network booting.
Use the existing partitions or create partitions manually
1. Edit /var/lib/tftpboot/pxelinux.cfg/default on the PXE
Server and set:
ROOTDEV=/dev/sda1 LOGDEV=/dev/sda2 SWAPDEV=/dev/sda3 IAASDEV=/dev/sda4
where ROOTDEV is the root partition ( 8 GB), LOGDEV is mounted
on /var/log, and IAASDEV is mounted on /iaas/local-storage.
SWAPDEV works as a swap partition, the current auto-partition
does not support a hard disk larger than 2T. If you have such
kind of disk, a workaround is splitting the disk into two disks
in the BIOS, where the first disk must be less than 2T. The
ramdisk recognizes them as /dev/sda and /dev/sdb, then you
can partition the disks manually and edit the parameters in the
default file accordingly. Also, if you have plenty of memory,
you can remove the ROOTDEV=xxx parameter to make the root
partition inside the memory entirely.
2. Reboot and set the BIOS for PXE network booting.
Note: All data in the root partition is removed.
What to do next
The Compute Nodes, unlike the Storage Nodes, are expected always to PXE boot.
When the PXE boot completes, you see a CLI on the Compute Node screen. You
can sign on as root and start working. If the system reboots, you get the same
result. The physical machine is not intended to be a permanent store. Some
partitions are still alive after the reboot, while some partitions are overwritten.
Installing Compute Nodes on a Xen hypervisor:
The following topics describe how to install and configure a Compute Node that
runs on a Xen hypervisor.
Installing and configuring 13
Before you begin
This following tutorial explains how to install and configure Red Hat Enterprise
Linux to run as Xen dom0, which is not supported by Linux by default. You must
compile Xen and the dom0 kernel from sources and RPMs. For reference, the
version list of the components is:
XEN 4.0.1
dom0 kernel 2.6.32.43
libvirt 0.8.7
Installing RHEL6:
This topic describes how you can perform an RHEL6 installation.
Procedure
1. Boot from the Red Hat Enterprise Linux 6.0 or 6.1 x86_64 DVD, and install as
usual..
2. Choose Basic Server install.
3. Register your system to RHN, so that you can fetch updates and install
additional packages using yum. However, you can also do so by setting up a
Red Hat repository for packages. Disable SElinux by editing
/etc/selinux/config and make SELINUX=disabled.
Installing the prerequisite packages:
There are a number of prerequisite packages that you must install.
About this task
Run following commands in this sequence:
yum groupinstall "Development Tools"
yum install transfig wget texi2html libaio-devel dev86 glibc-devel
e2fsprogs-devel gitk mkinitrd iasl
yum install xz-devel bzip2-devel pciutils-libs pciutils-devel
SDL-devel libX11-devel gtk2-devel bridge-utils openssl-devel
yum install PyXML qemu-img mercurial
yum install ncurses-devel texinfo libuuid-devel python-devel
wget http://www.debath.co.uk/dev86/Dev86bin-0.16.18.tar.gz
cd /
tar -zxvf ~/Dev86bin-0.16.18.tar.gz
wget http://acpica.org/download/acpica-unix-20101209.tar.gz
tar -zxvf acpica-unix-20101209.tar.gz
cd acpica-unix-20101209
cd compiler/
make
cp iasl /usr/bin/
Rebuilding and installing QEMU:
Run the following commands to rebuild and install the QEMU process emulator.
About this task
yum install pulseaudio-libs-devel
mkdir -p /root/src && cd /root/src
wget http://ftp.funet.fi/pub/mirrors/fedora.redhat.com/pub/fedora/linux/ \
updates/13/SRPMS/qemu-0.13.0-1.fc13.src.rpm
rpm -i qemu-0.13.0-1.fc13.src.rpm
cd /root/rpmbuild/SPECS
14 IBM SmartCloud Provisioning: Installing and configuring
rpmbuild -bb qemu.spec
cd /root/rpmbuild/RPMS/x86_64
rpm -Uvh qemu-common-0.13.0-1.el6.x86_64.rpm
Rebuilding and installing Xen:
Run the following commands to rebuild and install Xen.
About this task
yum install glibc-devel.i686 kpartx
mkdir -p /root/src && cd /root/src
wget http://ftp.funet.fi/pub/mirrors/fedora.redhat.com/pub/fedora/ \
linux/releases/14/Everything/source/SRPMS/xen-4.0.1-6.fc14.src.rpm
rpm -i xen-4.0.1-6.fc14.src.rpm
cd /root/rpmbuild/SPECS
rpmbuild -bb xen.spec
cd /root/rpmbuild/RPMS/x86_64/
rpm -Uvh xen*4.0.1-6*.rpm
wget http://bits.xensource.com/oss-xen/release/4.0.1/xen-4.0.1.tar.gz
tar -zxvf xen-4.0.1.tar.gz
cd xen-4.0.1
make xen
make tools
make stubdom
make install-xen
make install-tools
make install-stubdom
make world
Note: The command make world takes a long time to download the pvops
kernel. After download, press Ctrl+C when prompted for the configuration
of the kernel.
At this point you have the kernel ready to be configured and compiled. Clone the
kernel git repository from kernel.org and verify the xen/stable-2.6.32.x
long-term maintained branch. The configuration file used is version 2.6.32.43, but it
is supposed to work also with newer version.
cd linux-2.6-pvops.git
wget -O .config http://pasik.reaktio.net/xen/kernel-config/ \
config-2.6.32.43-pvops-dom0-xen-stable-x86_64
make
make modules_install
make install
Installing libvirt and virt-manager:
This topic describes how you install libvirt and virt_manager.
Before you begin
Before rebuilding libvirt, you must boot into a non-Xen environment.
The libvirt version should be 0.8.7 or higher.
About this task
yum -y install augeas radvd systemtap-sdt-devel gnutls-utils
mkdir -p /root/src
cd /root/src
wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/ \
6Server/en/os/SRPMS/libvirt-0.8.7-18.el6.src.rpm
Installing and configuring 15
rpm -i libvirt-0.8.7-18.el6.src.rpm
wget http://pasik.reaktio.net/xen/patches/libvirt-spec-rhel6-enable-xen.patch
cd /root/rpmbuild/SPECS
cp -a libvirt.spec libvirt.spec.orig
patch -p0 < ~/src/libvirt-spec-rhel6-enable-xen.patch
yum install libnl-devel xhtml1-dtds libudev-devel libpciaccess-devel yajl-devel \
libpcap-devel avahi-devel parted-devel device-mapper-devel numactl-devel \
netcf-devel
yum install lzop cyrus-sasl-md5 gnutls-utils nc
rpmbuild -bb libvirt.spec
cd /root/rpmbuild/RPMS/x86_64/
rpm -Uvh --force libvirt-0.8.7-18.el6.x86_64.rpm \
libvirt-client-0.8.7-18.el6.x86_64.rpm libvirt-python-0.8.7-18.el6.x86_64.rpm
libvirt-devel-0.8.7-18.el6.x86_64.rpm
Configuring Xen DOM0:
This topic describes how to configure Xen DOM0.
Procedure
1. Create the network bridge of br0 for the Xen Compute Node:
vim /etc/xen/xend-config.sxp
Make sure:
(network-script network-bridge bridge=br0)
(xend-unix-server yes)
2. Configure the network by editing /etc/sysconfig/network-scripts/ifcfg-
ethX, and defining ifcfg-eth0, for example:
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:21:86:17:27:96
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=static
IPADDR=10.0.0.63
USERCTL=no
Make sure that NM_CONTROLLED="no" and ONBOOT="yes". Then run ifup eth0 to
activate networking.
3. Make sure that your internet connection works fine, the make sure that the
/etc/hosts file has an entry for your hostname:
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 \
localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.0.1 hostname
4. Make sure that the network service is set to start automatically, and that the
KSM services do not work with Xen:
/sbin/chkconfig --add xend
/sbin/chkconfig --add xendomains
/sbin/chkconfig xend on
/sbin/chkconfig xendomains on
/sbin/chkconfig ksm off
/sbin/chkconfig ksmtuned off
5. Make sure that the blktap driver and iptables work in Xen by editing
/etc/rc.local and adding rules such as:
modprobe blktap
iptables -F
ip addr add 169.254.169.254/32 dev br0
16 IBM SmartCloud Provisioning: Installing and configuring
iptables -A FORWARD -d 169.254.169.254 -j DROP
arptables -A FORWARD -d 169.254.169.254 -j DROP
echo "1" > /proc/sys/net/bridge/bridge-nf-call-arptables
6. Edit /etc/grub.conf in a similar way:
default=0 #reboot choose xen as default
title XEN 4.0 Red Hat Enterprise Linux Server (2.6.32.43)
root (hd0,0)
kernel /xen-4.0.gz dom0_mem=1024M
module /vmlinuz-2.6.32.43 ro \
root=/dev/mapper/vg_hyper06-lv_rootrd_LVM_LV=vg_hyper06/lv_root \
rd_LVM_LV=vg_hyper06/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM \
LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us \
crashkernel=auto rhgb quiet console=hvc0
module /initramfs-2.6.32.43.img
7. Reboot the system.
Verifying Xen and libvirt:
This topic describes how to verify Xen and libvirt.
About this task
Do the following:
# uname -a
Linux xen03 2.6.32.43 #4 SMP Wed Aug 17 01:03:12 CST 2011 \
x86_64 x86_64 x86_64 GNU/Linux
# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 xxx xxx r----- 36.0
# virsh list
Id Name State
----------------------------------
0 Domain-0 running
# virsh version
Compiled against library: libvir 0.8.7
Using library: libvir 0.8.7
Using API: Xen 3.0.1
Running hypervisor: Xen 4.0.0
# ifconfig
br0 Link encap:Ethernet HWaddr 00:21:86:17:27:96
inet addr:10.0.0.63 Bcast:0.0.0.0 Mask:255.0.0.0
inet6 addr: fe80::221:86ff:fe17:2796/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4080286 errors:0 dropped:0 overruns:0 frame:0
TX packets:2740994 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3936981533 (3.6 GiB) TX bytes:455803655 (434.6 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:5424 errors:0 dropped:0 overruns:0 frame:0
TX packets:5424 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:744553 (727.1 KiB) TX bytes:744553 (727.1 KiB)
peth0 Link encap:Ethernet HWaddr 00:21:86:17:27:96
inet6 addr: fe80::221:86ff:fe17:2796/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:4082757 errors:0 dropped:0 overruns:0 frame:0
TX packets:2749305 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3996289089 (3.7 GiB) TX bytes:456788001 (435.6 MiB)
Memory:d0300000-d0320000
virbr0 Link encap:Ethernet HWaddr 52:54:00:2E:0F:49
Installing and configuring 17
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:147762 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:22649407 (21.6 MiB)
Installing the Compute Node:
Follow these steps to install the Compute Node.
Before you begin
Before installing a Compute Node, you can optionally enable automatic rack
configuration as described in Installing Compute Nodes on a KVM hypervisor
on page 11.
Procedure
1. Configure the repository for Red Hat and SmartCloud Provisioning. You can
copy the repository definition files from the PXE Server. The folder is
/var/lib/tftpboot/, copy the repo files to /etc/yum.repos.d.
2. Yum install the following packages:
ruby
ruby-devel
rubygems
device-mapper-multipath
httpd
squashfs-tools
arptables_jf gcc
ibm-java-x86_64-sdk
3. Gem install the package yajl-ruby-0.7.8.gem that you can get from the PXE
Server, from folder /var/lib/tftpboot/, by extracting deps.tar.gz.
4. Install the Compute Node with yum install isaac-hyper-bots-xen.
5. To configure multipath, copy the multipath configuration file multipath.conf
from the PXE Server. The folder is /var/lib/tftpboot/compute-node/. Copy
multipath.conf into the folder of /etc/. After copying it, run the commands:
multipath
/etc/init.d/multipathd start
chkconfig multipathd on
6. Modify /etc/resolv.conf to set the correct name server and domain name
configured during PXE Server setup. For example:
search test.isaac.ibm.com isaac.ibm.com
nameserver 172.16.0.16
You can copy this file from other hyper nodes with a KVM hypervisor in the
same environment installed by the PXE Server.
7. To start Apache, copy the file /iaas/apache-data/iaas.conf to the folder
/etc/httpd/conf.d/ and restart the service httpd:
cp -f /iaas/apache-data/iaas.conf /etc/httpd/conf.d/
/etc/init.d/httpd start
To prepare the Compute Node configuration:
a. Modify /iaas/etc/hyper_bot.conf to use the following Xen configuration
settings: "hyper_type":"xen". For reference, see the sample located in
/iaas/etc/hyper_bot.conf.sample.
18 IBM SmartCloud Provisioning: Installing and configuring
b. Modify /iaas/etc/isaac.conf to set the correct environment settings. You
can copy this file from other hyper nodes with a KVM hypervisor in the
same environment installed by the PXE Server.
Install vhd-util on a Storage Node:
To support the capturing of images with a vhd format, vhd-util must be installed
on a Storage Node.
Procedure
1. Copy vhd-util which is located in /usr/sbin/vhd-util from the Xen Compute
Node to all Storage Nodes. Make sure to copy in the same folder of
/usr/sbin/vhd-util.
2. On a Storage Node, you must install:
xen-libs-4.0.1-6.el6.x86_64.rpm
xen-licenses-4.0.1-6.el6.x86_64.rpm
You can copy these rpm files from the Xen Compute Node. The files are located
in the folder /root/rpmbuild/RPMS/x86_64/.
3. Verify vhd-util installation by running:# vhd-util . The usage of this command
is:
vhd-util COMMAND [OPTIONS]
where COMMAND := { create | snapshot | query | read | set | repair | \
resize | fill | coalesce | modify | scan | check | revert }
Testing and verifying the overall installation:
This topic describes how to verify the installation of a Compute Node on Xen.
Before you begin
Start the Compute Bot using the command :
/iaas/hyper_bots/rubybots/re-run.sh
You can use the CLI to check that the node is online and that it can connect to the
Xen server.
Procedure
1. Use the command iaas-describe-nodes to see the following ouput and verify
that this hyper bot is a Xen hypervisor:
jid | cpu_load | instances | hyper_type | ipaddress | disk_used_pct | \
is_manager |availability | enabled | version | free_memory | start_time
rack4.xen01 | 2.06 | 0 | xen | 10.0.0.62 | 71 | y | xen-9-10-0-6910 \
| yes | 1.1.0.206 | 6910 | Tue Aug 23 10:52:42 +0800 2011
rack4.xen02 | 0.26 | 0 | xen | 10.0.0.61 | 66 | n \
| xen-4-4-0-1999 | yes | 1.1.0.206 | 1999 | Mon Aug 22 18:43:53 +0800 2011
2. When registering an image for Xen, you must specify a kernel for Xen. Use the
CLI to register:
a. Register the image kernel. You must specify that the type of the image is
kernel:
./iaas-register-virtual-image -i vmlinuz-xen -t kernel -a x86_64 -p linux \
-d "centos xen kernel" -v no
b. Register the image ramdisk. You must specify that the type of the image is
ramdisk:
Installing and configuring 19
./iaas-register-virtual-image -i initrd-xen -t ramdisk -a x86_64 -p linux \
-d "centos xen ramdisk" -v no
c. Register the master image. You must specify the kernel and the ramdisk
registered in previous steps:
./iaas-register-virtual-image -i centos-xen -t image -a x86_64 -p linux \
-d "centos xen" -v no -k vmlinuz-xen -r initrd-xen
3. Run iaas-describe-virtual-image to verify that the output is:
super-centos |image|available|admin|linux|x86_64|1.0|no|raw|ide
vmlinuz-xen |kernel|available|xen-kernel|admin|linux|x86_64|0.0|no|raw|ide
initrd-xen |ramdisk|available|xen-kernel|admin|linux|x86_64|0.0|no|raw|ide
4. Use the CLI to run the virtual machine:
./iaas-deploy-vms -i vmlinuz-xen -k vmlinuz-xen -r initrd-xen
You must specify the kernel and the ramdisk of the image, otherwise the
manager bot launches it with a KVM hypervisor.
Installing Compute Nodes on a VMware hypervisor:
These topics describe how to install a Compute Node that runs on a VMware
hypervisor.
Prerequisites
The prerequisites to installing on VMware are as follows:
v A previously set up PXE Server.
v The following vSphere CLI 4.1 package for x86_64 Linux available on the PXE
Sever at /data/repos/isaac:
VMware-vSphere-CLI-4.1.0-*.x86_64.tar.gz
v An ESXi 4.1 server already installed.
v A password was added to the ESXi 4.1 server.
Installing VMware Management VM:
To install VMware Management VM, you run a script.
About this task
Run the script add_compute_vmw.sh that is located in /data/
IBM_SmartCloud_Provisioning-1.2.0.0-*/deploy-scripts on the PXE Server:
add_compute_vmw.sh <esxi_ip> [-f][esxi_password] [vmnic]
where:
esxi_ip
Is the IP address of the ESXi server.
f This option forces an overwrite of an existing VMware management VM.
esxi_password
Is the root password of the ESXi server. If the ESXi server has been
configured with password passw0rd, this parameter can be omitted.
vmnic Is the NIC address with which the ESXi server connects to the cloud. This
can retrieved by checking Configure Management Network --> Network
Adapters from the direct console of the ESXi server. If not provided, the
first vmnic among the active ones is used as default.
20 IBM SmartCloud Provisioning: Installing and configuring
Testing and verifying the installation:
At conclusion of the installation of the Compute Node, you can use the CLI to
verify if the node is online and if it can connect to the VMWare ESXi server.
About this task
You can use the CLI to check that the node is online and can connect to the
VMware ESXi server. This task can only be done after the installation of the kernel
services is finished. Refer to this topic to accomplish this: Installing kernel
services.
Procedure
1. Use ./iaas-describe-nodes to see the following ouput and verify that this
hyper bot is a VMware hypervisor:
rack3.test | 0 | 1 | vmware | 172.16.0.146 | 0 | y | vmware-31-0-25479
| yes| 1.1.0.39 | 25479 | Wed Jun 22 07:12:42 -0400 2011
2. Run iaas-describe-virtual-image to verify that the output is:
rh61vmdk | image | available | vmware 6.1 mini | admin
| linux | x86_64 | 1.0 | no | vmdk
3. Use CLI to run the virtual machine and specify the vmdk format images:
./iaas-deploy-vms -i rh61vmdk
Note: When registering an image for VMware, the vmdk format image is
supported and must be only one file. Only dhcp is supported for the
network configuration of the image. You can upload the image file into
each Storage Node. Use the CLI to register:
./iaas-register-virtual-image -i rh61vmdk -t image -a x86_64 -p linux
-d "vmwaretest" -f "vmdk"
You must specify that the format of the image is vmdk, otherwise the
manager bot might launch it with KVM hypervisor.
Installing kernel services
After you have installed the Storage Nodes and Compute Nodes, you can install
the kernel service virtual machines.
About this task
Do this on the PXE Server:
1. cd /data/IBM_SmartCloud_Provisioning-1.2.0.0-*/deploy-scripts
2. ./deploy_all.sh
This script deploys all kernel service virtual machines to Storage Nodes and
Compute Nodes. Kernel service virtual machines include HBase, Zookeeper,
LDAP Server, Web Service, Web Console, and administrative console.
Verifying the installation
When the installation is complete, you can work with your cloud.
Installing and configuring 21
About this task
Verifying the Web Console:
To try the new environment access
http://<web_console_ip_address>:8080/welcome.html
or
http://<web_console_ip_address>/welcome.html
.
You can retrieve the IP address of the web console from /etc/hosts on a Storage
Node or Compute Node. In there, you can find a line like the following:
10.0.0.22 webconsole webconsole.xxxxxxxx.com
Verifying the CLI:
The CLI interface is installed automatically on the first Storage Node (hostname
storage-1). The IP address of first Storage Node can be retrieved from /etc/hosts
on Compute Nodes or Storage Nodes. With the CLI, you can view nodes, images,
register images. For detailed usages, see Using and administering.
Verifying the administrative console:
At completion of the installation, the administrative console is also installed as one
of the kernel services virtual machines and can be accessed from:
http://<admin_console_ip_address>:9080/login
The default credentials to access the console are adminuser/passw0rd.
Similarly, you can retrieve the IP address of the Web Console from /etc/hosts on a
Storage Node or Compute Nodes. In these nodes and at that location, you can see
a line like the following:
10.0.0.23 admconsole admconsole.xxxxxxxx.com
Restarting all services
After everything has been installed, all services are up and running automatically.
About this task
Though all services are up and running whenever a Compute Bot or a virtual
machines boots up, there might be situations in which you must restart the
services manually.
Before trying to restart any services, you must SSH into the node first. For the IP
addresses of the Storage Bots and kernel services, map the addresses to the host
names. On the PXE Server, you can view the file /var/lib/tftpboot/hosts, on any
other node (whether its a physical machine or a virtual machine), you can view
the file /etc/hosts. For the Compute Bots IP addresses, you need to view the file
/etc/dhcp/dhcpd.static. Then restart the services in this order:
1. Start the DNS and DHCP services on the PXE Server:
a. SSH into the PXE Server.
b. Run /etc/init.d/named start.
22 IBM SmartCloud Provisioning: Installing and configuring
c. Run /etc/init.d/dhcpd start.
2. Restart the LDAP server:
a. SSH into the LDAP server.
b. /etc/init.d/slapd restart
3. Restart all Zookeeper Servers:
a. SSH into each Zookeeper node.
b. /opt/zookeeper-3.3.3/bin/zkServer.sh start
Note: Run
/opt/zookeeper-3.3.3/bin/zkServer.sh stop
to stop the service.
4. Restart the HBase Nodes. Refer to the HBase documentation for doing so:
a. SSH into hbase-1 (if you have less than 5 HBase Nodes) or into hbase-3 (if
you have 5 or more HBase Nodes).
b. /opt/IHC-0.20.2/bin/start-dfs.sh && /opt/hbase-0.90.4/bin/start-hbase.sh
Note: Run
/opt/hbase-0.90.4/bin/stop-hbase.sh && /opt/IHC-0.20.2/bin/stop-dfs.sh
to stop it.
5. Restart all REST Servers.
If you have less than 5 HBase nodes, a REST Server is installed on each HBase
node except hbase-1. If you have 5 or more HBase nodes, a REST Server is
installed on each HBase node except hbase-1, hbase-2 and hbase-3.
Each REST Server is installed under /iaas/iaas-rest-srv.
To start a REST Server:
a. SSH into the node.
b. cd /iaas/iaas-rest-srv/bin && ./rest_server.sh start
Note: Run cd /iaas/iaas-rest-srv/bin && ./rest_server.sh stop to
stop it.
6. Restart all storage bots:
a. SSH into each Storage Node.
b. killall -9 ruby zooadapter && /iaas/storage_bots/rubybots/re-run.sh
7. Restart all compute bots:
a. SSH into each Compute Node.
b. killall -9 ruby zooadapter && /iaas/hyper_bots/rubybots/re-run.sh
8. Restart the Web Service:
a. SSH into the Web Service node.
b. /iaas/webservices/re-run.sh
9. Restart the Web Console:
a. SSH into the Web Console node.
b. cd /iaas/webconsole && nohup ./re-run.sh && service httpd start
10. Restart the administrative console:
a. SSH into the administrative console node.
b. cd /iaas/web-adminconsole && nohup ./re-run.sh
Installing and configuring 23
Shutting down a running environment
This topic describes how to shutdown a running SmartCloud Provisioning.
Procedure
1. Shutdown all bots and related services:
a. SSH to the virtual machine running the administrative console, and run:
# killall -9 ruby
b. SSH to the virtual machine running the web console, and run:
# killall -9 ruby
c. SSH to the virtual machine running the web service, and run:
# killall -9 ruby
d. SSH to each Compute Node, and run:
# killall -9 ruby
e. SSH to each Storage Node, and run:
# killall -9 ruby
2. Shutdown all kernel services:
a. SSH to the virtual machines running the REST server, and shutdown the
REST server:
# cd /iaas/iaas-rest-srv/bin
# ./rest_server.sh stop
b. SSH to the virtual machine running the HMaster node, and shutdown
HBase cluster:
# cd /opt/hbase-0.90.4/bin
# ./stop-hbase.sh
c. SSH to the virtual machine running the Hadoop NameNode, and shutdown
the HDFS cluster:
# cd /opt/IHC-0.20.2/bin
# ./stop-dfs.sh
d. SSH to each virtual machine running a ZooKeeper, and shutdown the
ZooKeeper server:
# cd /opt/ibm-zookeeper-3.2.2/bin
# ./zkServer.sh stop
3. Shutdown the DNS and DHCP services on the PXE Server. To do so, SSH to the
PXE Server:
# /etc/init.d/dhcpd stop
# /etc/init.d/named stop
4. Shutdown all virtual machines. To do so, you can SSH to all virtual machines
previously mentioned, and execute the following command to shut them down
one by one:
# shutdown -h now
5. Shutdown all physical machines. To do so, you can SSH to all physical
machines, and execute the following command to shut them down one by one:
# shutdown -h now
24 IBM SmartCloud Provisioning: Installing and configuring
Recovering kernel services virtual machines after a restart of
your cloud
About this task
In a typical SmartCloud Provisioning environment, the kernel service virtual
machines are hosted on Storage Nodes or Compute Nodes. When these physical
machines are rebooted, the kernel service virtual machines, as well as the kernel
services themselves, can automatically recover for as long as all physical machines
that hold kernel service virtual machines are shutdown simultaneously, or within a
short interval.
Likewise, these physical boxes need to be powered-on almost simultaneously when
recovering. It is recommended to back up important data, like HBase tables, before
proceeding rebooting physical machines.
On the other hand, when a kernel service virtual machine is no longer needed, it is
better to terminate it before the physical machine reboots. This is to prevent it from
being recovered after system rebooting. Follow these steps to terminate a running
virtual machine:
1. Get the list of running virtual machines:
# virsh list
2. Terminate the vm that is no longer needed:
# virsh destroy <vm_name>
Upgrading
The following topics describe how to upgrade SmartCloud Provisioning.
There are two ways this task can be done:
v Using the GUI.
v Using a script.
Upgrading using the GUI
If the installation program detects that a previous version of SmartCloud
Provisioning is installed, then it starts the upgrade process.
Before you begin
Before launching the installation program, verify the following:
v Red Hat Enterprise Linux 6.0 or 6.1 x86_64 is installed, with X Window System.
Set the system time correct and do not change it until after the environment is
up and running. To install X Windows System, run:
yum groupinstall "x windows system"
v The GUI installation can only be run on the PXE Server.
You also must set up automatic authentication with all of the management nodes
and Compute Nodes involved in the upgrade, or these nodes will keep requesting
that you type a password.
Installing and configuring 25
Procedure
1. Unpack the installation package and run install.sh.
2. Select Upgrade IBM

SmartCloud Provisioning.
3. If the upgrade fails to detect a Zookeeper server, you need to define the
Zookeeper servers IP address before continuing.
4. The upgrade starts detecting all nodes and services.
5. In the Upgrade Options panel, click re-detect if you want to detect all nodes
again.
6. If you want to upgrade the Web Console and if the upgrade fails to detect any
component, you can specify the Web Consoles IP address.
7. You get the option to install Virtual Image Library.
8. The upgrade starts.
Results
Verify the status of Virtual Image Library.
The IP address of the Virtual Image Library virtual machine can be obtained
through the CLI with the filtering tag of image-library:
./iaas-describe-instances | grep image-library
And the link https://<ip_of_image_library>:9443/ImageLibraryUI/ can be used
to access the Virtual Image Library GUI.
Virtual Image Library might take 30 minutes or more to be fully functional
depending on the hardware performance.
Upgrading using a script
Follow these steps to upgrade the PXE Server and your cloud environment using
an automated script.
Before you begin
Before you run the upgrade script, make sure that you are using the PXE Server
and that all nodes are active.
You also must set up automatic authentication with all of the management nodes
and Compute Nodes involved in the upgrade, or these nodes will keep requesting
that you type a password.
About this task
You must get the iso package or the DVD for SmartCloud Provisioning and search
for a file named IBM_SmartCloud_Provisioning-1.2.0.0-*.tgz included in the CD
image. This file is in the directory ./data/. Untar the file to find a file named
upgrade.sh in the uncompressed directory. To upgrade, follow either of the
following procedures:
Procedure A (interactive):
Run ./upgrade.sh.
Provide the following information. Press Enter to accept the default values:
26 IBM SmartCloud Provisioning: Installing and configuring
1. Specify a Zookeeper Server IP. The default value is detected from the PXE
Server.
2. Specify a web console IP. The default value is detected from the PXE Server.
3. The upgrade process automatically detects all nodes information. You must
specify if the values are correct. If the values are correct, the upgrade starts
and, if it is successful, the PXE Server is upgraded. If the upgrade process is
not successful, error messages are issued.
Procedure B (non interactive):
Follow these steps:
1. 1. Modify the settings in upgrade.cfg:
Example of upgrade.cfg:
storage_node=10.0.0.13 10.0.0.14
storage_manager=10.0.0.13
compute_node=10.0.0.3 10.0.0.4
compute_manager=10.0.0.3
webservice=10.0.0.3
rest_server=10.0.0.3
webconsole=10.0.0.3
Note: You must add these node IPs manually if you want to upgrade the
nodes. Add a blank space among the IPs. However, if you plan to
upgrade some nodes without using the script, you can delete their IPs
from upgrade.cfg.
2. Run:
./upgrade.sh upgrade.cfg
Note: If the detection of the Zookeepers IP from the PXE Server fails, you
must run the script and specify an IP:
./upgrade.sh upgrade.cfg 10.0.XX.XX
When you complete the above steps, the PXE Server has been upgraded. All kernel
services (Compute Nodes, Storage Nodes, Web Service, REST Servers, and Web
Console) have been upgraded and restarted.
To verify if the upgrade was successful, check if there is content in the directory
./upgraded_result. Use the CLI to check all nodes:
1. cd /iaas/cli
2. source ./iassrc
3. ./iaas-describe-nodes
4. Verify that nodes show an upgraded version.
If any of these upgrades failed, you can perform a yum upgrade manually and
restart the services.
Upgrading HBase and other nodes using a script
Follow these steps to upgrade the HBase, hadoop, REST server, and the Zookeeper
servers using an automated script.
Installing and configuring 27
Before you begin
Before you run the upgrade script, make sure that you are using the PXE Server
and that all HBase nodes are active. You also must set up automatic authentication
with all of the management nodes and Compute Nodes involved in the upgrade,
or these nodes will keep requesting that you type a pa@ssword.
About this task
You must get the iso package or the DVD for SmartCloud Provisioning and search
for a file named IBM_SmartCloud_Provisioning-1.2.0.0-*.tgz included in the CD
image. This file is in the directory ./data/. Untar the file to find a file named
upgrade_hbase.sh in the directory ./deploy_scripts/.
To upgrade, follow either of the following procedures:
Procedure A (interactive):
Run ./upgrade_hbase.sh.
Provide the following information. Press Enter to accept the default values or quit:
1. Specify a Zookeeper Server IP. The default value is detected from the PXE
Server.
2. The upgrade process automatically detects all nodes information. You must
specify if the values are correct. If the values are correct, the upgrade starts
and, if it is successful, the Zookeeper servers, hadoop, HBase, and Rest server
are upgraded. If the upgrade process is not successful, select Quit and switch
to Procedure B.
Procedure B (non interactive):
Follow these steps:
1. 1. Modify the settings in upgrade.cfg:
Example of upgrade.cfg:
storage_node=10.0.0.13 10.0.0.14
storage_manager=10.0.0.14
compute_node=10.0.0.3
compute_manager=10.0.0.3
webservice=10.0.0.3
rest_server=10.0.0.23 10.0.0.22
webconsole=10.0.0.3
hbase_ips=10.0.0.21 10.0.0.22 10.0.0.23
hadoop_ips=10.0.0.21 10.0.0.22 10.0.0.23
hbase_master_ip=10.0.0.21
hadoop_namenode_ip=10.0.0.21
zookeeper_ips=10.0.0.3
Note: You must add HBase and hadoop manually if you want to upgrade
them. Add a blank space among the IPs.
2. Run:
./upgrade_hbase.sh upgrade_hbase.cfg
Note: If the detection of the Zookeepers IP from the PXE Server fails, you
must run the script and specify an IP:
28 IBM SmartCloud Provisioning: Installing and configuring
./upgrade.sh upgrade.cfg 10.0.XX.XX
When you complete the mentioned steps, the upgrade starts. The upgrade process
detects all nodes, all Zookeeper servers, HBase, and hadoop. Then the process
stops all kernel services and backs up the data. It upgrades and restarts the
Zookeeper servers, it performs a backup of hadoop (to IHC-0.20.2_bak_1.1) then
upgrades and restarts it, it upgrades and restarts HBase from 0.20.6 to 0.90.4, it
upgrades and restarts the REST server. Finally, the upgrade process restores the
data and restarts all services.
Also, all kernel services (Compute Nodes, Storage Nodes, Web Service, and Web
Console) are restarted without upgrade.
Results
To verify if the upgrade was successful, visit the HBase master web at
http://<HBase-IP>:60010. Make sure the version of HBase is 0.90.4.
Use the CLI to check that all nodes are active:
1. cd /iaas/cli
2. source ./iassrc
3. ./iaas-describe-nodes
4. ./iaas-describe-images to make sure that the data of the images is correct.
Configuring
These topics deal with the configuration of the SmartCloud Provisioning nodes, as
well as other configuration aspects.
Reconfiguring nodes
This topic describes how you can customize your environment to use different
configuration values.
About this task
The SmartCloud Provisioning installation sets default values when configuring the
various nodes. Later on, you might want to change these settings to meet specific
requirements that your environment has.
Most configuration files can be found under /iaas/etc/.
Common settings
The file is /iaas/etc/isaac.conf.
This configuration file defines data which is common to all components. The
following is an example:
{
"region":"iaas",
"zookeeper":{
"zookeeper_servers":["10.0.0.1:2181,10.0.0.2:2181,10.0.0.3:2181"]
},
"db":{
"type":"hbase",
"rest_domain":"iaas_rest",
Installing and configuring 29
"cache_bucket":"cache"
},
"messaging":{
"type":"http",
"http_ports":[8880,8881]
}
}
region It defines the region name of the SmartCloud Provisioning environment.
An environment only has one region. The REST Servers, hyper bots,
storage bots and web services information is kept in the Zookeeper. The
region defines the root node of REST Servers, hyper bots, storage bots and
web services configuration in a Zookeeper. If you want to reuse an existing
Zookeeper or want to use a cluster of Zookeepers for two or more
SmartCloud Provisioning clouds, you must define different regions
according to your Zookeeper environment. The default value of a region is
iaas. If this option is not defined in the configuration file, the default value
is used.
zookeeper
zookeeper_servers
It defines the zookeeper cluster addresses. You must add all your
zookeeper cluster nodes to this configuration.
db
type It defines the database type. The default value is hbase, and it
means that it uses HBase as database.
rest_domain
It defines the context node of the Iaas REST Server domain. If the
hyper bots want to find the Iaas REST Server, they look up the
REST Server from this context node in zookeeper.
cache_bucket
It defines the cache table name in the database.
messaging
type A value of http means that this bot uses the HTTP protocol.
http_ports
It defines the port range used for communication. The default
value is [8880, 8881]. If your system has a firewall configured, you
must modify the port range value that the firewall allows.
Compute Nodes settings
The file is /iaas/etc/hyper_bot.conf.
This configuration file defines data for the Compute Node. The following is an
example:
{
"main":{
"rack":"rack1",
"name":"$(hostname)",
"per_cpu_instance":2,
"per_instance_mem":512
},
"hyper_type":"kvm",
"default_bridge" => "br0",
"trunk_interface"=>"eth0",
30 IBM SmartCloud Provisioning: Installing and configuring
"cow_type":"dm","keypair":"mount_write",
"instance_type":{
"xsmall" : {"ram":512, "vcpu":1, "swap":512},
"small" : {"ram":1024, "vcpu":1, "swap":1024},
"medium" : {"ram":2048, "vcpu":2, "swap":2048},
"large" : {"ram":4096, "vcpu":2, "swap":4096},
"xlarge" : {"ram":8192, "vcpu":2, "swap":4096}
},
//log_level: 0,1,2,3,4,5 debug,info,warn,error,fatal,unknown
"regular_logging":{
"log_level": 1,
"max_log_file_num": 10,
"max_log_file_size": 1048576
},
"manager_logging":{
"log_level": 1,
"max_log_file_num": 10,
"max_log_file_size": 1048576
},
//event: new,terminated,lost,failed_to_launch,captured,attach_volume,\
detach_volume,attach_address,detach_address,ip_update
"instances_monitoring":{
"event":[],
"data_writer":{
"writer":"DailyFileWriter",
"file_path":"/var/log/iaas/monitoring"
}
},
"vls_weight_policy":{
"timely_reduce":1,
"timely_reduce_interval":3600,
"launch_fail_reduce":6,
"threshold_to_disable":100,
"disable_action"=>"disable"
},
"vmware":{
"nvram_path":"[datastore1]/iaas/iaas.nvram",
"swap_templates_dir":"[datastore1]/swap_templates",
"rdm_dir":"[datastore1]/iaas/rdm",
"instances_dir":"[datastore1]",
"iscsi_adapter":"vmhba37",
"mvm_name":"vmware_mvm",
"data_center":"cvt",
"esx":{
"vmware_op_timeout":60,
"server":"10.0.139.80",
"username":"root",
"password":"xxxx"},
"vcenter":{
"vmware_op_timeout":180,
"server":"10.0.139.100",
"username":"Administrator",
"password":"xxxx"}
}
}
main.name
It defines the ID of Compute Nodes. It is unique in the same rack.
main.rack
It defines the rack of Compute Nodes for HYPER Rack Awareness. If the
Compute Nodes are in same rack, you must define the same rack. It is
unique in the same domain.
main.per_cpu_instance
(Optional) It defines the number of virtual machines supported by one
processor. The default is 3.
Installing and configuring 31
main.per_instance_mem
(Optional) It defines the average memory used by a virtual machine. The
default is 2048 MB.
hyper_type
It defines the type of hypervisor.
kvm This bot is a kvm hypervisor.
xen This bot is a xen hypervisor.
vmware
This bot is a VMware hypervisor.
default_bridge
It defines the bridge network name on the node.
trunk_interface
It defines the trunk interface of the node.
cow_type
It defines the type of copy-on-write format. Only valid for a kvm or xen
hypervisor.
dm It means that a Device Mapper (DM) snapshot format is used by
the hyper bot.
qcow2 It means that a QEMU Copy On Write 2 format is used by the
hyper bot.
keypair
It defines the method to enable the ssh keypair for a virtual machine.
mount_write
It means that the bot mounts the virtual machine's cow file and
appends the ssh public key to /root/.ssh/authorized_keys. This
option is only for Device Mapper (DM) snapshot format
(cow_type=dm).
vmware_mount_write
This option is for a VMware hypervisor.
instance_type
Defines the type of virtual machine to be provisioned. It includes ram size,
virtual-cpu number and swap size. This configuration must be same in all
the hyper nodes within the same environment. This option is used to
launch virtual machines with the IaaS API or the CLI.
logging
There are two configurations: regular bot and manager bot logging
settings.
regular_logging
The logging settings for the regular bot.
manager_logging
The logging settings for manager bot.
log_level
(Optional) It defines the level of log. The default is 1 (INFO). The
options are: 0 (DEBUG), 1 (INFO), 2 (WARN), 3 (ERROR), 4
(FATAL), 5 (UNKNOWN).
32 IBM SmartCloud Provisioning: Installing and configuring
max_log_file_num
(Optional) It defines the maximum number of log files. The default
is 5.
max_log_file_size
(Optional) It defines the max size of the log files. The unit is bytes.
For example, a value of 41943040 means that the maximum size of
the log files is 40 MB. The default is 20 MB.
instances_monitoring
This configuration defines how the monitoring data is collected from
virtual machines.
event Defines what are the events that must be captured to collect
monitoring data. A value of [] (empty array) means that no event
must be captured (disable data collecting). Possible events:
new The event of launching a virtual machine.
terminated
The event of terminating a virtual machine.
lost The event of losing a virtual machine from the hypervisor.
failed_to_launch
The event of not being able of launching a virtual machine.
captured
The event of capturing a virtual machine.
attach_volume
The event of attaching a volume to a virtual machine.
detach_volume
The event of detaching a volume from a virtual machine.
attach_address
The event of attaching a public address to a virtual
machine.
detach_address
The event of detaching a public address from a virtual
machine.
ip_update
The event of changing the private IP of a virtual machine.
data_writer
Defines how the monitoring data is going to be recorded.
writer A value of DailyFileWriter means that the data file name
is changed every day.
file_path
Defines the data file path for the writer. This value must be
an existing directory.
vls_weight_policy
Defines the virtual machines launch success weight policy. The virtual
machines launch success weight value is represented by vls_weight and
its initial value is 0. You can retrieve this value by running the command
iaas-describe-nodes. It can be retrieved from the availability field. For
example, if availability is kvm-6-30-0-18199, then the number 6 is the
Installing and configuring 33
available virtual machines number * (100+vls_weight) / 100. Note that 100
is the value of option threshold_to_disable and that the availability for the
virtual machine in this example is 30.
timely_reduce
Reduces the vls_weight value. The default value is 1.
timely_reduce_interval
It defines the time interval after which the vls_weight value is
reduced by the value of timely_reducel. The default is 1 hour
(3600 seconds), that is, when the hyper bot runs for an hour,
vls_weight is reduced by the value of timely_reduce.
launch_fail_reduce
Reduces the vls_weight value if a virtual machine cannot be
launched. The default value is 6.
threshold_to_disable
Threshold of vls_weight to run the action defined by
disable_action. The default value is 100. For example, if a hyper
bot fails many times, then the vls_weight value is set to the value
defined by threshold_to_disable. The hyper bot is rerun or
disabled.
disable_action
It defines the action when vls_weight reaches the value of
threshold_to_disable.
re-run The hyper bot is rerun.
disable
The hyper bot is disabled.
wmware
This entry is for a VMware hypervisor.
v nvram_path: BIOS template file for the virtual machines on the ESXi
server.
v swap_templates_dir: directory to store swap templates for virtual
machines on the ESXi server.
v rdm_dir: directory to store image files for virtual machines on the ESXi
server.
v instances_dir: directory to store data of virtual machines on the ESXi
server.
v iscsi_adapter: iscsi adapter name of the ESXi server.
v mvm_name: virtual machine name of the ISAAC hyper bot running.
v data_center: data center name that includes the ESXi server (only if you
want the hyper bot to manage the ESXi server through VCenter).
v esx: This entry contains access information of the ESXi server.
vmware_op_timeout: timeout value of invoking the VMware CLI for
the ESXi server. The default value is 60 seconds.
server: IP address of the ESXi server.
username: user name to access the ESXi server.
password: password to access the ESXi server (the password supports
encrypted text, you can use the encrypt utility /iaas/bin/
configuration_encrypt to encrypt your password).
34 IBM SmartCloud Provisioning: Installing and configuring
v vcenter: This entry contains the access information of the VCenter server
(only if you want the hyper bot to manage the ESXi server through
VCenter).
vmware_op_timeout: timeout value of invoking the VMmware CLI, for
the VCenter server. The default value is 180 seconds.
server: The IP address of the VCenter server
username: user name of the VCenter server.
password: password of the VCenter server (the password supports
encrypted text, you can use the encrypt utility /iaas/bin/
configuration_encrypt to encrypt your password).
Changing the size of a virtual machine template
When you create a virtual machine, you cannot set or modify the size of its
template.
If you want to do so, you must modify the file /iaas/etc/hyper_bot.conf and you
must do so on each Compute Node of your cloud.
To change the configuration file, identify the instance_type tag inside the file:
"instance_type":{
"xsmall" : {"ram":512, "vcpu":1, "swap":512},
"small" : {"ram":1024, "vcpu":1, "swap":1024},
"medium" : {"ram":2048, "vcpu":2, "swap":2048},
"large" : {"ram":4096, "vcpu":2, "swap":4096},
"xlarge" : {"ram":8192, "vcpu":2, "swap":4096}
}
and modify the values to meet your needs.
Note: The hyper bots on the Compute Nodes must be restarted after
changing the configuration file.
Storage Nodes settings
The file is /iaas/etc/storage_bot.conf.
This configuration file defines data for the Storage Node. The following is an
example:
{
"id":"storge1",
"max_volume_size":50,
"file_dirs":[
{"dir":"/iaas/iaas-store", "weight":"1"},
{"dir":"/iaas/iaas-store1", "weight":"1"}
],
//log_level: 0,1,2,3,4,5 debug,info,warn,error,fatal,unknown
"regular_logging":{
"log_level": 1,
"max_log_file_num": 10,
"max_log_file_size": 1048576
},
"manager_logging":{
"log_level": 1,
Installing and configuring 35
"max_log_file_num": 10,
"max_log_file_size": 1048576
}
}
id Defines the ID of the Storage Node.
max_volume_size
Defines the maximum size of the volume that can be created. The unit is
GB. The default is 50 GB.
file_dirs
Defines the layout of files (images and volumes) on the file system.
dir For example, a "dir":"/iaas/iaas-store" layout for an image
results into /iaas/iaas-store/files/img-01237.
Each file inside files/ dir is the actual image, not a directory.
${mount_dir}/files/ is the real path.
weight
Valid only if you have multiple mount points. A higher weight
mount directory is used to store the volume first.
logging
There are two configurations: regular bot and manager bot logging
settings.
regular_logging
The logging settings for the regular bot.
manager_logging
The logging settings for the manager bot.
log_level
(Optional) It defines the level of log. The default is 1 (INFO). The
options are: 0 (DEBUG), 1 (INFO), 2 (WARN), 3 (ERROR), 4
(FATAL), 5 (UNKNOWN).
max_log_file_num
(Optional) It defines the maximum number of log files. The default
is 5.
max_log_file_size
(Optional) It defines the max size of the log files. The unit is bytes.
For example, a value of 41943040 means that the maximum size of
the log files is 40 MB. The default is 20 MB.
Web Console settings
The file is /iaas/etc/webconsole.conf.
This configuration file defines data for the web console. The following is an
example:
{
"main": {
"read_timeout": 30,
"default_region": "vm_service",
"default_session_timeout": 1800,
"allow_account_creation": true,
"account_creation_url": "http://webservice:5678/registry/"
},
"logging": {
"level": "DEBUG"
36 IBM SmartCloud Provisioning: Installing and configuring
},
"ldap":{
"host":"ldap-server",
"port":389,
"rootdn":"cn=admin, ou=user, ou=people, dc=example, dc=com",
"rootpw":"admin",
"oudn":",ou=user,ou=people,dc=example,dc=com",
"datasource":"internal"
},
"region":{
"vm_service":{
"description" : "VM Services",
"available": true,
"web_service_url": "http://webservice:5678/query/",
"web_registry_url": "http://webservice:5678/registry/"
}
}
}
Before you start the web console, navigate to its root directory and copy the
sample configuration file:
cp etc/webconsole.conf.example webconsole.conf
You can modify the configuration file as follows:
v Change the URL of the web service as needed in your deployment.
v Append additional service regions under attribute "region".
v Disable the creation of accounts by setting "allow_account_creation": false
under attribute "main".
Web Service settings
The file is /iaas/etc/webservice.conf.
This configuration file defines data for the Web Service. The following is an
example:
{
"ws_port":5678,
"worker_number":"10",
"ldap":{
"host":"172.16.0.32",
"port":389,
"rootdn":"cn=admin,dc=hslt,dc=cn-ibm-com",
"rootpw":"secret",
"oudn":",ou=user,ou=people,dc=hslt,dc=cn-ibm-com",
"datasource":"openldap"
},
"quota_enabled":false,
"nogroup":{
"quota":{"instnum":5, "nr_virt_cpu":5, \
"memory":10240, "volume":20, "image":20, "eip":1}
},
"service_region":{
"region_id":"vm_service",
"description":"VM Services"
}
//log_level: 0,1,2,3,4,5 debug,info,warn,error,fatal
"webservice_logging":{
"log_level": 1,
Installing and configuring 37
"max_log_file_num": 10,
"max_log_file_size": 1048576
}
}
ws_port
Defines the port of the web service. The default is 5678.
workers_number
Defines the number of workers. The default is 5.
ldap.host
Defines the IP address of the LDAP server.
ldap.port
It defines the port of the LDAP server.
ldap.rootdn
It defines the LDAP rootdn of admin.
ldap.rootpw
It defines the LDAP rootpw of admin.
ldap.oudn
It defines the LDAP oudn of admin.
ldap.datasource
It defines the type of data source type for LDAP:
v bluepages: The data source is bluepages. Bluepages only supports user
authentication and it does not support the creation, modification,
deletion, and the search of accounts in LDAP.
v openldap: The data source is openldap. Openldap also supports the
creation, modification, deletion, and the search of accounts in LDAP.
quota_enabled
Defines if the resource quota checking function is enabled (true) or
disabled (false).
nogroup.quota
It defines the default quota of an account. For example, {"instnum":5,
"nr_virt_cpu":5, "memory":10240, "volume":20, "image":20, "eip":1}
means that the default user quota is 5 virtual machines, 5 virtual CPU, 10
GB of memory, 20 GB volumes, 20 GB images, 1 EIP. In other words, the
user can only run 5 virtual machines, can only have 5 virtual processors,
cannot have more than 10 GB of total memory for his virtual machines, can
only create volumes for a total of 20 GB, can only capture or register a
total of 20 GB images, and can only allocate 1 elastic IP address.
service_region.region_id
It defines the ID of the service region. This service region is not same as
the region field in isaac.conf, but it is the region that defines the
SmartCloud Provisioning service type. Its value can only be vm_service.
service_region.description
It provides a description of the service region.
webservice_logging
Defines the web service logging settings.
log_level
(Optional) Defines the level of log, The default is 1 (INFO). Other
values are: 0 (DEBUG), 1 (INFO), 2 (WARN), 3 (ERROR), 4
(FATAL), 5 (UNKNOWN).
38 IBM SmartCloud Provisioning: Installing and configuring
max_log_file_num
(Optional) Defines the maximum number of log files. The default is
5.
max_log_file_size
(Optional) It defines the maximum size of log files. For example, a
value of 41943040 means that the maximum size of log files is 40
MB. The default is 20 MB.
Iaas REST Server settings
The file is /iaas/iaas-rest-srv/conf/restserver.xml.
This configuration file defines data for the Iaas REST Server. The REST Server is
similar to a router that tells the Web Console where to forward requests (for
example, where the Web Service runs).
The following is an example:
<?xml version="1.0" encoding="UTF-8"?>
<restconfig>
<input name="Region" value="iaas" />
<input name="Domain" value="iaas-rest" />
<input name="BindIP" value="" />
<input name="MgrPort" value="33090" />
<input name="DataPort" value="33080" />
<input name="MaxWorkerNumber" value="50" />
<input name="MaxClients" value="1000" />
<input name="ZookeeperServer" \
value="10.10.30.221:2181,10.10.30.222:2181,10.10.30.223:2181"/>
<input name="ZookeeperTimeout" value="5000"/>
<input name="StartMR" value="false" />
</restconfig>
Region
Defines the region name of the SmartCloud Provisioning environment. It
must be the same as the region value in isaac.conf on the hyper, storage
and web services nodes.
Domain
It defines the domain of the REST Server. A SmartCloud Provisioning
cloud has only one REST Server domain. The information of REST servers
are kept in the Zookeepers. The domain defines the context node of the
REST servers.
BindIP
It defines the REST Server socket listening IP address. Normally, this field
is empty, meaning that the server socket will bind on 0.0.0.0.
MgrPort
It defines the REST Server management port. The REST Server manager
thread listens on this port.
DataPort
It defines the REST server data service port. Web Service, Compute Nodes,
and Storage Nodes use this port to transfer data with REST servers.
MaxWorkerNumber
It defines the REST Server maximum thread number for data service.
MaxClients
It defines the REST Server maximum accept queue size for data service.
Installing and configuring 39
ZookeeperServer
It defines the Zookeeper cluster addresses. You must include the addresses
for all your Zookeeper nodes.
ZookeeperTimeout
It defines the timeout value between Zookeeper Server and Zookeeper
Client used in the REST server.
StartMR
It defines whether the metering service must be started in the REST Server.
HBase Client performance tuning
This configuration file can be modified by advanced users, who want to tune the
HBase client performance.
The file is /iaas/iaas-rest-srv/conf/services.d/hbase.rsc. and the following is
an example:
<IRestServicesContainer url="/hbase/" scancache="30" hbaseClientPause="500" \
hbaseClientRetriesNumber="3" tablePoolSize="200" \
class="com.ibm.iaas.rest.service.hbase.HBaseServicesContainer">
Customizing the size of a virtual machine
This topic describes how you can customize the size of a virtual machine.
About this task
Follow this procedure to set the size of a virtual machine to extra small, small,
medium, large, and extra large.
Procedure
1. Edit /iaas/etc/hyper_bot.conf on a Compute Node to set the size to your
preferred value:
"instance_type":{
"xsmall" : {"ram":512, "vcpu":1, "swap":512},
"small" : {"ram":1024, "vcpu":1, "swap":1024},
"medium" : {"ram":2048, "vcpu":2, "swap":2048},
"large" : {"ram":4096, "vcpu":2, "swap":4096},
"xlarge" : {"ram":8192, "vcpu":2, "swap":4096}
}
Only 5 virtual machine sizes are supported.
Note: Make sure each Compute Node has the same configuration.
2. Run again the compute bot process on each Compute Node using the following
command that makes the new value valid:
/iaas/hyper_bots/rubybots/re-run.sh
Other configuration tasks
What follows is a series of topics that describe other configuration tasks.
How to configure the IP address of the PXE Server
This topic describes how to configure networking for the PXE Server.
40 IBM SmartCloud Provisioning: Installing and configuring
About this task
The PXE Server has RHEL installed. In this topic, it is assumed that the IP address
of the PXE Server is 192.168.96.2, its netmask is 255.255.255.0, and its gateway is
192.168.96.1.
Do the following:
# cd /etc/sysconfig/network-scripts
# vi ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.96.2
NETMASK=255.255.255.0
NETWORK=192.168.96.0
BROADCAST=192.168.96.255
GATEWAY=192.168.96.1
ONBOOT=yes
NM_CONTROLLED=no
# cd /etc/sysconfig
# vi network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=firstbox
GATEWAY=192.168.96.1
# service network restart
Configuring failover in DHCP
This topic explains how to set up an ISC DHCP daemon with load sharing and
failover capabilities.
Before you begin
Before implementing this task, you must have a fully functional SmartCloud
Provisioning environment and a host computer with RHEL 6, which will function
as the secondary DHCP server.
About this task
Small-sized networks tend to have a single DHCP server, which can become a
single point of failure for a large number of hosts in the network. When the DHCP
server goes offline, DHCP client hosts lose their addresses and ability to
communicate with the rest of the network. Since most desktop computers, and
even some servers, get their networking configuration via DHCP, such an outage
can result in a lot of downtime.
A UNIX network often uses the Internet Systems Consortium (ISC) DHCP server,
which is widely available on Linux systems. The ISC DHCP server provides
failover capabilities that allow network administrators to offer a more robust
DHCP service. A failover setup requires a little care, but it's fairly straightforward
to implement.
This task describes how to implement a failover setup.
Installing and configuring 41
Procedure
To configure the primary DHCP server:
1. The primary DHCP server is the one that already serves the existing
SmartCloud Provisioning environment.
2. Create the failover configuration file /etc/dhcp/dhcpd.failover that includes a
similar content:
failover peer "example" { # Failover configuration
primary; # I am the primary
address 10.0.0.2; # First box IP address
port 647;
peer address 10.0.0.3; # Peers IP address
peer port 647;
max-response-delay 60;
max-unacked-updates 10;
mclt 3600;
split 128; # Leave this at 128, only defined on Primary
load balance max seconds 3;
}
3. Modify /etc/dhcp/dhcpd.conf to contain the line that defines the failover
configuration file. Make sure that the failover configuration file is included in
the local one, that is, make sure that dhcpd.local includes /etc/dhcp/
dhcpd.failover.
4. Modify /etc/dhcp/dhcpd.local and add the failover option into the pool
declaration so that it is similar to what follows:
pool {
range 10.0.0.21 10.0.0.254;
failover peer "example";
deny dynamic bootp clients;
}
To configure the secondary DHCP server, which needs to be set up manually:
1. Install DHCP on the secondary server:
yum install dhcp
chkconfig dhcpd on
2. Create the failover configuration file /etc/dhcp/dhcpd.failover to contain
similar content:
failover peer "example" { # Fail over configuration
secondary; # I am the secondary
address 10.0.0.3; # My ip address
port 647;
peer address 10.0.0.2; # Peers ip address
peer port 647;
max-response-delay 60;
max-unacked-updates 10;
mclt 3600;
load balance max seconds 3;
}
3. Copy dhcpd.conf, dhcpd.local, dhcpd.static from the primary server to
/etc/dhcp and replace the existing ones, if any.
4. Copy the /etc/rndc.key from the primary server to the secondary.
To restart the DHCP service, run what follows on both primary and secondary
servers:
/etc/init.d/dhcpd restart
Adding Storage Nodes
This topic describes how to add a Storage Node to an existing environment. You
can follow either of the described procedures.
42 IBM SmartCloud Provisioning: Installing and configuring
About this task
Procedure A
Boot the machine using the PXE Server. From the PXE boot menu select
Storage Node.
Procedure B
1. Plug in the power cable and Ethernet cable, and execute the following
command on the PXE Server:
# cd /path/to/hslt-installer/deploy-scripts
# ./add_storage.sh <MAC_address>
where <MAC_Address> is the MAC address of the new Storage Node.
2. Press the power button on this machine, and select network bootup in
the bootup sequence list on the bootup screen. The machine is installed
and configured automatically through the PXE service provided by the
PXE Server. After the OS installation is complete, change the boot
device from PXE to hard disk and then press Reboot.
Adding Compute Nodes
This topic describes how to add a Compute Node to an existing environment.
About this task
Procedure A
Boot the machine using the PXE Server. From the PXE boot menu select
Compute Node.
Procedure B
1. Adjust the BIOS settings of your new Compute Node to enable PXE
booting, and save the MAC address of the ethernet card with which
you have enabled PXE.
2. Login to the DHCP DNS server and edit the DHCP configuration file.
This file is often located at /etc/dhcp/dhcpd.conf. Add this code with
your hostname and IP address to enable PXE booting from your DHCP
DNS server:
host <compute_node_hostname> \
{hardware ethernet xx:xx:xx:xx:xx:xx, \
fixed-address 10.0.0.xxx;
}
3. Verify the dhcpd configuration and restart the dhcpd service if there are
no configuration errors:
# service dhcpd configtest
# service dhcpd restart
4. Reboot the newly-added Compute Node.
Setting up a redundant DHCP-DNS server
This topic describes how you can set up a DHCP-DNS server to have a master or
slave mode.
About this task
When you complete the SmartCloud Provisioning installation, the PXE server
becomes the DHCP-DNS server with master mode and its IP address becomes
10.0.0.1.
Installing and configuring 43
This task explains how you can set up another DNS server in slave mode with IP
address 10.0.0.30.
Procedure
1. For the DNS slave, you can start a virtual machine or use a physical machine.
2. On the slave node:
yum install bind
Copy /etc/named.conf and /etc/rndc.key from the PXE server.
3. On the PXE server, edit /etc/named.conf as follows:
zone "MoonRiver.cloud.com" {
type master;
file "forward-lookup.db";
allow-transfer { 10.0.0.30; };
allow-update {key "rndc-key";};
notify yes;
};
zone "0.0.10.in-addr.arpa" {
type master;
file "reverse-lookup.db";
allow-transfer { 10.0.0.30; };
allow-update {key "rndc-key";};
notify yes;
};
4. On the slave server with IP address 10.0.0.30:
a. Edit /etc/named.conf as follows:
zone "MoonRiver.cloud.com" {
type slave;
file "forward-lookup.db";
masters { 10.0.0.1; };
notify yes;
};
zone "0.0.10.in-addr.arpa" {
type slave;
file "reverse-lookup.db";
masters { 10.0.0.1; };
notify yes;
};
b. Remove the block for zone "0.0.127.in-addr.arpa".
c. Run:
touch /var/named/cache.db
d. Run:
chown -R named.named /var/named
5. Run the following command on both servers to restart the dns service:
/etc/init.d/named restart
Backing up and restoring HBase
There are two utilities for Cloud administrators to backup and restore HBase.
They are iaas-db-backup.sh and iaas-db-restore.sh. These utilities are stored in
the REST Server, and installed in the directory /iaas/iaas-rest-srv/bin in the
virtual machines with a REST Server installed. There can be one or more REST
Servers.
44 IBM SmartCloud Provisioning: Installing and configuring
Note: If you have less than 5 HBase nodes, a REST Server is installed on each
HBase node except hbase-1. If you have 5 or more HBase nodes, a REST
Server is installed on each HBase node except hbase-1, hbase-2 and hbase-3.
You can select any of these to execute the backup and restore of HBase.
To do so, SSH to a virtual machine with a REST Server installed, and:
# cd /iaas/iaas-rest-srv/bin
# ./iaas-db-backup.sh /mydata/hbase iaas
Note: iaas-db-backup.sh accepts two arguments:
v /mydata/hbase where you put the backup data.
v iaas that defines the service region to backup.
You can find the service region name of your deployment in
/iaas/etc/isaac.conf, which can be found in any Compute Node.
After issuing the given backup command, you must get a screen output as follows:
/iaas/iaas-rest-srv/bin /iaas/iaas-rest-srv/bin
- /mydata/hbase exists, creating /mydata/hbase/isaac-dbbak-2011-08-05-16-11
to save backup data ...
- Directory /mydata/hbase/isaac-dbbak-2011-08-05-16-11 created successfully.
- Check existing tables in DB ...
- done.
- Parsing tables ...
- Tables to backup: addresses iaas_cache iaas_job_stats iaas_jobs
images instances key_pair persistent_instances quota_templates roles
secret_keys service_region settings test_hbase usergroups users
vlans volumes
- Exporting data of table iaas.addresses ...
- done.
- Exporting data of table iaas.iaas_cache ...
- done.
- Exporting data of table iaas.iaas_job_stats ...
- done.
- Exporting data of table iaas.iaas_jobs ...
- done.
- Exporting data of table iaas.images ...
- done.
- Exporting data of table iaas.instances ...
- done.
- Exporting data of table iaas.key_pair ...
- done.
- Exporting data of table iaas.persistent_instances ...
- done.
- Exporting data of table iaas.quota_templates ...
- done.
- Exporting data of table iaas.roles ...
- done.
- Exporting data of table iaas.secret_keys ...
- done.
- Exporting data of table iaas.service_region ...
- done.
- Exporting data of table iaas.settings ...
- done.
- Exporting data of table iaas.test_hbase ...
- done.
- Exporting data of table iaas.usergroups ...
- done.
- Exporting data of table iaas.users ...
- done.
- Exporting data of table iaas.vlans ...
Installing and configuring 45
- done.
- Exporting data of table iaas.volumes ...
- done.
- DB backup complete.
The backup is complete.
If your HBase runs into problems or is corrupted, you want to restore it to a
certain backup. You can issue the following command:
# cd /iaas/iaas-rest-srv/bin
# ./iaas-db-restore.sh /mydata/hbase/isaac-dbbak-2011-08-05-16-11 iaas
Note: iaas-db-restore.sh accepts two arguments:
v /mydata/hbase/isaac-dbbak-2011-08-05-16-11 , which is where the data
is restored.
v iaas, which defines the service region to be restored.
Moving kernel services virtual machines
This topic describes how to move kernel services virtual machines among physical
machines.
About this task
All kernel services run on virtual machines that might be distributed on different
physical machines. Moving a kernel service means moving the virtual machine
running the kernel service. To describe the procedure of moving virtual machines
among physical machines, assume that the kernel service to be moved is a web
console, running on compute1, and being moved to compute2.
Procedure
1. Log on to the compute1 console, using SSH. Use virsh to display the list of
virtual machines running on compute1:
# virsh list
Id name status
----------------------------------
2 webconsole running
You can see the web console virtual machine in the list being displayed.
2. Log on to the web console virtual machine and stop it:
a. # virsh console webconsole
b. Log on using the virtual machines root password and shutdown the virtual
machine:
# shutdown -h now
c. Press Ctrl-] return to the physical machine console of compute1.
3. Copy the image file webconsole.par from compute1 to compute2. The file's
location is /iaas/local-storage/vm. Copy the virtual machines definition XML
file (webconsole.xml) from compute1 to compute2. The file's location is
/iaas/inst-scripts/webconsole.xml.
4. Log on to the compute2 console, using SSH. Use virsh to create a virtual
machine:
# virsh create /iaas/inst-scripts/webconsole.xml
5. After the new web console virtual machine is booted up, you can log on to the
machine to start the web console application by running /iaas/webconsole/re-
46 IBM SmartCloud Provisioning: Installing and configuring
run.sh. Close the console on the virtual machine, and press Ctrl-] to return to
the physical machine compute2's console.
a. # virsh console webconsole
b. Log on with the virtual machines root password and start the web console
application:
# /iaas/webconsole/re-run.sh
c. Close the virtual machines console and press Ctrl-] to return to the
physical machine compute2's console.
Integrating an external LDAP server
The LDAP support from SmartCloud Provisioning allows the web service
component to authenticate users via an OpenLDAP Server.
About this task
Assume that you have an OpenLDAP Server running on localhost and configured
with the following directory:
o=foo,dc=hslt,dc=cn-ibm-com
|
+ + ou=people,o=foo,dc=hslt,dc=cn-ibm-com
|
+ cn=user1,ou=people,o=foo,dc=hslt,dc=cn-ibm-com
|
+ cn=user2,ou=people,o=foo,dc=hslt,dc=cn-ibm-com
The following sample configuration in /iaas/etc/webservice.conf is for the
previous sample directory:
"ldap":{
"host":"localhost",
"port":389,
"rootdn":"cn=admin,dc=hslt,dc=cn-ibm-com",
"rootpw":"<admin-password>",
"oudn":",ou=user,ou=people,dc=hslt,dc=cn-ibm-com",
"datasource":"openldap"
}
Note: OpenLDAP, Netscape Directory SDK, and Windows Active Directory
are supported.
Note: Also userDN is supported, which means there is no configurable filter.
For example, for username user1, it searches for cn=user1 combined with
oudn value.
Connecting existing storage devices
In the majority of cases, enterprise users have some existing storage devices, for
example, IBM DS 3000/5000/8000 series. This topic describes how to add these
storage devices into a SmartCloud Provisioning environment.
Procedure
1. Add HBA cards to the Storage Nodes that are going to use the storage devices.
2. Connect the Storage Nodes and storage devices with a SAN Switch.
3. Create LUNs in the storage devices, and use or mount LUNs in the Storage
Nodes, as if they were a local hard drive.
4. Configure the file_dirs in the Storage Nodes configuration file
/iaas/etc/storage_bot.con.
Installing and configuring 47
5. Rerun the Storage Nodes, by doing so all LUNs created in the storage devices
are used by SmartCloud Provisioning.
Configuring a virtual LAN
This topic describes how you can configure a VLAN.
Before you begin
To implement a virtual LAN, you need a switch with VLAN support. Each port
connected to a Compute Node must be configured as trunk mode. For each VLAN
that you want to use, create it in the switch and add all the Compute Node ports
to it.
VLAN 0 through 4 are reserved for SmartCloud Provisioning. Use other VLAN
ports, from 5 to 4095.
Note: SmartCloud Provisioning does not manage the configuration of the
physical switch. You must configure the switch manually. The configuration
of the switch port as trunk mode is different according to different switch
models. For example, for some switches, you can configure the port as trunk
mode by enabling VLAN tagging.
About this task
Useful information about VLANs can be found at: http://www.linuxhorizon.ro/
vlans.html.
Procedure
1. Register a VLAN:
As an administrator, you register a VLAN by running the command
iaas-register-vlan. For example, to register a VLAN using port 11 and vlan_11
as VLAN name, run:
./iaas-register-vlan -m 11 -n vlan_11
Note: If multiple users want to deploy virtual machines in the same
VLAN, the administrator can register the same VLAN number multiple
times with unique VLAN names. When multiple users have allocated the
VLANs that have the same VLAN number, they can deploy the virtual
machines in the same VLAN.
2. Allocate the VLAN by running the command:
./iaas-allocate-vlan
3. Run the virtual machines:
As a user who has allocated a VLAN, you can launch virtual machines within
the VLAN. For example, to launch two RHEL virtual machines in vlan_11, run:
./iaas-deploy-vms -i rhel6-x64 -n 2 -b "default,vlan_11"
Note: When launching virtual machines, the default VLAN must be
designated using the -b option.
4. Configure a VLAN IP for each virtual machines. After you have launched the
virtual machines, a VLAN IP is set to eth1 on each virtual machine.
48 IBM SmartCloud Provisioning: Installing and configuring
5. Verify the isolation of the VLAN. The expected result is that all virtual
machines within the same VLAN are accessible, and that virtual machines in
different VLANs are isolated.
What to do next
To release a VLAN, you must be the user who allocated it and you must terminate
all virtual machines in the VLAN before releasing it. To release a VLAN, run the
command iaas-release-vlan. For example, to release a VLAN with name vlan_11,
run:
./iaas-release-vlan -n vlan_11
To deregister a VLAN, you must be an administrator and you must release the
VLAN before deregistering it. To deregister a VLAN, run the command
iaas-deregister-vlan. For example, to deregister a VLAN with name vlan_11, run:
./iaas-deregister-vlan -n vlan_11
Releasing and deregistering a VLAN can also be accomplished using the web UI.
Default ports
The bot software running on the various nodes, with standard and manager roles,
uses specific ports to serve requests.
The following ports are being used for listening:
Table 1. Ports used by the bot software on the SmartCloud Provisioning nodes.
Node and bot software Port number Comment
Compute Node with standard role 8880, 80
v 8880 is used to accept commands
v 80 is used to serve user requests from
virtual machines
Compute Node with manager role 8880, 80
8881
8881 is used in addition
Storage Node with standard role 8880
Storage Node with manager role 8880
8881
8881 is used in addition
REST Server 33080
Web Service 8880 and higher Starting from 8880, each worker uses a
unique port to serve a request (worker 0
uses 8880, worker 1 uses 8882, worker 2
uses 8883, and so forth)
Securing the communication
This topic describes how to enable secure communications.
About this task
NGINX, a high-performance open source web server, is used to provide https
connection to some kernel services (web services, web console, and admin web
console). Using NGINX does not prevent continuing to have plain http, which can
be blocked by leveraging standard techniques, such as IP table rules.
Installing and configuring 49
Web services are secured by signing requests via the private key, therefore even if
the information sent in the http posts is not encrypted, this does not represent a
security exposure. SmartCloud Provisioning can provide https connection to the
web services through NGINX.
Note: Using NGINX causes the command line not to work anymore because
the CLI is not enabled to handle certificates and https requests. SmartCloud
Provisioning supports both options and you might want to use the CLI on
private networks but only enable SSL on public networks for example.
This task provides samples on how to configure the NGINX, and how to set IP
tables to block http traffic.
In SmartCloud Provisioning, the Web Services, Web Console, and the
administrative console virtual machines default are installed and configured to
have a running instance of the NGINX web server. The NGINX web server
configuration is stored in a specific configuration file under /etc/nginx/conf.d. For
example, for the administrative console, the file is called adminconsole.conf and
has the following content:
server {
listen 443;
server_name adminconsole;
ssl on;
ssl_certificate /etc/nginx/iscp.cert;
ssl_certificate_key /etc/nginx/iscp.key;
location / {
proxy_pass http://<admin_console:<port>;/;
}
}
The configuration tells NGINX to redirect secure traffic (https on port 443) to the
default http port used by the administrative console. The certificates are used to
enable SSL communications between external clients and the NGINX web server.
To block incoming HTTP traffic, you can set the following iptables rules (the
example is for a service running on port 8080):
#allow local connection from NGINX
iptables -A INPUT -s 127.0.0.1 -p tcp --dport 8080 -j ACCEPT
#block all the other incoming connections
iptables -A INPUT -p tcp --dport 8080 -j REJECT
Installing and configuring additional options
The following topics describe how to install and configure additional components
of SmartCloud Provisioning.
Installing topology management
This topic describes how to install and launch the topology management
component for the web console. This is an optional task.
Before you begin
A standard installation of SmartCloud Provisioning must be available.
50 IBM SmartCloud Provisioning: Installing and configuring
About this task
The web console cluster must use the public address capability provided by
SmartCloud Provisioning. Each node in the cluster, including the Apache balancer
node and the web console node, needs a public address. Additional public
addresses can be optionally provided to support the scaling out of the cluster.
Modify the file /var/lib/tftpboot/topo/address-pool on the PXE server to use the
public addresses, one address per line. The following is a possible version of
sample address-pool file for a web console cluster of 6 nodes (1 Apache balancer
and 5 web console servers):
10.0.0.11
10.0.0.12
10.0.0.13
10.0.0.14
10.0.0.15
10.0.0.16
10.0.0.17
10.0.0.18
10.0.0.19
10.0.0.20
What to do next
To launch the topology management component and the web console cluster, run
topo_run.sh in /iaas/inst-scripts in one of the Storage Nodes or Compute
Nodes.
The CLI client comes from package isaac-topo-cli-xxx.rpm.
Installing and configuring the Iaas API
The IaaS API is an optional component in the product environment.
The installation of the API is not performed as part of the product installation. You
must follow these topics to deploy the API in your environment.
The following prerequisites are required to install the IaaS API:
v RHEL 6.0 or later
v Ruby 1.8.7 or later
v RubyGems 1.3.7 or later
v sinatra 1.0 or later
v yajl-ruby 0.7.8 or later
You can install the API in the virtual machine of the web service, which has all the
necessary prerequisites.
Installing the Iaas API
If you have a yum repository that includes SmartCloud Provisioning packages in
the machine, for example in the web service virtual machine, the installation of the
API is very simple.
About this task
Run:
yum install isaac-iaasapis
Installing and configuring 51
After the installation, the API is located in /iaas/iaasapis.
Configuring the Iaas API
This topic describes how to configure the API after it has been installed.
About this task
You must first copy /iaas/iaasapis/config/hslt.yml.sample to
/iaas/iaasapis/config/hslt.yml:
cd /iaas/iaasapis
cd config
cp hslt.yml.sample hslt.yml
The configuration file defines all the required information for the API, such as the
web service endpoint, the admin private key, and more. The following is an
example:
admin:
admin_private_key: "/iaas/keys/admin.private.key"
admin_access_id: "admin"
service:
service_endpoint: "http://webservice:5678/query/"
service_public_key: "/iaas/keys/vm_service.public.key"
logging:
path: "/var/log/iaas"
level: "INFO"
max_log_file_num: 5
log_file_size: 10
where:
admin_private_key
Defines the admin private key file location.
admin_access_id
Defines the access ID of the administrator. The access ID does not have to
be admin-only, but the access must be with admin role.
service_endpoint
Defines the web service end point.
service_public_key
Defines the service public key file location.
path Defines the application log file directory. The file name is iaas_apis.log.
level Defines the logging level. You can use either DEBUG, INFO, WARN,
ERROR, or FATAL.
max_log_file_num
Defines the max log files number.
log_file_size
Defines the maximum file size of one log file in megabytes. For example, if
configured with max_log_file_num equal 5 and log_file_size equal 10, the
file size of the IaaS API is at most 50 MB. The log is something
like:/var/log/iaas/iaas_apis.log,/var/log/iaas/iaas_apis.log.0,/var/
log/iaas/iaas_apis.log.1 and so forth.
52 IBM SmartCloud Provisioning: Installing and configuring
Starting, stopping, and browsing the API
About this task
To start he API:
cd /iaas/iaasapis
./re-run.sh
To stop the API:
cd /iaas/iaasapis
./re-run.sh stop
To browse the API:
http://<isaac_iaasapis_ip_address>:8090/
Installing and configuring 53
54 IBM SmartCloud Provisioning: Installing and configuring
Appendix. Support information
If you have a problem with your IBM software, you want to resolve it quickly. This
section describes the following options for obtaining support for IBM software
products:
v Using IBM Support Assistant
v Obtaining fixes
v Receiving weekly support updates on page 56
v Contacting IBM Software Support on page 56
Using IBM Support Assistant
The IBM Support Assistant is a free, stand-alone application that you can install on
any workstation. You can then enhance the application by installing
product-specific plug-in modules for the IBM products you use.
The IBM Support Assistant saves you time searching product, support, and
educational resources.
The product-specific plug-in modules provide you with the following resources:
v Support links
v Education links
For more information, see the IBM Support Assistant Web site at
http://www.ibm.com/software/support/isa/.
If your product does not use IBM Support Assistant, use the links to support topics
in your information center. In the navigation frame, check the links for resources
listed in the ibm.com

and related resources section where you can search the


following resources:
v Support and assistance (includes search capability of IBM technotes and IBM
downloads for interim fixes and workarounds)
v Training and certification
v IBM developerWorks

v IBM Redbooks

v General product information


If you cannot find the solution to your problem in the information center, search
the following Internet resources for the latest information that might help you
resolve your problem:
v Forums and newsgroups
v Google.com
Obtaining fixes
A product fix might be available to resolve your problem. To determine what fixes
are available for your IBM software product, follow these steps:
1. Go to the IBM Support & download Web page at http://www.ibm.com/
support/us/.
Copyright IBM Corp. 2011 55
2. Click Downloads and drivers in the Support & downloads section.
3. Select one software category from the Category list.
4. Select one product from the Sub-category list.
5. Type more search terms in the Search within results if you want to refine your
search.
6. Click Search.
7. From the list of downloads returned by your search, click the name of a fix to
read the description of the fix and to optionally download the fix.
For more information about the types of fixes that are available, see the IBM
Software Support Handbook at http://techsupport.services.ibm.com/guides/
handbook.html
Receiving weekly support updates
To receive weekly e-mail notifications about fixes and other news about IBM
products, follow these steps:
1. Go to the IBM Software Support Web site at www.ibm.com/software/support.
2. Click My support in the upper right corner of the page.
3. If you have already registered for My support, sign in and skip to the next
step. If you have not registered, click register now. Complete the registration
form using your e-mail address as your IBM ID and click Submit.
4. Click Edit profile.
5. In the Products list, select Software. A second list is displayed.
6. In the second list, select a product segment, for example, Application servers.
A third list is displayed.
7. In the third list, select a product sub-segment, for example, Distributed
Application & Web Servers. A list of applicable products is displayed.
8. Select the products for which you want to receive updates, for example, IBM
HTTP Server and WebSphere

Application Server.
9. Click Add products.
10. After selecting all products that are of interest to you, click Subscribe to email
on the Edit profile tab.
11. Select Please send these documents by weekly email.
12. Update your e-mail address as needed.
13. In the Documents list, select Software.
14. Select the types of documents that you want to receive information about.
15. Click Update.
If you experience problems with the My support feature, you can obtain help in
one of the following ways:
Online
Send an e-mail message to erchelp@ca.ibm.com, describing your problem.
By phone
Call 1-800-IBM-4You (1-800-426-4968).
Contacting IBM Software Support
IBM Software Support provides assistance with product defects.
56 IBM SmartCloud Provisioning: Installing and configuring
Before contacting IBM Software Support, your company must have an active IBM
software maintenance contract, and you must be authorized to submit problems to
IBM. The type of software maintenance contract that you need depends on the
type of product you have:
v For IBM distributed software products (including, but not limited to, Tivoli

,
Lotus

, Rational

products, and DB2

and WebSphere products that run on


Windows or UNIX operating systems), enroll in Passport Advantage

in one of
the following ways:
Online: Go to the Passport Advantage Web site at
www.lotus.com/services/passport.nsf/WebDocs/Passport_Advantage_Home
and click How to Enroll.
By phone: For the phone number to call in your country, go to the IBM
Software Support Web site at techsupport.services.ibm.com/guides/
contacts.html and click the name of your geographic region.
v For customers with Subscription and Support (S & S) contracts, go to the
Software Service Request Web site at https://techsupport.services.ibm.com/ssr/
login
v For customers with IBMLink, CATIA, Linux, OS/390

, iSeries

, pSeries

,
zSeries

, and other support agreements, go to the IBM Support Line Web site at
http://www.ibm.com/services/us/index.wss/so/its/a1000030/dt006
v For IBM eServer

software products (including, but not limited to, DB2 and


WebSphere products that run in zSeries, pSeries, and iSeries environments), you
can purchase a software maintenance agreement by working directly with an
IBM sales representative or an IBM Business Partner. For more information
about support for eServer software products, go to the IBM Technical Support
Advantage Web page at www.ibm.com/servers/eserver/techsupport.html.
If you are not sure what type of software maintenance contract you need, call
1-800-IBMSERV (1-800-426-7378) in the United States or, from other countries, go to
the contacts page of the IBM Software Support Handbook on the Web
(techsupport.services.ibm.com/guides/contacts.html) and click the name of your
geographic region for phone numbers of people who provide support for your
location.
To contact IBM Software Support, follow these steps:
1. Determine the business impact of your problem
2. Describe your problem and gather background information on page 58
3. Submitting problems on page 58
Determine the business impact of your problem
When you report a problem to IBM, you are asked to supply a severity level.
Therefore, you need to understand and assess the business impact of the problem
you are reporting. Use the following criteria:
Severity 1 Critical business impact: You are unable to use the program,
resulting in a critical impact on operations. This condition
requires an immediate solution.
Severity 2 Significant business impact: The program is usable but is
severely limited.
Severity 3 Some business impact: The program is usable with less
significant features (not critical to operations) unavailable.
Appendix. Support information 57
Severity 4 Minimal business impact: The problem causes little impact on
operations, or a reasonable circumvention to the problem has
been implemented.
Describe your problem and gather background information
When explaining a problem to IBM, be as specific as possible. Include all relevant
background information so that IBM Software Support specialists can help you
solve the problem efficiently. To save time, know the answers to these questions:
v What software versions were you running when the problem occurred?
v Do you have logs, traces, and messages that are related to the problem
symptoms? IBM Software Support is likely to ask for this information.
v Can you re-create the problem? If so, what steps where performed to re-create
the problem?
v Did you make any changes to the system? For example, did you make changes
to the hardware, operating system, networking software, and so on?
v Are you currently using a workaround for the problem? If so, be prepared to
explain the workaround when you report the problem.
Submitting problems
You can submit your problem to IBM Software Support in one of two ways:
Online
Click Report problems on the IBM Software Support site at
http://www.ibm.com/software/support/probsub.html. Type your
information into the appropriate problem submission form.
By phone
For the phone number to call in your country, go to the contacts page of
the IBM Software Support Handbook at techsupport.services.ibm.com/
guides/contacts.html and click the name of your geographic region.
If the problem you submit is for a software defect or for missing or inaccurate
documentation, IBM Software Support creates an Authorized Program Analysis
Report (APAR). The APAR describes the problem in detail. Whenever possible,
IBM Software Support provides a workaround for you to implement until the
APAR is resolved and a fix is delivered. IBM publishes resolved APARs on the
IBM product support Web pages daily, so that other users who experience the
same problem can benefit from the same resolutions.
58 IBM SmartCloud Provisioning: Installing and configuring
Notices
This information was developed for products and services offered in the U.S.A.
IBM may not offer the products, services, or features discussed in this document in
other countries. Consult your local IBM representative for information on the
products and services currently available in your area. Any reference to an IBM
product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product,
program, or service that does not infringe any IBM intellectual property right may
be used instead. However, it is the user's responsibility to evaluate and verify the
operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter
described in this document. The furnishing of this document does not give you
any license to these patents. You can send license inquiries, in writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785, U.S.A.
For license inquiries regarding double-byte (DBCS) information, contact the IBM
Intellectual Property Department in your country or send inquiries, in writing, to:
Intellectual Property Licensing
Legal and Intellectual Property Law
IBM Japan Ltd.
1623-14, Shimotsuruma, Yamato-shi
Kanagawa 242-8502 Japan
The following paragraph does not apply to the United Kingdom or any other
country where such provisions are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS
PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS
FOR A PARTICULAR PURPOSE.
Some states do not allow disclaimer of express or implied warranties in certain
transactions, therefore, this statement might not apply to you.
This information could include technical inaccuracies or typographical errors.
Changes are periodically made to the information herein; these changes will be
incorporated in new editions of the publication. IBM may make improvements
and/or changes in the product(s) and/or the program(s) described in this
publication at any time without notice.
Any references in this information to non-IBM Web sites are provided for
convenience only and do not in any manner serve as an endorsement of those Web
sites. The materials at those Web sites are not part of the materials for this IBM
product and use of those Web sites is at your own risk.
Copyright IBM Corp. 2011 59
IBM may use or distribute any of the information you supply in any way it
believes appropriate without incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose
of enabling: (i) the exchange of information between independently created
programs and other programs (including this one) and (ii) the mutual use of the
information which has been exchanged, should contact:
IBM Corporation
2Z4A/101
11400 Burnet Road
Austin, TX 78758 U.S.A.
Such information may be available, subject to appropriate terms and conditions,
including in some cases, payment of a fee.
The licensed program described in this document and all licensed material
available for it are provided by IBM under terms of the IBM Customer Agreement,
IBM International Program License Agreement or any equivalent agreement
between us.
Information concerning non-IBM products was obtained from the suppliers of
those products, their published announcements or other publicly available sources.
IBM has not tested those products and cannot confirm the accuracy of
performance, compatibility or any other claims related to non-IBM products.
Questions on the capabilities of non-IBM products should be addressed to the
suppliers of those products.
This information contains examples of data and reports used in daily business
operations. To illustrate them as completely as possible, the examples include the
names of individuals, companies, brands, and products. All of these names are
fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which
illustrate programming techniques on various operating platforms. You may copy,
modify, and distribute these sample programs in any form without payment to
IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating
platform for which the sample programs are written. These examples have not
been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or
imply reliability, serviceability, or function of these programs. You may copy,
modify, and distribute these sample programs in any form without payment to
IBM for the purposes of developing, using, marketing, or distributing application
programs conforming to IBM's application programming interfaces.
Trademarks
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of
International Business Machines Corporation in the United States, other countries,
or both. If these and other IBM trademarked terms are marked on their first
occurrence in this information with a trademark symbol (

or

), these symbols
indicate U.S. registered or common law trademarks owned by IBM at the time this
information was published. Such trademarks may also be registered or common
60 IBM SmartCloud Provisioning: Installing and configuring
law trademarks in other countries. A current list of IBM trademarks is available on
the Web at "Copyright and trademark information" at http://www.ibm.com/legal/
copytrade.shtml.
Microsoft, Windows, Windows NT, and the Windows logo are trademarks of
Microsoft Corporation in the U.S. and other countries.
UNIX is a registered trademark of The Open Group in the United States and other
countries.
Linux is a trademark of Linus Torvalds in the United States, other countries, or
both.
Java and all Java-based trademarks and logos are trademarks or registered
trademarks of Sun Microsystems, Inc. in the U.S., and other countries.
Other company, product, and service names may be trademarks or service marks
of others.
Notices 61
62 IBM SmartCloud Provisioning: Installing and configuring
Index
A
architecture 1
C
Compute Node 1
Compute Nodes
installation 11
customer support
see Software Support 56
E
education 55
F
fixes, obtaining 55
I
IBM Redbooks 55
IBM support assistant 55
Internet, searching to find software problem resolution 55
K
kernel services
installation 21
N
nodes 1
P
problem determination
describing problem for IBM Software Support 58
determining business impact for IBM Software Support 57
submitting problem to IBM Software Support 58
problem resolution 55
product
architecture 1
product nodes 1
PXE Server 1
setup with script 9
R
Redbooks, IBM 55
S
software support 55
Software Support
contacting 56
Software Support (continued)
describing problem for IBM Software Support 58
determining business impact for IBM Software Support 57
submitting problem to IBM Software Support 58
Storage Nodes
installation 11
support 55
support assistant 55
support information 55
Z
Zookeeper Server 1
Copyright IBM Corp. 2011 63
64 IBM SmartCloud Provisioning: Installing and configuring

Product Number: 5725-C88

S-ar putea să vă placă și