Posts tagged ‘Opensolaris’

Nexenta Core Platform 2 released!

I’ve been neglecting my blogging duties, but I’m back on track. Lots of things have happened in the recent times, but the big news today is the release of the Nexenta Core Platform 2. This release has been a year in the making, and took a lot of hard work.

We’ve also produced a short comic, with our very own hero, Nexentaman, to walk you through NCP. Click below to read the comic.

The Adventures of Nexentaman

The Adventures of Nexentaman

Links

Nexenta homepage: http://www.nexenta.org

Artwork and Wallpapers: http://www.nexenta.org/os/SpreadTheWord

IRC : #nexenta on freenode

Go ahead, test drive Nexenta, and spread the word

Nexenta iSCSI with COMSTAR/ZFS integration

[I've made a few small updates correcting typos and inserted additional information to turn off any existing shareiscsi=on zfs volumes]

Opensolaris has had the capability to share an iscsi target for sometime. This was done in the userland via the iscsi target daemon.

The COMSTAR project on opensolaris was started to build a fast scsi target on the platform. From the project page:

COMSTAR is a software framework that enables you to turn any OpenSolaris host into a SCSI target that can be accessed over the network by initiator hosts. COMSTAR breaks down the huge task of handling a SCSI target subsystem into independent functional modules. These modules are then glued together by the SCSI Target Mode Framework (STMF).

COMSTAR provides

  • Extensive LUN Masking and mapping functions
  • Multipathing across different transport protocols
  • Multiple parallel transfers per SCSI command
  • Scalable design
  • Compatible with generic HBAs

With intergration of COMSTAR to ZFS, Nexenta Core Platform provides for very easy setup as an iSCSI target. These latest changes to ZFS are available both in the latest beta2 release of NCP, as well as the commercial NexentaStor v1.1.5.

How to setup a NCP2 box as an iSCSI target

First, shutdown older iSCSI target service, and start the new one

svcadm disable -s iscsitgt
svccfg delete -f iscsitgt

Also if you have any zfs volumes with shareiscsi=on, set them to shareiscsi=off. This is required to setup the new zfs integrated scsi correctly.

Enable iscsi/target and it’s dependency

svcadm enable -s stmf
svcadm enable -s iscsi/target

Install the switch by creating the file:

touch /etc/shareiscsi.conf

Now create a dataset (volume) which is to be shared via iSCSI

zfs create -V 500m tank/zvol1

Using -V creates a volume type dataset, and it reserves the given amount of space on the pool for it’s data. In our case we reserved 500 Mb of space for our volume zol1. To create an SCSI target using this, simply run.

zfs set shareiscsi=on tank/zvol1

And we’re now set :) . To confirm that the target has been configured, check that output of

itadm list-target -v

Performance gain

This implementation of an iSCSI target provides 2-3 times the performance of the older userland implementation in opensolaris. The numbers stack up as follows:

Parameters:  4 workers x 8 outstanding IOs

COMSTAR iSCSI target

50000 IOPS, 512B, 97% CPU, 24MB/sec  <- Reads
40000 IOPS, 512B, 92% CPU, 17MB/sec  <-Writes

OLD UserLand iSCSI target

17000 IOPS, 512B, 98% CPU, 8MB/sec  <- Reads
15000 IOPS, 512B, 98% CPU, 7.5MB/sec  <-Writes

The tests were conducted with IOMeter, using a 100M zvol with zil disabled. Also these were done over a 1G network between the target and the initiator.

More information on COMSTAR can be found on it’s project page, and the changes can be found in the nexenta-on package in NCP2.

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).

Toulouse

Had a wonderful short trip in Toulouse. It was a short trip and great to see the enthusiasm in the opensolaris community.

I’ll probably do a longer post a little later, for now heres a link to the presentation I made for you to peruse.

Goodbye, Toulouse!

Getting started with Nexenta Development – Part 2

In this part we will take a look at the steps followed to port an application from Ubuntu and build a package.

I decided to do this via a screencast. You may not be able to fastforward or rewind, so I’ve also listed out the steps you will need to follow below the screencast. Click below to open the screencast. Or download it for offline viewing here.

Getting started with Nexenta screencast

Getting started with Nexenta screencast

Getting Access

We have a build machine available at gnusolaris.org where you can login to do your nexenta development (and not have to hassle with installing locally). You will use ssh to login, and can get the details by asking on IRC (#nexenta@freenode), or on the development mailing list gnusol-devel@sonic.net.

Logging in

You can login using your favourite shell and terminal program. The screencast uses gnome-terminal. If you are on Windows you can use the Putty client. Use

ssh username@gnusolaris.org

and enter the password when prompted.

Entering the Devzone

One of the core features of opensolaris is Zones (zfs is currently stealing all the thunder). Since giving root access to everyone is not an option, and building without it is not one either, the Nexenta project has innovated and created the so called development zones. These provide a method to quickly create a developer environment and give you root access to it. When no longer required, this zone can be painlessly removed.

The commands sure would be complex.. right? As simple as

  • devzone_create  — creates a development zone
  • devzone_enter — enter a devzone
  • devzone_free — remove the zone when no longer required :)

Simple as that.

Once you have entered a newly created zone, use the following commands to get it up to date

apt­-get update; APT_CLONE_ENV=1 apt-­get dist­-upgrade

Also, you will have to create/import your gpg key for signing packages. Further instructions at http://www.nexenta.org/os/CreatePublicGPGKey

Building a package

So now that we have our environment ready, lets build a package. In the screencast we take an example of libid3tag, which is a C library that is used to parse the headers in mp3 files.

First check if the package is available in the repository (Well libid3tag is not, but you would need to check if the package you are trying to port is already in or not)

#apt-cache search package

Searched for the expression package in the repository and lists the matches if present.

If it doesnt exist, you get it from Ubuntu’s repostiory mirror using the apt-upstream-tool

#apt-upstream-tool -e -p package

-e : extract the package

-p : the package name

Once we have the sources.. move into the directory, there would be 2 copies.. one original, and one for us to edit and use.

Move into this directory (this is referred to as the “package root”) and make sure the changelog reflects the distro as Nexenta. You can edit the changelog entry using

#debchange

in the package root.

Next satisfy all the build dependencies of the package.. this is required if the package has to built. Do this via running the following command in the package root.

#apt-satisfydepends

The above tool will lookup all dependencies and install them from the repository if available. (If not, you would also have to port that package)

Once the above completes successfully, create the package using

#dpkg-buildpackage -sa

-sa : Bundle the source code with the package

If the above completes successfully, you will be presented with a prompt to enter your GPG passphrase to sign the package.

Once this is done your package is built and present in the parent directory to the package root. Install all .deb files to verify that they install correctly. Do this using

#dpkg -i packagename.deb

You can also take a look at the contents of the deb using

#dpkg-deb -c *.deb

Once the install goes smoothly and all looks good, upload it to the repository using

#dput *.changes

This will upload the files to the repository, and send out mails to the nexenta-changes mailing list.

Further information is availabe on the Nexenta wiki documentation section and at http://www.nexenta.org/os/BuildingPackages

Getting started with Nexenta Development – Part 1

So I’ve been working on Nexenta for a fortnight now, and have picked up a lot of things. Below is a short introduction/guide on how you can join the project.

Introduction

First a little bit of background. The debian project was started in the early nineties to be a one-stop package repository for Linux applications. It has been a fairly popular distribution. However, it was the Ubuntu distribution that made the most use of these packages. Ubuntu is a debian derivative, with focus on the desktop. It makes use of the debian’s packages, on top of the linux kernel.

The solaris kernel is very well regarded for its rock solid stability. When solaris was open sourced as opensolaris in 2005, many possibilities emerged.. what if we could combine Solaris’s famed stability with Ubuntu’s famed user experience. And this is the aim of the Nexenta project.

So that is the backstory. Nexenta = Ubuntu – Linux kernel + Solaris kernel. Nexenta is currently focusing on the Nexenta Core Platform, which is a starting point for any type of focussed distribution; ncp will allow for easy addition of packages, and you are free to develop any distribution on top of it, by adding any packages you want. Which brings us to how you contribute to the Nexenta project: Packages.

Ubuntu/Debian currently have 20000 packages. We need help from the community to port these to Nexenta. A sizable portion has already been done. And a sizable portion remains.

Getting Started

To get started.. these are the documentation a newbie would have to to pursue:

Nexenta uses the Debian/Ubuntu packaging model. This is thoroughly explained in

A majority of the open source applications use the GNU autotools to compile and build programs. This autotools tutorial should help you get started.

Platform

Locally: As NCP is a command-line only environment, the ideal setup for developing would be running NCP VMWare server on Ubuntu Hardy 8.04. NCP 2.0, the upcoming release is based off this Ubuntu release. You can however install this on baremetal or on Windows/ OpenSolaris.

Remotely: Another option is to use the build machines at gnusolaris.org remotely. get onto IRC, and request for a login details. We’ll setup a development zone, and give you the login details. Further details on the hackathon page in the “How to get started” section

Machine requirements

  • If you are going to work remotely on the gnusolaris.org development machine, all you need is an ssh client like putty on Windows or your garden variety ssh on your favourite *nix distro.
  • If working on NCP locally, the recommended specs are:
    • Processor: Pentium 4 2.0 Ghz or equivalent
    • Memory: 1Gb minimum, 2Gb recommended.. you’ll be using a VM.
    • Space :10Gb for the virtual hard disk.

Installing Nexenta Core Platform

A step by step guide with screenshots is available at http://www.nexenta.org/os/Getting_Started

If you run into issues setting up VMware with bridged networking, you can take a look at my previous entry.

Getting help

The nexenta project has a very helpful community, that answers your queries quickly.

[The next part will take a look at the important commands used in porting packages]