Ubuntu'da Dosya Sistemi (Disk) Kotaları Nasıl Ayarlanır


Dosya sistemi kotası, Linux Çekirdeğinde bulunan standart bir yerleşik özelliktir. Kotalar, bir dosyanın kullanıcı etkinliklerini desteklemek için sahip olması gereken alan miktarını belirler. Disk kotaları ayrıca bir kullanıcının sistemde oluşturabileceği dosya sayısını da sınırlar.

Kota sistemini destekleyen dosya sistemleri arasında xfs, ext2, ext4 ve ext3 yer almaktadır. Kotaların atanması dosya sistemine ve her kullanıcıya özeldir. Bu makale, çok kullanıcılı bir Ubuntu ortamında kota dosya sistemiyle çalışmaya ilişkin bilmeniz gereken her şeyi içermektedir.

Buradaki varsayım, Ubuntu sistemini sudo hakları verilen bir kullanıcıya (tecmint) sahip olarak kullandığınızdır. Burada paylaşılan fikirler, doğru uygulama tekniğini kullandığınız sürece herhangi bir Linux dağıtımında işe yarayabilir.

Adım 1: Ubuntu'da Kota Kurulumu

Kotaların hazır ve kullanılabilir olması için apt komutunu kullanarak quota komut satırı aracını yükleyin ancak bundan önce sistem yazılım paketlerini güncellemeniz gerekir.

sudo apt update

Şimdi quota paketini Ubuntu'ya yüklemek için aşağıdaki komutu kullanın.

sudo apt install quota

Yükleme işleminin başlaması için Y'ye ve ardından ENTER'a basın.

Aşağıdaki komutu çalıştırarak kurulum sürümünü onaylayın. Sürüm numaranız aşağıda gördüğünüzden farklı olabilir.

quota --version

Adım 2: Kota Çekirdeği Modülünü Yükleme

Bulut tabanlı bir sanal sistem çalıştıranlar için, varsayılan Ubuntu kurulumunda kota kullanımını destekleyen çekirdek modülleri eksik olabilir. Bulma aracını kullanarak onaylamanız ve quota_v1 ve quota _v2 adlı iki modülün /lib/modules dizininde olduğundan emin olmanız gerekir.

find /lib/modules/`uname -r` -type f -name '*quota_v*.ko*'

Bu yukarıdaki komutun sonucu olmalıdır.

İki modül mevcut olduğu sürece çekirdek sürümleri konusunda endişelenmeyin. Bulunamazsa kota çekirdek modüllerini gösterildiği gibi yüklemek için aşağıdaki komutu kullanın.

sudo apt install linux-image-extra-virtual

Kota uygulaması için ihtiyacınız olan doğru modülleri alacaksınız.

3. Adım: Dosya Sistemi Montaj Seçeneklerini Güncelleme

Belirli bir sistemde kotaların aktif olabilmesi için ilgili kota seçenekleriyle birlikte monte edilmesi gerekmektedir. Bunu /etc/fstab dosyasında bulunan dosya sistemi girişini güncelleyerek yapabilirsiniz.

sudo nano /etc/fstab

Dosyayı uygun şekilde düzenlemeye hazır olmalısınız. Bir fstab dosyası ile bir masaüstü dosya arasındaki fark, / veya kök dosya sisteminin tüm disk alanını nasıl temsil ettiği arasındaki farktır. Aşağıdaki satırları kullanarak kök sisteme işaret eden (/) satırını değiştirin.

LABEL=cloudimg-rootfs   /        ext4   usrquota,grpquota        0 0

Satırlar, userquota ve grpquota'nın erişilebilir olmasını sağlayacak şekilde değişecek. Son konfigürasyonun parçası olmayan bir tane bırakabilirsiniz. Fstab'ın bazı seçenekleri varsa yeni seçenekleri satırın sonuna ekleyin. Eklemeyi yaparken yeni öğeleri virgülle ancak aralarında boşluk bırakmadan ayırın.

Değişikliklerin etkili olması için dosya sistemini yeniden bağlayın.

sudo mount -o remount /

NOT: bu tür hataları önlemek için /etc/fstab dosyasındaki seçenekler arasında boşluk bulunmadığını doğrulayın.

mount: /etc/fstab: parse error

Dosya sistemini /proc/mounts dosyasına bağlarken yeni seçeneklerin kullanımının doğrulanması grep aracılığıyla yapılır. Komut, dosyadaki kök dosya sistemi girişini gösterir.

sudo cat /proc/mounts | grep ' / '

Çıktıda kurduğumuz iki seçeneği görebilirsiniz. Kota sistemini devreye almanın zamanı geldi.

Adım 4: Ubuntu'da Disk Kotalarını Etkinleştirme

Öncelikle quotacheck komutunu çalıştırmalısınız.

sudo quotacheck -ugm /

Komut, dosya sisteminin sınırı ve kullanımı hakkında bilgi içeren bir kota kullanıcısı ve bir kota grubu olmak üzere iki dosya oluşturur. Kotayı kullanmaya başlamadan önce bu dosyaların mevcut olması gerekir.

İşte parametrelerin bir tanımı:

  • -u: kullanıcı bazlı kota dosyası oluşturulacağını sembolize eder.
  • -g: grup bazlı kota dosyası oluşturulacağını belirtir.
  • -m: dosya sisteminin salt okunur olarak yeniden bağlanmasını devre dışı bırakır ve aynı zamanda kullanıcının dosyaları kaydetmeye devam ettiği bir ortamda doğru sonuçlar verir. Kurulum sırasında m seçeneği zorunlu değildir.

Kullanıcı veya grup bazında kota kullanımının etkinleştirilmesine gerek olmadığında quotacheck seçeneğinin çalıştırılmasına gerek yoktur. ls komutunu kullanarak kök dizini listeleyerek bunu doğrulayın.

ls /
Örnek Çıktı
aquota.group  bin   dev  home        initrd.img.old  lib64       media  opt   root  sbin  srv  tmp  var      vmlinuz.old
aquota.user   boot  etc  initrd.img  lib             lost+found  mnt    proc  run   snap  sys  usr  vmlinuz

quotacheck komutuna u ve g parametreleri eklenmezse ilgili dosyalar eksik olacaktır.

Artık aşağıdaki komutla kök (/) dosya sisteminde kotayı açmaya hazırız.

sudo quotaon -v /

5. Adım: Tek Kullanıcı için Kotaları Yapılandırma

Bunları kullanıcılar veya gruplar için ayarlamak amacıyla edquota ve setquota komutlarını kullanabiliriz.

Edquota'yı kullanma

edquota komutları kotaları düzenler; örneğin, bir tecmint kullanıcısına ait kotayı aşağıdakileri kullanarak düzenleyebiliriz:

sudo edquota -u tecmint

-u seçeneğinin kullanılması kotanın bir kullanıcıya ait olduğunu belirtir. Bir gruba ait kotayı düzenlemeniz gerekiyorsa -g seçeneğini kullanın. Komut, seçtiğiniz metin düzenleyiciyi kullanarak bir dosyayı açacaktır.

Çıktı, kullanıcı adını, kullanıcı kimliğini, etkin kotalara sahip dosya sistemini ve blok ve inode kullanımını listeler. Düğümlere dayalı bir kota, diskte kullandıkları boyuta bakılmaksızın kullanıcıların oluşturabileceği dosya ve dizin sayısını sınırlar. Çoğu Yönetici, disk alanını kontrol eden blok tabanlı kotayı tercih eder.

NOT: Blokların kullanımı, bunları raporlayan komut satırı aracı gibi farklı faktörlere bağlı olarak nasıl değişebileceğini göstermez. Ubuntu'daki bağlam kotaları dahilinde tek bir bloğun bir kilobayt disk alanına eşit olduğunu varsayabiliriz.

Kullanıcı, yukarıdaki komut satırını kullanarak 2032 blok kullanacaktır; bu, /dev/sda1'deki 2032 KB alanla aynıdır. 0 değeri hem yumuşak hem de sert sınırları devre dışı bırakır.

Her kota seti yumuşak ve sert limitlerin ayarlanmasına olanak tanır. Esnek sınırı aşan bir kullanıcı kotasını aşmış olabilir ancak daha fazla boşluk veya inode kullanması engellenmez. Böyle bir durumda kullanıcının yumuşak limitli alanını kullanmak için yedi günü vardır; bunun yapılmaması, dosyaları kaydetmeyi veya oluşturmayı zorlaştırır.

Kesin sınır, sınıra ulaştığınızda yeni blokların veya inode'ların oluşturulmasının durdurulması anlamına gelir. Kullanıcılar normal görevleri gerçekleştirirken uyarı veya hata gördüklerini bildireceklerdir.

Temint'in engelleme kotasını, 100MB ve 110MB yumuşak limite sahip olacak şekilde güncelleyebiliriz.

Düzenledikten sonra dosyayı kapatın ve kota komutunu kullanarak yeni kullanıcı kotası sınırı ayarlarını kontrol edin.

sudo quota -vs tecmint

NOT: Kullanıcılarınıza sudo komutunu çağırmadan kotalarını analiz etme fırsatı verildiğinden, kullanıcılara kota dosyalarını okuma erişiminin verilmesi gerekir. Dördüncü adımdaki oluşturma aşaması. Bunu yapmanın kolay bir yolu, bir kullanıcı grubu oluşturmak ve gruba kullanıcı ekleyebilmeniz için gruba erişim izni vermektir.

Belirlenen kotayı kullanma

setquota herhangi bir etkileşimli kurulum gerektirmeden tek bir komut kullanarak kota bilgilerini günceller. Komut, kullanıcı adını ve bloğun ve inode'un kullanacağı yumuşak ve sert sınırların ayarını gerektirir. Ayrıca kotanın kullanacağı dosya sistemini de bildirmeniz gerekecektir.

sudo setquota -u tecmint 200M 220M 0 0 /

Komut, blok tabanlı kota sınırlarını 200 megabayt ve 220 megabayt olacak şekilde ikiye katlar. İki 0 0, hem donanım hem de yazılım sınırlarının ayarlanmadığını gösterir; inode tabanlı kotalar ayarlamaya gerek olmadığında bile bu bir gerekliliktir.

İlerlemenizi doğrulamak için her zamanki gibi kota komutunu kullanın.

sudo quota -vs tecmint

Adım 6: Kota Raporlarının Oluşturulması

Kota raporu oluşturulurken tüm kullanıcıların kullanımı belirtilmelidir. repquota komutu kullanılır.

sudo repquota -s /

Yukarıdaki çıktı / kök dosya sistemiyle ilgili bir rapordur. -s, repquota'ya sonuçları insan tarafından okunabilir bir biçimde verme talimatını verir.

Varsayılan Blok ek süre 7 gündür. Yetkisiz sütun, kaynak diske erişimin reddedilmesinden önceki gün sayısı konusunda kullanıcıyı uyarır.

Adım 7: Yapılandırma Yetkisiz Kullanım Sürelerini Ayarlayın

Yetkisiz kullanım süresi, kullanıcının varsayılan zamanlamanın ötesinde çalışma izni aldığı süredir.

sudo setquota -t 864000 864000 /

Komut, bloğa ve inode'a 864000 saniyelik, yani 10 güne eşdeğer bir ek süreye sahip olma talimatını verir. Ayar tüm kullanıcıları etkileyecektir, bu nedenle blokların ve inode'ların kullanılmayacağı durumlarda bile değerlerin ayarlanması gerekir. Zaman değeri saniye cinsinden olmalıdır.

Değişiklikleri onaylayın ve şu komutu kullanarak etkili olup olmadıklarına bakın:

sudo repquota -s /

Yaygın Hata Mesajları

quotaon: cannot find //aquota.group on /dev/vda1 [/]
quotaon: cannot find //aquota.user on /dev/vda1 [/]

Yukarıdaki hata, quotacheck komutunu kullanarak kota durumunu kontrol etmeye çalışmadan önce qoutaon komutunu kullanarak kotaları açmaya çalışırsanız sık görülür.

quotaon: using //aquota.group on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.
quotaon: using //aquota.user on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.

Bu hata, Yöneticiye çekirdeğin onu desteklemediğini veya makinede yanlış sürüme sahip olabileceğinizi bildirir (quota_v1 ve quota_v2'ye sahibiz). Ubuntu için bu tür hatalar, bulut tabanlı bir sanal sunucuda tipiktir.

apt komutunu kullanarak Linux-image-extra-virtual paketini yükleyerek hatayı düzeltin.

quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //quota.user: No such file or directory

Geçerli kullanıcının kota dosyalarını okuma izni olmadığında hata dikkat çekicidir. Yönetici olarak yalnızca kota sistemindeki veya dosyadaki dosyalara erişmeniz gerektiğinde doğru izin değişikliklerini yapmanız veya sudo kullanmanız gerekir.

Çözüm

Makalenin başında kota komut satırı araçları ve çekirdek sürümünün doğrulanması ile başladık ve daha da ileri giderek tek bir kullanıcı için blok bazlı kotanın nasıl ayarlanacağını ve nasıl yapılacağını açıkladık. dosya sistemi kota kullanımına ilişkin bir rapor oluşturun.

Makale ayrıca yaygın hataları ve ekstra bir paket kullanarak veya sisteminizdeki çekirdek sürümünü doğrulayarak bunlardan nasıl kaçınabileceğinizi de kapsar.