OpenVZ Forum


Home » International » Russian » кэширование aquota.*
кэширование aquota.* [message #36026] Wed, 13 May 2009 08:25 Go to next message
saimon is currently offline  saimon
Messages: 85
Registered: November 2006
Member
Доброго времени суток!

Нашел странным, что отчеты по квотам внутри контейнера и снаружи для одной файловой системы расходятся.

HN CentOS 5.2
i386 2.6.18-92.1.18.el5.028stab060.2sa1PAE

Как воспроизвести
HN
/dev/sdc1 /opt - ext3, grpquota
mount -o bind /opt /vz/root/2001/opt
touch /vz/root/2001/opt/aquota.group
mount -o bind /opt/aquota.group /vz/root/2001/opt/aquota.group

CT2001
[root@app1 packages]# quota -vg 2080
Disk quotas for group lori_pg (gid 2080):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdc1 4 0 0 1 0 0

HN
root@dt-027:/opt# quota -vg 2080
Disk quotas for group #2080 (gid 2080):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdc1 55980 0 0 13 0 0

Если на HN выполнить sync то отчеты quota начинают совпадать.
Специально ждал когда само установится,но через 10мин кэш так и не сбросился.


[Updated on: Wed, 13 May 2009 08:26]

Report message to a moderator

Re: кэширование aquota.* [message #36031 is a reply to message #36026] Wed, 13 May 2009 11:49 Go to previous messageGo to next message
kir is currently offline  kir
Messages: 1645
Registered: August 2005
Location: Moscow, Russia
Senior Member

Quote:

HN
/dev/sdc1 /opt — ext3, grpquota



Забыли написать
quotacheck -g /opt


Quote:


mount -o bind /opt /vz/root/2001/opt
touch /vz/root/2001/opt/aquota.group
mount -o bind /opt/aquota.group /vz/root/2001/opt/aquota.group



Последнее зачем? У нас же уже видна из контейнера вся /opt?


Quote:

CT2001
[root@app1 packages]# quota -vg 2080
Disk quotas for group lori_pg (gid 2080):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdc1 4 0 0 1 0 0



У меня на это вот что пишет:
quota: Can't stat() mounted device /dev/sdc1: No such file or directory

# rpm -q quota
quota-3.13-1.2.5.el5


Kir Kolyshkin
http://static.openvz.org/userbars/openvz-developer.png
Re: кэширование aquota.* [message #36035 is a reply to message #36031] Wed, 13 May 2009 13:01 Go to previous messageGo to next message
saimon is currently offline  saimon
Messages: 85
Registered: November 2006
Member

Предположим в контексте ноды квоты работают как должны, т.е. quotacheck -g /opt не требуется.

КУ: mount -o bind /opt /vz/root/2001/opt
у меня немного не так, прокидывается каталог /opt/packages, отсюда надобность в прокидывании /opt/aquota.group

Чтобы quota не ругалось в /dev должен присутсвовать файл блочного устройства из которого монтируем FS с квотой, можно скопировать с ноды /dev/sdc1 в /vz/root/2001/dev

Re: кэширование aquota.* [message #36039 is a reply to message #36035] Wed, 13 May 2009 15:28 Go to previous messageGo to next message
kir is currently offline  kir
Messages: 1645
Registered: August 2005
Location: Moscow, Russia
Senior Member

А, ну я понял!

quota, которая на HN, читает квоту прямо из девайса (ну, точнее, из ядра). Получает правильные значения.

quota, которая в контейнере, из девайса прочитать не может, поэтому в качестве "лучше, чем ничего" берёт данные из aquota.group. Получает какие-то старые значения. После синка получает свежие значения.

Проверить это предположение можно с пом. strace.

Ещё можно попробовать дать контейнеру доступ к физ. устройству (--devnodes) -- возможно, это даст возможность quota узнавать текущие значения из ядра.


Kir Kolyshkin
http://static.openvz.org/userbars/openvz-developer.png
Re: кэширование aquota.* [message #36046 is a reply to message #36039] Thu, 14 May 2009 14:45 Go to previous messageGo to next message
saimon is currently offline  saimon
Messages: 85
Registered: November 2006
Member
Да, strace подтверждает

HN
stat64("/dev/sdc1", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 41), ...}) = 0
quotactl(Q_GETFMT|GRPQUOTA, "/dev/sdc1", 0, {QFMT_VFS_V0}) = 0
quotactl(Q_GETINFO|GRPQUOTA, "/dev/sdc1", 0, {bgrace=604800, igrace=604800, flags=0, valid=IIF_BGRACE|IIF_IGRACE|IIF_FLAGS}) = 0

CT2001
stat64("/dev/sdc1", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 41), ...}) = 0
quotactl(Q_GETFMT|GRPQUOTA, "/dev/sdc1", 0, 0xbff1fb54) = -1 EACCES (Permission denied)
open("/opt/aquota.group", O_RDONLY|O_LARGEFILE) = 4

Но, почему DEVNODES="sdc1:rw " не спасает?
Re: кэширование aquota.* [message #36047 is a reply to message #36046] Thu, 14 May 2009 15:01 Go to previous messageGo to next message
kir is currently offline  kir
Messages: 1645
Registered: August 2005
Location: Moscow, Russia
Senior Member

saimon wrote on Thu, 14 May 2009 18:45


Но, почему DEVNODES="sdc1:rw " не спасает?



Там, возможно, нельзя отдать одну партицию, надо весь девайс.

А контейнер перестартовывали? Тогда это баг, его надо максимально хорошо описать на bugzilla.openvz.org


Kir Kolyshkin
http://static.openvz.org/userbars/openvz-developer.png

[Updated on: Thu, 14 May 2009 15:04]

Report message to a moderator

Re: кэширование aquota.* [message #36048 is a reply to message #36046] Thu, 14 May 2009 15:08 Go to previous message
saimon is currently offline  saimon
Messages: 85
Registered: November 2006
Member
Странно, отмонтировал с ноды /dev/sdc1. Примонтировал в контексте CT2001 /dev/sdc1 /opt. Квоты не включаются.

quotactl(Q_QUOTAON|GRPQUOTA, "/dev/sdc1", QFMT_VFS_V0, 0xb7fa7ea0) = -1 EACCES (Permission denied)

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



Previous Topic: VE процессы на ноде.
Next Topic: Порты открытые на VE отображаются на VE0
Goto Forum:
  


Current Time: Thu Nov 14 03:46:35 GMT 2024

Total time taken to generate the page: 0.04009 seconds