Summary: | Не работают квоты второго уровня | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Evgenii Terechkov <evg> | ||||||||
Component: | kernel-image-ovz-el | Assignee: | Gleb F-Malinovskiy <glebfm> | ||||||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||||||
Severity: | major | ||||||||||
Priority: | P3 | CC: | boyarsh, dubrsl, glebfm, kernelbot, ldv, mike, mithraen, rider, sbolshakov, shrek, sin, vitty, vsu, vt, zerg | ||||||||
Version: | unstable | ||||||||||
Hardware: | x86_64 | ||||||||||
OS: | Linux | ||||||||||
Attachments: |
|
Created attachment 4792 [details]
VE config
Забыл добавить: пакеты vzctl и vzquota не изменны (rpm -V), сервис vz запущен.
Версия пакета quota в VE: 3.16-7
На новых VE воспроизводится.
Created attachment 4793 [details]
Трассировка запуска quotaon в VE
По трассировке видно, что /aquota* открываются нормально, но тут же закрываются с сообщением об ошибке.
Судя по быстрому просмотру кода пакета quota такое может быть если в начале файлов квот не найдена нужная "магическая" последовательность, но я могу ошибаться.
Ага, воспроизводится (В ответ на комментарий №3) > Ага, воспроизводится Виновный найден - это старая quota. Она не поддерживает квоты версий 1,1, которые предоставляются современными ядрами. Подробности в ядерном коммите 498c6015, который сбэкпорчен в rhelные ядра. Новая квота (например, 4.0) поддерживает эти версии. Есть [правильный] вариант - обновить quota. Есть [неправильный] вариант - пока что revertнуть этот бэкпорт в наших ядрах. Из man quota: FILES aquota.user or aquota.group quota file at the filesystem root (version 2 quota Разве 1.1 это не, наоборот, устаревший формат? Я специально (см. вывод strace) указываю что включать надо квоты v2. Как я понимаю, нового quota для lenny нет и не предвидится. Что же делать? (В ответ на комментарий №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
Ядро откатываться не будет, перевешиваю на quota. Что-то я не понял, какой смысл перевешивать на нашу квоту, когда указано что в VE Debian Lenny (и там, как я понимаю, как в oldstable никто обновлять пакет quota не будет). Вообще, не знаю, что тут поделать. Есть идеи которых я не понял? (В ответ на комментарий №8) > Что-то я не понял, какой смысл перевешивать на нашу квоту, когда указано что в > VE Debian Lenny (и там, как я понимаю, как в oldstable никто обновлять пакет > quota не будет). > > Вообще, не знаю, что тут поделать. Есть идеи которых я не понял? Идея в том, что quota в Сизифе устарела и не умеет работать с новыми ядрами, не только с ovz-el, но и с el-smp, un-def и т.д. Поэтому я и перевесил этот баг на quota. Решение вашей проблемы - либо собрать для этого контейнера quota, что не должно быть очень уж сложно, либо использовать более старое ядро, с которым quota 3.16 работает. > > Вообще, не знаю, что тут поделать. Есть идеи которых я не понял? > Идея в том, что quota в Сизифе устарела и не умеет работать с новыми > ядрами, не только с ovz-el, но и с el-smp, un-def и т.д. Поэтому я и > перевесил этот баг на quota. Понял. > Решение вашей проблемы - либо собрать для этого контейнера quota, что > не должно быть очень уж сложно, либо использовать более старое ядро, > с которым quota 3.16 работает. Поскольку грамотно собирать deb-ы я пока не умею (видимо, придётся научиться), то возникает вопрос: на какое ядро имет смысл даунгрейдится и какие пакеты при этом потребуется откатить с ним? (In reply to comment #10) > Поскольку грамотно собирать deb-ы я пока не умею (видимо, придётся научиться), Мне кажется, что пакет quota из stable имеет все шансы нормально установиться поверх oldstable; впрочем, сам я не проверял. Я думал об этом: # 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. я думаю, что установиться то оно установится, но вот что при этом отвалится - вопрос. Думаю на следующей неделе добраться попробовать. А пока актуален вопрос про ядра. (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 не стоит такое ставить. > Думаю на следующей неделе добраться попробовать. А пока актуален вопрос про
> ядра.
В ovz-el этот бэкпорт появился в 2.6.32-alt4, но я не советую использовать
ядро ovz-el-2.6.32-alt3 - с тех пор исправлено _много_ багов.
Лучше использовать ovz-rhel из 5.1, но стоит учитывать, что оно не будет
работать с современным udev > 142, т.е. udev нужен тоже из бранча 5.1.
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) Наступил на эту граблю с CentOS-5.6 там quota-3.13-4.el5 (В ответ на комментарий №7) > Ядро откатываться не будет, перевешиваю на quota. А может как-то можно найти какой-то компромисс? Есть куча VPS старых и не очень которые не будут обновляться и нормально работают. И апгрейд железа решается с помощью виртуализации. Если эти старые VPS работать не смогут нормально на новых ядрах то это подрывает всю схему. Уже попали под раздачу: Debian5 CentOS-5.6 Или альт только для альта? (В ответ на комментарий №17)
> (В ответ на комментарий №7)
> > Ядро откатываться не будет, перевешиваю на quota.
> А может как-то можно найти какой-то компромисс?
У вас есть предложения? Теоретически можно сделать
параметр командной строки для отката runtime...
(В ответ на комментарий №18) > (В ответ на комментарий №17) > > (В ответ на комментарий №7) > > > Ядро откатываться не будет, перевешиваю на quota. > > А может как-то можно найти какой-то компромисс? > > У вас есть предложения? Теоретически можно сделать > параметр командной строки для отката runtime... Если это теоретически возможно... То хорошо бы иметь такую возможность. Но даже если и сделать такое, то #25432 все равно нивелирует все попытки. Наверно вы правы, придется сидеть до упора на rhel-ovz. И знать об этой "особенности" :( (В ответ на комментарий №18) > (В ответ на комментарий №17) > > (В ответ на комментарий №7) > > > Ядро откатываться не будет, перевешиваю на quota. > > А может как-то можно найти какой-то компромисс? > > У вас есть предложения? Теоретически можно сделать > параметр командной строки для отката runtime... > > > Ядро откатываться не будет, перевешиваю на quota. > > А может как-то можно найти какой-то компромисс? > У вас есть предложения? Теоретически можно сделать > параметр командной строки для отката runtime... Пока озаботил апстрим http://bugzilla.openvz.org/show_bug.cgi?id=1849 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) На первый взгляд, работает. |
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