Я думаю опция 3, как Вы описали выше, вероятно, Ваш лучший выбор. Самая большая проблема с тем, что Вы хотите, состоит в том, что ZFS действительно только обрабатывает эту копию на записи на уровне набора данных/снимка.
Я настоятельно рекомендовал бы избегать использования dedup, если Вы не проверили, что он работает хорошо с Вашей точной средой. У меня есть личный опыт с dedup, работающим отлично, пока еще одно хранилище пользователя или VM не перемещено в, и затем это падает с утеса производительности и вызывает много проблем. Просто, потому что похоже, что это работает отлично с Вашими первыми десятью пользователями, Ваша машина могла бы упасть, когда Вы добавляете одиннадцатое (или двенадцатый, или тринадцатый, или безотносительно). Если Вы хотите пойти этим путем, сделайте абсолютно уверенными, что у Вас есть тестовая среда, которая точно подражает Вашей продуктивной среде и что это работает хорошо в той среде.
Назад к опции 3, необходимо будет настроить определенный набор данных для содержания каждого из деревьев файловой системы, которыми Вы хотите управлять таким образом. После того как Вы имеете настроенный и первоначально заполненный, берете Ваши снимки (один на набор данных, который будет отличаться немного), и продвиньте затем в клоны. Никогда не касайтесь исходного набора данных снова.
Да, это решение имеет проблемы. Я не говорю, что это не делает, но, учитывая ограничения ZFS, это - все еще, вероятно, лучшее. Я действительно находил эту ссылку на кого-то использующего клоны эффективно: http://thegreyblog.blogspot.com/2009/05/sparing-disk-space-with-zfs-clones.html
Я не настоящий знакомый с btrfs, но если он поддерживает опции, которые Вы хотите, Вы рассмотрели установку отдельного сервера только для поддержки этих наборов данных, с помощью Linux и btrfs на том сервере?
Я не думаю, что это отображается на ноготки. GID, который ноготки используют в Вашей локальной системе, является тем же числом как группа по умолчанию 100py на удаленном сервере devcoder01.
На моем ноутбуке моя группа по умолчанию является GID 501, saml.
$ id -a
uid=500(saml) gid=501(saml) groups=501(saml),502(vboxusers),503(jupiter)
На моем кожевнике удаленного сервера пользователь sam использует следующее:
$ id -a sam
uid=5060(sam) gid=1000(users) groups=1000(users),1060(pics),1050(mp3s),1070(mock)
Теперь, когда я соединяюсь:
$ sshfs -o idmap=user sam@skinner:/home/sam /home/saml/mnt
$ ls -l ~/mnt
drwxr-xr-x 1 saml users 4096 May 27 2011 projects
drwxr-xr-x 1 saml users 4096 Mar 11 22:53 public_html
-rw-r--r-- 1 root root 1992744 Apr 18 2012 rest.war
-rw-r--r-- 1 saml 1000 136 Sep 4 2012 scott_jay_addresses.txt
drwxr-xr-x 1 saml 1000 4096 Jun 27 2012 SparkleShare
Если бы Вы смотрите в этом каталоге, казалось бы, что у меня есть доступ к другим группам, но это - просто способ, которым работает sshfs. Это представляет общий каталог с помощью UIDs/GIDs удаленного, и у Вас, оказывается, есть то же, UIDs/GIDs используемый в Вашей локальной системе.
Если Вы используете -n
переключатель к ls -l
Вы видите фактический UIDs/GIDs:
$ ls -ln
drwxr-xr-x 1 500 100 4096 Mar 11 22:53 public_html
-rw-r--r-- 1 0 0 1992744 Apr 18 2012 rest.war
-rw-r--r-- 1 500 1000 136 Sep 4 2012 scott_jay_addresses.txt
drwxr-xr-x 1 500 1000 4096 Jun 27 2012 SparkleShare
Если у меня была запись в моей локальной системе /etc/group
файл для 1 000 это показали бы при выполнении ls -l
. В вышеупомянутом выводе Вы видите, что группа "пользователь" использует GID 100, и у меня просто, оказывается, есть запись в моей локальной системе для этого:
users:x:100:
Основываясь на ситуации (результатахid -a
)в ответе slm , возможно, вы можете попробовать:
sudo sshfs -o allow_other,default_permissions,uid=500,gid=501 sam@skinner:/home/sam /home/saml/mnt