Bug 25056 - Не работают квоты второго уровня
: Не работают квоты второго уровня
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/kernel-image-ovz-el)
: unstable
: x86_64 Linux
: P3 major
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2011-02-09 14:28 by
Modified: 2011-04-22 12:14 (History)


Attachments
HN systerm-report (58.38 KB, application/x-bzip2)
2011-02-09 14:28, Evgenii Terechkov
no flags Details
VE config (958 bytes, application/octet-stream)
2011-02-09 14:31, Evgenii Terechkov
no flags Details
Трассировка запуска quotaon в VE (1020 bytes, text/plain)
2011-02-09 14:35, Evgenii Terechkov
no flags Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2011-02-09 14:28:16
Created an attachment (id=4791) [details]
HN systerm-report

kernel-image-ovz-el-2.6.32-alt9 , HN на б.м. современном Сизифе, VE-шки на
Debian5

В VE наблюдается ситуация невозможности включить квоты фаиловой системы:
quotaon -vaug всегда выдаёт сообщение "Cannot find quota file on / [/dev/simfs]
to turn quotas
on/off." хотя:

vsh:/# ls -l /aqu*
lrwxrwxrwx 1 root root 39 Feb  9 16:59 /aquota.group ->
/proc/vz/vzaquota/00000015/aquota.group
lrwxrwxrwx 1 root root 38 Feb  9 16:59 /aquota.user ->
/proc/vz/vzaquota/00000015/aquota.user
vsh:/# ls -l /proc/vz/vzaquota/
total 0

и содержание фаилов /proc/vz/vzquota/00000015/aquota.{user,group} непустое.

/etc/rc2.d/S10vzquota в VE срабатывает из исключением финального вызова
quotaon, так что записи корневого раздела в /etc/mtab и /proc/mounts выглядят
так:

/etc/mtab:/dev/simfs / reiserfs rw,usrquota,grpquota 0 0
/proc/mounts:/dev/simfs / simfs rw,relatime,usrquota,grpquota 0 0
------- Comment #1 From 2011-02-09 14:31:47 -------
Created an attachment (id=4792) [details]
VE config

Забыл добавить: пакеты vzctl и vzquota не изменны (rpm -V), сервис vz запущен.

Версия пакета quota в VE: 3.16-7

На новых VE воспроизводится.
------- Comment #2 From 2011-02-09 14:35:09 -------
Created an attachment (id=4793) [details]
Трассировка запуска quotaon в VE

По трассировке видно, что /aquota* открываются нормально, но тут же закрываются
с сообщением об ошибке.

Судя по быстрому просмотру кода пакета quota такое может быть если в начале
файлов квот не найдена нужная "магическая" последовательность, но я могу
ошибаться.
------- Comment #3 From 2011-02-09 16:26:55 -------
Ага, воспроизводится
------- Comment #4 From 2011-02-10 11:20:52 -------
(В ответ на комментарий №3)
> Ага, воспроизводится

Виновный найден - это старая quota. Она не поддерживает квоты версий 1,1,
которые предоставляются современными ядрами. Подробности в ядерном коммите
498c6015, который сбэкпорчен в rhelные ядра. Новая квота (например, 4.0)
поддерживает эти версии.

Есть [правильный] вариант - обновить quota.
Есть [неправильный] вариант - пока что revertнуть этот бэкпорт в наших ядрах.
------- Comment #5 From 2011-02-10 12:46:53 -------
Из man quota:

FILES
       aquota.user  or  aquota.group
                           quota file at the filesystem root (version 2 quota

Разве 1.1 это не, наоборот, устаревший формат? Я специально (см. вывод strace)
указываю что включать надо квоты v2.

Как я понимаю, нового quota для lenny нет и не предвидится. Что же делать?
------- Comment #6 From 2011-02-10 12:57:55 -------
(В ответ на комментарий №5)
> Из man quota:
> 
> FILES
>        aquota.user  or  aquota.group
>                            quota file at the filesystem root (version 2 quota
> 
> Разве 1.1 это не, наоборот, устаревший формат? Я специально (см. вывод strace)
> указываю что включать надо квоты v2.
1, 1 - это более-менее subверсии пользовательских и групповых квот в квотах
версии 2
------- Comment #7 From 2011-02-14 15:08:58 -------
Ядро откатываться не будет, перевешиваю на quota.
------- Comment #8 From 2011-02-14 17:59:57 -------
Что-то я не понял, какой смысл перевешивать на нашу квоту, когда указано что в
VE Debian Lenny (и там, как я понимаю, как в oldstable никто обновлять пакет
quota не будет).

Вообще, не знаю, что тут поделать. Есть идеи которых я не понял?
------- Comment #9 From 2011-02-14 22:11:36 -------
(В ответ на комментарий №8)
> Что-то я не понял, какой смысл перевешивать на нашу квоту, когда указано что в
> VE Debian Lenny (и там, как я понимаю, как в oldstable никто обновлять пакет
> quota не будет).
> 
> Вообще, не знаю, что тут поделать. Есть идеи которых я не понял?

Идея в том, что quota в Сизифе устарела и не умеет работать с новыми
ядрами, не только с ovz-el, но и с el-smp, un-def и т.д. Поэтому я и
перевесил этот баг на quota.

Решение вашей проблемы - либо собрать для этого контейнера quota, что
не должно быть очень уж сложно, либо использовать более старое ядро,
с которым quota 3.16 работает.
------- Comment #10 From 2011-02-15 02:57:55 -------
> > Вообще, не знаю, что тут поделать. Есть идеи которых я не понял?
> Идея в том, что quota в Сизифе устарела и не умеет работать с новыми
> ядрами, не только с ovz-el, но и с el-smp, un-def и т.д. Поэтому я и
> перевесил этот баг на quota.

Понял.

> Решение вашей проблемы - либо собрать для этого контейнера quota, что
> не должно быть очень уж сложно, либо использовать более старое ядро,
> с которым quota 3.16 работает.

Поскольку грамотно собирать deb-ы я пока не умею (видимо, придётся научиться),
то возникает вопрос: на какое ядро имет смысл даунгрейдится и какие пакеты при
этом потребуется откатить с ним?
------- Comment #11 From 2011-02-15 03:05:24 -------
(In reply to comment #10)
> Поскольку грамотно собирать deb-ы я пока не умею (видимо, придётся научиться),

Мне кажется, что пакет quota из stable имеет все шансы нормально установиться
поверх oldstable; впрочем, сам я не проверял.
------- Comment #12 From 2011-02-15 03:19:08 -------
Я думал об этом:

# apt-get install quota
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  dbus libc-bin libc6 libdbus-1-3 libnl1 locales locales-all nscd
Suggested packages:
  dbus-x11 glibc-doc libnet-ldap-perl
The following NEW packages will be installed:
  dbus libc-bin libdbus-1-3 libnl1
The following packages will be upgraded:
  libc6 locales locales-all nscd quota
5 upgraded, 4 newly installed, 0 to remove and 327 not upgraded.

я думаю, что установиться то оно установится, но вот что при этом отвалится -
вопрос.

Думаю на следующей неделе добраться попробовать. А пока актуален вопрос про
ядра.
------- Comment #13 From 2011-02-15 03:28:17 -------
(In reply to comment #12)
> Я думал об этом:
> 
> # apt-get install quota
> Reading package lists... Done
> Building dependency tree       
> Reading state information... Done
> The following extra packages will be installed:
>   dbus libc-bin libc6 libdbus-1-3 libnl1 locales locales-all nscd
> Suggested packages:
>   dbus-x11 glibc-doc libnet-ldap-perl
> The following NEW packages will be installed:
>   dbus libc-bin libdbus-1-3 libnl1

А, в stable quota упаковали quota_nld (Quota netlink daemon) с поддержкой
netlink и dbus.

> The following packages will be upgraded:
>   libc6 locales locales-all nscd quota
> 5 upgraded, 4 newly installed, 0 to remove and 327 not upgraded.
> 
> я думаю, что установиться то оно установится, но вот что при этом отвалится -
> вопрос.

Пожалуй что на oldstable не стоит такое ставить.
------- Comment #14 From 2011-02-15 10:54:37 -------
> Думаю на следующей неделе добраться попробовать. А пока актуален вопрос про
> ядра.

В ovz-el этот бэкпорт появился в 2.6.32-alt4, но я не советую использовать
ядро ovz-el-2.6.32-alt3 - с тех пор исправлено _много_ багов.

Лучше использовать ovz-rhel из 5.1, но стоит учитывать, что оно не будет
работать с современным udev > 142, т.е. udev нужен тоже из бранча 5.1.
------- Comment #15 From 2011-02-15 15:44:11 -------
quota-2:4.00-alt1 -> sisyphus:

* Tue Feb 15 2011 Anton Protopopov <aspsk@altlinux> 2:4.00-alt1
- quotasync.c: use GNU implementation of basename(3)
- Add epoch:2 to prevent version conflicts with quota from branches

* Thu Feb 10 2011 Anton Protopopov <aspsk@altlinux> 4.00-alt1
- Apply/rebase ALT patches from old repo:
  * Fix XFS over loopback support
  * Don't strip binaries
  * Use more polite messages in e-mail warnings
  * Fix quota{on,off} paths in quota{on,off}.8
  * Use vitmp instead of vi in edquota(8)
  * Fix errors uncovered by compiler
  * Use configure macros instead of hardcoded defaults
  * rquota_svc.c (parse_options): Import FC enhancement to port range check
  * Fix build with --disable-bsd_behaviour
- Updated to 4.00-pre2+ (ALT #25056)
------- Comment #16 From 2011-04-14 17:05:34 -------
Наступил на эту граблю с CentOS-5.6
там quota-3.13-4.el5
------- Comment #17 From 2011-04-14 18:25:15 -------
(В ответ на комментарий №7)
> Ядро откатываться не будет, перевешиваю на quota.
А может как-то можно найти какой-то компромисс?
Есть куча VPS старых и не очень которые не будут обновляться и нормально
работают. И апгрейд железа решается с помощью виртуализации. Если эти старые
VPS работать не смогут нормально на новых ядрах то  это подрывает всю схему.
Уже попали под раздачу:
Debian5
CentOS-5.6

Или альт только для альта?
------- Comment #18 From 2011-04-14 21:16:56 -------
(В ответ на комментарий №17)
> (В ответ на комментарий №7)
> > Ядро откатываться не будет, перевешиваю на quota.
> А может как-то можно найти какой-то компромисс?

У вас есть предложения? Теоретически можно сделать
параметр командной строки для отката runtime...
------- Comment #19 From 2011-04-14 21:28:56 -------
(В ответ на комментарий №18)
> (В ответ на комментарий №17)
> > (В ответ на комментарий №7)
> > > Ядро откатываться не будет, перевешиваю на quota.
> > А может как-то можно найти какой-то компромисс?
> 
> У вас есть предложения? Теоретически можно сделать
> параметр командной строки для отката runtime...
Если это теоретически возможно... То хорошо бы иметь такую возможность.
Но даже если и сделать такое, то #25432 все равно нивелирует все попытки.

Наверно вы правы, придется сидеть до упора на rhel-ovz. И знать об этой
"особенности" :(


(В ответ на комментарий №18)
> (В ответ на комментарий №17)
> > (В ответ на комментарий №7)
> > > Ядро откатываться не будет, перевешиваю на quota.
> > А может как-то можно найти какой-то компромисс?
> 
> У вас есть предложения? Теоретически можно сделать
> параметр командной строки для отката runtime...
------- Comment #20 From 2011-04-15 20:37:18 -------
> > > Ядро откатываться не будет, перевешиваю на quota.
> > А может как-то можно найти какой-то компромисс?
> У вас есть предложения? Теоретически можно сделать
> параметр командной строки для отката runtime...
Пока озаботил апстрим http://bugzilla.openvz.org/show_bug.cgi?id=1849
------- Comment #21 From 2011-04-21 22:31:07 -------
kernel-image-ovz-el-2.6.32-alt16 -> sisyphus:

* Thu Apr 21 2011 Anton Protopopov <aspsk@altlinux> 2.6.32-alt16
- VZDQUOTA: downgrade quota revision from 1 to 0 for quota version 2
  (ALT #25432, #25056)
------- Comment #22 From 2011-04-22 12:14:59 -------
На первый взгляд, работает.