Kapları olan çok yoğun bir sanallaştırılmış ortama sahibim, bu yüzden her bir kabı gerçekten küçük yapmaya çalışıyorum. "Gerçekten küçük" , paket yöneticisi uyumluluğunu bozmadan, Ubuntu 14.04 (Trusty Tahr) bazında 87 MB anlamına gelir .
Bu yüzden LVM'yi konteynerlerim için yedek depolama olarak kullanıyorum ve son zamanlarda çok garip numaralar buldum. İşte buradalar.
Bir 100 MiB (evet, 2'nin gücü) mantıksal hacmi oluşturalım.
sudo lvcreate -L100M -n test1 /dev/purgatory
Boyutu kontrol etmek istiyorum, bu yüzden sayı sudo lvs --units k
test1 purgatory -wi-a---- 102400.00k
Tatlı, bu gerçekten 100 MiB.
Şimdi bir ext4 dosya sistemi yapalım . Ve elbette, -m 0
uzay israfını önleyen parametreyi hatırlıyoruz .
sudo mkfs.ext4 -m 0 /dev/purgatory/test1
mke2fs 1.42.9 (4-Feb-2014)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
0 blocks (0.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
Tatlı ve temiz. Blok büyüklüğüne dikkat edin - mantıksal hacmimiz küçüktür, bu nedenle mkfs.ext4 normal 4 KiB değil, 1 KiB boyutunda bir blok yapmaya karar verdi.
Şimdi onu monte edeceğiz.
sudo mount /dev/purgatory/test1 /mnt/test1
Ve df
parametre olmadan arayalım (1 KiB-blok görmek istiyoruz)
/dev/mapper/purgatory-test1 95054 1550 91456 2% /mnt/test1
Bekle, oh shi ~
Toplam 95054 blokumuz var. Ancak cihazın kendisi 102400 blok 1 KiB'ye sahiptir. Depomuzun sadece% 92,8'ine sahibiz. Bloklarım nerede adamım?
Buna gerçek bir blok aygıtta bakalım. A'nın 16 GiB sanal diski var, 1K'nın 16777216 bloğu, ancak yalnızca 15396784 bloğu df çıktısında. % 91.7, bu nedir?
Şimdi soruşturmayı takip ediyor (spoiler: sonuç yok)
Dosya sistemi cihazın başında başlayamaz. Bu garip ama mümkün. Neyse ki, ext4 sihirli baytlara sahip, varlığını kontrol edelim.
sudo hexdump -C / dev / araf / test1 | grep "53 ef"
Bu, süper bloğu gösterir:
00000430 a9 10 e7 54 01 00 ff ff 53 ef 01 00 01 00 00 00 |...T....S.......|
Hex 430 = 1072 Aralık, yani ilk kilobayttan sonra bir yerde. Makul görünüyor, ext4 VBR gibi tuhaflıklar için ilk 1024 baytı atlıyor.
- Bu günlük!
Hayır öyle değil. Eğer df çıkışı varsa Journal, kullanılabilir.
- Oh, biz dump2fs var ve orada boyutları kontrol edebiliriz!
... bir sürü insan ...
sudo dumpe2fs /dev/purgatory/test1 | grep "Free blocks"
Ahh.
Free blocks: 93504
Free blocks: 3510-8192
Free blocks: 8451-16384
Free blocks: 16385-24576
Free blocks: 24835-32768
Free blocks: 32769-40960
Free blocks: 41219-49152
Free blocks: 53249-57344
Free blocks: 57603-65536
Free blocks: 65537-73728
Free blocks: 73987-81920
Free blocks: 81921-90112
Free blocks: 90113-98304
Free blocks: 98305-102399
Ve başka bir numaramız var. 93504 ücretsiz bloklar.
Soru şudur: neler oluyor?
- Cihaz engelle: 102400k (lvs diyor)
- Dosya sistemi boyutu: 95054k (df diyor)
- Ücretsiz bloklar: 93504k (dumpe2fs diyor ki)
- Mevcut boyut: 91456k (df diyor)
ext2
emin görünüyor, burada makul
ext2
küçük bölümler için kullanıyorum .