Summary

Build an initial simple Linaro server image.

Rationale

At the time of writing, Linaro doesn't have a Server Working Group, yet running server workloads on ARM is getting increasingly interesting. To prepare the ground for a future Server WG, the Office of the CTO team is researching the state of server use cases on ARM. The goal is to identify future areas of improvement while fixing trivial issues along the way.

Linaro is mostly anticipating cloud-style server uses, NOT small or home office (SOHO) or network attached storage (NAS) use cases. Because the ARM architecture doesn't have hardware virtualization support, a LXC-based approach will be used instead. The target here is testing of a typical cloud workload, for instance a LAMP stack.

User stories

Oscar wants to run a LAMP-based software; he requests and gets a working environment from an ARM-based cloud provider and everything just works, he doesn't even notice it's running on ARM hardware.

Assumptions

LXC is used and not KVM; some KVM support exists as experimental patches for ARMv6+ hardware, but this is a distraction from testing of a typical server workload.

Only a simple LAMP stack is tested for now; more complex workloads can be tested in the future.

State of Java being what it is, it's not terribly useful to test Java software for now.

Host server is installed and configured manually.

Design

LXC will be used to host virtual environments.

The LXC root fs will be generated using the regular Linaro image building tools.

Optionally, OpenStack will be installed, configured and tested to automate the deployment of LXC instances.

The whole process will be documented and missing features and bugs will be tracked along the way.

Implementation

First, a new root filesystem image and a corresponding seed will be created for use under LXC using Linaro image building tools.

The seed will reference a typical LAMP stack.

The kernel configuration for OMAP will be checked for the expected LXC configs.

LXC will be installed and configured manually on a Pandaboard.

The LXC image will be deployed manually and tested with its builtin LAMP workload.

Optionally, OpenStack will be installed, configured and tested to setup containers automatically.

Unresolved issues

TBD

BoF agenda and discussion

Notes from Linaro@UDS-O Budapest, also at http://summit.ubuntu.com/uds-o/meeting/linaro-platforms-o-server-image/:

#uds-o #linaro
Linaro Server Session - Led by Loic Minier

== Attendees ==
See below.

== Introduction ==

Main interest is LAMP and cloud
- web server
- database
- dynamic language, e.g. PHP
- currently180 MiB fs image + 700 installed for x86
- minimum memory requirement for x86 is probably between 156 and 192 MiB

Are EC2 images usable directly with LXC?
- yes; there are some bugs, but these images are used directly in LXC based openstack deployments
- mostly works thanks to the LXC task

Pre-built images versus general (slow boot)
- Like to reuse the validation
- Mysql as an example - tested via an installed image

Could use EC2 for cloud based testing

Validation?
James Page knows how validation is evolving in Ubuntu Server right now
Make sure (manually) that the services start after install, and after reboot
Mostly kernel issues

There might be no automated testing; most testing is the ISO tracker based tests (manual)

Would probably want some test harness to run in the guest that we can reuse whatever the media

Benchmarks?  Not at the moment in Ubuntu Server

Top services?
- Apache, PHP, Python, Mysql
- Ruby on Rails?
- Tomcat -- needs openjdk, but not working fast enough at the moment
- (Bind)
- Munin
- will develop more stacks when Ensemble starts expanding

Puppet versus Chef?  Puppet a bit preferred in the Ubuntu Server use cases
Ensemble?

openjdk?
currently not optimized

Priorities for the ARM server use cases:
- cloud use
- home server (e.g. NAS)

More porting issues with the home server image

What form?
- might need the two images; images; one is flexible (d-i), one is quick and simple to use (rootfs)

Which platforms?
- i.MX53 have direct SATA
- Panda has 2xA9
- Tegra2?  not supported in Linaro kernels yet
- Dove?  not supported in Linaro


- Orion - don't know yet, will ask, suspect not

Linaro image tools
- this is our 'standard' way of installing Linaro stuff
- Leverage this in the ARM server work
- Issue for using Linaro kernel on TI, i.MX53
- only takes root filesystems as input


Pre-generation of ARM server images


Openstack is a good second step target
- LXC should work out of the box


CategorySpec CategoryTemplate

OfficeofCTO/Specs/ServerImage (last modified 2011-05-30 15:57:33)