Sei sulla pagina 1di 52

 

 
TurboLAMP Deployed 
 
 
      ...  ​
a TurboLAMP Stack Cookbook 

 
 
 
 

Version 1.0 
May 6, 2015 

Antonio Rosales (Canonical) 
Ashley Lai (Canonical) 
Charles Butler (Canonical) 
Matt Bruzek (Canonical) 
Randall Ross (Canonical) 
… and others 

     

 
 
 
 
 

This cookbook is based on the original white paper: 
“TurboLAMP: The LAMP Stack for Today’s Demanding Application 
Workload Requirements” 

Original White­paper Authors: 
Amy Anderson, Mickey Hoter ­ Zend 
Roger Levy ­ MariaDB 
Troy Peterson, Tim Robinson, Bruce Semple ­ IBM 
Antonio Rosales, Ubuntu (Canonical) 
Matthew Sheard ­ Mellanox 

1. EXECUTIVE OVERVIEW 

Why TurboLAMP? Three words: ​ Double​  the performance. And, why use this cookbook? Four 


words: Deploy quickly and consistently. 
 
In other words, you will need ½ the number of machines to run the same workloads. If you 
use this stack, you will potentially gain significant competitive advantage. And by using this 
cookbook, you’ll save countless hours of manual configuration and the pain that results from 
errors and re­work. 

1 .1 THE NEED FOR A TURBO STACK ­ THE LONGER STORY 

Today’s application market is experiencing an explosion around applications that deliver 
information from troves of data to a myriad of end users devices. Businesses are retrieving 
data from their “traditional” systems of record— e.g. ERP, SCM, HRM  that have long run the 
business—and delivering it through “systems of engagement.”  The information is 
personalized, localized, and curated for the information consumer. 


The de facto standard for building these systems of engagement is the “LAMP” stack: 

● L​
inux (as the core of an operating system, i.e. the kernel),  
● A​pache web server, 
● M​ariaDB (or MySQL) open source relational database, and  
● P​
HP as the development language.  

Historically, the target hardware platform for LAMP stack solutions has been mostly 
Intel­based. For years, Intel had a low­end server price advantage, upon which the LAMP 
stack had its open source beginnings. Over time, the POWER processor family has steadily 
and dramatically improved its price to performance ratio. Now, entry­level systems with 
POWER8 processors are affordable for ​ any​ business. At the same time, LAMP solutions have 
grown to support many business critical systems of engagement, where more powerful, 
scalable, and reliable hardware systems are required. 

An excellent example of a system of engagement is ecommerce. Thousands of small and 
medium businesses have built web and mobile commerce applications using Magento, which 
is built on LAMP. While Magento provides the functionality and price point that works for many 
businesses, it often suffers from performance problems. If a simple re­hosting could make 
Magento run faster, millions of customers would enjoy a better online experience, and the 
thousands of businesses supporting them could drive more revenue, customer satisfaction, 
and profit. 

The goal of this cookbook is to help you demonstrate that by simply re­hosting a PHP 
application (Magento) on POWER8 running an optimized LAMP stack, the e­commerce site 
automatically​
will run faster, ​ . In this paper, we’ll describe and provide a recipe for a Proof of 
Concept that demonstrates this performance boost. 

Ubuntu (Canonical) has teamed with OpenPOWER Foundation members Mellanox and IBM 
and open source middleware leaders MariaDB and Zend and to produce Turbo LAMP, a high 
performance LAMP stack to meet the growing performance demands of today’s business 
needs. IBM’s Linux only scale­out servers provide exceptional performance at competitive 
pricing, resulting in faster response times and higher throughput at a lower total cost than x86 
servers. 

Linux administration skills can be leveraged. Mellanox 40 Gb/s networking infrastructure 
ensures Turbo LAMP can stand up to the most demanding data transfer requirements. 
Furthermore, leveraging PCI­passthrough, a new PowerKVM technology, enables throughput 
of over 37 Gb/s between VMs. A robust middleware provides additional benefits to Turbo 
LAMP. MariaDB has been optimized to the POWER8 architecture to manage 10s of TB of 


data and process transactions at over twice the rate vs x86. Zend Server, the market leading 
PHP server, rounds out the stack enabling PHP applications to run on this high performance, 
reliable and secure infrastructure. To further the value of Turbo LAMP, Ubuntu MaaS is used 
to automate setting up the VMs and Ubuntu Juju to orchestrate deployment of the middleware 
and application components. This not only enables you to get Turbo LAMP up and running 
quickly, it ensures your implementation is configured for performance. 

1.2 THE STACK 

The Turbo LAMP stack is shown in ​ Figure 1​  below. This stack is a result of tight collaborative 


relationships between IBM and key component providers from the OpenPOWER Foundation. 
Each partner brought its specific expertise to the stack as follows: 

● IBM​ provided Power Systems with POWER8, and PowerKVM virtualization 
● Mellanox​  provided high speed data transfer capabilities, 
● Ubuntu​  (created and supported by Canonical): provided a highly curated, 
cloud­centric open­source operating system (with Linux kernel and little endianness). 
● MariaDB​  provided the database. 
● Zend​ provided the PHP application engine. 

This high performance stack enables PHP applications such as Magento and WordPress to 
supercharged​
be plugged in to create a ​  web application platform. 


 
Figure 1: Turbo LAMP Solution Components 

2. SOLUTION COMPONENT DESCRIPTIONS 

This solution provides two major benefits: 

1. Improves time­to­value by automating the deployment steps.  
2. Provides much higher performance over an x86 based LAMP stack.  

This section describes the components of the Turbo LAMP solution that make this possible. 

2.1 POWER8 

With the rise of cloud computing and mobile technologies the desire would be to have a 
LAMP stack that can be optimized for dynamic scale out as well as scale up virtualized 
infrastructures that can take advantage of the capabilities of the latest POWER8 architecture 
from IBM and its OpenPOWER partners. 


Building upon the collaboration gained with POWER8 and the OpenPOWER Foundation, IBM 
is uniquely positioned to deliver a more robust and high performing stack by working with key 
component providers while still allowing interchangeability of the components. 

The POWER8 design has many performance advantages over x86 for a LAMP solution. The 
cores run at a higher speed than x86 processors and have 8 threads per core, 4 times the 
threads than x86 processors. These POWER8 cores have 16 execution pipelines, larger 
internal bandwidth and larger caches to efficiently handle massive data volumes. Additionally, 
the open interfaces of the POWER8 processor include up to 96 GBps of integrated Peripheral 
Component Interconnect Express (PCIe) Gen3. 

IBM has introduced a line of Linux only scale­out servers with POWER8 processors such as 
the Power Systems S822L, optimized for Linux, delivering superior price­performance over 
x86 servers. These servers are priced competitively with commodity x86 servers yet provide 
higher performance, better reliability and superior security than x86 servers. IBM Power 
Systems are well known for their reliability, due to the servers Reliability, Availability and, 
Serviceability (RAS) features. These are some of the features available on IBM POWER8 
servers family: 

● Redundant bits in the cache area 
● Innovative ECC memory algorithm 
● Redundant and hot­swap cooling 
● Redundant and hot ­swap power supplies 
● Self­diagnoses and self­correct errors during run time 
● Automatic reconfiguration to mitigate potential problems from suspected hardware 
● Self­heal or automatically substitute good components for failing components 

Power System’s integrated security architecture results in reduced number of intrusions and 
lower security related costs compared to x86. For more information about the IBM Power 
systems RAS and security features, see IBM Power System S812L and S822L Technical 
Overview and Introduction, REDP­5098 
(http://www.redbooks.ibm.com/abstracts/redp5098.html?Open). 

2.2 POWER KVM 

PowerKVM provides an open virtualization option for Power servers. PowerKVM uses the 
same standard interfaces as KVM on x86. This allows using the same tools to manage 
PowerKVM that KVM administrators are accustomed to, including OpenStack tools. 

Turbo LAMP is leveraging PCI I/O 
Passthrough, which IBM has 

included as a technology preview in PowerKVM 2.1. This technology provides a PowerKVM 
guest direct and exclusive access to an I/O device. This isolation results in no sharing of CPU, 
memory or network interface. For Turbo LAMP we are using PCI I/O Passthrough to connect 
the VMs directly to the Mellanox adapters, maximizing the throughput and reducing the 
latency between LAMP components. This makes Turbo LAMP ideal for applications 
consuming high network bandwidth. 

2 .3 UBUNTU 14.04. 

Ubuntu Server 14.04 is the latest Long Term Stable (LTS) release supported by Canonical for 
five years. Ubuntu is a complete operating system with built­in support for POWER8 Little 
Endian. It is the leading platform for scale­out computing. Whether you want to deploy an 
OpenStack cloud, a Hadoop cluster, or a Turbo Lamp Stack, Ubuntu Server delivers the best 
value scale­out performance. 

With complete toolchain and package support for POWER8 Little Endian, Ubuntu Server 
14.04 LTS provides the software foundation for the Turbo Lamp Stack. Ubuntu Server 14.04 
LTS runs as a Power KVM guest hosting MariaDB, Zend Server, and the latest Mellanox 
drivers all tuned for POWER8 Little Endian. 

2. 4 MELLANOX SWITCHES & ADAPTERS 

2.4.1 Adapters 

IBM POWER8 PCIe3 LP 2­Port 40GbE NIC RoCE QSFP+ Adapter FC EC3A/EC3B 

The Mellanox ConnectX­3 family of adapters provide the fastest bandwidth and lowest latency 
interconnect solutions. Built around the fastest interconnect technology of 10/ 40 Gb Ethernet. 
The Mellanox ConnectX­3 family of adapters enables network fabrics to provide the fastest 
data transfer and most effective utilization of compute and storage. This provides the most 
optimal environment for business application stacks with inter­component communications 
requirements. 

2.4.2 Switches 

MSX1036B­2SFS 

The Mellanox Ethernet Switch Family delivers the highest performance and port density with a 
complete solution enabling converged data centers to operate at any scale while reducing 
operational costs and infrastructure complexity. This family includes a broad portfolio of 


Top­of­Rack (TOR) switches that range from 12 to 64 ports and support 10/40/56Gb/s per 
port. These switches allow IT managers to build cost­effective and scalable switch fabrics for 
small to large clusters up to 10's­of­thousands of nodes. Mellanox eases the scaling of the 
enterprise fabrics by providing the lowest latency and highest bandwidth. This allows IT 
managers to deal with serving the company's business needs, while solving typical 
networking issues such as congestion and addressing inefficiencies generated by adding 
unnecessary rules and limitations when the network resources are insufficient. 

2.4.3 Cabling 

Mellanox cables are a cost­effective solution for connecting high bandwidth fabrics, extending 
the benefits of Mellanox's high­performance InfiniBand and 10/40/56GbE adapters throughout 
the network. 

In addition to meeting or exceeding IBTA and IEEE standards, Mellanox Certified cables are 
tested on Mellanox equipment to ensure optimal signal integrity and the best end­to­end 
performance. Every cable and transceiver is cluster tested to BER ­15 which translates to 
1,000X fewer transmission errors than many competing products. Fewer transmission errors 
mean fewer "retries" and higher system performance. 

2.5 ZEND SERVER 

2.5.1 PHP and Web Server 

Zend Server provides a complete, reliable and secure PHP stack, bundling over 80 of the 
most popular PHP extensions and libraries. Whether on Apache, nginx or IIS ­ Zend Server 
provides you with a consistent PHP environment across all major operating systems, for both 
development and production. 

Zend Server allows you to easily manage your PHP configuration settings to fit the needs of 
your applications ­ whether on a single server or a large cluster. 

2.5.2 Deployment 

Streamline and automate the process of deploying applications using Zend Server 
Deployment. 

Eliminate key sources of deployment failures, and ensure consistency across development, 
staging and production, by using application packages containing your code, deployment 


scripts, dependencies, metadata and installation parameters. Code libraries can be 
abstracted out from apps and managed centrally, simplifying dependencies and updates. 

2 . 5 . 3 Development  

Z­Ray 

Using Zend Server Z­Ray is akin to wearing X­Ray goggles, effortlessly giving you deep 
insight into how their code is running as you are developing it – all without having to change 
any of your habits or workflow. With Z­Ray, you can immediately understand the impact of 
their code changes, enabling you to both improve quality and solve issues long before your 
code reaches production. In addition to the obvious benefits of this ‘Left Shifting’ – better 
performance, fewer production issues and faster recovery times – using Z­Ray is also 
downright fun! 

2.5.4 Performance and Troubleshooting 

Installed on Zend Server, your apps are guaranteed to run faster than before. You can 
squeeze even more performance out of them using the following features: 

Running jobs using Zend Job Queue allows executing time­consuming jobs asynchronously, 
removing application bottlenecks and improving end user experience. 

Using Zend Page Cache speeds up recurring access to PHP pages, by caching the entire 
output of specific URLs. Can't cache the entire page? Use the Zend Data Cache API to avoid 
computing the same data again and again. 

When something goes wrong with your apps, you need to know about it. Whether it's a slow 
page or a runtime error ­ Zend Server’s monitoring helps you find out precisely what 
happened and when ­ as well as giving you all the information you need to fix it. When 
something does go wrong, Code Tracing provides you with the equivalent of a black­box 
containing the full function­by­function flow of the problematic PHP request. 

2.5.5 Clustering 

Need to scale up your website? A modern, robust and scalable architecture allows you to 
easily scale up your production environment and scale­out environments. Based on a 
de­centralized management system that is comprised of identical components, Zend Server 
ensures high availability and full support of cloud environments. With Zend Session 


Clustering, session data is shared between multiple servers in your cluster, ensuring session 
continuity in case of system failure, and high availability of your system. 

2.5.6 Compliance and Integration 

Zend Server helps you meet the governance and compliance standards of your organization. 
Use the Audit Trail to track changes made to your system configuration, whether made via the 
UI, API or directly on the file system. 

The user management system allows you to control access to Zend Server, and enables 
developers to safely access production metrics and diagnostics, with read­only permissions. 
Use the built­in user management, or authenticate against an existing corporate LDAP server. 

Zend Server is fully API­enabled, meaning you can automate all of its various management 
actions, and integrate with external systems ­ including your Continuous Delivery cycle. 

2.6 MariaDB 

THE DATABASE HEART OF TURBO LAMP 

A high­performance, open source database has been a core component of the LAMP stack 
since it originated with MySQL back in the 1990s. MySQL was a pioneer in delivering a 
developer­friendly, easily deployed relational database well­suited to the demands of the web. 
Today’s web­scale applications are the descendants of those first Internet sites. These 
applications need a highly reliable database that can handle multi­terabyte data volumes and 
millions of users, while guaranteeing transactional integrity and continuous availability. So it is 
only fitting that the Turbo LAMP stack features MariaDB, the direct descendent of MySQL, as 
its core data management solution. 

MariaDB is application­compatible with MySQL, so your existing applications just work. With a 
vendor­independent community at the heart of its development and many of the original 
inventors of MySQL steering its course, MariaDB is a more advanced implementation of the 
world’s most widely adopted RDBMS technology. It isn’t surprising then, that many of the 
most famous web­scale companies and web sites make extensive use of MariaDB in their 
infrastructure. Now with Turbo LAMP and POWER8 technology, this mature database is 
ready to deliver cost­effective data management to a new class of mission­critical business 
applications. 

2.6.1 OSS Relational Technology Refined 

10 
MariaDB is an ACID­compliant, transactional database that implements the proven relational 
data model embodied by the standard SQL query language. Its table­structured storage 
consisting of rows corresponding to business records, and columns representing the fields of 
those records is ideally suited to managing business data. Furthermore, MariaDB’s 
transactional semantics guarantee the consistency of your vital data. 

Consider the requirements of a high­performance enterprise eCommerce solution such as the 
Magento platform. Magento is built on industry standard open source infrastructure, and 
MariaDB fits right in. 

Magento supports high transaction volumes and large numbers of simultaneous visitors. It 
needs a high­performance, scalable database back­end like MariaDB to serve content, 
manage customer accounts and shopping carts, and process purchasing transactions. 
MariaDB’s compatibility with MySQL, and its transactional data model insure that financially 
sensitive applications such as Magento process customer orders correctly and consistently. 

2.6.2 MariaDB and POWER8 

Complementary Architectures 

MariaDB has been further optimized to fully leverage POWER8. The database brings a 
number of important capabilities to the Turbo LAMP platform, including: 

● The ability to handle databases with 10s of terabytes of data efficiently, using an 
improved version of the standard InnoDB storage engine familiar to MySQL DBAs, as 
well as specialized engines such as TokuDB with sophisticated compression and 
indexing, and Spider with table­based sharding for managing very large tables 
efficiently. 
● Tuned multi­threading including an improved thread pool management system 
exclusive to MariaDB 10. Multi­threading advances take advantage of the large 
number of processor cores and concurrent thread capabilities of the POWER8 
architecture. 
● Memory management features designed to optimize database performance using 
efficient buffer pool and cache implementations. Servers such as Power Systems with 
POWER8 processors which can be configured with large amounts of DRAM enjoy 
dramatically faster performance by minimizing access to slow secondary storage. 
● Exclusive parallel slave architecture which delivers nearly 10x better cluster replication 
performance than MySQL. MariaDB 10’s advanced replication algorithms will likely 
deliver an even bigger boost when coupled with the speed and throughput of Mellanox 
networking in the Turbo LAMP architecture. 

11 
2.6.3 IBM and MariaDB:  

Partners In Turbo LAMP Performance Tuning 

Porting MariaDB 10 to the POWER8 architecture has been a collaborative effort between the 
database experts at MariaDB, and IBM’s system architects. The engineering teams have 
jointly tuned the database to optimize performance. 

MariaDB 10 as a foundation for the Turbo LAMP platform is ideally suited to deploy mission 
critical applications at web­scale. IBM and MariaDB have worked together to harden and 
optimize the database, making Turbo LAMP even more ready to handle these advanced use 
cases. 

2.7.0 Creating Ubuntu KVMs 

In order for PowerKVM to be useful you must first create Ubuntu virtual machines. This is 
done using Kimchi, a web based KVM management interface. Kimchi is traditionally available 
on port 8001 of the PowerKVM installation. 

2.7.1 Import Ubuntu image 

On a fresh install, an Ubuntu image will need to be imported to be used when creating new 
virtual machines. 

2.7 JUJU SERVICE MODELING 

Juju is an open source, universal modeller for software running on machines. It can be used 
to deploy any workload to any substrate using any configuration management tool. Juju 
makes it easy to configure, manage, maintain, deploy and scale solutions to any public, 
private, or hybrid cloud from a powerful GUI or alternatively from a command­line. Juju 
describes how services should be deployed and interacted with in what are called “Charms.” 
Charms distill the development and operational knowledge needed to deploy a service. This 
includes configuration, deployment, connections [to other services], and scaling. Charms also 
embed the best practices and performance tuning for a given service operating in a specific 
environment. A great way convey what a charm is in laymans terms: “Executable Whitepaper” 

With this paradigm shift, now the environment can be tuned for optimal performance of the 
service. Furthermore, the deployment of the service can be repeated in different environments 
or the same environment and shared with colleagues. The Charm can also expose 
12 
configuration parameters the user may want to set such as to install Magento or Wordpress in 
the Zend­Server charm. Thus a Juju user can focus on the solution and not worry about the 
operational aspects of the workload deployment as these are encapsulated in the Charm. You 
are also free to create workload representations and share them as a Bundle ­ which includes 
all the charms that make up a workload, and the respective configuration.  

Choose Your Deployment 

Juju provides the opportunity to deploy a solution (consisting of workloads) on a single 
machine or multiple machines, bare metal or in the cloud, private openstack or on your laptop. 
Deploying a solution initially on a single machine provides a good opportunity to try out the 
TurboLAMP stack in a simple implementation to assess and “kick the tires” before introducing 
additional cloud resources. Then, when you are confident you understand the configuration 
and how the components of the stack work together, you can deploy the solution on multiple 
machines (or KVM’s) and create an elastic cloud that you can scale out to meet customer 
demand. 

The two methods discussed here are “Installation on a Single Machine,” and “Installation on 
Multiple Machines.” The single machine method makes use of the Juju Local Provider to 
deploy the solution into Linux Containers (lxc) on a single machine or KVM.  The Multiple 
machine method is meant for scale­out cases that are targeted for deployment looking to 
place workloads on specific machines/KVMs and to scale­out as needed. 

2.7.1 Installation on a Single Machine 

In this example, we will install the solution on a single Power8 machine utilizing Juju’s local 
provider service.  

Create Your Juju Command­and­Control System 
 
The LXC local provider enables you to run Juju on a single Power8 system. This way you can 
simply inspect, test, and evaluate the TurboLAMP stack without all the complexities of getting 
many machines networked and configured.  
 
Please ensure that you are running a the recent long­term support (LTS) version of Ubuntu, 
which at time of writing is ​  ​
Ubuntu​14.04​

 
Start by adding the stable release PPA: 
sudo apt­add­repository ppa:juju/stable 
sudo apt­get update 

13 
Then install juju and the local provider with the following command(s): 
sudo apt­get install juju­local juju juju­quickstart  
 
NOTE:​  I​nstallations on other (non­Ubuntu) systems are outside the scope of this document. If you are not 
running Ubuntu please consult your operating system distribution's documentation for instructions on 
installing the LXC userspace tools and the MongoDB server. Juju requires a MongoDB server built with SSL 
support. 

 
Configuration 
You should start by generating a generic configuration file for Juju and then switching to the 
local provider by using the command: 
juju generate­config 
juju switch local 
 

This will generate a file,​
environments.yaml​ ​
(if it doesn't already exist), which will live in your

directory (and will create the directory if it doesn't already exist). 
~/.juju/​
Note:​
If you have an existing configuration, you can use j​
uju generate-config --show​ to
output the new config file, then copy and paste relevant areas in a text editor etc. 

 
The generic configuration sections generated for the local provider will look something like 
this, though Juju will generate this automatically you usually don't need to edit it: 
    # https://juju.ubuntu.com/docs/config­local.html 
    local: 
        type: local 
        # root­dir holds the directory that is used for the storage files and 
        # database. The default location is $JUJU_HOME/<env­name>. 
        # $JUJU_HOME defaults to ~/.juju. Override if needed. 
        # root­dir: ~/.juju/local 
        # storage­port holds the port where the local provider starts the 
        # HTTP file server. Override the value if you have multiple local 
        # providers, or if the default port is used by another program. 
        # storage­port: 8040 
        # network­bridge holds the name of the LXC network bridge to use. 
        # Override if the default LXC network bridge is different. 
        # network­bridge: lxcbr0 
        # The default series to deploy the state­server and charms on. 
        # Make sure to uncomment the following option and set the value to 
        # precise or trusty as desired 
        # default­series: trusty 
 
 
Running Juju with this configuration the storage files and the database will be located in the 
directory specified by the environment variable ​
$JUJU_HOME​ , which defaults to ​
~/.juju/​
. By 
14 
uncommenting and setting ​ root­dir​
 this location can be changed as well as the ports of the 
storage and the shared storage. This may be useful in the case of multiple parallel running 
local providers or conflicts with other programs on your system. 
 

Bootstrapping and Destroying 
The usage of LXC Linux Containers requires root privileges for some steps. Juju will prompt 
for your password if needed. Juju cannot be run under sudo because it needs to manage 
permission as the real user. 
Note:​
If you are running a firewall such as u
​fw​
, it may interfere with the correct
operation of Juju using LXC containers and might need to be halted. 

If you have used the local provider in the past when it required ​sudo​, you may need to manually clean up 
some files that are still owned by root. If your local environment is named "local" then there may be a 
local.jenv owned by root in the JUJU_HOME directory (~/.juju). After the local environment is destroyed, 
you can remove the file like this: 
sudo rm ~/.juju/environments/local.jenv 
 
 

Fast LXC creation 
The local provider can use lxc­clone to create the containers used as machines. This feature 
is controlled by the ​
lxc­clone​
 option in environments.yaml. The default is "true" for Ubuntu 
14.04 and later, and "false" for earlier Ubuntu releases. So, if you are using a release that 
pre­dates 14.04 then ensure that you include the “lxc­clone: true” entry that is indicated below. 
Enable lxc­clone in environments.yaml like this: 
local: 
    type: local 
    lxc­clone: true 
 
The local provider is btrfs­aware. If your LXC directory is on a btrfs filesystem, the clones use 
snapshots and are much faster to create and take up much less space. There is also support 
for using aufs as a backing­store for the LXC clones, but there are some situations where aufs 
doesn’t entirely behave as intuitively as one might expect, so this must be turned on explicitly 
in​​ .
environments.yaml​
local: 
    type: local 
    lxc­clone­aufs: true 
 
When using clone, the first machine to be created will create a "template" machine that is 
used as the basis for the clones. This will be called ​ , so for a trusty 
juju-<series>-template​
(Ubuntu 14.04) image, the name is ​ ju​
ju-trusty-template​.​
 Do not modify or start this image while 
a local provider environment is running because you cannot clone a running lxc machine. 

15 
These templates are generated at the time the fist charm deployment is requested (not 
bootstrapping). 

Congratulations! Juju is now installed and configured to use your local machine. Please 
proceed to the section entitled ​
Deploying the TurboLAMP Stack Bundle 

2.7.2 Installation on Multiple Machines 

In this example we will deploy the solution on more than one power machine (or KVMs). We 
will enlist more machines to grow an elastic private cloud. 

MaaS can be setup on a VM on the same network with the PowerKVM or on a different 
network.  The MaaS VM needs be created with Ubuntu as an OS with MaaS installed on this 
node.  The VM can be created using libvirt such as virt­install command or the Kimchi GUI 
that came with PowerKVM.  The Kimchi project can found at 
https://github.com/kimchi­project/kimchi​ , the Kimchi GUI can be accessed through port 8000 
http://pKVM.ip.address:8000​ .  The virt­install command man page can be found at 
.  
http://linux.die.net/man/1/virt­install​

This section provides instructions on how to install MAAS and then configure and deploy the 
TurboLAMP stack against the MAAS infrastructure. But first, a little bit of context about MAAS 
is needed. 

MAAS Explained 

Metal as a Service​  (MAAS) is an open source tool that brings the language 
of the cloud to physical servers. It makes it easy to setup the hardware on 
which to deploy any service that needs to scale­out dynamically. MAAS 
allows system administrators to treat their private bare metal hardware, such 
as POWER8 Little Endian servers, as an elastic cloud. MAAS enlists 
physical or virtual machines through which Juju can deploy workloads onto, be it on the bare 
metal or through a virtualization mechanism such as Linux Containers (LXC) or Kernel­based 
Virtual Machine (KVM). 

In the Turbo LAMP Stack Solution MAAS was provisioned onto a “command­and­control” VM. 
Five other separate VMs were provisioned, and enlisted in MAAS as resources to deploy 
services onto by their MAC addresses. 

16 
Each VM was specifically configured to have resources needed for the corresponding 
workload. Specifically, the VMs that MariaDB and Zend would be deployed to had a Mellanox 
NIC attached to them, and the appropriate memory and CPU resources were also provisioned 
to meet the needs of the workloads. 

When MariaDB, Zend­Server, and Mellanox services were ready to be deployed Juju would 
make requests to MAAS server via the MAAS API. 

MAAS would then: 
● Power on the PowerKVM 
● Install a fresh Ubuntu 14.04 LTS image onto the target Power KVM 
● Ready the environment for Juju to deploy services 
● Setup the MAAS region controller and cluster controller on the KVM HOST 

(Note that every subsequent KVM that is created on that machine will be under MAAS 
supervision which will allow us to communicate with the bare metal, i.e. to orchestrate VM's 
on the bare metal. This will require a minimum of two (2) network interface cards, one to 
support the private network for MAAS and one for your regular vlan traffic.) 

Installing MAAS1  
(NOTE: We’re installing MAAS version 1.7 in this cookbook. Instructions are based on those documented here. 
http://maas.ubuntu.com/docs/install.html​

 

1
 © MAAS Documentation Copyright 2012­2014, MAAS Developers. Ubuntu and Canonical are registered trademarks of 
Canonical Ltd​

17 
There are two main ways to install MAAS 
 
1. From Ubuntu’s package archive on an existing Ubuntu install. 
2. As a fresh install from Ubuntu Server install media. 

Installing MAAS from the archive 
Installing MAAS from packages is straightforward. A collection of packages are required to 
make a working MAAS install, but for convenience, they have been gathered into a virtual 
package called ‘maas’ which will install the necessary components for a ‘seed cloud’, that is a 
single server that will directly control a group of nodes. The main packages are: 
 
● maas ­ seed cloud setup, which includes both the region controller and the cluster 
controller below. 
● maas­region­controller ­ includes the web UI, API and database. 
● maas­cluster­controller ­ controls a group (“cluster”) of nodes including DHCP 
management. 
● maas­dhcp/maas­dns ­ required when managing dhcp/dns. 
 
 
 
 

Install the Packages 
At the command line, type: 
 
$ sudo add­apt­repository ppa:maas­maintainers/stable 
$ sudo apt­get update 
$ sudo apt­get install maas libvirt­bin curtin 
 
You will see a list of packages and a confirmation message to proceed. The exact list will 
depend on what you already have installed on your server, but expect to add about 200MB of 
files. The configuration for the MAAS controller will automatically run and display this config 
screen: 

18 
 
 
Here you will need to enter the hostname for where the region controller can be contacted. In 
many scenarios, you may be running the region controller (i.e. the web and API interface) 
from a different network address, for example where a server has several network interfaces. 
Once the configuration scripts have run you should see this message telling you that the 
system is ready to use: 
 

 
 
The web server is started last, so you have to accept this message before the service is run 
and you can access the Web interface. Then there are just a few more setup steps. Please 
refer to ​
Post­Install Tasks ​
below. 

19 
Installing MAAS from Ubuntu Server boot media 
If you are installing MAAS as part of a fresh install it is easiest to choose the “Multiple Server 
install with MAAS” option from the installer and have pretty much everything set up for you. 
Boot from the Ubuntu Server media and you will be greeted with the usual language selection 
screen: 

 
 
On the next screen, you will see there is an entry in the menu called “Multiple server install 
with MAAS”. Use the cursor keys to select this and then press Enter. 
 

20 
 
The installer then runs through the usual language and keyboard options. Make your 
selections using Tab/Cursor keys/Enter to proceed through the install. The installer will then 
load various drivers, which may take a moment or two. 
 

 
 
The next screen asks for the hostname for this server. Choose something appropriate for your 
network. 

 
 
Finally we get to the MAAS part! Here there are just two options. We want to “Create a new 
MAAS on this server” so go ahead and choose that one. 
21 
 

 
 
The install will now continue as usual. Next you will be prompted to enter a username. This 
will be the admin user for the actual server that MAAS will be running on (not the same as the 
MAAS admin user!) 

 
 
As usual you will have the chance to encrypt your home directory. Continue to make 
selections based on whatever settings suit your usage. 

22 
 
 
After making selections and partitioning storage, the system software will start to be installed. 
This part should only take a few minutes. 

 
Various packages will now be configured, including the package manager and update 
manager. It is important to set these up appropriately so you will receive timely updates of the 
MAAS server software, as well as other essential services that may run on this server. 

23 
 
The configuration for MAAS will ask you to configure the host address of the server. This 
should be the IP address you will use to connect to the server (you may have additional 
interfaces e.g. to run node subnets) 

 
 
The next screen will confirm the web address that will be used to the web interface. 

24 
 
After configuring any other packages the installer will finally come to an end. At this point you 
should eject the boot media. 

 
 
After restarting, you should be able to login to the new server with the information you 
supplied during the install. The MAAS software will run automatically.  
 

25 
 
 
NOTE:​  The maas­dhcp and maas­dns packages should be installed by default, but on older 
releases of MAAS they won’t be. If you want to have MAAS run DHCP and DNS services, you 
should install these packages. Check whether they are installed with: 
 
$ dpkg ­l maas­dhcp maas­dns 
 
If they are missing, then: 
$ sudo apt­get install maas­dhcp maas­dns 
 
And then proceed to the post­install setup below. 

Post­Install tasks 
Your MAAS is now installed, but there are a few more tasks remaining. Use a web browser to 
connect to the region controller. You should see that MAAS is running, but there will likely 
also be some errors: 
 

26 
 
 
The on screen messages (above) indicate that there are no boot images present, and that 
you cannot login because there is no admin user. 

Create a superuser account 
Once MAAS is installed, you will need to create an administrator account as follows: 
 
$ sudo maas­region­admin createadmin ­­username=root 
­­email=MYEMAIL@EXAMPLE.COM 
 
Substitute your own email address for MYEMAIL@EXAMPLE.COM. You may also use a 
different username for your administrator account, but “root” is a common convention and 
easy to remember. The command will prompt for a password to assign to the new account. 
You can run this command again for any further administrator accounts you may wish to 
create, but you need at least one. 

Log in on the server 
On the region controller’s main web page, you should now see a login screen. Log in using 
Username​
the ​ Password​
 and ​  that you have just created. 
 

27 
 

Import the boot images 
By default, MAAS will check for and download new Ubuntu images once a week. To avoid 
having to wait that long for you first update, you may want to download them manually the first 
time, once you have set up your MAAS region and cluster controllers. (If you add another 
cluster controller later remember to do it again, so that the new cluster controller also has the 
images.) 
 
Import images can be done from the web user interface.  Go to the MAAS main page and 
click on the “boot images” link in orange on the top of this page. 
 

 
<File: rs­bootImageImport.jpg>  
 

28 
On this screen select Ubuntu release and ​
ppc64el​
 for the architecture. Then, click on the 
“Import images” button. 
 

 
<File: rs­bootImageImport1.jpg> 
 
A message and the spinning icon will appear to let you know that the import has started. 
 

 
<File: <rs­bootImageImport3.jpg> 
 

29 
It may take longer for the exact boot images you need to be downloaded. Give the import time 
to run until the script has had time to download several hundred megabytes from the archive 
server.  When the icon stops spinning click on “Apply changes” button (this step  may not be 
needed but just want to be sure). 
 

 
<File: rs­bootImageImport4.jpg> 
 

Basic configuration 
 
Once MAAS is installed, we can do some basic configuration.  The first step is to log into the 
command­line interface (CLI): 
 
$ APIKEY=`sudo maas­region­admin apikey ­­username root` 
$ maas login admin http://localhost/MAAS $APIKEY 
 
Once logged in, we need to generate a ssh key and add it to MAAS: 
 
$ ssh­keygen ­t rsa 
$ key=`cat ~/.ssh/id_rsa.pub ` 
$ maas admin sshkeys new ​
“​
key=$key​
” 
 
Once the we have a new SSH key, we can start configuring other options, such as the MAAS 
name: 
 
$ maas admin maas set­config name=maas_name value=CloudOne 
 

30 
PowerKVM Enlistment 
 

Prerequisites 
First you need to create the PowerKVM nodes that you will be enlisting into MAAS. This 
needs to be done with virsh, as MAAS will connect to virsh to retrieve the virtual machines. 
Using virsh is out of the scope of this document. 
 

Credentials
Make sure you can log in as root to the PowerKVM machine by copying your ssh key 
generated earlier to both the MAAS user and the root user on PowerKVM 
 
ssh­copy­id root@<host­IP> 
 
This will copy the identity file created during the previous step. Next we need to expand the 
MAAS user which MAAS uses during VM enlistment. First define a home for the MAAS user: 
 
sudo mkdir /home/maas 
sudo chsh ­s /bin/bash maas 
sudo cp ­R .ssh /home/maas/ 
sudo chown ­R maas:maas /home/maas 
 
Verify this all works by running virsh from maas to the root host 
 
sudo ­u maas bash ­c "virsh ­c qemu+ssh://root@10.245.64.14/system list ­­all" 
 
If the virsh command completes successfully then MAAS is ready to communicate with 
PowerKVM nodes 
 
 

Enlistment 
Before the enlistment, make sure the MAAS server is able to list the PowerKVM nodes from 
the host.  On the maas server type: 
 
$ virsh ­c qemu+ssh://root@<host­IP>/system list ­­all 
 

31 
 
rs­virshList1.jpg 
 
On the MAAS GUI, there may be some nodes that were added during creation.  Not all of 
them have all the necessarily power parameters.  These nodes can be deleted and the 
enlistment will add them back to the MAAS GUI with all the power parameters.  The nodes 
can be deleted by selecting the nodes and click on “Delete selected nodes” from the pull 
down menu above. 
 

 
rs­maasDeleteNodes.jpg 

32 
rs­mass0node.jpg 
 
Now it is time to enlist PowerKVM nodes into MAAS.   
 
Enlistment for MAAS on the same network
This feature is supported in MAAS 1.7.1.  The prefix_filter option specifies the nodes that 
managed by the MAAS server. 
$ uuid=$(maas admin node­groups list | grep uuid | cut ­d'"' ­f4) 
$ maas admin node­group probe­and­enlist­hardware $uuid model=powerkvm 
power_address=qemu+ssh://root@hostname/system power_pass=password 
prefix_filter=node 
 
For example, the system has VM nodes called node­group1­01 and node­group2­01.  After 
running the command with prefix_filter=node­group2, it would enlist node­group2­01 but 
would not touch node­group1­01. 

Enlistment for MAAS on different network


To enlist all the PowerKVM nodes into MAAS. 
$ uuid=$(maas admin node­groups list | grep uuid | cut ­d'"' ­f4) 
$ maas admin node­group probe­and­enlist­hardware $uuid model=powerkvm 
power_address=qemu+ssh://root@hostname/system power_pass=password 

33 
 
 
 

 
 
 
From the MAAS GUI, the hostname can be modified by selecting the node and hit the “Edit 
node” button. 

34 
 
 
The hostname can be replaced in the “Host name” field.  Note that on this page, the “Power 
ID” field contains the node name of the PowerKVM node. 

 
 

35 
 

Configure DHCP 
It is highly recommended to let MAAS to control DHCP: 
 
1. Follow the instructions at​Cluster Configuration​
 ​  to use the web UI to set up your cluster 
controller. 
2. Use the command line interface maas by first​ logging in to the API​
 ​  and then​ ​
following 
this procedure 
 
If you are manually configuring a DHCP server, you should take a look at​  ​
Manual DHCP 
configuration 

Configure switches on the network 
Some switches use Spanning­Tree Protocol (STP) to negotiate a loop­free path through a 
root bridge. While scanning, it can make each port wait up to 50 seconds before data is 
allowed to be sent on the port. This delay in turn can cause problems with some 
applications/protocols such as PXE, DHCP and DNS, of which MAAS makes extensive use. 
To alleviate this problem, you should enable​  ​
Portfast​
 for Cisco switches or its equivalent on 
other vendor equipment, which enables the ports to come up almost immediately. 
Once everything is set up and running, you are ready to​ start enlisting nodes​
 ​ . 

Create Your Juju Command­and­Control System 

In this section you will install Juju on the MAAS machine to create a “command and control 
system.” 
 
FIrst, obtain your credentials from MAAS and enter them into the ​ ​
environments.yaml
configuration file. located in the ​  directory. 
~/.juju​

 # https://juju.ubuntu.com/docs/config­maas.html 

    maas: 
        type: maas 
        maas­server: 'http://10.0.10.2/MAAS/' 
        maas­oauth: 
'FcR5QjLPVRLV7Rv2y9:dQJUEpGnr9bZfH4bC9:GVdZkFaQKVYRWcDwfFvKGzfA7fTAUH5E' 

36 
 

Next, ensure that your network environment allows access to TCP port 80 for downloading. If 
so, you can skip the indented section that follows. 

This solution is optimized for deployment on POWER8 Little Endian with Mellanox 
ConnectX­3 NIC (IBM POWER8 PCIe3 LP 2­Port 40GbE NIC RoCE QSFP+ Adapter FC 
EC#A/EC3B) distributing traffic between Zend Server and MariaDB. A Mellanox card should 
be attached to both the Zend Server instance/machine and MariaDB instance/machine. This 
particular solution was designed with MAAS in mind but can also be deployed on any Juju 
supported cloud or where Ubuntu SSH access is available. 

For Restricted (Blocked) Network Environments 
 
If you are in a restricted network environment (i.e one that does not allow downloading 
via TCP port 80) then you will need to download the TurboLAMP stack Charms 
manually from another system. This can be accomplished as follows:  
 
charm get cs:trusty/mariadb 
charm get cs:trusty/zend­server 
charm get cs:trusty/mellanox 
rsync ­avr mariadb ubuntu@machinename:/home/ubuntu/charms/trusty/mariadb 
rsync ­avr zend­server 
ubuntu@machinename:/home/ubuntu/charms/trusty/zend­server 
rsync ­avr mellanox ubuntu@machinename:/home/ubuntu/charms/trusty/mellanox 
 

Next, you will deploy your charms the easy way (by using Juju’s graphical user interface) and 
by using a Charm bundle that deploys all Charms simultaneously. This will all be done using 
Juju’s “drag and drop” simplicity. 

37 
2.7.3 Deploying the TurboLAMP Stack Bundle

A Bundle is collection of Charms that can be deployed in one entity to create a complete 
solution. 

After setting up your hardware environment, bootstrap and deploy the juju­gui: 

juju switch maas 
juju quickstart 

(Note: By using Quickstart you are automatically invoking the following commands which are 
presented here purely for reference) 
juju bootstrap 
juju deploy cs:trusty/juju­gui 
juju expose juju­gui 
juju status 

Look for the public­address for juju­gui ­ which will be listed in the status output 

           ​
juju status 

 
Enter the address above in your web browser. 

38 
In the subsequent deploy Juju GUI search for "turbo­lamp" . Choose to deploy the bundle to 
the Juju GUI canvas. 

From the Juju GUI, locate the bundle entitled TurboLAMP. Once located, drag the bundle 
onto Juju’s canvas. 

The Bundle may also be deployed by using the command line as follows: 

juju quickstart bundle:turbo­lamp/turbo­lamp 

In the TurboLAMP Bundle, the experts at MariaDB, Zend, and Mellanox have distilled their 
development, operational, best practices, and performance knowledge to deliver an optimal 
deploy on POWER8 Little Endian (ppc64el). The design goal was to to create an “executable 
white paper” so users don’t have to replicate the expertise at MariaDB, Zend, or Mellanox and 
can repeat the TurboLAMP solution in their local environment. 
The TurboLAMP Bundle available at the following location: 
https://jujucharms.com/turbo­lamp 

 
Figure 2: TurboLAMP Deployed 

To graphically represent the deployment topology the Juju GUI was also deployed as 
depicted in Figure 2 (above). It too is a Charm and provides a web based view of the 
deployed environment. In the default view one can see the services deployed and their 
connections. 

39 
Once the bundle is successfully deployed, you will see that all the Charms have a green 
status. The next step will be to configure each charm with the exact configuration parameters 
needed to make that Charm fully functional and operational. The figure below shows where to 
enter settings for Charms, in this case for the haproxy Charm. Each Charm will have a similar 
configuration area in the Juju GUI. 

Mellanox Charm 
The ​mellanox ​Charm is a special type of Charm called a subordinate. A subordinate Charm 
is colocated on the same machine as another service and shares the same file system. The 
VMs that MariaDB and Zend are deployed on needed newer Mellanox drivers, and 

40 
optimizations specific to POWER. Thus, having ​ mellanox​ as a subordinate Charm fits this 
need perfectly to install drivers and set performance tuning parameters. 
 
mellanox​
The ​  Charm is available at: ​
https://jujucharms.com/mellanox/trusty​
. The mellanox 
Charm can be configured in the Juju GUI as depicted below. 

MariaDB Charm 
The ​mariadb​ Charm installs an optimized binary for POWER8 Little Endian. Among other 
features the Charm provides a method for Zend to connect to and create databases which is 
most applicable to the TurboLAMP stack solution. The Charm has capabilities to connect to 
the Zend Server charm for PHP application serving as well as the Mellanox charm for high 
speed interconnects. The charm deploys an evaluation version of MariaDB which can be 
upgraded to the enterprise version via cham configuration settings, see details below on how 
to accomplish this. 

41 
The ​  Charm is available at: ​
mariadb​ https://jujucharms.com/mariadb/trusty 

Note that you will have to accept the EULA in the Charm via the config option. 
The mariadb Charm has a 60 day trial, after which, a licence key is required.  

You can buy license keys for MariaDB and then them set directly from the mariadb Charm​
 
Steps to upgrade from the “Community” version to the “Enterprise Evaluation” version of 
MariaDB: 
 
1. Obtain a ​username/password​  from the main MariaDB Portal located at 
http://mariadb.com​. 
(Upon registration, you will be provided with another repository to retrieve your 
“Enterprise Evaluation” version.) 
 
2. Enable this upgrade in the charm by entering this command: 
    ​
juju set mariadb enterprise­eula=true source="deb 
https://username:password@code.mariadb.com/mariadb­enterprise/10.0/repo/ubuntu 
trusty main" 

3. Finally, agree to all terms contained in the  `ENTERPRISE­LICENSE.md` file in the 
Charm directory 
 
 
Zend Charm 
The Zend Charm (called ​ zend­server​ )​installs the Enterprise 30 day trial version of Zend 
 ​
Server which is a framework to deploy and monitor PHP applications. Once the ​ zend­server 
charm is installed the Zend Server provides the options allowing the user to install Magento 
and/or Wordpress PHP applications. The ​ zend­server​  Charm also implements methods to 
connect to HAProxy load balancer to produce a Zend Server Cluster for scaling, methods to 
connect to MariaDB for a data warehouse, and connections to Mellanox for high speed 
interconnects.. Zend Server can be upgraded to the enterprise version once the user 
purchases the license from Zend, additional instructions on upgrading to the enterprise 
version below. 

The ​  Charm is available at:  ​
zend­server​ https://jujucharms.com/zend­server/trusty 

Get the public address of the zend­server Charm by typing:  ​
juju status zend­server 

The Zend server interface is available at ​
http://zend­server­address:10081/ZendServer​
. Go to 
the web interface to create the administrator and developer passwords. 

42 
 
Note that you will have to accept the EULA in the Charm via the config option. 
The zend­server Charm has a 30­day trial, after which, a licence key is required. You can buy and 
set license keys for Zend from the Zend GUI. Refer to the​ Using Zend’s GUI​  section shown below 

.  

Apache 

The Zend Server that is deployed by the ​  Charm ​
zend­server​ automatically​
 installs Apache, 
so no specific Apache Charm or Apache manual installation is required. 

Using Zend’s GUI 

Now that your bundle is deployed, you can access the Zend GUI from Juju’s GUI. 

43 
 

Next Steps 

Now that your solution is deployed, you can refer to the specific running instructions for Zend 
and MariaDB. 

3. PHYSICAL DEPLOYMENT CONSIDERATIONS 

IBM worked closely with Ubuntu (Canonical), MariaDB, Mellanox and Zend to build, test and 
tune Turbo LAMP at an IBM Innovation Center. ​ Figure 3​ shows the deployment of Turbo 
LAMP at the Innovation Center. The system on the left side of the figure, S822L ­ #1, has the 
Turbo LAMP stack deployed with 2 business applications, Magento and WordPress. This 
deployment, including configuration and tuning parameters, can be easily reproduced using 
Ubuntu MAAS and Juju with Juju Charms customized for Turbo LAMP deployment. The 
system hosting MAAS and Juju, S822L ­ #2, is depicted on the right side of Figure 3. 

44 
 
Figure 3: Sample Turbo LAMP Deployment 

3.1 IBM INNOVATION LAB SETUP 

The IBM Innovation Center provides a secure collaboration space for building out the Turbo 
LAMP ecosystem. The solution is deployed in the Innovation Center data center using 
industry­standard enterprise rack equipment. IBM S822L servers with PowerKVM are 
configured in a cluster with ethernet data networks for systems management and application 
data. Systems management cabling is built over 1Gbps Ethernet to all components in the 
topology. The systems management network allows a separation of the control interfaces 
available through Kimchi, MASS/Juju and ssh access to hypervisor and VMs in the Turbo 
LAMP stack. The Innovation Center infrastructure provides local NTP and DNS services to all 
components over the systems management network. 

The application data for TurboLAMP is carried across a dedicated 40Gbps Ethernet 
infrastructure implemented using the Mellanox MSX1036B­2SFS switch, Mellanox QSFP+ 
cables and the Mellanox ConnectX­3 40Gbps PCIe adapters for POWER8. The IBM S822L 
system is populated with 4 ConnectX­3 adapters in PCIe Gen3 16­bit slots. For the optimal 
performance on the application data network, each adapter is dedicated to a specific VM on 
the PowerKVM hypervisor using PCI­Passthrough. 

45 
In addition to using PCI­Passthrough, each VM configuration is tuned to provide the best 
performance in the Non­Uniform Memory Architecture (NUMA) architecture of the IBM S822L. 
To implement this tuning, the NUMA node proximate to the PCIe bus slot is determined. 
Then, the CPU and memory resources for the VM are mapped through the VM domain file 
attributes to resources on the same NUMA node. For the IBM S822L (two socket 
configuration) there are 4 NUMA nodes, allowing 4 optimally tuned VMs to host the 
components for the TurboLAMP stack. 

4. NEXT STEPS / CONTACT INFORMATION 

4.1 ORDERING TURBO LAMP 

This section provides information on ordering Turbo LAMP components. 

Power S822L 

To order Power System S822L servers, contact your IBM representative or IBM Business 
Partner or refer to the Contact IBM section of the product page: 
http://www­03.ibm.com/systems/power/hardware/s812l­s822l/ 

PowerKVM 

PowerKVM is available as a subscription for 1 or 3 years, and typically ordered with the 
Power scale­out server. When bundled with the hardware order, it comes pre­loaded and 
ready to use. As well, PowerKVM can be added after the initial order. For complete ordering 
information, see the RFA document on PowerKVM. 

Ubuntu / Juju / MAAS 

Ubuntu (the server OS), Juju (the service orchestration solution) and MAAS (the hardware 
deployment tool) are all free and open source. However, even the most talented devops 
personnel and systems administrators will benefit from the depth of Ubuntu’s sponsoring 
organization: Canonical. To obtain installation and up­and­running support and services for 
Ubuntu go to: 
http://www.canonical.com/services 

46 
For an Ubuntu Advantage professional support package go to: 
http://www.ubuntu.com/management/ubuntu­advantage 

Mellanox 

For information on ordering Mellanox Turbo LAMP components go to 
http://bit.ly/tlamp­mellanox­order 

MariaDB 

For information on MariaDB Subscriptions go to 
https://mariadb.com/products/subscription­plans 

Zend 

For information on Zend services go to  
http://www.zend.com/en/support­center/support 

5.2 NEXT STEPS 

Testing to compare the performance of Turbo LAMP against a base LAMP stack on x86 is 
planned (i.e benchmarking). Also, Turbo LAMP will continue to be refined to add additional 
capabilities and incremental performance enhancements. The Turbo LAMP stack will also be 
validated against additional PHP applications benefiting from a high performance solution. To 
view performance results, keep up to date on the latest content or learn how we can work with 
you to validate your workload on Turbo LAMP, visit the 

Turbo LAMP Community 

Check out: 
https://www.ibm.com/developerworks/community/groups/community/turbolamp 

This community also has additional material to help understand the benefits of Turbo LAMP 
such as a demo (http://bit.ly/tlampdemo) and presentation deck (http://bit.ly/tlampent2014). 

47 
3. CONTACTS 

Inquiries on Turbo LAMP can be sent to tlamp@us.ibm.com or feel free to post questions to a 
Turbo LAMP Forum (http://bit.ly/tlamp­forum). 

6. FURTHER READING / REFERENCE INFORMATION 

6.1 TURBO LAMP 

Turbo LAMP Community 
https://www.ibm.com/developerworks/community/groups/community/turbolamp 

Turbo LAMP Wiki  
http://bit.ly/tlampwiki 

Turbo LAMP Demo 
http://bit.ly/tlampdemo 

Turbo LAMP Presentation Delivered at IBM Enterprise 2014 Conference 
http://bit.ly/tlampent2014 

Latest copy of this White Paper 
http:// bit.ly/tlampwhitepaper 

6.2 POWER8 / POWER KVM 

IBM Power System S812L and S822L Product Page 
http://www­03.ibm.com/systems/power/hardware/s812l­s822l/ 

IBM Power System S812L and S822L Technical Overview and Introduction, REDP­5098 
http://www.redbooks.ibm.com/abstracts/redp5098.html?Open 

IBM POWER8 processor and memory buffer products: Leadership performance and open 
innovation for big data and cloud 

48 
http://www­01.ibm.com/common/ssi/cgibin/ssialias?htmlfid=POB03049USEN&appname=skm
www#loaded 

IBM PowerKVM Configuration and Use, Redbook SG24­8231 
http://www.redbooks.ibm.com/redpieces/abstracts/sg248231.html?Open 

IBM PowerKVM Redbook Solution Guide 
http://www.redbooks.ibm.com/abstracts/tips1205.html?Open 

Optimizing a PowerKVM guest using PCI passthrough 
http://bit.ly/PowerKVM­optimize­pcipassthrough 

6.3 MELLANOX 

Adapter­ ConnectX 
http://www.mellanox.com/page/products_dyn?product_family=127&mtag=connectx_3_en 
http://www.mellanox.com/oem/ibm/products_40gbe.php 
Select Power section for OS and Server support. 

Switch ­ SX1036 
http://www.mellanox.com/page/products_dyn?product_family=115&mtag=sx1036 

Cables – LinkX 
http://www.mellanox.com/page/interconnect_overview 
http://www.mellanox.com/page/cables?mtag=cable_overview 

CloudX 
http://www.mellanox.com/cloudx/ 

6.4 ZEND 

Zend Server home page: 
http://www.zend.com/en/products/server 

Zend Server Z­Ray: 
http://www.zend.com/en/products/server/z­ray­top­7­features 

49 
What customers think about Zend Server: 
http://www.zend.com/en/resources/case­studies 

Zend Server User Guide: 
http://files.zend.com/help/Zend­Server/zend­server.htm 

Zend Continuous Delivery: 
http://www.zend.com/en/solutions/continuous­delivery 

Zend Cloud Solutions 
http://www.zend.com/en/solutions/cloud­solutions 

6.5 MARIA DB 

For more Information On MariaDB please visit 
https://mariadb.com 

6.6 UBUNTU SERVER 14.04 LTS 

General Information: 
http://www.ubuntu.com/server 

Server Management: 
http://www.ubuntu.com/server/management 

Ubuntu Server in the Cloud: 
http://www.ubuntu.com/cloud 

Download Ubuntu Server: 
http://www.ubuntu.com/download/server 

Installation Guide: 
http://www.ubuntu.com/download/server/install­ubuntu­server 

50 
Ubuntu Server Guide: 
https://wiki.ubuntu.com/DocumentationTeam/SystemDocumentation/UbuntuServerGuide 
https://help.ubuntu.com/14.04/serverguide/ 

6.7 UBUNTU MAAS 

MAAS General Information: 
http://www.ubuntu.com/cloud/tools/maas 

MAAS Home Page: 
http://maas.ubuntu.com/ 

MAAS User and Development Documentation: 
http://maas.ubuntu.com/docs1.5/install.html 

6.8 UBUNTU JUJU 

Juju General Information: 
http://www.ubuntu.com/cloud/tools/juju 

Juju Home Page: 
https://juju.ubuntu.com/ 

Install Juju: 
https://juju.ubuntu.com/install/ 

Juju User and Charm Author Documentation: 
https://juju.ubuntu.com/docs/ 

Try the Juju GUI: 
https://jujucharms.com/ 

Juju Core Source Code: 
https://github.com/juju/juju 

51 
Download Charms Including Source Code in this Demo: 
https://code.launchpad.net/~ibm­demo/ 
https://code.launchpad.net/~ibm­demo/charms/trusty/zend­server/trunk 

Upstream: 
https://github.com/afroyd/Zend­Server­juju 
https://code.launchpad.net/~ibm­demo/charms/trusty/mellanox/trunk 
https://code.launchpad.net/~ibm­demo/charms/trusty/maria/trunk 

Upstream: 
https://launchpad.net/~dbart/charms/trusty/mariadb/trunk 
https://code.launchpad.net/~ibm­demo/charms/trusty/haproxy/trunk 
https://code.launchpad.net/~juju­gui­charmers/charms/precise/juju­gui/trunk 

­­­ 

 
 

52 

Potrebbero piacerti anche