BELAJAR VIRTUALISASI OPEN SOURCE

Assalamualaikum wr wb.

Udah agak lumayan sering nulis di blog ni sekali-kali jualan boleh dong.hehe.. Alhamdulillah saya sudah menulis satu paket modul tentang virtualisasi, untuk modul ini isinya tentang virtualisasi open source menggunakan Proxmox VE (Virtual Environment) yang merupakan salah satu distribusi di Linux dikhususkan untuk teknologi virtualisasi. Buat temen-temen yang mau belajar silahkan bisa memesan paket modul tersebut. Isinya tentang kumpulan lab yang sudah saya lakukan untuk mengeksplor semua fitur-fitur yang ada di Proxmox. Selain itu juga udah saya terangkan gimana caranya membangun lab murah tanpa harus pake sekumpulan komputer buat belajar virtualisasi ini, yaitu menggunakan beberapa software simulasi GNS3 + VMware Workstation + Virtualbox. Dari ketiganya bisa kita kolaborasikan. Penasaran? monggoh di pesan.hehe…
Berikut ulasan materi yang ada di dalam modul (daftar isi) :

PROXMOX + DRBD (Distributed Replicated Block Devices)

DRBD (Distributed Replicated Block Device) adalah sistem penyimpanan didistribusikan untuk platform GNU/Linux. DRBD mengacu pada block device yang ditancang sebagai blok bangunan untuk membentuk High Availbility (HA).
 
Hal ini dilakukan dengan mirroring seluruh blok device melalui jaringan yang telah ditetapkan. Feature yang terkait dengan DRBD Proxmox adalah :
1. LVM storage pada DRBD (primary/primary)
2. Semua disk VM dapat direplikasi secara real time pada kedua node Proxmox melalui jaringan. Sebagai alternatifnya semua penyimpanan VM dapat direplikasi mendekati real time ke banyak server backup.
3. kemampuan untuk live migration berjalan di mesin tanpa downtime tanpa membutuhkan SAN (iSCSI, NFS, FC) karena data telah tersedia pada kedua node.

Untuk membuat DRBD minimal dibutuhkan 2 buah server yang identik dan dengan perangkat tambahan seperti berikut :
1. Network card tambahan yang menghubungkan secara langsung antara 2 buah server.
2. Volume RAID kedua komputer server.
Berikut beberapa langkah untuk membangun DRBD didalam virtualisasi Proxmox Virtual Environment.
untuk kedua server login terlebih dahulu pada Proxmox pertama menggunakan terminal.
 
Install paket DRBD dan lakukan update repository terlebih dahulu pada kedua server Proxmox
Proxmox 1
root@telkom:~#apt-get update
root@telkom:~#apt-get install drbd8-utils
 
Proxmox 2
root@telkom:~#apt-get update
root@telkom:~#apt-get install drbd8-utils
Buat partisi baru pada hardisk yang kedua (bukan hardisk sistem) di masing-masing server Proxmox.
Proxmox 1

root@telkom:~#fdisk /dev/sdb
Command (M for help): n
Partition type:
P
primary (0 primary, 0 extended, 3 free)
E
extended
Select (default p): p
Partition number (1-4): 1
First cylinder (1-19457, default 1):1
Last cylinder or +size or +sizeM or +sizeK (1-19457, default 19457): 194
75
Command (m for help): w
The partition table has ben altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Promox 2
root@telkom1:~#fdisk /dev/sdb
Command (M for help): n
Partition type:
P
primary (0 primary, 0 extended, 3 free)
E
extended
Select (default p): p
Partition number (1-4): 1
First cylinder (1-19457, default 1):1
Last cylinder or +size or +sizeM or +sizeK (1-19457, default 19457): 194
75
Command (m for help): w
The partition table has ben altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Edit file konfigurasi di /etc/drbd.d/global_common.conf dan tambahkan beberapa script berikut.
root@telkom:~#nano /etc/drbd.d/global_common.conf

global {
usage-count yes;
#minor-count dialog-refresh disable-ip-verification
}
common {
protocol C;
startup {
wfc-timeout 0;
degr-wfc-timeout 60;
become-primary-on both;
}
net {
cram-hmac-alg sha1;
shared-secret “password”;
allow-two-primaries;
after-sb-0pri discard-zero-changes;
after-sb-1pri discard-secondary;
after-sb-2pri disconnect;
}
syncer {
rate 20M;
verify-alg md5;
}
}

Buat file konfigurasi /etc/drbd.d/r0.res dan masukkan script seperti berikut.
root@telkom:~#nano /etc/drbd.d/r0.res

resource r0 {
on telkom {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.156.137:7788;
meta-disk internal;
}
on telkom1 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.156.138:7788;
meta-disk internal;
}
}

 
Kopikan 2 file konfigurasi tadi ke server Proxmox yang kedua.

root@telkom:~#scp /etc/drbd.d/* root@192.168.156.138:/etc/drbd.d/

Aktifkan DRBD pada kedua server dengan perintah berikut.
Proxmox 1
root@telkom:~#service drbd start
 
Proxmox 2
root@telkom1:~#service drbd start

Buat meta disk pada kedua server Proxmox.
Proxmox 1
root@telkom:~#drbdadm create-md r0
 
Proxmox 2
root@telkom:~#drbdadm create-md r0

Aktifkan meta disk pada kedua server Proxmox.
Proxmox 1
root@telkom:~#drbdadm up r0
 
Proxmox 2
root@telkom:~#drbdadm up r0
 
Lakukan sinkronisasi antar kedua server Proxmxo dengan perintah berikut. Sebagai catatan lakukan hanya pada server Proxmxo pertama saja.
root@telkom:~#drbdadm — –overwrite-data-of-peer primary r0
 
Lihat status sinkronisasi dengan perintah berikut.
root@telkom:~#watch cat /proc/drbd

Drbd driver loaded OK; device status:
Version: 8.3.13 (api:88/proto:86-96)
GIT-bash: 83ca11208600faacab2f157bc5a9324f7bd7f77 build by root@sighted, 2012-10-09
12:47:51
m:res cs ro ds
… Sync’ed: 0.2% (206680/20706)
0:r0 SyncSource Primary/Secondary
UpToDate/Inconsistent
p
C
 
Tunggu sampai 100 % kemudian restart service DRBD di kedua server Proxmox.

Proxmxo 1

root@telkom:~#service drbd restart
 
Proxmox 2

root@telkom1:~#service drbd restart
 
Lihat statusnya kembali.

root@telkom:~#service drbd status
Drbd driver loaded OK; device status:
Version: 8.3.13 (api:88/proto:86-96)
GIT-bash: 83ca11208600faacab2f157bc5a9324f7bd7f77 build by root@sighted, 2012-10-09
12:47:51
m:res cs
ro
0:r0 SyncSource Primary/Primary
ds p
UpToDate/UpToDate
mounted fstype
C

Buat physical volume untuk disk DRBD yaitu /dev/drbd0 pada salah satu server Proxmox saja melalui terminal dengan perintah.
root@telkom:~#pvcreate /dev/drbd0
 
Cek physical volume yang baru dibuat melalui terminal.
root@telkom:~#pvscan

PV /dev/sda3 VG pve lvm2 [49.50 GiB / 6.25 GiB free]
PV /dev/drbd0 lvm2
[20.00 GiB / 15.00 GiB free]
Total: 2 [69.49 GiB] / in use: 2 [69.49 GiB] in no VG:0 [0 ]

 
Selanjutnya buat sebuah volume group misalkan “myvg”.
root@telkom:~#vgcreate myvg /dev/drbd0
Volume group “myvg” successfully created

 
Cek volume group yang baru saja dibuat.
root@telkom:~#pvscan

PV /dev/sda3 VG pve
lvm2
PV /dev/drbd0 VG myvg lvm2
[49.50 GiB / 6.25 GiB free]
[20.00 GiB / 15.00 GiB free]
Total: 2 [69.49 GiB] / in use: 2 [69.49 GiB] in no VG:0 [0 ]

 
Lakukan edit script pada file konfigurasi LVM yaitu /etc/lvm/lvm.conf
root@telkom:~#nano /etc/lvm/lvm.conf

#By default we accept every block device :
filter = [ “r|/dev/sdb1|”, “r|/dev/disk/|”, “r|/dev/block/|”, “a/.*/” ]
 
Tambahkan storage baru melalui web Proxmox di menu Datacenter > storage > Add > LVM.
 
Isikan ID dan volume group sesuai yang sudah dibuat sebelumnya. Contoh ID “myvg” dan volume group “myvg”
Lihat hasil storage yang baru ditambahkan akan muncul di semua anggota cluster.

PROXMOX SNAPSHOT AND BACKUP

Proxmox VE adalah platform virtualisasi lengkap open source yang menggabungkan KVM virtualisasi penih dengan virtualisasi berbasis kontainer dari OpenVZ. Dengan snapshot salah satu ftur di Proxmox VE dapat digunakan menjaga mesin virtual dan me-rollback kapan saja. Snapshot meruapakan tools yang berfungsi sebagai check point atau seperti sistem Restore pada Windiws. Sehingga apaila dibuat sebuah titik check point kemudian dilakukan perubahan VM seperti install, update, upgrade aplikasi, dll. Kemudian misalkan terjadi error selama proses tersebut maka dengan keadaan tersebut dengan fungsi snapshot dapat dikembalikan suatu keadaan VM ke titik yang dibuat sebelumnya. Penjelasan tadi dapat diilustrasikan seperti gambar berikut.

Backup merupakan salah satu fitur penting di dunia virtualisasi, Proxmox VE menggunakan tools VZDump merupakan tool yang dapat digunakan untuk membuat snapshot dari VM (OpenVZ dan KVM) yang sedang berjalan. VZDump pada dasarnya membuat arsip tar dari folder provate di VM, yang tentunya termasuk file konfigurasi.
Ada beberapa cara untuk memperoleh backup :
Stop : Stop VM saat backup (downtime yang sangat lama).
Suspend : Menggunakan suspend/resume (minimal downtime dengan OpenVZ, downtime lama dengan KVM)
Snapshot : Menggunakan LVM2
VZDump menyimpan backup di disk dalam satu file. File ini yang selanjutnya masuk ke backup tape untuk diarsipkan.
Berikut adalah beberapa langkah untuk melakukan snapshot dan backup pada Proxmxo VE :
Login ke halaman web Proxmox melalui web Browser menggunakan username dan password yang sudah ditentukan
Lakukan snapshot pada salah satu VM di Proxmox sebagai contoh VM 102 ‘WindowsServer’.VM (‘WindowServer’) > Snapshot > Take Snapshot.
Sebagai contoh coba malakukan instalasi aplikasi di VM misalkan ‘OpenOfice’.
Lakukan kembali snapshot untuk keadaan VM pasca instalasi software OpenOffice.
Rollback kembali VM ke keadaan sebelum instalasi software ‘OpenOffice’. Datacenter > Snapshot > ‘preinstalloffice’ > Rollback.
Aktifkan content backup pada storage lokal agar dapat menampung file backup VM. Datacenter > Storage > local > Edit.
Backup salah satu VM yang ada di Proxmox sebagai contoh VM ‘SUSE’. VM (‘SUSE’) > Backup > Backup Now.
Selamat mencoba sob 🙂

PROXMOX CLONE AND CONVERT VM TO TEMPLATE

Ada banyak beberapa cara untuk membangun Virtual Machine Proxmox VE. Bisa dilakukan dengan membangun VM dengan install melalui DVD-ROM, ISO File, Deploy VM menggunakan template dan lain-lain. Clone merupakan salah satu teknik membangun sebuah VM. Pada prinsipnya teknik ini adalah mengkopi VM yang sudah ada kemudian menjadi sebuah VM yang baru. Salah satu alasan clone VM karena menginstall VM dari awal sangat memakan waktu dari proses instalasi sistem operasi VM. Maka dari itu untuk menghemat waktu dengan menggunakan clone kita bisa mengkopi VM dengan sistem operasi yang sudah ada.
VM yang dilakukan cloning dinamakan parent. Ada dua tipe clpne VM di Proxmox VE, yaitu full clone dan link clone. Full clone adalah VM yang beridiri sendiri setelah berhasil dalam proses cloning. Karena dengan teknik ini VM hasil clone tidak berbagi virtual disk dengan parent VM. Sedangkan linked clone adalah VM yang terbat dari proses snapshoot parent VM. Semua file yang tersedia pada parent VM pada saat melakukan snapshoot akan tersedia juga pada linked clone VM. Linked clone VM harus terhubung dengan parent VM tanpat itu linked clone tidak akan bisa diaktifkan.
Sedangkan convert to template adalah mengkonversikan bentuk KVM ke dalam bentuk template yaitu VM yang hanya difungsikan untuk mengkloning VM baru.
Berikut adalah beberapa langkah untuk melakukan clone VM dan convert to template :
Login ke halaman web Proxmox VE dengan menggunakan browser masukkan usernama dan password yang sudah ditentukan.

Lakukan clone pada salah satu VM, klik kanan > pilih “clone”.
Tentukan VM ID, nama, target storage, dan format disk dari VM.
Convert to template dari salah satu VM. Klik kanan, pilih “Convert to template”.
Buat sebuah linked clone dari template VM. klik kanan pada template VM, pilih clone.
Tentukan VM ID, dan name linked clone VM.

kemudian aktikan VM dari hasil linked clone
Selamat mencoba ya 🙂

PROXMOX HIGH AVAILABILITY (MANUAL)

HA (High Availability) adalah salah satu feature promox yang memungkinkan virtual machine atau container yang telah dikonfigurasi untuk berpindah saat node mati.
Sebelum konfigurasi HA terlebih dahulu setting cluster pada kedua node Proxmox dan juga share storage. Untuk bisa mengaktifkan feature HA hal-hal yang perlu dikonfigurasi antara lain.


Mengaktifkan fencing pada semua node
Fencing adalah sebuah metode yang digunakan untuk “memagari” sebuah node agar satu node hanya menjalankan satu VM yang tersimpan didalam share storage di waktu yang sama. Berikut cara mengaktifkan fencing :
#nano /etc/default/redhat-cluster-pve
Buang tanda pagar pada salah satu bagian baris script sehingga seperti berikut :
FENCE_JOIN=”yes”
Join fencing pada semua node yang akan dimasukkan ke dalam member dengan perintah berikut :
#fence_tool join
Untuk melihat status fencing contoh kali ini adalah pada dua node Proxmox gunakan  perintah berikut :

#fence_tool ls
Maka akan muncul status seperti berikut :
fence domain
member count    2
victim count    0
victim now      0
master nodeid   1
wait state      none
members         1 2
Edit Cluster
Edit cluster yang sudah diseting sebelumnya dan perhatikan pada config_version setiap melakukan perubahan jangan lupa untuk melakukan activate melalui Proxmox Web Admin pada menu Datacenter | HA. Untuk melakukan edit gunakan perintah berikut.
#cp /etc/pve/cluster.conf /etc/pve/cluster.conf.new
#nano /etc/pve/cluster.conf.new
Edit file tersebut sesuai dengan contoh kasus seperti dibawah ini.
<?xml version=”1.0”?>
<cluster config_version=”5” name=”coba”>

<cman expected_votes=”1” keyfile=”/var/lib/pvecluster/corosync.authkey” two_node=”1”/>
 

  <fencedevices>
    <fencedevice agent=”fence_manual” name=”human”/>
  </fencedevices>
 

  <clusternodes>
    <clusternode name=”akrom” nodeid=”1” votes=”1”>
      <fence>
        <method name=”single”>
          <device name=”human” nodename=”akrom”/>
        </method>
      </fence>
    </clusternode>


    <clusternode name=”arum” nodeid=”2” votes=”1”>
      <fence>
        <method name=”single”>
          <device name=”human” nodename=”arum”/>
        </method>
      </fence>
    </clusternode>
  </clusternodes>

</cluster>
Perhatikan beberapa hal berikut terkait dengan script diatas :
config_version=”5″ menunjukkan apabila dilakukan perubahan script, maka harus menaikkan nilai config_version misalkan dari 4 diubah menjadi 5.
coba adalah nama dari cluster yang telah dibuat.
akrom dan arum adalah nama hostname dari masing-masing node Proxmox.
Validasi script diatas agar dapat dibaca oleh node Proxmox dengan perintah berikut :
#ccs_config_validate -v -f /etc/pve/cluster.conf.new
Lakukan aktivasi dengan cara masuk Proxmox web admin Datacenter | HA | Activate.
Konfigurasi container/VM untuk HA
Setelah membuat container/VM sebelumnya kali ini aka dilakukan HA untuk container/VM tersebut. Dengan cara masuk Proxmox web admin klik Datacenter | HA | Add | Managed VM/CT. Pilih VM ID yang akan diaktifkan HA.

Lakukan aktivasi kembali Datacenter | HA | Activate. Setelah selesai perhatikan status HA pada container melalui menu summary.
Akan ada keterangan Managed by HA “Yes”. Untuk ujicoba HA bisa dilakukan dengan 2 cara, yaitu shutdown/restart secara normal node Proxmox yang sedang menjalankan Virtual Machine atau dimatikan secara tiba-tiba pada node Proxmox yang menjalankan Virtual Machine. Jika Proxmox tiba-tiba mati perlu dijalankan sebuah perintah untuk mengambil alih Virtual Machine yang sedang berjalan di Proxmox yang mati. Perintah yang dijalankan adalah sebagai berikut.

#fence_ack_manual (nama node proxmox yang mati mendadak)
Seperti contoh dibawah ini :
#fence_ack_manual akrom
Kemudian konfirmasi dengan mengetik “absolutely“. Lihat apa yang terjadi setelah mengetikkan perintah tersebut.

PROXMOX LIVE MIGRATION

Live Migration

Live Migration pada Proxmox mempunyai kemampuan memindahkan sebuah virtual machine dari node satu ke node lainnya. Hal ini dibutuhkan bila ada peristiwa perawatan mesin server (node) dan layanan yang ada dalam server dipaksa tidak boleh terganggu, maka dari itu kita dapat memindahkan virtual machine yang ada dalam node ke node lain. Untuk memigrasi satu mesin virtual ke node lainnya, kita minimal membutuhkan dua Proxmox VE Server dan terhubung melalui cluster Disarankan untuk live migration ini digunakan network card yang mendukung Gigabit Ethernet untuk memperkecil downtime.
Live Migration Container
Dengan menggunakan live migration dapat digunakan juga untuk migrasi mesin container. Yang perlu dilakukan pertama kali yaitu buat container dengan menggunakan NFS storage sebagai media penyimpanan, ini karena pada saat proses migrasi harus menggunakan storage yang terpusat. Kelemahan dari migrasi container ini masih terdapa adanya downtime yang masih cukup lama. Untuk melakukan migrasi pada container adalah sebagai berikut.
Masuk ke server Proxmox melalui halaman web, buat container dengan menggunakan media penyimpanan share storage (NFS Share) pada node Proxmox pertama seperti contoh dibawah ini.
Aktifkan container dengan klik start, lakukan live migration dengan cara klik kanan pada container yang aktif kemudian klik live migration pindahkan container tersebut ke target node Proxmox kedua.

Proses yang sedang berjalan pada saat migrasi dapat dilihat seperti gambar dibawah ini.

Untuk pengujian downtime dapat digunakan test ping ke VM yang sedang dilakukan live migration.

Pada gambar diatas dapat dilihat ada waktu down beberapa detik.