The stack would look something like this:
ZFS (plaintext files) -> CFS encrypted mount -> UFS filesystem (encrypted files) -> raw devices
That was in 2006, when not many people were using ZFS for storage management. However, now that ZFS is likely to be the default choice for most people, you end up with a stack that looks like this:
ZFS (plaintext files) -> CFS encrypted mount -> ZFS root pool (encrypted files) -> raw devices
It turns out that when you layer ZFS like this, you can cause what appears to be a kernel deadlock under high I/O load, when writing files into the top-level ZFS mount. The process writing becomes hung and unkillable, with the underlying filesystem unresponsive. If the underlying ZFS filesystem is in the root pool, this means that in practice, the whole system is now unusable and has to be hard reset.
While this is a slightly contrived scenario, it gives me a good insight into why the use of files (rather than devices) is not supported for creating zpools in production use. So remember, in this case, layering considered harmful!
Unfortunately, because of this, I would no longer suggest using this approach to creating encrypted filesystems on Solaris.
No comments:
Post a Comment