|
|
Bu makalenin farklı dillerde bulunduğu adresler: English Castellano Deutsch Francais Nederlands Portugues Russian Turkce |
Mark Nielsen (homepage) Yazar hakkında: Mark bağımsız danaışman olarak çalışmaktadır. Zamanını GNUJobs.com, makale yazımı, serbest yazılım yazımı ve eastmont.net'de gönüllü çalışarak geçirmektedir. Türkçe'ye çeviri: Erdal MUTLU <erdal/at/linuxfocus.org> İçerik:
|
Raid, /dev/ram, ve ramfs'lerin ilginç kullanımlarıÖzet:
RamFs ilginç yönleri olan basit bir dosya sistemidir. 2.4 çekirdek sürümü ile birlikte gelen yeni bir şeydir. |
RamDisk nedir? RamDisk, geçici belleğin bir kısmını oluşturmaktadır ve normal bölme (partition) olarak kullanılabilir. Başka bir deyişle, geçici belleğiniz bir kısmını alıyorsunuz ve sanki tıkız teker gibi kullanıyorsunuz, yani mount ediyor, dosya yaratıyor, dosya siliyor vs.
Burada sözünü edeceğimiz iki tip ramdisk vardır. İlki, biçimlendirebileceğiniz (format) ve mount edebileceğiniz ramdisktir. İkincisi ise, formatlama yapılamayan, fakat ilginç özellikleri olan ramdisktir. Özetle :
Eski /dev/ram1 yaklaşımına göre :
2.0 ve 2.2 çekirdekler ile birlikte kullanmak için aşağıdaki komutları root kullanıcısı olarak çalıştırınız :
mkfs -t ext2 /dev/ram1 mkdir -p /RAM1 mount /dev/ram1 /RAM1ve işlem tamam. Birçok sistemde ramdiskin boyutu 4 MB ile sınırlıdır. Bunu çekirdeğinizi yeniden derleyerek veya bilgisayarınızın açılışında değiştirebilirsiniz. Ayrıca, bir tane daha yaratmak isterseniz :
mkfs -t ext2 /dev/ram2 mkdir -p /RAM2 mount /dev/ram2 /RAM2
Çok basit bir örnek. Bir dizin yaratın ve ramfs'i oraya mount edin.
mkdir -p /RAM1 mount -t ramfs none /RAM1İkinci bir taneye gereksinim duyarsanız, aynı şekilde bir dizin yaratın ve ramfs'i oraya mount edin.
mkdir -p /RAM2 mount -t ramfs none /RAM2
10 MB'lik bir ramdisk yaratan örnek.
mkdir -p /RAM1 mount -t ramfs none /RAM1 -o maxsize=10000Aşağıdaki yazı http://www.linuxhq.com/kernel/v2.4/patch/patch-2.4.3-ac2/linux.ac_Documentation_filesystems_ramfs.txt.html dan alınmıştır (çevirilerek tabii).
+ ramfs - Otomatik olarak boyutu değiştirilebilen dosya sistemi. + + Ramfs dosyalarını RAM (geçici bellek) da tutan bir dosya sistemidir. + Ramfs üzerinde okuma ve yazma işlemleri yapmanız mümkündür. + RamDisk 'lerin aksine boyutunu ramfs'in bouyutunu + büyütebilirsiniz ve içerdiği dosya + buyutu kadar geçici belleiği kullanmaktadır. + + Ramfs'i mount etmek için: + mount -t ramfs none /mnt/wherever + + Bundan sonra üzerinde dosya yaratabilirsiniz. + Dosya sistemini umount ettiğnizde üzerinde bulunan tüm bilgileri kaybedersiniz. + + NOT! Bu dosya sistemi daha çok gerçek bir dosya sistemi olarak değil + de sanal bir dosya sistemi nasıl + yazılır şeklinde bir örnek olarak kullanılabilir. + + Kaynak sınırlamaları: + + Benimsenmiş değer olarak dosyalarını saklamak için ramfs, geçici + belleğin yarısı, eğer metadata + bilgisi de eklenirse yarısından biraz daha fazla alan ile sınırlandırılmıştır. + Ramfs'in kaynak sınırlandırılmasını mount komutuna verilen + aşağıdaki seçenekler ile denetleyebilirsiniz : + + maxsize=NNN + Dosya sisteminin (ramfs) kullanabileceği en fazla boyutu NNN KB olarak + ayarlamaktadır. Bu değer sisteminizin page (sayfa) boyutunun katı + şeklinde aşağıya yuvarlama yapılarak + ayarlanacaktır. Benimseniş değer geçici belleğin yarısıdır. Diğer + sınırlamalar gibi, boyutu sıfır yaparak + sınırsız anlamına gelmemektedir. Gerçekte sıfır yapmakla, sıfır + sistem sayfası boyutuna getirmektesiniz. + Belkide bunu değişik durumlarda kullanmak mümkün olabilir. + + maxfilesize=NNN + Dosya sistemi üzerindeki herhagi bir dosyanın boyutunun en + fazla olabileceği boyutu NNN KB + olarak ayarlamaktadır. Bu değer sisteminizin page (sayfa) boyutunun katı + şeklinde aşağıya + yuvarlama yapılarak ayarlanacaktır. Eğer, NNN=0 ise, sınırlama + yok anlamı taşımaktadır. + Benimsenmiş değer sınırlamanın olmadığı değerdir. + + maxdentries=NNN + Dosya sisteminde oluşturulabilecek en fazla dizin (hard link) sayısını + NNN olarak ayarlamaktadır. + Eğer, NNN=0 ise, sınırlama yoktur. Benimsenmiş değeri maxsize/4 tür. + + maxinodes=NNN + Dosya sistemindeki en fazla inode (farklı dosya sayısı) sayısını NNN + olarak ayarlamaktadır. + Benimsenmiş değer sınırlamanın olmadğı değerdir. Ancak, dentries + değerinden fazla inode olmaz. +
Bu günlerde RAM'lerin fiyatları oldukşa ucuz. Geçenlerde 128 MB'lik geçici belleği 120 dolara satın aldım. Fiyatların daha da düşeceğini hayal ediyorum. 128 MB'lik bir yere sanaldoku sunucularımı rahatlıkla sığdırabilirim. Eğer, sanaldoku sunucum büyük dosyalara gereksinim duyarsa, httpd.conf dosyasından başka bir dizine bakmasını ayarlayabilirim. Benim DNS sunucum çok küçük. En büyük veritabanım 28 MB. 1 GB'lik geçici belleğe çok ucuza sahip olabileceğiniz gerçeği göz önünde bulundurursak, sahip olduğum herşeyi geçici bellekte çalıştırabilirim. Veritabanı sunucusu ile ilgili bir püf nokta var tabii. O da geçici belleğe yazmadan önce, başka bir veritabanına yazmak gerektiğidir. Bu yavaş bir işlemdir. Ancak, bir veritabanı sunucusunda yazmaktan çok okuma işleminin yapıldığı düşünülürse performans artışı yaşanması gerekecektir. Belkide geçici belleği (ramfs) tıkız tekere (hard disk) mirior (ayna görüntüsü) yapabilseydik.
Bu konuyu daha önce açıklamada bulunduğum: http://www.gnujobs.com/mark/articles/Ramdisk.html#Example. yazıyı okuyunuz.
### Ramdisk bölmelerini oluşturunuz /sbin/mkfs -t ext2 /dev/ram0 /sbin/mkfs -t ext2 /dev/ram1 /sbin/mkfs -t ext2 /dev/ram2 ### Ramdisk'leri ilgili yerlere mount ediniz mount /dev/ram0 /home/httpd/cgi-bin mount /dev/ram1 /home/httpd/icons mount /dev/ram2 /home/httpd/htmlaşağıdaki komutlara boyutlarını yükseltin ( 10 MB yeterince iyi değil:) )
mount -t ramfs none /home/httpd/cgi-bin -o maxsize=10000 mount -t ramfs none /home/httpd/icons -o maxsize=10000 mount -t ramfs none /home/httpd/html -o maxsize=10000
Ramdisk ile tıkız tekeri birleştirmede üç sorun ortaya çıkmaktadır:
raiddev /dev/md3 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 chunk-size 4 persistent-superblock 1 device /dev/hdb6 raid-disk 1 device /dev/ram3 raid-disk 0olarak düzenledim ve
mkraid /dev/md3 mkfs -t ext2 /dev/md3 mkdir -p /RAID1 mount /dev/md3 /RAID1komutlarını çalıştırdım. Ancak, bilgisayarı yeniden açtığımda ramdisk'teki bilgiler karıştı. Bunun düzeltmek için yeniden açma sırasında,
raidstart /dev/md3 raidhotadd /dev/md3 /dev/ram3 mount /dev/md3 /RAID1komutlarını çalıştırmak gerekti. Unutmamak gerekir ki eski tip ramdisk kullanıyorsanız ve boyutunda ayarlama yapmadıysanız 4 MB'nin üzerinde bir tıkız teker bölmesi kullanmanızın bir anlamı olmayacaktır.
Nasıl yapıldığını bilmiyorum, ancak, 2 bölmesi tıkız tekerden ve bir bölme ramdiskten oluşacak şekilde 3 bölmeli bir raid oluşturup, raid'in okuma komutlarını sadece ramdisk üzerinden yapacağı bir ayarlama yapılabilse ne şık olurdu değil mi?
Bazı yardımlarından dolayı Katja teşekkür ederim!
Haklar © 4/2001 Mark Nielsen
Makale Sürüm Numarası 1.3 : En son Sat May 19 06:04:06 2001 değiştirildi
|
Görselyöre sayfalarının bakımı, LinuxFocus Editörleri tarafından yapılmaktadır
© Mark Nielsen, FDL LinuxFocus.org |
Çeviri bilgisi:
|
2003-10-20, generated by lfparser version 2.43