I'm interested in creating a read-only vdev or adding in the ability to disallow writes to a particular vdev within a pool. So, if there were two device nodes: d1 and d2 inside of a pool, I'd like to restrict writing to d1 and force all writes to go to d2.
Initially, I attempted to manipulate vdev_t spa_root_vdev -> vdev_stat_t vdev_stat -> vs_alloc. I set vs_alloc = vs_space (hoping this would prevent further writes to the particular vdev). This resulted in zpool list displaying incorrect values in the "used" column but not restricting writes. I am currently looking at the ZIO code to tackle my problem. I am trying to find how this layer tracks the free blocks (I think this is done w/ trees). I'd like to mark all the blocks as written to prevent writes to a particular vdev. Any suggestions on how to tackle this would be greatly appreciated ~Mike -- This message posted from opensolaris.org