LINUX.ORG.RU
ФорумAdmin

Способы ограничения дисковой квоты

 ,


0

2

Всем привет. Мой вопрос касается нескольких подходов, которые пришли мне в голову для ограничения дисковой квоты пользователям средствами ZFS. Первый - очевидный, использование zfs set userquota@username pool.
Второй же - это создание для каждого пользователя отдельного zfs volume. Второй вариант я так понимаю более гибкий, позволяет делать снапшоты volume, мигрировать их и т.д. Насколько эти подходы будут отличаться по ресурсоёмкости? Что из двух вариантов по вашему мнению будет работать быстрее, если пользователей порядка 3000?

★★★★★

Первый способ позволит ограничить пользователя по всему пулу, а не только в хомяке (в случае, если у него есть возможность куда-нибудь ещё писать). В остальном имхо разницы в производительности не будет. Как вариант, можно скомбинировать подходы и получить плюсы каждого.

unC0Rr ★★★★★ ()
Ответ на: комментарий от unC0Rr

хорошо, а что насчет ситуации, когда юзеру понадобится больше места? можно ли уменьшать/увеличивать размер zfs volume на ходу без потери данных? с квотой я так понял таких проблем не стоит в принципе бояться.

Komintern ★★★★★ ()
Ответ на: комментарий от Komintern

Вот тут что-то нехорошее пишут про изменение размера: http://docs.oracle.com/cd/E18752_01/html/819-5461/gaypf.html

Рекомендую не ограничивать размер, а просто выставить квоты в таком случае. zfs volume будет себя вести в таком случае как обычная папка (ну, плюс снапшоты и прочие плюшки), имея возможность занять сколько угодно места в пуле в любой момент.

unC0Rr ★★★★★ ()
Ответ на: комментарий от unC0Rr

Хотя нет, я тут с терминологией попутал. Тебе volume вообще не нужны, создавай по фс на каждого юзера.

unC0Rr ★★★★★ ()
Ответ на: комментарий от unC0Rr

а ее ресайзить без потери данных можно будет на лету? да и не сильно ли громоздко получится? как я понял в этом случае в фстаб нужно будет прописывать ровно сколько mountpoints, сколько в системе юзеров.

Komintern ★★★★★ ()
Ответ на: комментарий от Komintern

Тут главное разобраться. Пул - это место на диске, где будут располагаться файловые системы zfs. Он обычно один, работа с ним через команду zpool. Файловые системы располагаются на пуле, работать с ними так же просто, как с директриями, при помощи команды zfs. У каждой фс на пуле остаток свободного места равен свободному месту в пуле, т.е. любая фс в любой момент времени оттуда откусывает сколько нужно. Ровно так же, как поддиректории на обычной фс.

В zfs эти отдельные фс работают быстро, и их спокойно можно создавать хоть тысячами. У меня в freebsd насчёт zfs вообще ни одной записи нет, всё автоматом подгружается. Можешь почитать про zfs mount -a в мане на этот счёт.

Вот кусок от zfs list на моей машине:

tank/usr                   581G   335G  15,0G  /usr
tank/usr/home              524G   335G   521G  /usr/home
tank/usr/home/buildslave  3,78G  28,2G  3,78G  /usr/home/buildslave
tank/usr/ports            15,7G   335G  6,13G  /usr/ports
tank/usr/ports/distfiles  9,58G   335G  9,58G  /usr/ports/distfiles
tank/var                  19,3G   335G  19,1G  /var

обрати внимание, что на всех фс остаток 335G, кроме tank/usr/home/buildslave, на который стоит квота:

$ zfs get quota tank/usr/home/buildslave
NAME                      PROPERTY  VALUE  SOURCE
tank/usr/home/buildslave  quota     32G    local

unC0Rr ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.