Portál AbcLinuxu, 5. května 2025 05:03

Dotaz: quota - soft limit se chová jako hard limit

otula avatar 3.5.2017 08:04 otula | skóre: 45 | blog: otakar | Adamov
quota - soft limit se chová jako hard limit
Přečteno: 457×
Odpovědět | Admin
Chtěl jsem na disku, který je přes Sambu sdílen do sítě, nastavit uživatelské diskové kvóty. Vše se tváří naprosto funkčně, až na jeden „drobný“ problém: systém uživatelům nedovolí překročit měkkou kvótu. Pokud lokálně jako root na dotyčný disk nahraji nějaké soubory a předám jejich vlastnictví uživateli s omezenou kvótou, repquota mi v pořádku nahlásí překročení kvóty, warnquota v pořádku odešle danému uživateli e-mail s upozorněním.

Pokud ale sednu ke stanici s Windows, přihlásím se tam jako daný uživatel a chci na daný disk nahrát data, nepovolí mi systém měkkou kvótu překročit (žádný 7denní limit překročen není).

Konkrétní příklad: repquota vypíše něco takového:
*** Hlášení pro kvóty uživatel na zařízení /dev/md1
Doba odkladu bloků: 7dnů, Doba odkladu i-uzlů: 7dnů
                        Limity bloků                Limity souborů
Uživatel       užito   měkký   pevný odklad   užito měkký pevný odklad
----------------------------------------------------------------------
ota      --     636    1024   20480              1     0     0       
Když nyní jako uživatel ota chci nahrát soubor o velikosti 500 kB, už mne to nepustí s hlášením, že na to nemám dostatek volného místa.

Pokud někdo tušíte, kde by mohl být zakopaný pes, budu vděčný.
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

otula avatar 3.5.2017 09:54 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: quota - soft limit se chová jako hard limit
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak jsem zkusil povolit místní přihlášení, přihlásil se jako doménový uživatel, a lokálně fungují kvóty správně. Takže problém je pouze po síti|z Windows stanice...

Jen pro zajímavost jsem zkusil nahrát z Windows jako administrator soubory na disk a předat jejich vlastnictví kvótovanému uživateli, a systém mi v klidu povolil překročit i hard limit.

Buďto mám něco hodně špatně (ale opravdu mne nenapadá, co by to mohlo být), nebo kvóty nejsou moc vychytané. Zřejmě se na omezování uživatelů vykašlu a kvóty nechám zapnuty k tomu, abych si nechal pravidelně zasílat výstup z repquota, jestli se někdo moc na disku neroztahuje...
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
3.5.2017 11:54 MadCatX
Rozbalit Rozbalit vše Re: quota - soft limit se chová jako hard limit
Odpovědět | | Sbalit | Link | Blokovat | Admin
Diskové kvóty v podobném režimu jsem před časem řešil taky (Samba 4, CentOS 7, ověřování uživatelů přes widloidní ADčko, RAID 5 přes md-raid). Když jsem si k tomu načítal nějaké info, dospěl jsem k tomu, že jediné skutečně použitelné řešení poskytuje XFS. Soft a hard kvóty mám sice nastavené na stejnou hodnotu, nicméně přes hard limit jsem se při testování nikdy nedostal.

Schválně jsem zkusil prasácky ddčkem zaflákat vlastní adresář. Když dosáhnu kvóty, dd zdechne a při dalším spuštění obdržím dd: failed to open ‘test4.dat’: Disk quota exceeded. Jsa mimo kancl to nemůžu vyzkoušet z Windowsí stanice, ale pokud se do skoro obsazeného adresáře pokusím něco nakopírovat smb protokolem, přes limit mě to taky nepustí. Máš možnost to aspoň zkušebně rozjet na XFSku místo Ext4?
otula avatar 3.5.2017 12:10 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: quota - soft limit se chová jako hard limit
Zatím tam ještě nemám ostrá data, tak to mohu zkusit přeformátovat a otestovat, jak to dopadne.
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
3.5.2017 13:44 MadCatX
Rozbalit Rozbalit vše Re: quota - soft limit se chová jako hard limit
OK, asi by to stálo za pokus. Moje relevantní konfiguráky zde:

/etc/fstab
/dev/mapper/storage_encrypted /mnt/storage                xfs     defaults,usrquota,prjquota       0 0
/etc/projects
59:/mnt/storage/home/user_1
60:/mnt/storage/home/user_2
61:/mnt/storage/home/user_3
...
/etc/projid
xfspr_user_1:59
xfspr_user_2:60
xfspr_user_3:61
...
Relevantní kus bashího skriptu, kterým vytvářím uživatelské adresáře, nastavuji práva atp.
# Zjisti současné nejvyšší ID XFS projektu
MAX_CURR_PRID=$(awk -F":" '{ print $2 }' /etc/projid | sort -nr | head -n1)
if [[ -z "$MAX_CURR_PRID" ]]; then
        MAX_CURR_PRID=58
else
        if ! [[ $MAX_CURR_PRID =~ $ISNUM_RE ]]; then
                echo "Unexpected non-numeric value as project ID."
                echo "Please correct the problem and set the XFS quotas manually."
                exit
        fi
fi

# Nastav nové ID projektu a jeho jméno
MAX_CURR_PRID=$((MAX_CURR_PRID+1))
XFS_PROJECTNAME="$XFS_PR_PREFIX$USERNAME"

# Uprav příslušné konfiguráky
echo $XFS_PROJECTNAME:$MAX_CURR_PRID >> /etc/projid
echo $MAX_CURR_PRID:"$USER_HOME_DIR" >> /etc/projects

# Zaregistruj projekt ve správě kvót
xfs_quota -x -c "project -s $XFS_PROJECTNAME" "$STORAGE_ROOT"
# Nastav limit pro uživatelský /home
xfs_quota -x -c "limit -p bsoft=10g bhard=10g $XFS_PROJECTNAME" "$STORAGE_ROOT"
# Nastav celkový limit pro uživatele (10 G v /home, 12 G celkem)
xfs_quota -x -c "limit -u bsoft=12g bhard=12g $USERNAME" "$STORAGE_ROOT"
Uživatelé mají právo zapisovat do více sdílených adresářů, proto kromě ID uživatele používám ještě kvóty dle projektů. Ve výsledku může uživatel zapsat do svého /home maximálně 10 GB a celkově 12 GB. Funguje to, protože /home je v adresářové struktuře uvnitř rootu projektu.
otula avatar 3.5.2017 13:59 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: quota - soft limit se chová jako hard limit
Mně ten hard limit funguje také dobře (tam je divné jen to, že administrator z Windows nebo root z Linuxu mohou předat vlastnictví již uloženého souboru uživateli tak, že daný uživatel přitom překročí hard limit - což ale nevadí, protože uživatelé navzájem si předávat vlastnictví stejně nemohou).

Problém mám se soft limitem, který je pro mne ale důležitější, než ten hard limit. Mně by právě spíš vyhovovalo, kdyby uživatele, který limit překročí, každý den prudil mail, že to má napravit, než když ho nenechá uložit soubor.

project quotu jsem netestoval, ale user quota mi dělá v xfs to samé, co na ext4
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
otula avatar 3.5.2017 12:53 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: quota - soft limit se chová jako hard limit
Tak jsem to přeformátoval a překonfiguroval a chová se to úplně stejně :(
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
3.5.2017 13:51 MadCatX
Rozbalit Rozbalit vše Re: quota - soft limit se chová jako hard limit
Zvláštní, schválně teda zkusím udělat nějakou soft kvótu a ověřím chování z Widlí.
otula avatar 3.5.2017 14:00 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: quota - soft limit se chová jako hard limit
díky
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
3.5.2017 16:14 MadCatX
Rozbalit Rozbalit vše Re: quota - soft limit se chová jako hard limit
Aha, tak z Windows nemůžu po překročeni soft limitu zapisovat taky. Je docela divné, že z Linuxu to stejným způsobem jde a xfs_quota hlásí překročení soft kvóty správně.
otula avatar 3.5.2017 17:25 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: quota - soft limit se chová jako hard limit
Mockrát díky. Sice mi to problém nevyřešilo, ale alespoň vím, že to není má chyba. Nechám tedy uživatele bez omezení a budu si nechávat posílat výpisy a buzerovat lidi osobně :-)
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
4.5.2017 09:41 MadCatX
Rozbalit Rozbalit vše Re: quota - soft limit se chová jako hard limit
Vysvětlení tohoto chování zřejmě tkví v tom, že Samba při dotazu na volné místo ve sdíleném adresáři obdrží ten soft limit a Windows si při jeho dosažení myslí, že je disk plný. Server by tedy zápis umožnil, problém je technicky vzato na Windowsím klientu (kdo jste to nečekal? :) ). V Linuxu se to neděje, UI v Dolphinu i výpis df na adresáři připojeném ručně CIFSem ukazují, kolik místa zbývá oddílu, kde se sdílený adresář na serveru nachází. Bohužel mě nenapadá, co by se s tím dalo dělat.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.