Anda di halaman 1dari 28

Apt + OpenSolaris:

An Introduction to the
Nexenta Project
Anil Gulecha
Community Leader/Developer
anil@nexenta.org
Agenda
● History ● Non-Technical
● The Beginning ● History with the Debian project
● Nexenta OS ● Current opportunities for
● Nexenta Core Platform collaboration
● Derivatives ● Announcement
● Technical ● Collaboration
● Combining OpenSolaris with apt/dpkg
● Challenges faced ● Q&A
● Modified Debian tools
● Additional Tools
● Apt-clone
● What does OpenSolaris bring to the table
● How is OpenSolaris kernel and packages built
● Devzone – Easy provisioning of zones
● Autobuilder – Building thousands of packages
from upstream
What is Nexenta?

Nexenta is a
Community driven project
Combines OpenSolaris kernel with
Ubuntu LTS userland

Powered with dpkg/apt


And the ZFS filesystem
What is Nexenta?

Upstreams
History

Sun opened OpenSolaris in 2005.

Soon after the first alpha release of


NexentaOS was born.

It was a port of Ubuntu 6.06 desktop.

Alpha state for a long time, proved


hard to maintain.

Focus shifted to Core


History

Nexenta Core Platform

The focus changed to providing a solid base.

NCP1 based on Ubuntu LTS1/OpenSolaris b85.


Released Feb 2008. 5000 packages

NCP2 based on Ubuntu LTS2 (Hardy)/OpenSolaris b104.


Released May 2009. 13000 packages

NCP3 based on Ubuntu LTS2 (Hardy)/OpenSolaris b134.


Released Jul 2010.
History
Derivatives

Nexenta is not just a distribution, it's a platform


---
NexentaStor: Storage platform built by Nexenta Systems
based on NCP.
http://www.nexentastor.org

StormOS: XFCE based desktop derivative.


http://www.stormos.org
Technical Stuff
OpenSolaris packaging

ON Sources

OpenSolaris
compile
default
System Binaries
Packaging system is Pkgdef files / IPS metadata
SVR4 and IPS.
package
build
ON consolidation
compiled, and then SVR4 packages
packages built
Nexenta packaging
Nexenta's Debian
packages ON Sources

SVR4 fields map to Debian fields compile

Intelligent defaults System Binaries


Pkgdef files / IPS metadata

pkg_convert generates Debian


package pkg_convert

Build picks up binaries from proto


Debian package files
area
dpkg-buildpackage
Recently upstream moved from
SVR4 to IPS.. parsing is simpler Opensolaris debian
packages
Package Evolution

Nexenta currently maintains most of its patches.. we need


to improve collaboration with upstream here.
Your input is welcome.
Repository Structure

Main : Free / Supported


Contrib : Free / Unsupported
Non-free : Non-free components
Challenges faced

Completely new packaging system requires lot of testing.

GNU commands placed in /usr/bin

Sun commands placed in /usr/sun/bin

Maintaining a Sun environment via SUN_PERSONALITY


env. Variable. Patched execve to add /usr/sun/bin to $PATH

Adding SMF support to packages

Testing new IPS-based packages


Modified Debian tools

Added to debhelper

dh_installsmf – Add SMF support


dh_installproto – sunw* packages
dh_sunstrip – Strip sunw* libraries
dh_suninstalldeb – Building *deb
Dpkg, apt-get, apt-clone

apt-clone is a wrapper over apt-get

Creates a clone of the current root, and then


proceeds with package action
apt-clone install hello
apt-clone dist-upgrade
apt-clone -a <activatecheckpoint>
apt-clone -r <rollbackcheckpoint>

Completely safe upgrades

ZFS makes all of this extremely simple


OpenSolaris contribution

ZFS
OpenSolaris contribution

ZFS makes Nexenta a storage powerhouse


Simple Volume Management
Simple snapshots/clones
Simple network sharing
End-to-End Data Integrity: Peace of mind
Compression
Deduplication
All levels of Raid
ARC and L2ARC
(SSD speeds with spinning disks)
Completely Safe Upgrades
Ditto blocks
Variable Block size
Flexible Quota
OpenSolaris contribution

Dtrace – Dynamic Tracing

Trouble shoot deep into the kernel on production


systems.

Over 70,000 probes available.


dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }

C-like scripting language to collect information.


OpenSolaris Contribution

Zones (or Solaris containers)

Zones are lightweight OS level VMs.

Define a ZFS root filesystem, an IP address,


and a hostname.

Debootstrap installs system. Ready to go in 5


minutes.

Low CPU/memory overhead.


Devzones

Easy to deploy Developer environments

Define a base_zone.
Provide user logins to system.

devzone_create
devzone_enter
devzone_free

Deploying a devzone takes under a second.


AutoBuilder

NCP1 - We manually built all 5000 packages.

NCP2 – Autobuilder built ~8000 packages (60%)

Does intelligent dependency checks, and assigns


tasks to builder nodes.

Builder nodes pull upstream sources, rebuild on


Nexenta, and submit packages.

Used devzones as nodes to build parallelly.


Debian and Nexenta
Illumos
Announced on 3rd.

Founded / led by Garrett D'Amore, the #1 contributor to


OpenSolaris ON consolidation.

Fully Open – libc_i18n, drivers, lock manager, crypto


framework.

Fully ABI compliant

Fully community owned and governed.

Self-Hosted.

Not a fork. (yet).


Illumos

Has an incredible response from the community. Already


seeing participation.

Already is the base for a majority of community


distributions.

Nexenta, Belenix, Schillix


Debian and Nexenta

Looking to closer collaboration.

Restart port discussion.

Unofficial / Official ?

Patch integration with upstream.

Brings Nexenta closer to package devs and maintainers

Brings Debian the power of ZFS and OpenSolaris


technologies
A journey of a thousand miles,
Begins with a single step

Q&A

anil@nexenta.org
http://www.gulecha.org
Links

Homepage: http://www.nexenta.org
Illumos Project: http://www.illumos.org

AutoBuilder/Devzones:
http://www.nexenta.org/projects

NexentaStor: http://www.nexentastor.org
StormOS: http://www.stormos.org

Slides: Wiki → Presentations

Anda mungkin juga menyukai