Archive for the ‘Nexenta’ Category.

Hackathon, 3rd Edition

The third edition of the Nexenta Hackathon starts today.

We’ve made incredible progress over the past two months, and the community activities have increased. The IRC channel audience has grown considerably. Starting today, we’ll be working on some of the final tasks, before we release NCP2, the final version.

Bounty

This hackathon also features a bounty for various tasks, sponsored by Nexenta Systems. There are small awards for some of the high priority tasks, including porting efforts, documentation, and creating Nexenta spinoffs.

The task list from the announcement.

Package porting:  Most of the packages in the repository are now automatically built. There are a few crucial packages that need to be built manually, and allow the builder to pick up on the rest.

Documentaiton: Not everyone knows how easy some tasks are on Nexenta. Help us write documentation, so new users find migrating much easier.

Distributions: NCP has now evolved to a tested core platform. Use the existing packages and window managers in the repository to build your own distribution using our distribution builder; tune Nexenta for a particular appliance and help us enhance our installer.

Significant contributions will be featured on the Nexenta project Homepage.

Further Information: http://www.nexenta.org/os/Hackathon
IRC web interface: http://www.nexenta.org/chat
Autobuilder: http://builder.tajinc.org/?f=repository_status

Gnome on NCP2

I mentioned in a previous post that GUI related packages were being populated into the NCP2 repository. Since pictures are a thousand words:

Gnome, GIMP and Irssi running on NCP2

Gnome, GIMP and Irssi running on NCP2 (not to mention the Heron)

Huge thanks to dtbartle, who has actively been porting Gnome into the package repository. Why not hop into #nexenta and say thanks.

Theres also other window managers being populated at the moment. Small ones like Enlightenment (e16) and 9wm are fully in.

PS: Also another round of hackthon is in the plans. Stay tuned for more.

Poll on commercial support for Nexenta

Nexenta Systems is in talks to gauge the possibility of a leading Linux vendor providing commercial support. Take a moment to answer this Yes/No question at the link below.

Click here to poll

Your feedback will help us in our decision.

Autobuilder Update

The last time I mentioned the Nexenta autobuilder, it was just opened and not fully completed. That changed recently.

The autobuilder is now in the works and since the beinning of the week has been chugging away tirelessly, working on Ubuntu Hardy’s 8.04 repository. The result.. over 2500 packages now reside in Nexenta’s contrib repsoitory. Going at this rate, we should have triple this amount by the end of next week.

The autobuilder is built to scale, and all of the work is shared between 2 nodes. The pace of package porting will increase with more packages. Do you have a machine free for the autobuilder to use (and have the bandwidth to spare)? Drop in on #nexenta or the devel mailing list, and we’ll help you setup. Look for Tim Spriggs (aka rootard). We’re still a good while away from Ubuntu’s 20000 packages.

The autobuilder will however not work for packages that need to be ported to Opensolaris/Nexenta. These should be few and far in between. It does fishily sound like another hackathon.

Devzone article on OSnews

I just published a devzone article on OSnews.

Devzone

Devzone

From the blurb:

Devzones, short for development zones, is a type of virtualization found in the Nexenta distribution. It can be used to define a base developer environment, which can be easily cloned many times. These copies can easily be destroyed and recreated. Devzones are built upon Opensolaris Zones, which are extensions of a chroot-like environment for the entire installed system. In other words, it allows for virtualization of an Opensolaris environment (and variants of Linux), without the performance hit that is generally associated with virtualization. This article gives a practical introduction into using Devzones. Read more on this exclusive OSNews article

The devzone homepage: http://devzone.sf.net

Nexenta Core Platform 2 Beta1 Released

http://www.nexenta.org/os/Home?action=AttachFile&do=get&target=ncp.png

The first beta release of NCP2 was released yesterday. This release was bug fix release with a big leap in the opensolaris build (from the previous b85+ to b104+).

Also, most of the common server applications now have SMF support. The latest version of devzones is also included. For the full announcement and release highlights, see here.

* OpenSolaris build 104+ based with critical patches.
* Over 6000 packages in the repository, and autobuilder.
* Based on Ubuntu 8.04 LTS (Hardy Heron) repository
* This includes latest dpkg/apt, gcc, binutils, coreutils,
perl, python, ruby, Qt libs, GTK libs, etc
* SMF support added for server applications like apache, mysql, postgresql, exim4, etc.
* 100% native Debian environment, easy to upgrade, easy to use
* Includes Vim and screen by default
* Addition of latest devzone version to the CD.
* Includes apt-clone which brings zfs power to apt-get.

So get your copy hot off the presses now. Links below

Nexenta: http://www.nexenta.org

Beta Download: nexenta-core-platform_2.0-b104-beta1_x86.iso.zip

For comments/solutions and queries goto the #nexenta IRC room at freenode.

Devzone and Autobuilder now open

Devzone

Devzone

If you’ve kept track of the latest in the Nexenta community, or logged into our build machines, you’ll know about a neat little set of utilities we have built on top of Opensolaris Zones. Devzones are a simple concept which allow you to create a custom zone, and creating multiple copies for developers.

Devzone

The devzone package is now available online from sourceforge under the GPL2 license.

We’ve been adding new features to make administration simple. Devzones will be built into the upcoming NCP2 Beta release.

Meanwhile you can take a look at what’s cooking in the background at the below address, or checkout the latest from SVN

Project page: http://sourceforge.net/projects/devzone/

SVN: svn co https://devzone.svn.sourceforge.net/svnroot/devzone devzone

AutoBuilder

The autobuilder project too has been hosted on sourceforge. This is a distributed way to build those humongous apt repositories for your Ubuntu sized distro.

Client nodes can request for packages to build. This is almost fully complete and is already functional as a web based view of debain apt repositories. Give it a try at http://builder.tajinc.org/

Project page: http://sourceforge.net/projects/autobuilder/

SVN: svn co https://autobuilder.svn.sourceforge.net/svnroot/autobuilder autobuilder

I’m working on a simple tutorial for devzones, and it should be published shortly.. so stay tuned for that. Meanwhile, spread the word.

Thank Tim Spriggs(rootard) for these tools. If you have any questions, or want to participate, join our IRC channel at #nexenta@freenode (there’s a web based interface here).

SMF support for your favorite server applications

I putback new packages into the NCP2 repository today, and you can now have SMF support for your favorite server packages in the repository. Before I list them, a little bit on SMF.

Service Management Framework (SMF)

SMF is the opensolaris replacement for the legacy services start unix framework (what /etc/init.d did until now, and continues to on Linux).

Services in Nexenta are handled using solaris SMF. This makes it very easy to start and stop services; you dont have to worry about it’s dependency on other services, which is taken care of by SMF automatically. This cheetsheet lists how easy it is to use SMF.

SMFed Packages

  • apache2
  • mysql 5
  • postgresql-8.3
  • exim4
  • rsync

All of these are ports of their Ubuntu 8.04 counterparts.

If you want toadd SMF support to a Nexenta package, take a look at my guide on adding SMF support.

If you want to follow the latest in the nexenta codebase, bookmark this RSS feed. This is also visible on the planet homepage, if you frequent there. If you run into any issues, ping us on the -devel mailing list or on #nexenta@freenode

[Comments by clicking here]

Nexenta on Slashdot and other updates

It was nice to wake up to a Nexenta story on slashdot. Find the discussion here.

There were some things I wanted to address some comments that were brought up.

Dont call it a Ubuntu derivative; say Debian.

The Nexenta project is an derivative of Ubuntu much the same way as Edubuntu is a derivative.. It uses the same repository and packages (and version numbers), and as such the slogan “Ubuntu userland + Opensolaris kernel”.

That does not mean Debian isnt in the picture.. Nexenta is thankful to the project for the amazing work it has done, and the great packaging ecosystem it has created. But Nexenta as such is a direct port of packages in a particular Ubuntu Repository (NCP2 is based on Ubuntu 8.04).

“Proprietary” comments..

Nexenta is fully open source. Enough said.

GUI and the desktop

Refer to my earlier post.

Looks interesting..

Great! Give it a shot on your fileserver.

For more chatting on all things Nexenta join in at #nexenta on freenode or use the web based chat.

—-

And now for the “other updates”

FOSS.in

I’ll be at the FOSS.IN conference, which is the largest FOSS conference in India. It draws people from all around the country, and few from past the borders. This year’s conference lies from the 25th to the 29th of this month.

I’m looking forward to interacting with folks, and seeking folks interested in contributing to the project. My plans include conducting hands on sessions (BoFs) for those new to the project, as well as those who understand Debian’s packaging system. I’ll be there with other members from BOSUG, and will either at the FOSS stalls, or near the Hackcenter area.

If you’re nearby, drop in at the conference, and if you are attending, stop by and say Hi. Looking forward to meeting enthusiastic members of FOSS India.

Adding SMF support to your debian package

Services in Nexenta are handled using solaris SMF. This makes it very easy to start and stop services; you dont have to worry about it’s dependency on other services, which is taken care of by SMF automatically. This cheetsheet lists how easy it is to use SMF.

dh_installsmf

dh_installsmf is one of Nexenta’s addition to Debian’s debhelper scripts. This makes it trivial to add SMF support in a debian package that installs a service at /etc/init.d/<service>

We’ll take a look at how we can add support to such a package.

XML Manifest file

The SMF framework requires a manifest file, which is an XML file, that provides information regarding the service. This information includes the services that this particular service depends on (or configurations files, etc).

It also lists the commands that need to be run to enable, disable the service, or to set various other parameters. The format of the manifest file is explained here.

The Blastwave package has a good collection of manifest files for various packages. Lets take a look at the manifest for apache2:

<?xml version=”1.0″?>
<!DOCTYPE service_bundle SYSTEM “/usr/share/lib/xml/dtd/service_bundle.dtd.1″>

<service_bundle type=”manifest” name=”apache2″>
<service name=”network/apache2″ type=”service” version=”4″>
<create_default_instance enabled=”false”/>
<single_instance/>

<!– First of all, if the config file is not present,
then we needn’t bother with anything else.  –>
<dependency name=”config-file” grouping=”require_all” restart_on=”none” type=”path”>
<service_fmri value=”file:///etc/apache2/apache2.conf”/>
</dependency>

<!– If there’s no network, then there’s no point in running –>
<dependency name=”loopback” grouping=”require_all” restart_on=”error” type=”service”>
<service_fmri value=”svc:/network/loopback:default”/>
</dependency>
<dependency name=”physical” grouping=”require_all” restart_on=”error” type=”service”>
<service_fmri value=”svc:/network/physical:default”/>
</dependency>
<dependency name=”fs-local” grouping=”require_all” restart_on=”none” type=”service”>
<service_fmri value=”svc:/system/filesystem/local”/>
</dependency>
<exec_method type=”method” name=”start” exec=”/lib/svc/method/apache2 start” timeout_seconds=”60″/>
<exec_method type=”method” name=”stop” exec=”/lib/svc/method/apache2 stop” timeout_seconds=”60″/>
<exec_method type=”method” name=”refresh” exec=”/lib/svc/method/apache2 refresh” timeout_seconds=”60″/>
<stability value=”Unstable”/>
<template>
<common_name>
<loctext xml:lang=”C”>Apache2 web server</loctext>
</common_name>
<documentation>
<manpage title=”apache2″ section=”7″/>
<doc_link name=”apache.org” uri=”http://httpd.apache.org/docs/2.0″/>
</documentation>
</template>
</service>
</service_bundle>

In the above file, we see that apache2 has defined the following dependencies:

  • The file /etc/apache2/apache2.conf
  • The network service (and the physical interface being up)
  • The local filesystem

It also defines three methods start, stop and refresh, which are commands for this particular service (start the webserver, stop the webserver, reload the webserver). They call a script /lib/svc/method/apache2, which brings us to dh_installsmf

debian/rules

The service script /lib/svc/method/&lt;package&gt; is generated by dh-installsmf, so when you create an SMF manifest file for Nexenta, make sure you call that file. dh_installsmf will create a script /lib/svc/method/&lt;package&gt; which is a wrapper over the /etc/init.d/&lt;package&gt; file.

So in our case the debian/rules file in the apache2 package will be modified as

[snip]

rm -f debian/apache2-utils/usr/share/doc/apache2-utils/NEWS.Debian
dh_installinit -a –no-start -r –name=apache2 — defaults 91 09
dh_installsmf –service apache2 –manifest debian/apache2.xml -papache2.2-common
dh_installcron -a -r –name=apache2
if [ "$(LSB_RELEASE)" = "Ubuntu" ]; then \
dh_strip -a; \
else \
dh_strip -a –dbg-package=apache2-dbg -Napache2-mpm-worker -Napache2-mpm-event -Napache2-mpm-prefork -Napache2-dbg; \
fi
dh_link -a
dh_compress -a
[snip]

The –service argument gives the name of the service, the –manifest points to the manifest file and -p tells it which package the smf changes go into. This is basically the package that provides the /etc/init.d/&lt;package&gt; file.

And that is how we generate SMFed debian packages.