Linux - dizin başına kota?


21

Aşağıdaki senaryolarım var:

Tek disk bölümü / olarak takılır, çok fazla disk alanı vardır.

Bir dizi dizin vardır (/ pg / tbs1, / pg / tbs2, / pg / tbs3 vb.) Ve bu dizinlerin toplam boyutunu sınırlamak istiyorum.

Bir seçenek, bazı büyük dosyaları yapmak ve daha sonra bunları mkfs, geri döngü üzerine bağlayıp kotayı ayarlamaktır, ancak bu, genişletmeyi biraz sorunlu hale getirir.

Kotanın dizin başına çalışmasını sağlamanın başka bir yolu var mı?

linux  quota 

Dosyaları geri döngü yoluyla bağlamak gerçekten bir genişleme sorunu oluşturmaz. Temeldeki dosyayı genişletip dosya resize2fssistemini büyütmek için kullanabilirsiniz . LVM kullanmanın daha iyi bir çözüm olduğunu düşünüyorum, ancak önerdiğiniz çözümün düşündüğünüz sınırlamalar yok.
larsks

ayrıca btrfs ve zfs
hanshenrik

Yanıtlar:


17

Ext3 kullanmak zorunda kalırsanız, LVM kullanmak muhtemelen en iyi çözümdür. Proje başına yeni bir dosya sistemi oluşturun. Bu şöyle görünecektir:

# Create a 10g filesystem for "project1" in volume group "vg0"
lvcreate -L 10g -n project1 vg0

# Create an ext3 filesystem.
mke2fs -j /dev/vg0/project1

# Mount it (obviously you would want this in /etc/fstab)
mount /dev/vg0/project1 /projects/project1

Proje dosya sistemlerini büyütmek kolaydır:

# Add 2GB to the volume.
lvextend -L +2g /dev/vg0/project1

# Grow the filesystem.
resize2fs /dev/vg0/project1

6

Grup izinlerine güvenmiyorsanız, her "kota dizini" için farklı bir UNIX grubu kullanabilir, ardından her dizinde sgid bitini ayarlayabilirsiniz (böylece oluşturulan dosyalar ve dizinler birincil grup yerine dizinin grubuna ait olur) oluşturucu) ve grup kotalarını kullanın.


5

Evet. XFS dosya sistemine ve proje kotasına bakın. Diğer dosya sistemleri bu özelliği sunmaz.


Ne yazık ki altta yatan fs değiştiremiyorum. Ancak XFS'nin bu özelliğe sahip olduğunu bilmek güzel.

5

Aslında bunu bir süre yapmak istedim çünkü tüm sanal posta kullanıcılarım için sistem kullanıcıları yapmak istemedim. Kota içeren ZFS dosya sistemleri harika olurdu ve zfs-fuse her gün ilerleme kaydediyordu, ancak istediğim çok hafif bir çözümdü. Sonunda başka bir dosya sistemi üzerine bir katman olarak monte edebileceğiniz bir FUSE dosya sistemi yazmaya karar verdim (herhangi bir temel dizin gerçekten çalışacaktır). Kolayca yazılabilen kotaları yönetmek için bir yardımcı program vardır ve kota değerleri dizinlerde veya dosyalarda yalnızca xattrs olarak saklandığından, bir mountpoint keyfi sayıda kota için destek sağlayabilir.

Bir süredir bir posta sunucusunda test ediyorum ve son zamanlarda ergenliğe ulaştığına ve vahşi olarak serbest bırakılmaya hazır olduğuna karar verdim. Merak ediyorsanız, http://code.google.com/p/fusequota/ adresinden kontrol edebilirsiniz . Herhangi bir geri bildirimi çok takdir ediyorum.



Git aynası benim için çalışmadı. Hata yok, ama kotayı aşabilirim (ext4 üzerinde montaj seçenekleri ile rw, relatime, data =
order

3

Her paylaşılan klasör için yeni dosya sistemi IMHO gereğinden fazladır. Her bir paylaşılan klasör için yeni bir grup oluşturun, paylaşılan klasörün sahip grubunu bu gruba ayarlayın, bir yapışkan biti gruba ayarlayın (böylece her yeni dosya ve dizinin bu grubu sahibi olarak toplayın) ve dosya ve klasörlerin izinleri için acl listeleri kullanın. Sonra bu gruplar için kotalar ayarlayın.


1

Her dizin için tırnak ayarlamak için herhangi bir yöntem farkında değilim.

Ancak sınırlı boyutta dosya sistemleri oluşturma fikriniz boyunca. Bu, lvm'nin iyi bir çözüm olacağı bir yer olabilir .

Lvm'yi yedekleyebilir / yeniden yükleyebilir ve kullanabilirsiniz , yalnızca mantıksal hacimleriniz için gereken minimum alanı ayırabilirsiniz. LVM mantıksal hacimlerini genişletmek çok kolaydır .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.