[linux-baslangic] Re: NFS'te dosya buyuklugu

---------

From: A.Murat EREN (meren@comu.edu.tr)
Date: Fri 30 Jan 2004 - 07:30:39 EST

  • Next message: A.Murat EREN: "[linux-baslangic] Re: tar komutunu ben kullanam?yorum :(("

     
     Tekrar Merhabalar,
     
    > benim bu buyuk dosyalari yazmaya calistigim yer /dev/sda1 olarak mount
    > edilmis usb baslantili bir harici disk. sda1 olarak tanimli bir yerin
    > dosya sistemi nasil olur?
     
     Herhangi bir dosya sistemi olabilir, hangi dosya sistemi ile
    formatladiginizi hatirlamiyor musunuz? /dev/sda1 adli diskinizin dosya
    sisteminin ne oldugunu
     
     ]$ mount | awk '/sda1/ {print $5}'
     
     komutu yardimi ile ogrenebilirsiniz. Daha sonrada,
     
     ]# dumpe2fs -h /dev/sda1
     
     komutu ile o diskinizdeki dosya sistemi ile ilgili cesitli bilgileri
    goruntuleyebilirsiniz. Bu bilgiler icerisinde Block Size degerine de
    rastlayacaksiniz (]# dumpe2fs -h /dev/hda5 | grep "Block size" komutu ile
    ciktidan kolayca cekebilirsiniz).
     
    > bir de 512byte'i nasil hesaplayip 2GB diyebiliyoruz?
     
     Bu aslinda bir miktar karisik bir mevzu. Ext2'nin inode veri yapisini
    iyi tanimak gerekli, aciklamaya calisayim.
     
     Ext2 dosya sisteminde her bir inode, bir dosyayi, bir dizini, dosya
    sistemi uzerinde bulunabilecek atomik bir varligi ifade etmek icin
    kullanilir (dosya, dizin, karakter aygiti, soket, sembolik link, boru,
    blok aygiti; hepsine birden dosya diyelim). Ve her bir dosya sadece ve
    yanlizca bir unique inode ile ifade edilir, zaten dosyalara inode'larin
    index numaralari ile ulasildigindan bunlarin unique olmasi gerekliligi
    aciktir.
     
     Her bir inode kendi veriyapisi icerisinde dosyanin kendi özlük
    bilgilerini icerir elbette; dosyanin kullanicisi, grubu, özellikleri,
    olusturma tarihi, degistirilme tarihi, son erisim tarihi, silinme tarihi
    gibi. Bunun yaninda inode, dosyanin sahip oldugu meta bilgilerin disinda,
    dosyayi olusturan verilerinin diskteki adreslerini de saklayabilmelidir
    tabi. Bu verilerin diskteki yerlerini saklamada biraz degisik ve guzel
    bir yol izliyor inode. Assagiya veriyapisini cizip ondan sonra aciklamaya
    calisayim, bizim icin onemli kisimlar I, II, III ve IV ile isaretledigim
    veri alanlari, cunku sizin diske en fazla ne kadar buyuklukte bir dosya
    yazabileceginiz sinirlamasi onlarla ilgili (aslinda veri yapisinin 18
    civari alani var fakat ben basitlestirecegim):
     
     
     - - - - - - - - - - - - - - - - - - - - - - - - - --
     | Attribute (Dosya tipi ve erisim haklari) |
     - - - - - - - - - - - - - - - - - - - - - - - - - --
     | Sahiplik Bilgisi (Sahibi, Grubu) |
     - - - - - - - - - - - - - - - - - - - - - - - - - --
     | Boyut (byte cinsinden dosya uzunlugu) |
     - - - - - - - - - - - - - - - - - - - - - - - - - --
     | Timestampler (Olusturma, degistirme, son erisim) |
     - - - - - - - - - - - - - - - - - - - - - - - - - --
     | Dogrudan Bloklar (12 tane) | I.
     - - - - - - - - - - - - - - - - - - - - - - - - - --
     | Dogrudan olmayan Blok (1. seviye, 1 tane) | II.
     - - - - - - - - - - - - - - - - - - - - - - - - - --
     | Dogrudan olmayan Blok (2. seviye, 1 tane) | III.
     - - - - - - - - - - - - - - - - - - - - - - - - - --
     | Dogrudan olmayan Blok (3. seviye, 1 tane) | IV.
     - - - - - - - - - - - - - - - - - - - - - - - - - --
     
     
     I. alan 12 tane Block'tan olusuyor, herhangi bir adres tutmuyor sadece
    sizin dosya sistemini formatlarken karar verdiginiz (block boyutu * 12)
    byte veri saklayabiliyorular. Eger sizin dosyaniz, bu veri miktarindan
    kucukse ve sadece ilk 12 alan ile ifade edilebiliyorsa, indirect
    adreslere hic gecilmiyor. Dogrudan ifade edilebilen veri miktari
    12*(block boyutu) byte.
     
     II. alandan sonrasi biraz karisik. Eger veri 12*blockboyutu byte'dan
    büyük ise, dogrudan olmayan 1. seviye blok'a geciliyor. Bu da aslinda bir
    blok, fakat dogrudan verileri adreslemiyor da, diger bloklari adresliyor.
    Yani kendi icerigi verinin kendisi degil, indirect blok adresleri oluyor.
    Her bir blokun adresi 32 bit yani 4 byte olabildigi icin (32 bitlik
    mimari üstünde calistigimizi varsayarak) bu bir blok icerisinde (block
    size)/4 tane block adresi saklanabiliyor. Bu adreslerin gosterdigi
    bloklarin her birinde de 1*(block size) byte veri oldugunu düsünürsek, 1.
    indirect blok ile ifade edilebilecek toplam blok sayisi: ((block
    boyutu)/4); toplam veri boyutu ((block boyutu)/4)*(block boyutu); block
    boyutuna bundan sonra BB diyelim, ilki ile toplarsak (12 + (BB/4))*BB
    byte veri etti.
     
     III. alanin da double indirect adresleme icin kullaniliyor. eger ilk iki
    alan verinin tamamini ifade etmeye yetmemis ise devreye burasi giriyor.
    Bu sefer de, II. de verilere ulastigimiz noktada yine karsimiza her bir
    veri yerine BB/4 tane yeni adres dizisi cikiyor. 2. seviyeden indirect
    bloklar ile ifade edilebilen maximum veri miktari ((BB/4)^2)*BB byte
    oluyor.
     
     IV. alan da III. bir adim sonrasi tahmin ettiginiz gibi, burada da 3 kat
    adres dolasiyoruz veriye ulasmak icin. Cizince aslinda cok guzel
    anlasiliyor fakat e-posta oldugu icin biraz karisik oldu kusura bakmayin
    (http://cs.senecac.on.ca/~lczegel/UNX511/lectures/Lecture12.html
    adresinde cizmeye calistigim seyin bir resmi var, isterseniz bir goz
    atabilirsiniz). Bu alanda yapilan adreslemeler yardimi ile ifade
    edilebilen veri miktarida ((BB/4)^3)*BB byte oluyor.
     
     En nihayetinde bizim blok boyutumuz 512 byte ise nasil hesaplayip 2Gb
    maximum dosya boyutu diyebildigimize geliyoruz.. Maximum dosya, bu veri
    yapisinin ifade edebilecegi en yuksek miktar oluyor tabi, bunun disina
    ciktigi zaman herhangi bir dosyanin boyutu dosya sistemi o dosyayi ifade
    edemez hale geliyor. Cunku basta soyledigimiz gibi her bir dosya sadece
    bir inode tarafindna ifade edilebilir. BB blok boyutu icin bizim Ext2'nin
    ifade edebilecegi maximum dosya boyutu su oluyor yukardakilerden sonra:
     
     (12 + (BB/4) + (BB/4)^2 + (BB/4)^3) * BB
     
     Blok boyutunun maximum dosya boyutu üzerine ne kadar polinomik bir
    etkisi oldugu da burdan rahatca gorulebilir. Blok boyutu 4K oldugu zaman,
    3. seviyeden indirect bloklar yaklasik 2 terabyte'i ifade edebiliyorlar.
     
     Umarim biraz da olsa fikir verebilmisimdir blok boyutu - dosya boyutu
    arasindaki iliskiye dair, eger siz baktiginizda dosya sisteminizin vfat
    oldugunu gorurseniz bunlarin hepsini bosa yazmis olacagim :) olsun ama
    mantik onda da buna yakin.
     
     
     
     Iyi calismalar.
    --
     
     
    - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
     A. Murat Eren
     meren@comu.edu.tr
     http://zion.comu.edu.tr/~evreniz/
    - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
     
     

    ---
    linux-baslangic listesinden cikmak  ve tum listeci islemleri icin
    http://liste.linux.org.tr/   adresini kullanabilirisniz.
    Bu listeden cikmak icin
    <a href="mailto:linux-baslangic-request@liste.linux.org.tr?Subject=unsubscribe"> tiklayiniz</a>
    

  • Next message: A.Murat EREN: "[linux-baslangic] Re: tar komutunu ben kullanam?yorum :(("

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.