Küçük bir dosya sisteminde çok garip dosya boyutu (600'den fazla PB)


21

XFS dosya sisteminde yaklaşık 200 GB boyutunda bir dosyam vardı. KVM odaklı bir sanal makinenin sanal diskini içeren bir QCOW2 görüntüsü idi. Bir şeyler ters gitti (belki bir qemu-kvm arızasıydı, emin değilim), sanal makine çöktü ve şimdi şöyle görünen bir dosyam var:

191090708 -rwxr--r--. 1 root root 737571587400425984 Oct 10 10:03 973d10e0-a5e3-4a59-9f98-4b9b9f072ade

Yani, hala 191090708 blokları kaplar, ancak ls656 petabayt olarak gösterir.

Ayrıca, aynı geçmişe sahip başka bir dosyam var, ancak başka bir dosya sisteminde (XFS değil, GFS2):

410855320 -rwxr--r--. 1 root root 7493992262336241664 Dec 13  2014 ac2cb28f-09ac-4ca0-bde1-471e0c7276a0

410855320 blokları kaplar, ancak ls~ 6.6 exabyte olarak gösterir.

Sizce bu dosyaları silmek güvenli midir? Teşekkür ederim!

PS Anlık görüntülerin düzenli olarak alınması çok iyidir! :) Onlarsız ne yapardım bilmiyorum.


Cevaplarınız için çok teşekkür ederim. Tabii ki, seyrek dosyaları biliyorum ama benim için en önemli soru şudur: Bu dosyaları kaldırmak güvenli midir? Şimdi gördüğüm gibi, dosya sistemleri bozulmuşsa bazı verileri kaybetme şansı var. Dosya sistemlerinin tamam olduğundan emin olamıyorum, çünkü bunların sökülmesi ve kontrol edilmesi istenmiyor, ancak ilk meydana gelme 4 ay önce, ikinci - 14 ay önce gerçekleşti, umarım herhangi bir dosya sistemi olduğunu görmüştüm. eğer varsa yolsuzluk. Ne düşünüyorsun?
Volodymyr Melnyk

Yanıtlar:


31

Bu dosya boyutlarını görmenizin iki olası nedenini görebiliyorum:

  • Seyrek dosyalar
  • Dosya sistemi bozulması

Seyrek dosyalar, bazı dosya sistemlerinde, içinde delik bulunan bir dosya oluşturabileceğiniz bir özelliktir. Delikler için fiziksel alan ayrılmaz. Deliklerin üzerinden okumak NUL baytını sonuna kadar döndürür.

Gördüğünüzün nedeni seyrek dosyalar ise, bunları seyrek olmayan bir dosyada olduğu gibi silmek güvenlidir.

Gördüğünüzün nedeni dosya sistemi bozulmasıysa, dosyaları dosya sistemi denetimi olmadan silmek güvenli değildir. Bir dosya sistemi birden fazla dosyanın aynı alanı işgal ettiğini iddia ettiği şekilde bozulursa, her iki dosyayı da silmek bu blokların serbest kalmasına neden olur. Bu serbest bırakılan bloklar tekrar kullanıldığında, yolsuzluk daha da kötüleşiyor.

Dosya sisteminin bozuk olabileceğini düşündüren başka belirtiler görmüşseniz, dosyaları silmeden önce dosya sistemini tam olarak denetlemelisiniz.

Dosya sisteminin bozulduğunu gösteren bir kanıt yoksa ve dosyalar az gözükse de, artık ihtiyacım olmadığında dosyaları silerdim.


6

Sorun, bir dosya boyutunu hesaplama şeklinizdir.

Bunun bir yolu, son baytın ofsetine bakmaktır (ls gibi). Diğer yol ise gerçekten tahsis edilmiş blokları (du gibi) toplamaktır.

Ne görüyorsanız, muhtemelen çok büyük bir ofsette yazılmış veri içeren bir dosya varsa. Bu, dosya adres alanınızın büyük bölümlerinin tahsis edilmediği anlamına gelir. Ama yine de okuyabilirsin.


Teşekkür ederim. Ne düşünüyorsun, bu dosyaları kaldırırsam hiç birşeyin çökmesine neden olmaz mı?
Volodymyr Melnyk

1
Ayrıntılar için Google "seyrek dosya".
Kondybas
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.