{"action":"reopened","issue":{"url":"https://api.github.com/repos/cerana/cerana/issues/143","repository_url":"https://api.github.com/repos/cerana/cerana","labels_url":"https://api.github.com/repos/cerana/cerana/issues/143/labels{/name}","comments_url":"https://api.github.com/repos/cerana/cerana/issues/143/comments","events_url":"https://api.github.com/repos/cerana/cerana/issues/143/events","html_url":"https://github.com/cerana/cerana/issues/143","id":147875746,"number":143,"title":"Settle on best solution for zfs delegation.","user":{"login":"joshie","id":1170912,"avatar_url":"https://avatars.githubusercontent.com/u/1170912?v=3","gravatar_id":"","url":"https://api.github.com/users/joshie","html_url":"https://github.com/joshie","followers_url":"https://api.github.com/users/joshie/followers","following_url":"https://api.github.com/users/joshie/following{/other_user}","gists_url":"https://api.github.com/users/joshie/gists{/gist_id}","starred_url":"https://api.github.com/users/joshie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshie/subscriptions","organizations_url":"https://api.github.com/users/joshie/orgs","repos_url":"https://api.github.com/users/joshie/repos","events_url":"https://api.github.com/users/joshie/events{/privacy}","received_events_url":"https://api.github.com/users/joshie/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"trisk","id":207920,"avatar_url":"https://avatars.githubusercontent.com/u/207920?v=3","gravatar_id":"","url":"https://api.github.com/users/trisk","html_url":"https://github.com/trisk","followers_url":"https://api.github.com/users/trisk/followers","following_url":"https://api.github.com/users/trisk/following{/other_user}","gists_url":"https://api.github.com/users/trisk/gists{/gist_id}","starred_url":"https://api.github.com/users/trisk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trisk/subscriptions","organizations_url":"https://api.github.com/users/trisk/orgs","repos_url":"https://api.github.com/users/trisk/repos","events_url":"https://api.github.com/users/trisk/events{/privacy}","received_events_url":"https://api.github.com/users/trisk/received_events","type":"User","site_admin":false},"assignees":[{"login":"trisk","id":207920,"avatar_url":"https://avatars.githubusercontent.com/u/207920?v=3","gravatar_id":"","url":"https://api.github.com/users/trisk","html_url":"https://github.com/trisk","followers_url":"https://api.github.com/users/trisk/followers","following_url":"https://api.github.com/users/trisk/following{/other_user}","gists_url":"https://api.github.com/users/trisk/gists{/gist_id}","starred_url":"https://api.github.com/users/trisk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trisk/subscriptions","organizations_url":"https://api.github.com/users/trisk/orgs","repos_url":"https://api.github.com/users/trisk/repos","events_url":"https://api.github.com/users/trisk/events{/privacy}","received_events_url":"https://api.github.com/users/trisk/received_events","type":"User","site_admin":false}],"milestone":null,"comments":2,"created_at":"2016-04-12T21:17:59Z","updated_at":"2016-07-05T14:57:49Z","closed_at":null,"body":"In order to delegate zfs, we need a mechanism to do so. From where I sit, we either need a solution that doesn't involve the kernel (and therefore can be specific), or we need something other people can use for not zfs.\r\n\r\n1.) In the world where we don't modify the kernel, we might be able to simply use cgroups.\r\nPROS:\r\n- no kernel modification\r\n\r\nCONS:\r\n- feels sloppy\r\n\r\n2.) We can use one of the two slots left to create a delegation namespace that multiple providers can use. This would provide an identifier (like all namespaces), and process entry/exit callbacks drivers can register (this is what we currently do)\r\nhttps://github.com/cerana/linux-stable/tree/delegns\r\nPROS:\r\n- We already did it.\r\n- Relatively little changes to kernel\r\n\r\nCONS:\r\n- Uses one of the final two bit flags available on clone\r\n- (Generally a problem with how namespaces are done), does not solve the problem that we are \"running out of namespaces\"\r\n- It means a named delegation would have to be shared amongst drivers\r\n- It might be really hard to get the linux kernel community to accept this for upstream\r\n- We could look bad for proposing it over superior solutions\r\n\r\n3.) We could modify the kernel/glibc to handle more namespaces by using a bit flag to use this \"extended namespace\" feature, and then have namespaces registered ad hoc by name.\r\nPROS:\r\n- Solves the \"running out of namespaces\" problem for good. If containerization continues to be a trend, this is going to have to be done anyway.\r\n- Lets drivers register namespaces uniquely for themselves (and keep in spirit with why namespaces are as they are)\r\n- If done right, should be welcome by the community with open arms.\r\n\r\nCONS:\r\n- A lot of glibc/kernel changes (potentially, @trisk is smart so maybe more elegant than I realize)\r\n- A greater than 0 performance cost, although this could be minimized by simply not setting the clone flag that uses extended namespaces (so the reality is cost nothing for things that choose not to)\r\n- The most time consuming for us\r\n\r\n4.) anything else that ends up in comments here :)"}}
{"actor":{"display_login":"pjnorton"}}