Linux Containers – lxc

Linux ile sanal makine oluşturmak istiyorsanız, fakat VMWare’e verecek paranız yoksa, zaten komple sanallaştırmanın yavaş olacağını düşünüyorsanız, lxc tam size göre.
kompleks bir hypervisor kullanmak yerine, os-level sanallaştırma yapmak, aradaki sanallaştırma katmanının hafifliği nedeni ile daha hızlı oluyor.
Biraz reklam gibi oldu, fakat deneyince siz de seveceksiniz. Aşağıdaki işlemleri ubuntu server altında yaparak, siz de hızlı çalışan ve kolayca kullanabileceğiniz sanal makinelerinize kavuşabilirsiniz.

sudo apt-get install lxc
komutu ile lxc paketlerini kurabiliyoruz.
Ben sanal makinelerimi NAT modunda değil de bridge modunda kullanmak istediğim için aşağıdaki ayarları da yaptım, siz bridge modda kullanmak istemiyorsanız yapmanıza gerek yok.
aşağıdaki konfigurasyonu /etc/network/interfaces dosyasının içerisine ekledim.

auto br0
iface br0 inet static
address 192.168.1.200
netmask 255.255.255.0
gateway 192.168.1.254
bridge_ports em1

tabii ki, em1 interface’ini de manual’e çektim, bridge çalışmaya başladığında em1 (ya da eth0, artık network adına ne dediyseniz) ip adresini kaybedecek ve br0’a tanımlamış olduğunuz ip adresi geçerli olacak.
Yine bridge mod için, /etc/lxc/default.conf dosyasının içerisindeki lxc.network.link satırını aşağıdaki şekilde değiştirdim, bu sayede yeni kuracağım sanal makineler default olarak bridge modda çalışacak.

lxc.network.link = br0

artık sanal makinemizi kurabiliriz, ubuntu içerisine bir oracle linux kuralım. Bu arada, sudo ile çalıştırarak “privileged” bir sanal işletim sistemi kuruyoruz.

koray@moria:~$ sudo lxc-create -t oracle -n oracledb

tabi oracle linux kurabilmek için rpm ve yum paketlerinin de kurulu olması gerekiyor.
-t parametresi kullanacağımız template’i belirtiyor, -n ile de sanal makinemize bir isim veriyoruz.
internet üzerinden yeni işletim sistemimiz indikten sonra, artık çalıştırmaya hazırız.

koray@moria:~$ sudo lxc-start -n oracledb -d

-d parametresi, işletim sistemimizi arka planda çalıştırıyor. Bir nedenden ötürü (yüksek ihtimal bir bug, sonraki versiyonlarda düzeltilmiş olabilir, hatta siz bu yazıyı okurken muhtemelen düzelmiştir) -d parametresi olmadan çalıştırırsak, sanal işletim sistemimizden çıkamıyoruz. (normalde, CTRL+A ve daha sonra q tuşu ile çıkabilmemiz gerekiyor)

bu sanal işletim sistemimize bağlanmak için ise,

koray@moria:~$ sudo lxc-console -n oracledb

komutunu kullanabiliriz.
default root şifresi yine root, kurulumun sonunda yazıyor zaten.
konsola bağlandıktan sonra bir kontrol edelim olmuş mu,


[root@oracledb ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.5 (Santiago)

ctrl+a ve q ile çıktıktan sonra, eğer bu sanal işletim sistemini silmek istersek, aşağıdaki komutu kullanabiliriz.

koray@moria:~$ sudo lxc-destroy -n oracledb

Gördüğünüz gibi, chroot’un bir adım ötesinde, hafif ve hızlı sanal işletim sistemimizi bu şekilde kurup kullanabiliyoruz.


koray@moria:~$ sudo lxc-info -n oracledb
Name: oracledb
State: RUNNING
PID: 20458
IP: 192.168.1.116
CPU use: 0.91 seconds
BlkIO use: 16.00 KiB
Memory use: 3.13 MiB
KMem use: 0 bytes
Link: vethI45J80
TX bytes: 1.52 KiB
RX bytes: 141.84 KiB
Total bytes: 143.36 KiB

Sistem çalışmaya başladığında sadece 3MB hafıza kullanıyor.