Home Map Index Search News Archives Links About LF
[Top bar]
[Bottom bar]
[Photo of the Author]
Mark Nielsen

Yazar hakkinda:

Yazar (ana sayfa) The Computer Underground, Inc. 'de dosya yazıcısı ve 800linux.com'da da bilirkişi olarak çalışmaktadır. Boş zamanlarında, gönüllü olarak bu tip dokümanlar hazırlamaktadır. Bu doküman Nedit ve ispell kullanılarak yazılmıştır.

Content:

Linux'da Ramdiskin kullanılşı

[Illustration]

Abstract:

Bu makale Ram'in nasıl sanal sabit disk olarak kullanılacağı hakkında bilgi verir.



 

Ramdiske giriş

Bu kısa makale, RedHat 6.0'da Ram Disk'in nasıl kurulacağına ilşkindir. Buradaki bilgiler diğer linux sürümleri için de hemen hemen aynıdır.

Ramdisk nedir? Ramdisk belleğin bölüm bölüm kullanılabilmesi için ayrılan kısımdır. Diğer bir deyişle, belleği alıp onu hard drive gibi kullanarak, dosyaları buraya kaydedersin. Neden Ramdisk kullanmak istersin? Eğer belli dosyaları sık sık kullanıyorsan, bunları belleğe yerleştirmek bilgisayarının performansını arttıracaktır. Çünkü bellek, hard drive dan daha hızlıdır. Ağ-sunucular gibi birçok bilgiye sahip olan yapılar bu şekilde hızlandırılabilir. Ya da eğer 1 gig lik belleğe ve 500 meg eski hard drive a sahip olan bir P İİ 550Mhz bilgisayarın varsa, hard drive alanını arttırmak için Ramdisk kullanabilirsin.

Yardımcı olabilecek diğer kaynaklar

  1. http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html
  2. http://metalab.unc.edu/LDP/HOWTO/mini/LILO.html
  3. /usr/src/linux/Documentation/ramdisk.txt
 

RamDiskin kullanımı

Ramdiski kullanmak çok kolaydır. Herşeyden önce,RedHat 6.0'ın varsayılan kurulumunda ramdisk desteği vardır.Yapmanız gereken şey bir tane ramdiski biçimlendirmek ve daha sonra bir dizine koymaktır. Kullanabileceğiniz tüm ramdiskleri öğrenmek için , "ls -al /dev/ram*" komutunu kullanınız. Bu sayede ramdiskiniz linkinizi içerir. Bu ramdiskler onları bir şekilde kullanmayana kadar(biçimlendirmek gibi) bellekte pek fazla yer kaplamazlar.Aşağıda bir ramdiskin nasıl kullanıldığını gösteren basit bir örnek var.

# ramdiskin koyulacağı yeri oluşturma:

mkdir /tmp/ramdisk0

# dosya sistemi oluşturma:

mke2fs /dev/ram0

# ramdiski koyma:

mount /dev/ram0 /tmp/ramdisk0

Bu üç komut ramdisk için dizin oluşturacak,ramdiski biçimlendirecek(dosya sistemi oluşturacak) ve ramdiski "/tmp/ramdisk0" dizinine koyacak. Artık,dizini taklit bir disk bölümü olarak sayabilirsiniz!Devam edin ve dizini diğer dizinler ya da diğer disk bölümleri gibi kullanın.
Eğer ramdisk biçimlendirilmediyse o halde çekirdeğinizde ramdisk desteği olmayabilir. Ramdisk için cekirdek biçimlendirme seçeneği: CONFIG_BLK_DEV_RAM .

Ramdiskin varsayılan büyüklüğü 4Mb=4096 öbek.Burada mke2fs çalışırken sahip olduğunuz ramdiski gördünüz.mke2fs/dev/ram0 şöyle bir mesajın çıkmasına neden olmalıydı::


mke2fs 1.14, 9-Jan-1999 for EXT2 FS 0.5b, 95/08/09

Linux ext2 filesystem format

Filesystem label=

1024 inodes, 4096 blocks

204 blocks (4.98%) reserved for the super user

First data block=1

Block size=1024 (log=0)

Fragment size=1024 (log=0)

1 block group

8192 blocks per group, 8192 fragments per group

1024 inodes per group

df -k /dev/ram0 komutunu çalıştırmak size ramdiskin gerçekte ne kadarını kullanabileceğinizi söyler. (Dosya sistemi de bir miktar alan alır):

>df -k /dev/ram0

Filesystem  1k-blocks  Used Available Use% Mounted on

/dev/ram0        3963    13      3746   0% /tmp/ramdisk0

+ Bazı yakalanmalar nelerdir? Bilgisayar yeniden açıldığı zaman ramdisk silinir.Başka bir yere kopyalanmamış bilgileri oraya koymayın.Eğer bu dizinde değişiklik yaparsanız ve bu değişikliklerin sürmesini istiyorsanız,onları yedeklemek için bir yol bulmalısınız.    

Ramdisk'in boyutunun değiştirilmesi

Ramdisk'i kullanmak için, ya yüklenebilir bir modüle ya da Kernel içinde derlenmiş bir Ramdisk desteğine sahip olmalısın. Kernel konfigürasyonu CONFIG_BLK_DEV_RAM dir. Ramdisk'i yüklenebilir bir modül olarak derlemek avantajlıdır. Çünkü, ramdiskin boyutuna yükleme zamanında karar verebilme imkanı sağlar.

Ilk olarak zor yol. Bu satırı lilo.conf dosyasına ekle:
   ramdisk_size=10000 (ya da ramdisk=10000 eski Kerneller için)
ve bu işlem "lilo" komutunu yazdıktan ve bilgisayarı yeniden açtıktan sonra ramdiskini 10 meg yapar. /etc/lilo.conf dosyasının bir örneği


boot=/dev/hda

map=/boot/map

install=/boot/boot.b

prompt

timeout=50

image=/boot/vmlinuz

	label=linux

	root=/dev/hda2

	read-only

	ramdisk_size=10000

Geçekte, kullanılabilir alanın 9 meg inden biraz daha fazlasını kullanırız. Çünkü, dosya sistemi de bir miktar yer kaplar.

Ramdisk desteğini yüklenebilir modül olarak derlediğinde, boyutunun ne olacağına yükleme anında karar verebilirsin. Bu /etc/conf.modules dosyasındaki bir seçenek satırıyla yapılabileceği gibi:


options rd rd_size=10000

komut satırı ile de yapılabilir:

insmod rd rd_size=10000

Aşağıdaki örnekte modülün nasıl kullanılacağı gösterilmektedir:
  1. Bir önceki bölümde monte edilen ramdiski kaldır umount /tmp/ramdisk0 .
  2. modülü kaldır (bir önceki bölümde otomatik olarak yüklenmişti), rmmod rd
  3. Ramdisk modülünü yükle ve boyutunu 20 Mb yap, insmod rd rd_size=20000
  4. dosya sistemi oluştur, mke2fs /dev/ram0
  5. ramdiski monte et, mount /dev/ram0 /tmp/ramdisk0
 

Ramdiskin bir ağ sunucusu için kullanımı için örnek.

Burada 3 tane ramdiskin bir ağ sunucusu için kullanımı için bir örnek var.Diyelim ki, Apache'nin RedHat 6.0'da varsayılan kurulumunun cgi-script,html ve resimler için 9 megabayttan fazla yer kaplamayacağından %99 eminsiniz.İşte bir tanesinin kurulumu.
İlk önce,issue this command to move the real copy of the document root directory of your webserver to a different place. Ayrıca, ramdisklerin konulacağı dizinleri oluşturun.

mv /home/httpd/ /home/httpd_real

mkdir /home/httpd

mkdir /home/httpd/cgi-bin

mkdir /home/httpd/html

mkdir /home/httpd/icons

Daha sonra bu komutları başlangıç prosedüründeki /etc/rc.d/init.d/httpd.init dizinine(veya httpd'nin sisteminizde başladığı yere) ekleyin:



        ### Ramdiski bölümlendirin

/sbin/mkfs -t ext2 /dev/ram0

/sbin/mkfs -t ext2 /dev/ram1

/sbin/mkfs -t ext2 /dev/ram2



        ### Ramdiskleri uygun yerlerine koyun



mount /dev/ram0 /home/httpd/cgi-bin

mount /dev/ram1 /home/httpd/icons

mount /dev/ram2 /home/httpd/html



        ### Ana dizini ramdisklere kopyalama(ramdisklerdeki bilgiler

bilgisayar yeniden açıldığında kaybedilir)

tar -C

/home/httpd_real -c . | tar -C /home/httpd -x   

  ### Bundan sonra ağ-sunucuyu başlatabilirsiniz.
 

Yorumlar

  1. Lütfen bir şeyi unutmayın, eğer bilgilerinizi değiştirecekseniz ve onlara tekrar ihtiyaç duyacaksanız,BILGILERI YEDEKLEYIN. Bilgisayar yeniden açıldığında tüm değişiklikler kaybedilir.
    A cron job should do it. On dakikada bir ramdiski kontrol edin ve herhangi bir dosyadaki değişiklikleri görün ve değişiklikleri kaydedin.Yapabileceğiniz başka bir şey de değişiklikleri ana dizinde yapıp daha sonra değişikleri ramdisklere kopyalamak.Bu çok daha güvenlidir.
  2. A cool use of this would be to have a computer with 1 gig of memory and then use 256 megs for "/tmp". Eğer "/tmp" kullanan birçok işleminiz varsa, sisteminizin hızlanmasına yardımcı olur. Also, anything in /tmp would get lost when the computer reboots, which can be a good thing.
  3. Linux,programlar tarafından kullanılmayan tüm belleği ön-bellek olarak kullanır ama deneyimlerime göre ramdiskler size buna rağmen biraz daha hız artışı sağlar.

Webpages maintained by the LinuxFocus Editor team
© Mark Nielsen
LinuxFocus 1999

1999-11-01, generated by lfparser version 0.8

en -> Çiğdem Gür , Direniş Gundoğdu