Ana Sayfa » *nix » FreeBSD – Jail Sistemleri Ramdisk Üzerinde Çalıştırmak

FreeBSD – Jail Sistemleri Ramdisk Üzerinde Çalıştırmak


BerbatKötüİdare EderGüzelHarika (Toplam 2 oy. 5 puan üzerinden ortalama 3,00 || Oy vererek siz de katkıda bulunabilirsiniz.)
Loading...

FreeBSD Jail

sistemlerde her türlü servisi sistemler üzerinde çalıştırmayı seviyorum. Bu şekilde bir nevi sanallaştırma yapılmış olduğundan dolayı hem yedekleme gibi yönetimsel faliyetler kolaylaşıyor hem de servisler yalıtılmış ortamda çalıştığından dolayı güvenlik seviyeniz artmış oluyor.

Geçenlerde çok sayıda mail göndermekte kullanılan bir qmail sunucusu çalıştıran bir sistem’in disk I/O kapasaitesini nasıl arttırabilirim diye düşünürken, aklıma bu ’i host sistem üzerinde oluşturacağım bir içerisinden çalıştırıp çalıştıramayacağım geldi.

Elbette bir ’i üzerinde çalıştırmak, host sistemin her reboot’undan sonra jail’in uçması anlamına gelir. Ancak veri güvenliği ile ilgili bir sıkıntı yoksa  yönetmini kullanmak kazanılan yüksek I/O kapasitesi düşünüldüğünde gayet mantıklı olabilir.

Bir jail sistemi üzerinde çalıştırmak için jail’e ait anadizini alanına taşımak ve yapılandırma doslayarında yeni path’i belirtmek yeterlidir. Ancak sistemi restart etmeniz durumunda silineceği için her sistem restartında jail’in yeniden set edilmesi gerekiyor. Bu işlem için de basit bir rc scripti yeterli oluyor. Yazının devamında, ezjail ile oluşturulan jail sistemlerin yukarıda anlatıldığı şekilde üzerinde nasıl up edilebileceği ile ilgili detaylar bulabilirsiniz.

 

Ramdisk Oluşturmak

Elbette, jail ile ilgili yapılandırma işlemlerine başlamadan önce sisteminizde bir ramdisk oluşturmanız gerekiyor. sistemlerde ramdisk oluşturulması ile ilgili olarak http://www.syslogs.org/freebsd-sistemlerde-ramdisk-olusturulmasi/ adresinde bir yazı yayınlamıştım. Öncelikle ilgili linkte anlatıldığı şekilde (minimm 512MB’lik) bir ramdisk oluşturun.  Sonrasında bu yazıya devam edebilirsiniz.

Jail`in Ramdiske Taşınması

Yukarıda da bahsettiğim gibi ben jail sistemleri yönetmek için ezjail kullanıyorum. (Ezjail ile ilgili her türlü bilgi için http://www.syslogs.org/freebsd-jail-kurulumu/ adresine göz atabilirsiniz.) Ezjail ile oluşturulan jail sistemler /usr/jails dizini altında bulunuyorlar. Örnek olarak elimizde jail01 isimli bir jail bulunduğunu düşünürsek bu sistemi /mnt/ramdisk dizinine mount edilmiş ramdisk’e taşımak için şu adımları uygulayabilirsiniz.

Öncelikle jail01 isimli jail’i stop ediyoruz.

# ezjail-admin stop jail01

Sonrasında, /usr/jails/jail01 dizinini /mnt/ramdisk dizinine taşıyoruz ediyoruz.

# mv /usr/jails/jail01 /mnt/ramdisk/

Not: Bu işlemi özellikle mv ile move şeklinde yapıyoruz. Zira jail dizin yapısının symbolic linkler de dahil olmak üzere korunması gerekmektedir.  (Aynı işlemi tar -> untar şeklinde yapmak da mümkündür.)

Bu işlemin ardında yapılandırma dosyalarında düzenleme yapmak gerekiyor.

Conf Dosyalarında Düzenleme

Ezjail’in jail sistemler ile ilgili düzenleme yapılması gereken iki adet dosyası bulunmaktadır. Birincisi jail ile ilgili tüm yapılandırmanın tutulduğu /usr/local/etc/ezjail/ dizini altında jail’in adını taşıyan ana yapılandırma dosyasıdır. Öncelikle bu dosya içerisineki path bilgisini düzenliyoruz:

/usr/local/etc/ezjail/jail01 isimli dosyayı editleyin:

# vi /usr/local/etc/ezjail/jail01

Path’in belirtildiği satırı  aşağıdaki şekilde düzenliyoruz.

export jail_jail01_rootdir="/mnt/ramdisk/jail01"

ve kaydedip çıkıyoruz.

İkinci düzenlemenin yapılacağı dosya ise /etc/ altında fstab.jail01 ismi ile bulunan jail’e ait fstab dosyasıdır. Bu dosyada basejail isimli ana dizini jail’in basejail dizinine mount edilmektedir. Burada da jail’in yeni path’i belirtilmelidir:

/etc/fstab.jail01 isimli dosyayı editleyin:

# vi /etc/fstab.jail01

Path’in belirtildiği bölümü aşağıdaki şekilde düzenliyoruz.

/usr/jails/basejail /mnt/ramdisk/jail01/basejail nullfs ro 0 0

ve kaydedip çıkın.

Bu değişikliklerden sonra jail ramdisk üzerinde çalışabilecek duruma gelmektedir. Bu nedenle start ederek her şeyin yolunda gidip gitmediğini kontrol edin:

# ezjail-admin start jail01

Herhangi bir problem çıkmadıyda sistem sorunsuz olarak çalışıyor olmalıdır. ezjail-admin list komutu ile bakarsanız jail’in /mnt/ramdisk altında çalışıyor olduğunu görmeniz gerekir.

# ezjail-admin list
STA JID  IP              Hostname                       Root Directory
--- ---- --------------- ------------------------------ ------------------------
DR  1    10.10.10.12     jail01.cagri.net               /mnt/ramdisk/jail01

Taşıma işleminin birinci aşaması burada bitiyor. Şimdiyse sistem açılışlarında jail’in yeniden set edilmesi ile ilgili işlemleri tamamlayalım.

Reboot Sırasında Jail`in Set Edilmesi

Ben, sistem açılışlarından jail’in ramdisk üzerinde yeniden set edilmesi için basit bir rc scripti kullanıyorum. Bu script bir dizinde tar.gz formatında duran güncel jail backupını, (fstab’da yazılı olduğundan dolayı daha önce oluşturulmuş olan [1]) ramdisk’e taşıyor. Jail’in yapılandırma dosyaları, jail anadizinini ramdisk üzerinde gösterdiği için de bu işlem jail’in set edilmesi ve düzgünce çalışması için yeterli oluyor.

Bu işlemi aşağıdaki şekilde yapmak mümkün.

Önce halihazırda ramdisk üzerinde çalışmakta olan jail01 isimli jail’i yedek almak üzere durduralım.

# ezjail-admin stop jail01

Daha sonra da, /var/ dizini altında jailbackups bir yedek dizini oluşturalım.

# mkdir /var/jailbackups

Şimdi de jail01’i /var/jailbackups/ dizinine tar.gz formatında yedekleyelim.

# cd /mnt/ramdisk/
# tar cvfz /var/jailbackups/jail01.tar.gz jail01

Sonra da /usr/local/etc/rc.d/ dizini altında setjaildir isimli bir dosya oluşturalım.

# touch /usr/local/etc/rc.d/setjaildir

Dosya içerisine aşağıdaki satırları paste edelim:

#!/bin/sh

# PROVIDE: setjaildir
# REQUIRE: NETWORKING
# KEYWORD: shutdown

. /etc/rc.subr

name="setjaildirs"

/bin/cp -pr /var/jailbackups/jail01.tar.gz /ramdisk/
cd /ramdisk/ && /usr/bin/tar xfz jail01.tar.gz
rm /ramdisk/jail01.tar.gz

Son olarak da /usr/local/etc/rc.d/setjaildir isimli dosyanın izinlerini çalıştırılabilir olarak set edelim.

# chmod 755 /usr/local/etc/rc.d/setjaildir

Bu şekilde sistemin yeniden açılması sırasında jail01’in yedeği /mnt/ramdisk dizinine açılacak ve jail01 düzgün olarak çalışacaktır. Durumu kontrol etmek için sisteminizi restart etmeyi deneyebilirsiniz.

[1] http://www.syslogs.org/freebsd-sistemlerde-ramdisk-olusturulmasi/

Ayrıca bkz:
http://www.syslogs.org/freebsd-jail-kurulumu/
http://www.syslogs.org/freebsd-sistemlerde-ramdisk-olusturulmasi/

Kategoriler: *nix,ipucu,Scripts |

Bu yazılar da ilginizi çekebilir:


- FreeBSD Jail Sistemlere İkinci IP Eklemek
- FreeBSD Jail Sistemlerde Tarih ve Saat’in Set Edilmesi
- Ezjail Flavours ile Öntanımlı Jail Sistemler Oluşturmak
- FreeBSD Sistemlerde RamDisk Oluşturulması
- FreeBSD Jail Kurulumu – Güvenli Network Servisleri

Yorumlar


  1. Adullah ÜLKER | (Kasım 3rd, 2011 4:05 am)

    Süpersiniz Çağrı hocam.
    Makale için Teşekkürler.

    [Cevapla]

Trackbacks

Yorumda bulunun.