Bug 25056 - Не работают квоты второго уровня
Summary: Не работают квоты второго уровня
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: kernel-image-ovz-el (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P3 major
Assignee: Gleb F-Malinovskiy
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-02-09 14:28 MSK by Evgenii Terechkov
Modified: 2011-04-22 12:14 MSK (History)
15 users (show)

See Also:


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

Note You need to log in before you can comment on or make changes to this bug.
Description Evgenii Terechkov 2011-02-09 14:28:16 MSK
Created attachment 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 Evgenii Terechkov 2011-02-09 14:31:47 MSK
Created attachment 4792 [details]
VE config

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

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

На новых VE воспроизводится.
Comment 2 Evgenii Terechkov 2011-02-09 14:35:09 MSK
Created attachment 4793 [details]
Трассировка запуска quotaon в VE

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

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

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

Есть [правильный] вариант - обновить quota.
Есть [неправильный] вариант - пока что revertнуть этот бэкпорт в наших ядрах.
Comment 5 Evgenii Terechkov 2011-02-10 12:46:53 MSK
Из 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 aspsk 2011-02-10 12:57:55 MSK
(В ответ на комментарий №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 aspsk 2011-02-14 15:08:58 MSK
Ядро откатываться не будет, перевешиваю на quota.
Comment 8 Evgenii Terechkov 2011-02-14 17:59:57 MSK
Что-то я не понял, какой смысл перевешивать на нашу квоту, когда указано что в VE Debian Lenny (и там, как я понимаю, как в oldstable никто обновлять пакет quota не будет).

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

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

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

Понял.

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

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

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

# 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 Dmitry V. Levin 2011-02-15 03:28:17 MSK
(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 aspsk 2011-02-15 10:54:37 MSK
> Думаю на следующей неделе добраться попробовать. А пока актуален вопрос про
> ядра.

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

Лучше использовать ovz-rhel из 5.1, но стоит учитывать, что оно не будет
работать с современным udev > 142, т.е. udev нужен тоже из бранча 5.1.
Comment 15 Repository Robot 2011-02-15 15:44:11 MSK
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 Slava Dubrovskiy 2011-04-14 17:05:34 MSK
Наступил на эту граблю с CentOS-5.6
там quota-3.13-4.el5
Comment 17 Slava Dubrovskiy 2011-04-14 18:25:15 MSK
(В ответ на комментарий №7)
> Ядро откатываться не будет, перевешиваю на quota.
А может как-то можно найти какой-то компромисс?
Есть куча VPS старых и не очень которые не будут обновляться и нормально работают. И апгрейд железа решается с помощью виртуализации. Если эти старые VPS работать не смогут нормально на новых ядрах то  это подрывает всю схему.
Уже попали под раздачу:
Debian5
CentOS-5.6

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

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

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


(В ответ на комментарий №18)
> (В ответ на комментарий №17)
> > (В ответ на комментарий №7)
> > > Ядро откатываться не будет, перевешиваю на quota.
> > А может как-то можно найти какой-то компромисс?
> 
> У вас есть предложения? Теоретически можно сделать
> параметр командной строки для отката runtime...
Comment 20 Slava Dubrovskiy 2011-04-15 20:37:18 MSK
> > > Ядро откатываться не будет, перевешиваю на quota.
> > А может как-то можно найти какой-то компромисс?
> У вас есть предложения? Теоретически можно сделать
> параметр командной строки для отката runtime...
Пока озаботил апстрим http://bugzilla.openvz.org/show_bug.cgi?id=1849
Comment 21 Repository Robot 2011-04-21 22:31:07 MSK
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 Evgenii Terechkov 2011-04-22 12:14:59 MSK
На первый взгляд, работает.