Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

XDS15: Project Raisin

333 views

Published on

As part of the process of building Xen, the current build system clones multiple external git trees and compile them. For example Seabios and QEMU are imported using this mechanism. The process is unfriendly to Linux distributions, which have the requirement of building each component just once, and is unfriendly to users, who often find it confusing and inflexible. A new tool was created to solve this problem.

This talk will introduce Raisin: a source distribution system for the Xen Project. Raisin offers a generic framework to deploy any Xen related projects from source. Currently it supports QEMU, SeaBIOS, OVMF, Linux, Libvirt and blktap, but is very easy to extend. Raisin also helps developers by providing quick validation tests that can be run against local changes.

The presentation will explain the goals of the project, the current status, and the best ways to use it.

Published in: Software
  • Be the first to comment

  • Be the first to like this

XDS15: Project Raisin

  1. 1. © 2015 Citrix | Confidential Stefano Stabellini, August 2015
  2. 2. © 2015 Citrix | Confidential xen-unstable • Tries to be everything to everybody: – Xen hypervisor repository – Xen tools repository – builds required third party components: QEMU, SeaBIOS – builds optional third party components: OVMF, qemu-trad, pvgrub – builds stubdoms: minios, newlib, qemu- traditional, etc
  3. 3. © 2015 Citrix | Confidential xen-unstable: shortcomings • Cloning and building external projects make distro packagers unhappy • Very limited as a build system for external components • Conflicting requirements
  4. 4. © 2015 Citrix | Confidential OpenStack
  5. 5. © 2015 Citrix | Confidential OpenStack
  6. 6. © 2015 Citrix | Confidential DevStack an opinionated script to quickly create an OpenStack dev environment “DevStack's mission is to provide and maintain tools used for the installation of the central OpenStack services from source (git repository master, or specific branches) suitable for development and operational testing. It also demonstrates and documents examples of configuring and running services as well as command line client usage.”
  7. 7. © 2015 Citrix | Confidential Raisin - Raise Xen! • a set of bash scripts to build, install and configure Xen and any other Xen related components from source • extremely simple to use • easy to read, helps documenting best practices • easy to extends and add more components to it
  8. 8. © 2015 Citrix | Confidential Raisin - Raise Xen! • With Raisin we can remove third party builds from xen-unstable, like QEMU and SeaBIOS • Users will find a single place where to build everything they need
  9. 9. © 2015 Citrix | Confidential Raisin - configuration MAKE="make -j2" PREFIX=/usr DESTDIR=dist ENABLED_COMPONENTS="seabios ovmf xen qemu qemu_traditional grub libvirt" XEN_URL="git://xenbits.xen.org/xen.git" QEMU_URL="git://xenbits.xen.org/qemu-upstream-unstable.git“ XEN_REVISION="RELEASE-4.5" QEMU_REVISION="master
  10. 10. © 2015 Citrix | Confidential Raisin - examples $ raise build – install dependencies – creates a deb/rpm package $ raise install – installs the package $ raise configure – init scripts, xenbr0 bridge, etc
  11. 11. © 2015 Citrix | Confidential Tests
  12. 12. © 2015 Citrix | Confidential Unit Tests vs. CI-loop Unit and functional tests Small and quick to run Single host Do not need special licenses or isos Can be run be individual contributors before submitting patches CI-loop tests Comprehensive Cover most usages Includes multi-host tests Takes hours to run Tight to the gating infrastructure
  13. 13. © 2015 Citrix | Confidential Unit Tests vs. CI-loop Unit and functional tests Small and quick to run Single host Do not need special licenses or isos Can be run be individual contributors before submitting patches CI-loop tests Comprehensive Cover most usages Includes multi-host tests Takes hours to run Tight to the gating infrastructure OSSTest Missing
  14. 14. © 2015 Citrix | Confidential
  15. 15. © 2015 Citrix | Confidential Raisin – Raise Test! • Introduce simple and quick unit and functional tests • Based on busybox-static, very few requirements • Can be run on any test box $ raise test
  16. 16. © 2015 Citrix | Confidential Raisin – Status • Build, install and configure completed • Currently active components are: seabios ovmf xen qemu qemu_traditional grub libvirt • A few stackable tests have been added busybox-hvm-test → busybox-hvm-localmigrate-test • Integration with OSSTest is work-in-progress
  17. 17. © 2015 Citrix | Confidential Raisin – Future
  18. 18. © 2015 Citrix | Confidential Raisin – A peek into the future • OSSTest to use Raisin to build Xen, Libvirt, etc • OSSTest to run Raisin tests regularly • QEMU, SeaBIOS & co to be removed from xen-unstable • Raisin to become the canonical way to build Xen, QEMU and all the other Xen related components • Developers to refer to Raisin as the way to setup a dev environment • Packagers to refer to Raisin as the mainstream way to build and setup a Xen system
  19. 19. © 2015 Citrix | Confidential Resources Raisin git repository: git://xenbits.xenproject.org/raisin.git Raisin documentation: raisin/README Mailing list: xen-devel@xenproject.org
  20. 20. © 2015 Citrix | Confidential Questions?

×