Wednesday, June 3, 2015

Mengenal Arsitektur, Istilah dan Terminologi Openstack

Openstack merupakan salah satu cloud software paling powerful di dunia, selain opensource fitur-fitur yang disediakan pun gak kalah powerful dengan platform lain seperti vmware, hyper-v, xen, dsb. Di beberapa negara openstack sangat booming dan cepat sekali perkembangannya, apabila berbicara cakupan asia tenggara singapura dan malaysia adalah salah satu contoh pesatnya perkembangan openstack di negara tsb. Saya pikir Indonesia dalam beberapa tahun kedepan akan mengikuti langkah yang sama.

Nah, setelah bicara sedikit tentang sejarah openstack sekarang kita overview sedikit arsitektur dari openstack. Dibawah ini kira-kira arsitektur openstack :


Kalo dari gambar diatas terlihat bahwa arsitektur openstack bisa dibilang rumit karna begitu banyak komponen dan service yang menopang openstack itu sendiri. Tapi kali ini saya akan coba bahas satu-persatu istilah dan terminologi openstack dari gambar yang ada pada arsitektur diatas.

OPENSTACK ARCHITECTURE
  1. Horizon (Dashboard) : Horizon adalah istilah developer openstack untuk web-based interfaces yang digunakan untuk manajemen service di dalam openstack. Meski di dunia real memanage dengan command line jauh lebih powerful, namun dengan adanya horizon maka memungkinkan kamu memanage openstack dengan "graphical user interfaces" dan membuat openstack jauh lebih bersahabat. Biasanya administrator menggunakan horizon untuk membuat instance(vm), manajemen network (nova/neutron), setting tenant(projects), access control, dsb.
  2. Keystone (Identity) : Keystone ini seperti kerberos kalo di LDAP, fungsinya adalah untuk centralized identity service dan Authorization Services. Keystone juga berfungsi untuk autentikasi username dan password credentials untuk user yang autentikasi ke cloud ato via horizon contohnya, keystone juga memberikan token atau istilahnya token-based systems untuk setiap user yang melakukan autentikasi. Singkatnya keystone itu bertindak sebagai SSO (Single-Sign On) authentication services untuk user dan komponen lainnya di openstack.
  3. Neutron (Networking) : Neutron adalah salah satu komponen penting dalam openstack, neutron berfungsi untuk menghubungkan Instances(vm) ke dunia real. Singkatnya neutron adalah services yang menghandel dan memanage virtual networking infrastructure di dalam platform openstack cloud. Apa saja elemen-elemen tersebut? Elemen tersebut yaitu networks, subnets, dan routers. Beberapa advanced fitur seperti firewall dan VPN juga menggunakan services neutron.
  4. Cinder (Block Storage) : Cinder adalah services yang memanage volume storage untuk virtual machine. Jadi apabila kita berbicara mengenai block storage di openstack maka hal itu erat kaitannya dengan cinder.
  5. Nova (Compute) : Nova dan neutron serupa tapi fungsinya berbeda, nova merupakan service yang memanage network virtual machine yang berjalan di compute nodes. Nova juga berfungsi sebagai distributed components yang berinteraksi dengan keystone untuk autentikasi, glances untuk menampung images, dan komunikasi dengan horizon web interfaces. Hal yang paling penting kita ketahui adalah services nova compute menggunakan libvirtd, qemu, dan kvm sebagai hypervisornya.
  6. Glance (Image) : Glance adalah sebuah services yang bertugas sebagai registry atau penampung virtual machines images. Dengan adanya glance maka memungkinkan user untuk mencopy images tersebut menjadi sebuah instances (virtual machine) dengan lebih cepat karna services glance menjadikan virtual machines images tersebut sebagai template yang disimpan di dalam storage.
  7. Swift (Object Storage) : Swift merupakan sebuah services yang memungkinkan sebuah block storage diubah menjadi object storage dan dengan adanya object storage maka user dapat melakukan store dan retrieve files dari object storage tsb. Swift merupakan salah satu fitur powerful menurut saya sebab arsitekturnya distributed, scaleable (mudah di expand) dan bisa dibuat redudancy,
  8. Ceilometer (Metering) : Ceilometer erat kaitannya dengan monitoring resources di openstack itu sendiri, ceilometer mencentralized sources untuk memonitor dan metering data. Dengan adanya ceilometer maka administrator dapat mengukur penggunaan user dan membuat bill untuk tiap2 openstack users.
  9. Heat (Orchestration) : Heat adalah sebuat services yang digunakan untuk menyusun/mengkolaborasi multiple composite aplikasi cloud menggunakan AWS menggunakan REST (Representational State Transfer) API dan CloudFormation-Compatible Query API. Software ini mengintegrasikan komponen lainnya dari openstack ke dalam sebuah one-file template. Dari template tersebut memungkinkan pembuatan hampir semua openstack resource type seperti : Instances, Floating, IPs, Volumes, Security Groups, Users, dan juga advanced fungsionality seperti High Availability, instance autoscaling, dan nested stacks.

OPENSTACK TERMINOLOGY
  1. Cloud Controller : Berfungsi untuk memanage seluruh compute node, oleh karna itu disebut dengan "Manager" dan biasanya kamu mengakses horizon via IP Address Cloud Controller ini. Semua machine/node dalam openstack cloud berkomunikasi dengan cloud controller menggunakan protocol AMQP (Advanced Message Queuing Protocol). Nah kalau di CentOS/Redhat/Fedora daemon yang menjalankan protocol AMQP adalah Apache Messaging Daemon (qpidd) atau RabbitMQ.
  2. Tenant : Tenant adalah istilah yang digunakan keystone dan equivalent dengan project dalam horizon (web-ui). Tenant atau project adalah group items yang terdiri dari users, images, instances, networks, volume, dsb.
  3. Compute Node : Compute node adalah Hypervisor, Compute node adalah machine/node yang menjalankan "Nova Compute Services".
  4. Volume (Block Storage) : Sebuah persistent disk yang dapat di attached/detached ke sebuah single instances (virtual machine). Service Cinder secara default menggunakan LVM. Logical volumes dibuat dari volume group ini. Snapshots volume dapat dibuat mirip dengan logical volume snapshot.
  5. Ephemeral Disk : Adalah sebuah temporary disk yang digunakan oleh instances (virtual machine). Ketika instances dibuat maka ephemeral disk akan dibuat sebagai QCOW2 image dalam /var/lib/nova/instances/instances-00000000x/disk.local dalam compute node. Dan ketika instances dihapus/terminated maka secara otomatis ephemeral disk juga akan diremove setelah dihapus dengan dd. Normalnya Ephemeral disk pertama akan muncul sebagai /dev/vdb di dalam instances yang kita buat.
  6. Server atau Instances : Instances adalah istilah di openstack yang menandakan sebuah Virtual Machines.
  7. Flavor : Adalah hardware yang diasosiasikan/diassign ke instances(virtual machine) yang akan dibuat. Hardware tersebut adalah RAM, CPUs, dan Disks.
Sekilas nampak ribet memang istilah dan terminologi dari openstack, namun kalo sudah terbiasa pasti lebih asik kok apalagi kalo sudah familiar.

Semoga bermanfaat yah.

Wednesday, April 22, 2015

Implementasi HTTP Kickstart CentOS/Rhel 6.X

Buat temen2 yang sering banged main di data center seringkali dihadapkan pada situasi harus melakukan installasi OS di puluhan server. Kalau satu2 ribet kan?
Sebenernya ada cara mudah untuk melakukan instalasi secara otomatis yaitu menggunakan kickstart.

Metode ini memang konvensional karna zaman sekarang cloud sudah lebih populer yang dilengkapi dengan fitur cloning. Tapi di beberapa kasus masih sangat berguna banged fitur ini.

Nah kickstart ini biasanya digunakan untuk instalasi OS Linux, kickstart bakal men-generate sebuah file yang bisa digunakan sebagai template installer sebuah OS.

Langsung aja dibawah ini contohnya.

Langkah 1 - Install Kickstart Generator

[root@ip-local-private ~]# yum install system-config-kickstart

Langkah 2 - Generate Kickstart File

[root@ip-local-private ~]# system-config-kickstart

Akan muncul kickstart configurator, nah silahkan generate template sesuai yang anda inginkan. Dibawah ini langkah-langkah untuk mengenerate kickstart file.

- Setting TimeZone dan Password root


- Setting Partisi Harddisk yang digunakan, kalo dilinux temen2 harus perhatikan mount point yang wajib kudu itu / dan /boot. 

Contoh dibawah partisi mount point / dengan file system ext4 berukuran 10GB



Lalu setting partisi /boot 100 MB dengan filesystem ext4.



- Jangan lupa linux juga harus ada swap, maka bikinlah partisi swap. Contoh dibawah ini swapnya 100MB.


- Save kickstart file dengan cara pilih tab file - save.


Kickstart file sudah selesai di generate.

Langkah 3 - Pindahkan kickstart file ke direktori root HTTP

Setelah di save pindahin ke direktori root HTTP anda agar bisa diakses oleh server lain. Sebenernya metode carriernya macem2 bisa HTTP, FTP, dsb. 
Pada contoh ini saya sudah save kickstart filenya di direktori /root dengan nama ks.cfg dan akan dipindahkan ke /var/www/html

[root@ip-local-private ~]# cp ks.cfg /var/www/html/

Lalu verivikasi service HTTP anda ON karna semua server nanti akan mengakses file kickstart ini melalui HTTP service.
[root@ip-local-private ~]# /etc/init.d/httpd status
httpd (pid  2591) is running...

Lalu testing menggunakan curl, sebagai notes IP Address server saya adalah 192.168.99.103/

[root@ip-local-private ~]# curl http://192.168.99.103/ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use CDROM installation media
cdrom
# Root password
rootpw --iscrypted $1$zrSCw4PY$M4XtjK3SS8OuQ0uxdAEkF/
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info

# System timezone
timezone --isUtc Asia/Jakarta
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
clearpart --all  
# Disk partitioning information
part swap --fstype="swap" --size=100
part / --fstype="ext4" --size=10000
part /boot --fstype="ext4" --size=100


Apabila output dari curl sudah seperti diatas artinya sudah OK. 
Output diatas itu merupakan hasil generate dari kickstart generator tadi.

Langkah 4 - Instalasi OS Centos

Sekarang anda dapat mencoba instalasi OS menggunakan kickstart ini. Caranya seperti dibawah ini.

- Ketika muncul gambar seperti dibawah tekan [tab] lalu tambahkan parameter kernel seperti dalam box merah pada gambar dibawah ini.


Kalau sudah kelar pencet [ENTER], maka proses instalasi akan berjalan secara otomatis.

Gampang kan?
Selamat mencoba guys.

Mengenal Apa Itu Systemd, Systemctl, dan Manajemen Services di CentOS 7

Dalam CentOS versi terbaru yaitu CentOS 7, system startup beserta proses server di manage oleh systemd dan service manager. Program ini memberikan sebuah metode untuk mengaktifkan system resources, daemons dan proses lainnya baik itu ketika booting maupun ketika system sedang berjalan.
Kita semua mengetahui bahwa selama bertahun-tahun sebelumnya process ID 1 dari Linux dan UNIX system adalah "init process" yang mana bertanggung jawab untuk mengaktifkan services lainnya dan mungkin inilah asal muasal istilah dari "init system".

Pada CentOS 7 prosess ID 1 adalah "systemd" yang merupakan init system baru, apa yang membuat systemd berbeda dengan initd?
  • Systemd merupakan enhancement dari initd yang memiliki kapabilitas paralel yang dapat meningkatkan proses boot speed dari OS meningkat lebih baik ketimbang sebelumnya.
  • On-demand start daemons tanpa membutuhkan service yang dipisahkan.
  • Automatic service dependency management yang bisa mencegah timeout panjang seperti menstart service network ketika network sedang tidak available.
  • Metode tracking process dengan menggunakan linux control groups.

Nah di CentOS 7 command yang digunakan untuk memanage tipe dari object systemd adalah "systemctl" dan dapat disebut dengan "units".
Berikut dibawah ini listing unit files systemctl yang bisa digunakan untuk memanage services di CentOS 7.

  • Services State/Status Services
    Format : systemctl status name.type
    Contoh : systemctl status httpd.service
    Status Output :
    loaded                = Configuration unit telah di proses.
    active (running) = Running dengan satu proses atau lebih.
    active (exited)    = Status aktif dan sukses (one-time configuration).
    active (waiting)  = Status running namun menunggu sebuah event.
    inactive              = Tidak aktif
    enabled              = Akan di start ketika boot (persistent).
    disabled             = Tidak akan di start ketika boot (tidak persistent).
  •  Listing Files Unit Menggunakan Systemctl

    Query state semua unit untuk memverifikasi sebuah startup system
    # systemctl

    Query state hanya dari unit service
    # systemctl --type=service

    Listing status sebuah services
    # systemctl status httpd.service -l
  • Manajemen Services Start, Stop, Persistent, dsb.

    Start/Jalankan Service
    # systemctl start httpd.service

    Verifikasi apakah sistem active
    # systemctl is-active httpd

    Restart Services
    # systemctl restart httpd.service

    Stop Services
    # systemctl stop httpd.service

    Reload Services
    # systemctl reload httpd.service

    Enable service ketika di booting (Persistent)
    # systemctl enable httpd.service

    Disabled Service ketika booting (Non-Persistent)
    # systemctl disable httpd.service

    Verifikasi apakah service di start ketika booting
    # systemctl is-enabled httpd

Semoga bermanfaat yah terutama buat yang ingin mencoba CentOS 7 ataupun RHEL 7.

Sunday, April 19, 2015

Command Konfigurasi Network CentOS 7

Ada banyak pembaharuan di CentOS 7 bukan hanya dari consolidate files yang membuat performance OS ini menjadi lebih baik namun juga beberapa command pun ada yang berubah terutama di bagian network dan services.

Kali ini saya mau coba share beberapa command yang sangat berguna untuk konfigurasi network di CentOS 7.

Display Status Network Menggunakan nmcli dan Beberapa Command Lainnya

- Display current IP Address dan Netmask di semua interfaces
# ip addr

- Display statistik untuk interface eth0
# ip -s link show eth0

- Display Informasi Routing
# ip route

- Traceroute command 
# tracepath google.com

- Display seluruh list connection
# nmcli con show

- Display connection yang active saja
# nmcli con show --active

- Display connection detail dari sebuah interface
# nmcli con show eth0

- Display device status connection dari semua device
# nmcli dev status

- Display device status connection dari interface yg spesifik
# nmcli dev show eth0


Membuat Network Connection Dengan nmcli

- Membuat koneksi default DHCP bedasarkan ethernet yang digunakan
# ip addr show (liat dulu ada interface apa yang digunakan)
# nmcli con add con-name "default" type ethernet ifname eth0

- Membuat koneksi bernama statik, medefine IP address & gateway, no persistent (autoconnect no)
# nmcli con add con-name "statik" ifname eth0 autoconnect no type ethernet ip4 192.168.99.19/24 gw4 192.168.99.5

- Membuat koneksi yang sama seperti diatas namun persistent (autoconnect automatically yes)
# nmcli con add con-name "statik" ifname eth0 type ethernet ip4 192.168.99.19/24 gw4 192.168.99.5

Notes :
Kalo autoconnect diganti menjadi yes atau gak dipake, maka ketika di reboot koneksi menjadi persistent.

-  Ubah jadi koneksi network menggunakan koneksi yang telah dibuat yaitu koneksi "statik".
# nmcli con up "static"

- Ubah lagi ke koneksi default "DHCP"
# nmcli con up "default"


Modifikasi Network Interfaces Dengan nmcli

- Turn off autoconnect
# nmcli con mod "statik" connection.autoconnect no

- Mendefine DNS Server
# nmcli con mod "statik" ipv4.dns 8.8.8.8

- Nambahin value dari DNS atau istilah menjadi DNS2
# nmcli con mod "statik" +ipv4.dns 8.8.4.4

- Replace statik IP address and gateway
# nmcli con mod "statik" ipv4.address "192.168.227.10/24 192.168.227.2"

- Nambahin secondary IP Address tanpa gateway
# nmcli con mod "statik" +ipv4.address 10.10.10.19/24

- Jangan lupa, "nmcli con mod" akan menyimpan setting ke file configuration namun belum aktif, untuk mengaktifkan perubahan maka koneksi butuh diaktifkan ulang.
# nmcli con up "statik"

- Reload Network Manager
# nmcli con reload

Konfigurasi Hostname

- Cek hostname yang digunakan
# hostname

- konfigurasi hostname 
# hostnamectl set-hostname arifzulfikar.com

- Cek status hostname
# hostnamectl status

Notes :
Apabila ingin mengignore auto dns atau peerdns dengan nmcli bisa gunakan command dibawah ini.
# nmcli con mod "statik" ipv4.ignore-auto-dns yes

Wednesday, April 15, 2015

7 Hal Penting di Operating System Berbasis Linux

Kalo buat temen-temen yang seneng bermain sama linux pasti tau hal-hal yang bakal saya sebut dibawah ini. Berikut dibawah ini 7 hal yang penting di OS Linux beserta penjelesan singkat dan fungsinya sebagai apa.
  1. Bootloader
    Bootloader adalah program pertama ketika OS linux dijalankan dan secara gak langsung bootloader merupakan elemen penting dari linux, itulah sebabnya kenapa saya ketika mengintall OS linux selalu memberikan partisi khusus untuk folder /boot sebab kalo sudah corrupt pusing troubleshootnya. Fungsi bootloader adalah meload dan memuat operating system ketika pertama kali di start, di linux mungkin kamu familiar kan dengan yang namanya grub loader? Grub loader lah yang menangani metode loader OS linux kamu.

  2. Kernel
    Saya pernah baca di sebuah forum bahwa ada yang bilang bahwa "Linux is not an Operating System, it's a kernel".  Statement itu memang bener bahwa linux itu adalah kernel, di dunia ini yang saya tau ada 3 kernel yang terkenal sebagai platform OS yaitu kernel windows, unix, dan linux yang merupakan turunan unix. Agar gak salah paham coba mindsetnya diubah menjadi seperti ini, linux itu adalah kernel yang merupakan Operating System itu adalah redhat, centos, ubuntu, fedora, dsb. Pertanyaan selanjutnya apa sih fungsi kernel? Kernel adalah program yang dibuat yang berfungsi sebagai bridge antara program dan mesin komputer, fungsinya itu agar intruksi-intruksi program dapat dieksekusi oleh hardware secara aman. Maka sebenernya sebelum program kamu di eksekusi oleh CPU atau masuk ke RAM sebenernya intruksi-intruksi tersebut melewati kernel terlebih dahulu sebelum di esksekusi oleh mesin komputer.

  3. Daemons
    Kalo bahasa indonesianya itu hantu ato dedemit hahahaha. Namun kalo di operating system daemons adalah sebuah program yang berjalan di background, mungkin karna itu disebut "Daemons". Kalo di linux hampir semua service dijalankan oleh daemon contohnya httpd, slapd, vsftpd, syslogd, dsb. Hampir semuanya berakhiran "D" yah haha, tapi yang umum itu adalah hampir di semua operating system yang servicenya dijalankan oleh daemon biasanya berjalan dalam waktu yang sangat lama bahkan harus terus-terusan berjalan.

  4. Shell
    Kalo sering bermain linux pasti tau apa itu shell, shell merupakan salah satu jenis program asli bawaan linux yang apabila digunakan menyediakan komunikasi langsung antara user dan kernel. Hampir semua distro linux saat ini default environment shellnya adalah bash yang merupakan improvement dari unix shell, tanpa adanya bash maka kamu gak akan pernah mengeksekusi perintah di command prompt. Kalo kamu gak percaya coba aja hapus file /bin/bash di OS linux kamu dan liat hasilnya apaan, inget buat uji coba di komputer sendiri yah jangan di komputer production hehehe....

  5. Shell Utilities
    Shell utilities adalah perintah built in yang merupakan bagian atau bawaan dari shell, maka kalo sudah ada shell/bash berarti sudah pasti ada sekumpulan perintah/command bawaan yang bisa digunakan dan command ini biasanya fungsinya penting banged contohnya cp, ls, mv, dsb. Command yang menjadi bagian dari shell utilities ini biasanya ada di folder /bin coba cek aja kalo gak percaya binary file seperti cp, gunzip, mv, mount, dsb biasanya ada di folder tsb. Hati2 yah jangan sampe kedelete.. ^,^

  6. X.org
    X.org adalah package graphical desktop yang biasanya terdapat di distro linux sehingga X.org ini bukan merupakan bagian dari kernel. X.org adalah package terpisah dan oleh sebab itu ketika kita install linux kita bisa pilih juga mau diinstall paket GUI-nya atau tidak, dan X.org ini sudah ada dari taun 1984 dari jaman jadul yang memang khusus dikembangkan OS berbasis UNIX memiliki kemampuan untuk di akses dan dimanage oleh GUI. Ada beberapa package yang terkenal untuk saat ini yaitu KDE, GNOME, XFCE, LXDE, dsb.

  7. Desktop Environment
    Kalo ngomongin linux desktop otomatis kita juga akan berbicara tentang desktop environment. Desktop environment terdiri dari icons, windows, toolbar, folders, dan lain sebagainya. Ada banyak desktop environment yang beredar saat ini. Ubuntu menggunakan Unity, Fedora menggunakan GNOME dan Mint menggunakan Cinnamon/Mate.

Nah semoga ada pencerahan yah hehehe..

Mengenal Apa Itu Fault Tolerance Di VMWare vSphere

Sebelumnya saya pernah menshare tentang apa itu High Availability atau yang di dunia persilatan lebih dikenal dengan HA, apabila temen-temen belum membaca bisa baca apa itu HA disini. Pada tulisan saya kali ini saya mau sedikit share tentang FT atau Fault Tolorance di VMware vSphere.
Apa sih Fault Tolerance? Kenapa sebutannya kaya gitu yah? Saya juga gak tau hahaha. Namun yang jelas menurut saya teknologi FT lebih canggih daripada HA, sebelum saya cerita panjang lebar mungkin saya coba jabarkan dulu yah apa itu FT.

Fault Tolerance adalah teknologi yang didesain sedemikian rupa untuk sebuah virtual machine yang memungkinkan terjadinya proses take over task tanpa adanya sebuah downtime dari service yang sedang berjalan, inilah kenapa saya sebut FT lebih canggih ketimbang HA karna dalam implementasinya dilapanga FT tidak ada downtime sedangkan HA ada downtime untuk proses restartnya ketika fail over terjadi.

Ada sebuah catatan kecil apabila temen-temen mau melakukan implementasi FT jangan semua virtual machine dalam host diimplemen FT. Karna teknologi ini memakan resource yang tinggi dari si hostnya, tipsnya adalah pilih VM yang paling critical semisalnya DB.


Nah gimana sih cara kerja FT sehingga memungkinkan tidak ada downtime? Sebelum saya jelaskan cara kerjanya coba temen-temen liat gambar dibawah ini.


Nah dari gambar diatas bisa terlihat yah, intinya adalah apabila kita ingin melakukan implementasi FT maka 3 host diatas harus dijadikan cluster HA terlebih dahulu. 
Cara kerjanya ialah FT akan membuat copy atau menduplikasi virtual machine di host yang berbeda dengan teknologi yang bernama vLockstep.

VMware vLockstep technology memastikan VM yang telah diduplikasi di host lain tetap bisa saling sinkronisasi dan memungkinkan beban kerja/workload dari kedua VM tersebut berjalan secara simultan di host yang berbeda, kalo saya sih lebih seneng nyebutnya Mirroring virtual machine. Konsepnya itu satu copy dari virtual machine tersebut bisa kamu sebut sebagai primary virtual machine, VM ini menjalakan informasi, melayani service dan aplikasi seperti biasanya. Salinan copy yang lainnya disebut secondary virtual machine, secondary VM ini juga menerima input yang sama percis yang diterima oleh si primary VM dan oleh sebab itulah kenapa saya sebut mirroring vm hehe. 

Pertanyaan selanjutnya, gimana mereka berkomunikasi dengan dunia luar? Menarik nih, external world itu hanya akan mengenal satu virtual machine saja which is artinya external world hanya mengenal satu buah IP Address dan satu buah MAC Address dan kita pun hanya perlu memanage satu virtual machine saja yaitu virtual machine primary.
Jika primary VM fail/down maka FT akan sesegera mungkin dalam sepersekian detik membuat copy dari VM yang fail tsb ke host lain dan mengassign VM tsb untuk menghandel task dari VM yang fail tsb, tentu saja VM di copy ke host yang ada dalam satu cluster.

Secara teknis sebelum kita implementasi FT ada beberapa hal yang kudu diperhatikan nih, antara lain adalah sebagai berikut ini.
  • Di dalam vSphere maksimal VM yang dapat menjalankan FT hanya 4 di setiap hostnya.
  • Pastikan juga Virtual Machine di create di shared storage.
  • Turn-off BIOS power management, hal ini dilakukan agar secondary VM mendapatkan resource CPU yang cukup ketika proses fail over terjadi. 

Nah demikian lah kira-kira konsep dan cara kerja fault tolerance di vSphere, semoga berguna yah buat temen-temen sekalian hehehe....

Monday, April 13, 2015

15 Command Linux Untuk System Information Overview

Banyak yang mengabaikan command sederhana dibawah ini padahal kadang di satu waktu fungsinya sangat dibutuhkan, karna pada saat itulah kita membutuhkan informasi yang bisa diberikan oleh command-command yang akan saya sebutkan ini.

Langsung aja yah, dibawah ini command yang mungkin sangat berguna untuk agan ketika menggunakan linux.
  1. arch
    Command diatas akan memberikan agan informasi mengenai arsitektur system yang sedang digunakan di operating system linux agan.
    Contoh
    [root@webmail ~]# arch
    x86_64

  2. uname -a
    Command ini akan memberitahu agan semua ringkasan informasi yang berkaitan dengan OS yang sedang agan gunakan. Informasi yang bisa agan dapatkan antara lain adalah kernel-name, nodename, kernel release, kernel version, hardware name, processor type, hardware platform, operating system.
    Contoh
    [root@webmail ~]# uname -a
    Linux webmail.uid.ac.id 2.6.32-504.8.1.el6.x86_64 #1 SMP Wed Jan 28 21:11:36 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

  3. dmidecode -q
    Memberikan agan informasi mengenai komponen hardware yang digunakan di Server/PC agan dalam human-readable format. Sangat berguna apabila agan ingin mengetahui informasi seperti Manufaktur Motherboard, ROM size, Bios Version, Memory Device Information, Processor Information, Cooling Device, Temperature probe, Management Device Component, dan lain sebagainya.
    Contoh
    [root@webmail ~]# dmidecode -q

    ........................................
    ........................................
    ........................................
    64-bit Memory Error Information
    Type: OK
    Granularity: Unknown
    Operation: Unknown
    Vendor Syndrome: Unknown
    Memory Array Address: Unknown
    Device Address: Unknown
    Resolution: Unknown

  4. hdparm -i /dev/hda
    Command ini dapat membantu kita dalam mencari tahu model beserta karakteristik hardisk yang sedang kita gunakan.
    Contoh
    [root@webmail ~]# hdparm -i /dev/sda
    /dev/sda:
     Model=Hitachi HDS721050CLA660, FwRev=JP2OA50E, SerialNo=JP1522FP2A4K8B
     Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
     RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=56
     BuffType=DualPortCache, BuffSize=14111kB, MaxMultSect=16, MultSect=16
     CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=976773168
     IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
     PIO modes:  pio0 pio1 pio2 pio3 pio4 
     DMA modes:  mdma0 mdma1 mdma2 
     UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
     AdvancedPM=yes: disabled (255) WriteCache=enabled
     Drive conforms to: unknown:  ATA/ATAPI-2,3,4,5,6,7

     * signifies the current active mode

  5. hdparm -tT /dev/sda
    Command ini sangat berguna ketika agan mau menjalankan testing cache reads & buffering disk read pada hardisk yang ada di Server/PC agan. Saya pribadi sering menggunakan command ini apabila server yang hendak saya gunakan akan difungsikan sebagai database yang memerlukan resource input-output yang harus benar-benar diperhitungkan.
    Contoh
    [root@web1 ~]# hdparm -tT /dev/sda
    /dev/sda:
     Timing cached reads:   10764 MB in  2.00 seconds = 5386.79 MB/sec
     Timing buffered disk reads: 444 MB in  3.01 seconds = 147.51 MB/sec

  6. cat /proc/cpuinfo
    Command yang sangat berguna untuk mencari tahu informasi lebih dalam tentang CPU yang sedang agan gunakan di Server/PC
    Contoh
    [root@web1 ~]# cat /proc/cpuinfo
    processor : 0
    vendor_id : GenuineIntel
    cpu family : 6
    model : 69
    model name : Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz
    stepping : 1
    cpu MHz : 2294.719
    cache size : 3072 KB
    fdiv_bug : no
    hlt_bug : no
    f00f_bug : no
    coma_bug : no
    fpu : yes
    fpu_exception : yes
    cpuid level : 13
    wp : yes
    flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss nx pdpe1gb rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb xsaveopt pln pts dts fsgsbase smep
    bogomips : 4589.43
    clflush size : 64
    cache_alignment : 64
    address sizes : 40 bits physical, 48 bits virtual

  7. cat /proc/vmstat
    Command ini berfungsi untuk memberi agan report mengenai penggunaan statistik dari virtual memory yang sedang digunakan. Informasi penting lainnya yang bisa agan dapatkan dengan command ini antara lain processes, memory, paging, block IO, traps, and cpu activity.
    Contoh
    [root@web1 ~]# cat /proc/vmstat 
    nr_free_pages 24073
    nr_inactive_anon 12334
    nr_active_anon 35183
    nr_inactive_file 14300
    nr_active_file 30294
    nr_unevictable 2599
    nr_mlock 2599
    nr_anon_pages 48048
    nr_mapped 16827
    nr_file_pages 46667
    nr_dirty 125
    nr_writeback 0
    nr_slab_reclaimable 2318
    nr_slab_unreclaimable 2426
    nr_page_table_pages 1823
    nr_kernel_stack 234
    nr_unstable 0
    nr_bounce 0
    nr_vmscan_write 0
    nr_writeback_temp 0
    nr_isolated_anon 0
    nr_isolated_file 0
    nr_shmem 791
    nr_anon_transparent_hugepages 0
    pgpgin 716739
    pgpgout 84109
    pswpin 0
    pswpout 0
    pgalloc_dma 1454
    pgalloc_normal 631055
    pgalloc_high 0
    pgalloc_movable 0
    pgfree 656679
    pgactivate 38944
    pgdeactivate 11616
    pgfault 1108815
    pgmajfault 1655
    pgrefill_dma 0
    pgrefill_normal 11616
    pgrefill_high 0
    pgrefill_movable 0
    pgsteal_dma 64
    pgsteal_normal 64768
    pgsteal_high 0
    pgsteal_movable 0
    pgscan_kswapd_dma 32
    pgscan_kswapd_normal 53280
    pgscan_kswapd_high 0
    pgscan_kswapd_movable 0
    pgscan_direct_dma 32
    pgscan_direct_normal 21312
    pgscan_direct_high 0
    pgscan_direct_movable 0
    pginodesteal 565
    slabs_scanned 10624
    kswapd_steal 48597
    kswapd_inodesteal 1400
    kswapd_low_wmark_hit_quickly 174
    kswapd_high_wmark_hit_quickly 1
    kswapd_skip_congestion_wait 1
    pageoutrun 951
    allocstall 410
    pgrotated 0
    compact_blocks_moved 0
    compact_pages_moved 0
    compact_pagemigrate_failed 0
    compact_stall 0
    compact_fail 0
    compact_success 0
    htlb_buddy_alloc_success 0
    htlb_buddy_alloc_fail 0
    unevictable_pgs_culled 4756
    unevictable_pgs_scanned 0
    unevictable_pgs_rescued 2690
    unevictable_pgs_mlocked 8553
    unevictable_pgs_munlocked 4146
    unevictable_pgs_cleared 84
    unevictable_pgs_stranded 0
    unevictable_pgs_mlockfreed 0

  8. cat /proc/meminfo
    Command ini mampu memberikan informasi mendetail dan juga verifikasi terhadap memory yang sedang anda gunakan di Server/PC agan. Informasi penting yang dapat agan peroleh antara lain total memory, total free memory, total buffer, total cache, total swap cached, total swap, dan lain sebagainya.
    Contoh
    [root@web1 ~]# cat /proc/meminfo 
    MemTotal:         510780 kB
    MemFree:           86008 kB
    Buffers:           11208 kB
    Cached:           189308 kB
    SwapCached:            0 kB
    Active:           271868 kB
    Inactive:         106624 kB
    Active(anon):     136960 kB
    Inactive(anon):    49336 kB
    Active(file):     134908 kB
    Inactive(file):    57288 kB
    Unevictable:       10396 kB
    Mlocked:           10396 kB
    HighTotal:             0 kB
    HighFree:              0 kB
    LowTotal:         510780 kB
    LowFree:           86008 kB
    SwapTotal:       1048568 kB
    SwapFree:        1048568 kB
    Dirty:               628 kB
    Writeback:             0 kB
    AnonPages:        188420 kB
    Mapped:            66656 kB
    Shmem:              3164 kB
    Slab:              19324 kB
    SReclaimable:       9576 kB
    SUnreclaim:         9748 kB
    KernelStack:        1872 kB
    PageTables:         7264 kB
    NFS_Unstable:          0 kB
    Bounce:                0 kB
    WritebackTmp:          0 kB
    CommitLimit:     1303956 kB
    Committed_AS:     613540 kB
    VmallocTotal:     505848 kB
    VmallocUsed:        5184 kB
    VmallocChunk:     493712 kB
    HugePages_Total:       0
    HugePages_Free:        0
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB
    DirectMap4k:        8192 kB
    DirectMap2M:      516096 kB

  9. cat /proc/swaps
    Command ini memberikan informasi untuk agan mengenai swap devices files yang agan gunakan.

    Contoh

    root@web1 ~]# cat /proc/swaps
    Filename Type Size Used Priority
    /dev/sda3                               partition 1048568 8 -1

  10. cat /proc/version
    Command ini mampu memberikan agan informasi mengenai summary info dan kernel version yang digunakan oleh operating system linux di Server/PC agan.
    Contoh
    [root@web1 ~]# cat /proc/version
    Linux version 2.6.32-431.el6.i686 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 00:26:36 UTC 2013


  11. cat /proc/net/dev
    Agan bisa menggunakan command ini untuk mencari tau informasi mengenai network adapters yang digunakan di Server/PC agan, selain itu command ini juga mampu menampilkan statistik dari network adapters yang sedang agan gunakan loh.
    Contoh


  12. cat /proc/partitions
    Mau tau ada berapa partisi yang digunakan di Server/PC linux yang agan gunakan? Gunakan command diatas.
    Contoh
    [root@web1 ~]# cat /proc/partitions
  13. major minor  #blocks        name
  14.    8        0       20971520     sda
  15.    8        1       307200         sda1
  16.    8        2       19614720     sda2
  17.    8        3       1048576       sda3


  18. cat /proc/mounts
    Command ini jarang digunakan tapi kadang kepake kalo mau troubleshoot file system yang misalnya corrupt atau kasus unik lainnya. Command diatas nunjukin file system yang telah termounting (by system) di Server/PC linux agan.
    Contoh
    [root@web1 ~]# cat /proc/mounts
    rootfs / rootfs rw 0 0proc /proc proc rw,relatime 0 0sysfs /sys sysfs rw,relatime 0 0devtmpfs /dev devtmpfs rw,relatime,size=247196k,nr_inodes=61799,mode=755 0 0devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=000 0 0tmpfs /dev/shm tmpfs rw,relatime 0 0/dev/sda2 / ext4 rw,relatime,barrier=1,data=ordered 0 0/proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0/dev/sda1 /boot ext4 rw,relatime,barrier=1,data=ordered 0 0none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0vmware-vmblock /var/run/vmblock-fuse fuse.vmware-vmblock rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other 0 0

  19. lspci -tv
    Mau tau informasi mengenai PCI display dari device yang sedang agan gunakan? Gunakan command ini. 

    Contoh

    [root@web1 ~]# lspci -tv
    -[0000:00]-+-00.0  Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge           +-01.0-[01]--
    +-07.0  Intel Corporation 82371AB/EB/MB PIIX4 ISA
    +-07.1  Intel Corporation 82371AB/EB/MB PIIX4 IDE
    +-07.3  Intel Corporation 82371AB/EB/MB PIIX4 ACPI
    +-07.7  VMware Virtual Machine Communication Interface
    +-0f.0  VMware SVGA II Adapter
    +-10.0  LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI
    +-11.0-[02]--+-00.0  VMware USB1.1 UHCI Controller
    |            +-01.0  Advanced Micro Devices, Inc. [AMD] 79c970 [PCnet32 LANCE]
    |            +-02.0  Ensoniq ES1371 [AudioPCI-97]
    |            \-03.0  VMware USB2 EHCI Controller
    +-15.0-[03]--
    +-15.1-[04]--
    +-15.2-[05]--
           +-15.3-[06]--
           +-15.4-[07]--
           +-15.5-[08]--
           +-15.6-[09]--
           +-15.7-[0a]--
           +-16.0-[0b]--
           +-16.1-[0c]--
           +-16.2-[0d]--
           +-16.3-[0e]--
           +-16.4-[0f]--
           +-16.5-[10]--
           +-16.6-[11]--
           +-16.7-[12]--
           +-17.0-[13]--
           +-17.1-[14]--
           +-17.2-[15]--
           +-17.3-[16]--
           +-17.4-[17]--
           +-17.5-[18]--
           +-17.6-[19]--
           +-17.7-[1a]--
           +-18.0-[1b]--
           +-18.1-[1c]--
           +-18.2-[1d]--
           +-18.3-[1e]--
           +-18.4-[1f]--
           +-18.5-[20]--
           +-18.6-[21]--
           \-18.7-[22]--


  15. lsusb -tv
        Digunakan apabila agan mau tau informasi mengenai USB devices.
        Contoh
        [root@web1 ~]# lsusb -tv
            Bus#  2
            `-Dev#   1 Vendor 0x1d6b Product 0x0001
             |-Dev#   2 Vendor 0x0e0f Product 0x0003
             `-Dev#   3 Vendor 0x0e0f Product 0x0002
             `-Dev#   4 Vendor 0x0e0f Product 0x0008
               Bus#  1
              `-Dev#   1 Vendor 0x1d6b Product 0x0002