ubuntu / zsys

ZSys daemon and client for zfs systems
GNU General Public License v3.0
302 stars 43 forks source link

Manage custom Zpool with Zsys #215

Closed loxK closed 3 years ago

loxK commented 3 years ago

Hello,

I asked about it on AskUbuntu with no answer, so I am now asking you, the developers.

I have a secondary drive with a zpool. I want some of its datasets to be managed by Zsys (state saving, gc etc.) and assign it to a specific system user. Is it possible ? If so How to do it ?

Regards.

didrocks commented 3 years ago

Any dataset on any pool matching <pool>/ROOT/<main_dataset_id> where main_dataset_id matches the one which is used for /.

Same idea for <pool>/USERDATA/.

loxK commented 3 years ago

@didrocks, can you explain a bit please ? What is that "main_dataset_id".

I have this:

» zfs get -H com.ubuntu.zsys:bootfs-datasets lpool/USERDATA/myuser/www
lpool/USERDATA/myuser/www   com.ubuntu.zsys:bootfs-datasets rpool/USERDATA/myuser_55dfrg    local

And the dataset doesn't appear in user's datasets:

    User Datasets:
     User: myuser
     - rpool/USERDATA/myuser_55dfrg@autozsys_ny1k8c
     User: root

I tried a 'wwwtest' dataset with:

» zfs get -H com.ubuntu.zsys:bootfs-datasets lpool/USERDATA/myuser_55dfrg/wwwtest 
lpool/USERDATA/myuser_55dfrg/wwwtest    com.ubuntu.zsys:bootfs-datasets rpool/ROOT/ubuntu_9l8ifz    local

Which gets added as a separate nonexistent user's dataset (not what I try to achieve):

User Datasets:
 User: wwwtest
 - lpool/USERDATA/myuser_55dfrg/wwwtest

I try to have something like this:

    User Datasets:
     User: myuser
     - rpool/USERDATA/myuser_55dfrg@autozsys_ny1k8c
     - lpool/USERDATA/myuser/www@autozsys_xxxxxx
     User: root
didrocks commented 3 years ago

I’m .not Sorry, indeed, I checked the code again and only persistent datasets are supported in split hierarchy right now for performance reasons (avoiding enumerating all datasets).

loxK commented 2 years ago

@didrocks my datasets on lpool got deleted by zsys.

In logs I can see that iot has been trying to do so since a while and just succeeded ....

mars 01 08:58:18 roaring zsysd[251632]: level=warning msg="[[67f4591d:d0a3c855]] Couldn't destroy user dataset lpool/USERDATA/myuser/dev (due to lpool/USERDATA/myuser/dev): couldn't destroy \"lpool/USERDATA/myuser/dev\" and its children: cannot destroy dataset \"lpool/USERDATA/myuser/dev\": dataset is busy"
mars 01 16:43:20 roaring zsysd[102481]: level=warning msg="[[133dec6c:8a6b5a19]] Couldn't destroy user dataset lpool/USERDATA/myuser/www (due to lpool/USERDATA/myuser/www): couldn't destroy \"lpool/USERDATA/myuser/www\" and its children: cannot destroy dataset \"lpool/USERDATA/myuser/www\": dataset is busy"
mars 01 16:43:24 roaring zsysd[102481]: level=warning msg="[[133dec6c:8a6b5a19]] Couldn't destroy user dataset lpool/USERDATA/myuser/dev (due to lpool/USERDATA/myuser/dev): couldn't destroy \"lpool/USERDATA/myuser/dev\" and its children: cannot destroy dataset \"lpool/USERDATA/myuser/dev\": dataset is busy"
mars 02 10:10:12 roaring zsysd[204975]: level=warning msg="[[b4dd2fe6:ede65dac]] Couldn't destroy user dataset lpool/USERDATA/myuser/www (due to lpool/USERDATA/myuser/www): couldn't destroy \"lpool/USERDATA/myuser/www\" and its children: cannot destroy dataset \"lpool/USERDATA/myuser/www\": dataset is busy"
mars 02 10:10:17 roaring zsysd[204975]: level=warning msg="[[b4dd2fe6:ede65dac]] Couldn't destroy user dataset lpool/USERDATA/myuser/dev (due to lpool/USERDATA/myuser/dev): couldn't destroy \"lpool/USERDATA/myuser/dev\" and its children: cannot destroy dataset \"lpool/USERDATA/myuser/dev\": dataset is busy"
mars 03 09:49:41 roaring zsysd[77695]: level=warning msg="[[0e5b5e1b:54c61a63]] Couldn't destroy user dataset lpool/USERDATA/myuser/www (due to lpool/USERDATA/myuser/www): couldn't destroy \"lpool/USERDATA/myuser/www\" and its children: cannot destroy dataset \"lpool/USERDATA/myuser/www\": dataset is busy"
mars 03 09:49:45 roaring zsysd[77695]: level=warning msg="[[0e5b5e1b:54c61a63]] Couldn't destroy user dataset lpool/USERDATA/myuser/dev (due to lpool/USERDATA/myuser/dev): couldn't destroy \"lpool/USERDATA/myuser/dev\" and its children: cannot destroy dataset \"lpool/USERDATA/myuser/dev\": dataset is busy"