{"action":"created","issue":{"url":"https://api.github.com/repos/iocage/iocage/issues/183","labels_url":"https://api.github.com/repos/iocage/iocage/issues/183/labels{/name}","comments_url":"https://api.github.com/repos/iocage/iocage/issues/183/comments","events_url":"https://api.github.com/repos/iocage/iocage/issues/183/events","html_url":"https://github.com/iocage/iocage/issues/183","id":104463222,"number":183,"title":"Moving basejails around","user":{"login":"moviuro","id":6882978,"avatar_url":"https://avatars.githubusercontent.com/u/6882978?v=3","gravatar_id":"","url":"https://api.github.com/users/moviuro","html_url":"https://github.com/moviuro","followers_url":"https://api.github.com/users/moviuro/followers","following_url":"https://api.github.com/users/moviuro/following{/other_user}","gists_url":"https://api.github.com/users/moviuro/gists{/gist_id}","starred_url":"https://api.github.com/users/moviuro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/moviuro/subscriptions","organizations_url":"https://api.github.com/users/moviuro/orgs","repos_url":"https://api.github.com/users/moviuro/repos","events_url":"https://api.github.com/users/moviuro/events{/privacy}","received_events_url":"https://api.github.com/users/moviuro/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/iocage/iocage/labels/wontfix","name":"wontfix","color":"ffffff"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-09-02T11:50:12Z","updated_at":"2015-09-02T21:43:26Z","closed_at":"2015-09-02T19:48:58Z","body":"A (huge?) value we can create is easily moving basejails around.\r\n\r\nSince basjails basically are an application installed in a ZFS dataset, requiring a base dataset to run. If we want to move basejails around, we need:\r\n* basejail release\r\n* basejail required distribution sets (`base.txz`, `games.txz`, etc.)\r\n* basejail architecture\r\n\r\nThat way, we can just take the ZFS datasets that matter (the ones that aren't cloned from a base set/release volume) and send it to an other machine with `iocage`, import the said datasets and start the jail right away. We should get:\r\n* a fatal error if the release is not available on the new host\r\n* a warning if only a base with a superset of the required datasets is to be found (e.g. the basejail requires `base.txz` and the only base we have has `base.txz` and `lib32.txz`)\r\n* different warnings if architecture is different (i386 vs amd64, no idea if 32bit jails can run on 64bit host)\r\n\r\nATM, `export` creates a tarball of all files of a jail, be it a full jail (makes somewhat sense) or a basejail (doesn't make any sense, because, well, it doesn't need its base). If we use `zfs send` to create the archives instead, we might not even need a checksum since ZFS would, AFAICT, take care of that petty issue."},"comment":{"url":"https://api.github.com/repos/iocage/iocage/issues/comments/137252935","html_url":"https://github.com/iocage/iocage/issues/183#issuecomment-137252935","issue_url":"https://api.github.com/repos/iocage/iocage/issues/183","id":137252935,"user":{"login":"skarekrow","id":1589047,"avatar_url":"https://avatars.githubusercontent.com/u/1589047?v=3","gravatar_id":"","url":"https://api.github.com/users/skarekrow","html_url":"https://github.com/skarekrow","followers_url":"https://api.github.com/users/skarekrow/followers","following_url":"https://api.github.com/users/skarekrow/following{/other_user}","gists_url":"https://api.github.com/users/skarekrow/gists{/gist_id}","starred_url":"https://api.github.com/users/skarekrow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skarekrow/subscriptions","organizations_url":"https://api.github.com/users/skarekrow/orgs","repos_url":"https://api.github.com/users/skarekrow/repos","events_url":"https://api.github.com/users/skarekrow/events{/privacy}","received_events_url":"https://api.github.com/users/skarekrow/received_events","type":"User","site_admin":false},"created_at":"2015-09-02T21:43:26Z","updated_at":"2015-09-02T21:43:26Z","body":"Sorry, I don't think you understand what I'm saying. My apologies if I wasn't clear. iocage would need to be multi-node capable for that to happen. You can't send something without the other side needing to be there open to receiving it. So that feature is irrelevant for iocage as it's meant for use on a single machine. The admin can certainly `zfs send/receive` all they wish, as that is how you would do it. We don't plan to support every edge case, and this is one of those. So when I said at this time, what I really meant was at all. This feature will not be added to iocage."}}