# Solaris ZFS



## ronaldprettyman (Jul 15, 2009)

I'm testing out Freebsd as an alternative to Solaris, and trying to import solaris zfs partitions. I've tried doing it locally but didn't realy expect that to work because of the different naming conventions in dev, though I wonder if I made symbolic links to the freebsd dev to the dsk/c0d0 type of solaris if I'd have better luck.

I also tried doing it thought the network 
	
	



```
"zfs send foo/bar|ssh foo@bar zfs receive foo/bar"
```
 and recieved a kernel crash. I'm about to try exporting to file and then importing the file into a new zfs partion on freebsd.

Anyone have any idea's any experience moving zfs partions from solaris to freebsd.


----------



## Voltar (Jul 15, 2009)

Have you tuned your FreeBSD system for ZFS? Do you happen to know what the kernel panic was for? Are you using amd64 or i386? Also, which version of FreeBSD? 7.2 has support for ZFS v6 while 7-STABLE has v13, the former has worked fairly well for me (see this thread for some of my experiences) and I'm still working with 7-STABLE and ZFS v13.

Depending on the versions of ZFS and FreeBSD, I would think you should be able to pop the disks in and import the pool? I could be wrong though, I'm still learning ZFS.

phoenix might be able to shed light on this for you if he comes across this thread.


----------



## phoenix (Jul 15, 2009)

ronaldprettyman said:
			
		

> I'm testing out Freebsd as an alternative to Solaris, and trying to import solaris zfs partitions. I've tried doing it locally but didn't realy expect that to work because of the different naming conventions in dev, though I wonder if I made symbolic links to the freebsd dev to the dsk/c0d0 type of solaris if I'd have better luck.



On the solaris box:
`# zpool export nameofpool`

Move the drives into the FreeBSD box.  Then:
`# zpool import nameofpool`

That's it.  When you do the export, it removes all the system-specific stuff (like the direct links to the device nodes, the endien-ness of the data, etc), but keeps all the metadata on the drives (ie "this drive is part of vdev X which is part of pool Y).

The import looks at the metadata on the disks, and then rebuilds all the system-specific stuff to allow you to use the pool on this system.

Be sure to have *zfs_enable="YES"* in /etc/rc.conf.  If you have not rebooted since putting that in there, then you'll also need to run:
`# /etc/rc.d/hostid start`
`# /etc/rc.d/zfs start`



> I also tried doing it thought the network
> 
> 
> 
> ...



At least in FreeBSD 7.2 with ZFSv6, there are issues with the zfs snapshot send feature (well, technically, it's the receive side).  There's some poorly optimised buffers in there, which limits the throughput to about 15 KBytes/sec.    Haven't tried on anything newer.



> Anyone have any idea's any experience moving zfs partions from solaris to freebsd.



Do the export/import process and things Will Just Work(tm).    After all, that's the whole point of export/import.


----------



## ronaldprettyman (Jul 16, 2009)

I did not write down the kernel panic. I ended creating a pool in bsd then importing it into opensolaris and just moving from opensolaris pool to the new bsd pool. Then rebooting into bsd and reconstructing the original pool. I looked into it and its a version issue. Older versions of zfs can't read newer versions. I hope its something thats fixed in the future on the zfs side. But I'll have to try 7-current. Thanks


----------



## ronaldprettyman (Jul 16, 2009)

I'm gonna setup v13 in 7-stable and try doing my backups from solaris 10, I believe solaris 10 is also using  version 13 so it should work. I tested small recieves from solaris in linux and it seemed to work. But freebsd seems like a better choose and I'd like to get it working with snapshots and send/receives at a minimum.


----------



## desnudopenguino (Jul 21, 2009)

I think I remember reading somewhere that you can't import a zpool on a system that has a lower version of zfs.  So if you have a zpool with version 13 & try to import it onto, say FreeBSD 7.2-RELEASE, that has version 6, it won't work.  That might have been what was causing your troubles?  Anyway just a thought, Good luck!


----------



## ronaldprettyman (Jul 23, 2009)

desnudopenguino said:
			
		

> I think I remember reading somewhere that you can't import a zpool on a system that has a lower version of zfs.  So if you have a zpool with version 13 & try to import it onto, say FreeBSD 7.2-RELEASE, that has version 6, it won't work.  That might have been what was causing your troubles?  Anyway just a thought, Good luck!


Yeah I meant to update this. I went in Freebsd created a pool. Exported it. Booted the live opensolaris, send/rec from the old to the new. Went back into freebsd recreated the original pool and restored it from the backup I created in the live environment with the older version I created with freebsd.


----------



## bb (Jul 23, 2009)

There's a little trick with zfs pools. Try the command 


```
zpool create -o version=6 mypool /dev/path/to/your/disk
```

on opensolaris or FreeBSD > 7.2, and you will get a pool that is importable from FreeBSD 7.2 and MacOSX.

This way you don't have to reboot into a bunch of different systems just to create a pool.


----------



## desnudopenguino (Jul 24, 2009)

That's pretty sweet.  I'll have to put it into my bag of tricks for when a RELEASE gets a higher version of zfs, which isn't that far off.


----------



## trash (Oct 13, 2009)

anyone get a corrupt GPT table error when doing it ?


----------

