Showing posts with label OpenIndiana. Show all posts
Showing posts with label OpenIndiana. Show all posts

Tuesday, April 23, 2013

ZFS Analytics

While woking with ZFS performance I created a dashboard to get a good overview with lots of different statistics. It's powered by Dtrace, python and graphite. There is a high level of detail but still easy to correlate different statistics.

It feels almost like fishworks analytics lite but without advanced features such as drill-down and heat maps. An example from a box running OpenIndiana:



You get a good view of how the layers interact, the latency for reads in ZFS compared to reads in from the physical disks, average latency, maximum latency, average read size and see how much more data ZFS reads form prefetch including hit rate etc.

I based this on the iomon dtrace script with some glue to send it into graphite, I also added ARC statistics and CPU/Network statistics. ( There is a iomon-graphite effort available on the web but that did not give me correct statistics and did not include things like CPU and network utilization ).

iomon.d

Friday, July 20, 2012

Lots of packages for SmartOS, soon for OpenIndiana

There is now a huge package repository available for illumos-based distributions, initially a dependency prevents it from running on OpenIndiana but that is being fixed:

9000 packages available for SmartOS and illumos

The packages contains a current PostgresSQL (9.1.3), MySQL, Apache, Ruby 1.9.3, Python 3.2.3 both with lots of modules plus many other useful packages.

All should work on SmartOS and when fixed for OpenIndiana this slightly modified procedure (without sudo and install gtar first) should work, as root:

# pkg install gnu-tar
# curl http://pkgsrc.smartos.org/packages/SmartOS/2012Q2/bootstrap.tar.gz | (cd /; gtar -zxpf - )
# pkgin -y update
# pkgin avail | wc -l
    9401
# pkgin search ...
# sudo pkgin -y install
I'll update this entry as soon as it works for OpenIndiana.

Thursday, July 5, 2012

OpenIndiana updated (oi_151a5)

A new pre-stable release of OpenIndiana was released a few days ago (oi_151a5), the fifth since the initial illumos-based oi_151a development release in September. Besides bugfixes and minor enhancements the this new release also includes a refresh of the illumos code base which includes a few new noticeable features:

  • ZFS feature flags 
  • ASynchronous destruction of ZFS file systems 
  • ZFS send progress output

There have also been quite a few userland updates, all is documented in the release notes including a list of CVE-fixes:

OI_151a_prestable5 Release Notes

Update or download images here.

Wednesday, September 14, 2011

OpenIndiana 151a released

The free successor to the OpenSolaris distribution have released OpenIndiana 151a, exactly one year after their first release. The new release is based on illumos and has the new KVM, several ZFS enhancements and support for new hardware.

It's sill considered a development release, I have however found it quite stable for my private storage node which has been running build of 151a for well over a month. A stable released based on 151a is expected later this year.

openindiana.org

Sunday, July 3, 2011

Cheap, fast and secure storage

This post if about how I protect important data at home. There are a lot of appliances out there with nice front ends but most of them do not store data on ZFS or something with the same level of data protection. Also, if you have anything but trivial space requirements they tend to get expensive fast and don't have the option to easily enhance performance by for example adding an SSD as file cache or adding other hardware. I've built my ZFS storage server based on an quad core AMD CPU, 8GB of ECC memory, a SAS HBA and a bunch of large SATA disks in hot-swap bays.

All my data now lives in this storage server protected against accidental delete, bit rot, disk failures and fire. I use NFS/CIFS for ordinary file data and iSCSI for my Aperture photo libraries and time machine backups.

All data is stored in one large raidz2 pool, so there are two parity disks allowing any two disks to fail without data loss. Since ZFS checksums all data I know it is intact when read and after bi-weekly data scrubs. The most important reason for using raidz2 is that disks have now become so big that there is now a real risk that there will be an unrecoverable read error during a resilver when all data is read, using another parity disk makes this highly unlikely. Snapshots makes it possible to do a quick rollback if any person or software should damage or remove data, this is also very useful when transforming large amounts of data with uncertain outcome. This will keep data safe from most user errors, disks errors and controller errors but fire and major user errors/sabotage (zfs destroy -r) could still make me loose data.

To avoid the later two scenarios I mark my most important datasets with a flag and a script streams them using ZFS send/receive to external disks over eSATA. The disks are then transferred to a second physical location. I can currently fit all critical data on one large SATA disk which makes this cheap and easy. I exclude ISO images and virtual machine disks that I only use for testing. A full backup of critical data takes about 3 hours today, that depends on the backup disks which can write data at about 80-90MB/s. By using incremental ZFS send the time goes down considerably as only the delta between the snapshots need to be transferred.

To be able to recover individual files and recover parts of data even if the disk have errors the streams are sent to a zpool on the backup disk. By using several disks I have at least one at another location and it also gives me multiple backup versions. I was considering placing encrypted ZFS streams on the disks but it is then not possible to recover individual files and if the stream is damaged it becomes useless.

In an ideal world I would have another node set up that receives the incremental ZFS streams over the net, but that is overkill for my current usage and I have no secondary site with good bandwidth (and another storage server).

This setup gives me the following redundancy:
  • Integrity of all data is verified every two weeks
  • Data has several read-only snapshots from different times
  • Data is protected by two disk parity raidz2
  • Accessed data is always verified by checksums
  • Offsite backups allow disaster recovery
  • Backups are also checksummed
  • Memory is ECC protected to prevent data corruption
This is all fine, but there is still one single point of failure, if a serious error would creep into the ZFS code it could be replicated to all snapshots and pools, but given the amount of testing ZFS has gone trough it seems unlikely. Here tape backups over NDMP would be of good use but since I do not have any tape hardware all important data is copied with rsync to a disk with an old-school filesystem once every other month.

On top of this I also take advantage of other ZFS features, a cheap SSD is used as L2ARC to accelerate various workloads and compression/de-duplication is as always available with ZFS. It is also possible to add new hardware to the setup without buying a different server or license, 10GbE, Fibre channel, more SSD caches and more RAM for cache/dedup can easily be added, that would probably not be possible with a pre-built NAS appliance or at least not as cheap.

I am evaluating the beta of OpenIndiana 151 on the storage server after upgrading from the now dead OpenSolaris distribution (I would not have tested a beta release without all these backups in place), so far everything works fine. Solaris 11 Express can also be used but that requires a license from Oracle that costs about $1000/year but it will give you ZFS crypto and a few other ZFS features not available in the open ZFS code base.

All the technical features are better than most storage appliances but OpenIndiana/Solaris 11 Express provides no web based administration, there are however add-on software such as nap-it available and commercial ZFS software appliances such as NexentaStor which has a free community edition for up to 18TB of used storage.

I have worked with designing and implementing various similar solutions from small office filers to larger data archives with 96-disk. I work part time as a consultant so I am available to assist in similar projects.

Tuesday, June 7, 2011

Solaris release dates reminder

As other sources also have now also found out that the next release of Solaris will be named Solaris 10 8/11 which indicates a August release. As written previously we should expect Solaris 11 around Oracle World 2011, a more precise date have been disclosed in Joerg's blog: November 2011, a year after the Solaris 11 Express release. He also speculates in a 11/11/11 release driven by marketing. I will be very interesting to se what the last year of engineering under Oracles guidance have to deliver in the final Solaris 11 release.

Last but not least the OpenIndiana project is just about to release build 151. Update: there are even beta images available here.

Solaris 10 update 10 ZFS refresh

Sunday, January 2, 2011

Second OpenIndiana release

With the upcoming christmas and new year I had totally missed that OpenIndiana have had their second release, oi_148 which is based on the last publicly available OpenSolaris source. The OpenIndiana project is part of the illumos foundation and will use the illumos ON source in a later release.

Here are the release notes and download the images here.

Tuesday, September 14, 2010

OpenIndiana announced

Today project OpenIndiana was announced, it is continuation of OpenSolaris created by the community. It's currently pretty much OpenSolaris build 147 but in the near future it will be based on the illumos gate.

It's nice to see a distribution that is similar to OpenSolaris not everyone wants to go the illumos/debian way like Nexenta and OpenIndiana aims to be a free drop-in replacement for Solaris 11/Oracle Solaris Express. It can be used for free in production unlike the new Solaris 10/Solaris 11 licensing from Oracle. OpenSolaris installation should also be able to upgrade to OpenIndiana.

The slides from the announcement are available here:
http://dlc.openindiana.org/tmp/slides.pdf

Iso Images are also available, but this is the first bits they ever release and they call this release a bit "messy" so use it with caution:
http://dlc-origin.openindiana.org/isos/147/