Bir montaj başarısız olduğunda kök sisteminin dolmasını önlemenin en iyi yolu?


16

Dahili bir web sunucumuz var (sanallaştırılmış, ReviewBoard'a ev sahipliği yapıyor, ancak süper alakalı değil) ve başarısız NFS bağlantılarının doldurulmasına / dolmasına neden olan nispeten tutarlı bir hata moduna sahibiz. Bir çözüm farklı bir dağıtıma bağlıysa Distro Ubuntu'dur (sormayın), uygulanması daha yavaş olacaktır.

/ Mnt / backup / dizinine yedeklemeler yapılıyor. Ne yazık ki, bağlanma başarısız olduğunda veya düştüğünde, kök dosya sisteminde yedeklemeler gerçekleştirilir, bu da tahmin edebileceğiniz gibi / dolmadan çok uzun sürmez ve ardından hizmetler başarısız olmaya başlar.

Bir dizi olası çözüm tartışıldı.

  1. / Mnt / backup'ları izleyin ve kök olmadığından emin olun. Belki bir cron işi.

  2. / Mnt / korumalı / yedekleri kullanın ve ilk önce küçük bir dosya sistemine bağla / korumayı, belki de yerel bir dosyaya bir döngü bağla, böylece başarısız olma olasılığı daha düşüktür.

  3. Chmod a-rwx / mnt / backups (kök dosya sistemi bağlama noktası). Korumalı direktör üzerine montajın işe yarayıp yaramayacağından emin değilim.

  4. Takılı ağaçta "Yedekler" adlı bir dizin, ardından "ln - s / mnt / backup / Backups / Backups" yumuşak bağlantısını oluşturun. Yerel ağaç alt dizini içermediğinden, / mnt / backup bağlanmadığı sürece / Backups for backups başarısız olur.

  5. Dizinin yedekleme komut dosyasına doğru şekilde bağlandığını kontrol etme.

Bu yaklaşımlar, artıları eksileri veya insanların kök dosya sistemini bu tür bir nastiness korumak için standart bir yol olarak kullandıkları herhangi bir ek teknikler ile ilgili herhangi bir geribildirim ilgileniyorum.

Yanıtlar:


13

Sayı 5 - Devam etmeden önce dizinin bağlandığından emin olmak için yedekleme komut dosyanızda bir test yapın. Bağlama yoksa veya mevcut değilse komut dosyası başarısız olmalıdır. Veya yedeklemeyi çalıştırmadan önce her şeyin monte edildiğinden emin olabilirsiniz.

mountpointBelirli bir dizinin bağlama noktası olup olmadığını kontrol eden komutu deneyin :

mountpoint -q /mnt/backups || mount /mnt/backups


Hmm, sanırım eklerdim || echo "Mount / mnt / backups başarısız" 2> & 1 Ya da sadece orada var. Neyse, teşekkürler !!!
Peter

22

En hatasız çözüm, montaj noktasını yazılamaz yapmaktır. Bu çözüm # 3 olacaktır. Ancak gerçekleştirmeniz gereken ek bir adım daha var. chattr +i /mnt/backups. Bunun nedeni, izinleri olmasa bile root'un dizine yazabilmesidir. İle chattr +i(değişmez bayrağı ayarlar) kök bile yazamaz. Bağlama bağlandıktan sonra, izinler yerel olandan değil uzak dizinden olacağından izinler önemli değildir.


1
Bu oldukça düzgün bir numara - 'chattr' kullanmayı hiç düşünmemiştim
warren

1
Bu tekniği tüm bağlama noktalarında kullanıyorum.
3dinfluence

1
Bunu encfsbir sigorta dosya sistemi ile denedim . Hata veriyor:fusermount: user has no write access to mountpoint
ctrl-alt-delor

Bu normalde kullandığım çözüm ve bence bu kabul edilen cevap olmalı.
shodanshok

3

Ewwhite ne dedi. Ayrıca, temel sistem sağlığı için bazı ekstra izleme kötü bir fikir olmaz.

Monit gibi bir şey ne kadar alan kaldığını kontrol edebilir . Sistem izlemeye tam olarak girmek istiyorsanız, Nagios'a bakabilirsiniz, ancak Monit hafiftir ve temelleri yapar.

Ubuntu kullandığınız için, Monit zaten repoda, bu nedenle "sudo apt-get install monit" yapabilir, ardından doğru yere uyarı göndermesini, doğru hizmetleri izlemesini vb. Bildirmek için yapılandırma dosyalarına bakmaya başlayabilirsiniz. İşte hızlı bir eğitim .


1

İşte bir cron işi olarak çalıştırabileceğiniz bir astar, söz konusu bağlamanın fstab'da olduğunu varsayar:

if mountpoint -q /mnt ; then : ; else mount /mnt ; fi

0

Daha uzun vadeli bir çözüm için: Bunu Ubuntu'da nasıl yapacağımdan emin değilim (RH merkezliyim) ya da buna değer olup olmadığını (sadece bir makineniz varsa), ancak bizim için ÇOK yıl boyunca çalışan bir metodoloji ayrı mantık yaratmaktır birimleri, dosya sistemleri hatta sunucu makinelerindeki birim grupları. Standart bir uygulama olarak, /, / tmp için LVM mantıksal hacimleri oluşturuyoruz. / usr, / usr / local, / opt, / home, / var, takas alanı ve / boot için ayrı bir bölüm. Bu yaklaşım, dosya sistemlerinin sistemi doldurmasını ve devre dışı bırakmasını daha da zorlaştırır. Aslında bu yaklaşım / file sistemini doldurmayı neredeyse imkansız hale getirecektir. Tabii ki / tmp, / var izlemeniz gerekiyor. Verileri barındırmamız gerekiyorsa, bunun için tamamen farklı bir hacim grubu oluştururuz. Bu yaklaşımın başka faydaları da vardır, dosya sistemlerini istediğiniz gibi genişletin, hareket ettirin, yenilerini oluşturun vb.


Bir bağlantının başarısız olması durumunda dosya sisteminin dolmasını önlemeye yönelik çözümünüz daha fazla bağ eklemek mi? Ne?
Patrick
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.