oh solaris mio !

oh solaris mio !

May 7, 2012 / Juan B. Rodriguez

so the plan is as follows:

  • build a zfs box, with a two drive mirror pool
  • rsync data from blackeard (my hackintosh mac) to the zfs box
  • snaphot the zfs filesystem (full and incrementals)
  • crashplan the backup to the cloud

this basically gives me a two factor backup scenario: time machine-like fast access (without all the storage wasting that time machine does, on the zfs box) and offsite more secure storage (crashplan pro on the cloud)

so let’s start with my test setup

download Solaris 11 1111 (you have to create an oracle account .. shrugs)

install Solaris on a VirtualBox VM (chose VMDK as format, since it will be easier to transfer to ESXi)

the first snag is related to NFSv4 … although it’s supposed to do uid mapping, it actually doesn’t.

the first time i installed solaris i didn’t change the uid for my replica solaris user (same user as my mac box).

so i installed again, but … solaris 11 won’t allow root logins, not even via console. so i did the easiest thing possible, which is to enable root logins back more info here:

[email protected]# rolemod -K type=normal root

so now drop to the root shell (su - won’t work) and do

$ usermod -u <new uid> username

here’s a link that gave me the idea on how to do this

<new uid> should be the same uid as the user in the mac box.

while on the root shell, do

$ cd /home
$ chown -R <username>:<group> <username>

ok now solaris is installed. one of the first things i do with any new *nix box is setup public/private key ssh

$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"

could have use ssh-copy-id, but osx doesn’t have it by default and i’m too lazy to install it credits for the cat/ssh technique

now you have to edit /etc/ssh/sshd_config to disable password logins

ok so we can ssh into the solaris box … let’s build the backup pool

i previously created two 51Gb virtual disks in VirtualBox, it’s time to use them

[email protected]$ format

this shows the name of the disks. now let’s create the pool

[email protected]$ sudo zpool create tank mirror c3t2d0 c3t3d0

now the filesystem, which crashplan will back up

[email protected]$ sudo zfs create -o atime=off -o mountpoint=/export/backup -o sharenfs=on -o compression=on -o encryption=aes-256-ccm tank/backup

by default, zfs creates the /export/backup mount point with root:root ownership. make it writable for your user

[email protected]$ sudo chown -R <username>:<groupname> /export/backup

now, you can rsync from mac to zfs

[email protected]$ rsync -avn --progress -e ssh ~/Storage [email protected]:/export/backup

you should be all set now, watching your /export/backup folder having grown with your backup data.

something else … in order to watch that data through nfs

go to disk utility, in the menu choose nfs mounts … and add the nfs mountpoint, pay special attention to the advanced mount options, should be something like this

resvport,vers=4,nolocks,locallocks,intr,soft,wsize=32768,rsize=32768

next up, we’ll work with the zfs snapshots, try to come up a script that automates the rsyncing and the snapshot creation and send it all up to crashplan