• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

ZFS - online SAN migration options

niomosy

Limp Gawd
Joined
Nov 21, 2005
Messages
247
I recently had to perform an online migration of an Oracle ZFS pool from one array to another as the old array was being decommissioned. The servers are running Solaris 10 U7. It seemed, at the time, that the only method of doing this while keeping everything up was to perform a disk replacement.

While this is somewhat similar to what we'd do on AIX or Solaris with Veritas Volume Manager, those are oriented more towards moving the data in that I can move multiple smaller disks to a single large disk via migratepv or disk evacuation. Is that the case with ZFS? It seemed like ZFS wanted an unused device as the replacement device.

Are there other options for online migrations with ZFS? I saw that Solaris 10 U8 and up seem to have the ability to mirror then split that mirror off into a new zpool but do I get to chose which devices go and which stay? If so, that could also be an option.
 
if I understand it correctly.
You have a ZFS pool and want to replace the disks online?

If so, you can replace a pool disk with a new one (starts a resilvering) one by one
If autoexpand property is set to on and you use larger disks, then you
increase also pool capacity after last disk is replaced. This is the only option
if you have a raid-Z

Your second option.
If a vdev of your pool is a mirror, you can remove a mirrored disk from that vdev.
The removed disk is unused after this action, not another pool. If you have mirrors
you should first attach a disk to this mirror to build a 3way mirror and then remove
the old disk to have always redundancy
 
If you want to send your data to another array, use "zfs send" and "zfs receive" to send a whole filesystem including snapshots to another server or raid.
 
I do this for backups. I have a 1TB drive in a hotplug carrier. It has a zfs pool. Plug it in, snapshot the dataset, import the backup pool, send that snapshot to the backup pool, export the backup pool, unplug the drive. Works great.
 
The data has to be moved to new disks while the app is running. Basically, the array I'm on gets turned off so I need to move my data to another array while Oracle's up and running. Same server, same data, new array. I can't use a snapshot unless it can take over on-the-fly for my current file systems without Oracle noticing.

For the disk replacement, am I required to keep the same number of disks? If i have 30 50gb luns, should the storage team carve out 30 50gb luns on the new array or can I do a zpool replace with fewer disks? With AIX or Solaris with Veritas, we could simply merge multiple smaller disks into a single larger disk and not have to worry about keeping the quantity of luns identical. No one trusted Linux online migrations after a few panics, so those are done offline.

As for the zpool, it is a simple, unstriped pool on EMX DMX or Netapp SAN array (depending on the server). We let the array handle the striping and use zfs more for reducing cost by skipping Veritas Volume Manager license costs on our Solaris 10 servers.

In any case, the migration needs to be seamless to the database as the old drives will be removed on the fly. No downtime.
 
Last edited:
Back
Top