Sunday, April 5

OpenSolaris, ZFS, iSCSI and OSX - Creative Storage - Part I

After getting through the steps required to setup a local network storage solution - I thought I would publish my steps for others that are doing the same thing. Not exactly security related but once the Solaris developers implement encryption into ZFS it will be :)

The needs for the solution were simple - a network (IP) based storage solution which is both reliable, meets performance needs and doesn't break the bank.

There are many people who would argue that a hardware based RAID array with it exposed through some NAS protocol would be a much easier solution to this need, but I'm intentionally trying to be cheap. The steps:

1. Hardware installation

Easiest part - install SATA disks on a supported platform for OpenSolaris. No details here unless someone wants them.

2. Software installation

OpenSolaris 2008.11 - 1 CD image found here. Burn the ISO, boot into the liveCD, double click on the "Install Solaris" icon on the desktop, and follow the instructions. I used many of the default options, but the installation will step you through it.

Reboot, and voila - default Solaris install with an SSH daemon running so that I don't have to use x-windows sessions.

3. ZFS Configuration

Connect with SSH to the console, check the installed disks.

root@CoreOpenSolaris:~# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
0. c0d0 <DEFAULT cyl 1242 alt 2 hd 255 sec 63>
/pci@0,0/pci-ide@6/ide@0/cmdk@0,0
1. c3t0d0 <ATA-WDC WD10EADS-00L-1A01-931.51GB>
/pci@0,0/pci1043,815a@7/disk@0,0
2. c3t1d0 <ATA-WDC WD10EADS-00L-1A01-931.51GB>
/pci@0,0/pci1043,815a@7/disk@1,0
3. c4t0d0 <ATA-WDC WD10EADS-00L-1A01-931.51GB>
/pci@0,0/pci1043,815a@8/disk@0,0
4. c4t1d0 <ATA-WDC WD10EADS-00L-1A01-931.51GB>
/pci@0,0/pci1043,815a@8/disk@1,0
Specify disk (enter its number):

The first disk is the boot disk, which also uses the ZFS filesystem and won't be part of the raid. The other four will.

Create the ZFS pool.

root@CoreOpenSolaris:~# zpool create CoreStorage c3t0d0 c3t0d1 c3t1d0 c3t1d1

root@CoreOpenSolaris:~# zfs list CoreStorage
NAME USED AVAIL REFER MOUNTPOINT
CoreStorage 400G 2.28T 41.9K /CoreStorage

Once the pool has been created we need to set a few properties to enable the types of access we want to provide. First is enabling CIFS and iSCSI access to the pool.

root@CoreOpenSolaris:~# zfs set shareiscsi=on sharesmb=on CoreStorage



4. CIFS Configuration

With the pool setup, we need to configure Solaris to provide connections for CIFS and iSCSI. Lets focus on CIFS first. The CIFS packages are not installed by default so we need to install them.
root@CoreOpenSolaris:~# pkg install SUNWsmbs SUNWsmbskr

Then add the driver, start the service, configure the PAM services needed to properly authenticate (I needed to reboot after these steps).
root@CoreOpenSolaris:~# add_drv smbsrv
root@CoreOpenSolaris:~# svcadm enable -r smb/server
root@CoreOpenSolaris:~#

I then needed to re-set the password of the user that will be using the share.
root@CoreOpenSolaris:~# add_drv smbsrv
root@CoreOpenSolaris:~# svcadm enable -r smb/server
root@CoreOpenSolaris:~#


Part two of this will include the iSCSI Target and Initiator Configuration, and a discussion of the advantages/disadvantages of using this.
Post a Comment