1

I've built a FreeNAS rig on a sweet little HP ProLiant MicroServer.

Storage wise, I've created a 3 disk ZFS pool using RAIDZ1. I started out with 3 small disks, while getting familiar with FreeNAS, but ultimately decided to replace my home NAS with it.

So I bought new 2 TB disks, and replaced each disk with a larger, one at a time, letting the pool resilver after each replacement.

The original pool, created via the GUI, used GPTID references. zpool status would show something similar to this:

  pool: vol2
 state: ONLINE
  scan: none requested
config:

        NAME                                          STATE     READ WRITE CKSUM
        vol2                                          ONLINE       0     0     0
          gptid/96857d85-6c2f-11e3-9387-78acc0f794bd  ONLINE       0     0     0

When I replaced the disks in the pool with zpool replace, I ended up using the GEOM names (adaN) instead. To be honest I found it a lot easier and more intuitive this way.

But it seems that referencing the disks using GEOM names comes with a risk of having your drives re-labeled upon reboot, confusing ZFS and possibly corrupting your ZFS pools in the process.

I figured I could "offline" each of the disks and replace them with zpool replace, using their GPTIDs, which I assume will require resilvering, thus putting my data at risk while it takes place.

However, I can't seem to find any GPTIDs for my "ada" disks. ls /dev/gptid just lists my fourth, and currently unused, disk. glabel list returns the same disk/GPTID and various FreeNAS partitions.

  • Is there actually a point in replacing the referenced GEOM names with GPTIDs?
  • Why can't I see GPTIDs for the new disks? Do I need to do something, before GPTIDs are assigned and glabel list will return their names?
  • Is there a safer way to do so, that does not involve resilvering?

Thanks!

1

•Is there actually a point in replacing the referenced GEOM names with GPTIDs?

GEOM names are generated from controller slots, so if you swap disks' connectors their GEOM names will swap too. GPTID names are based on disk serial numbers and are same everywhere.

•Why can't I see GPTIDs for the new disks? Do I need to do something, before GPTIDs are assigned and glabel list will return their names?

When disk is used by one id (GEOM in zpool in your case) it other ids (including GPTID) are blocked. So when you detach disk from zpool or just put it offline - there will appear missing gptid in /dev/gptid

•Is there a safer way to do so, that does not involve resilvering?

The only way is to detach disk and attach it to the pool again with another name. Resilvering isn't so dangerous as you can think, because it is just a process of mirror verification and synchronization. It copies only data that is out of sync, so you only risk changes made between disk detachment and reattachment.

0

ZFS has been designed with the data validity goal: it will not deliver corrupt data but none if it cannot produce correct data (configurable default behaviour). Moving pool disks around will not confuse ZFS as long as it can find them. This link, (partly in German) is quite helpful. This is just an incomplete hint - consider it that way.

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.