Change ZFS disk references to use GPTID instead of GEOM name?
•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.
Related videos on Youtube
Comments
-
abstrask almost 2 years
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!