<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>cruel world &#187; tutorial</title>
	<atom:link href="http://hansen.alfansa.org/tag/tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>http://hansen.alfansa.org</link>
	<description></description>
	<lastBuildDate>Fri, 15 Apr 2011 11:12:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Mesin virtual untuk duplikasi sistem operasi</title>
		<link>http://hansen.alfansa.org/2011/04/mesin-virtual-untuk-duplikasi/</link>
		<comments>http://hansen.alfansa.org/2011/04/mesin-virtual-untuk-duplikasi/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 11:12:29 +0000</pubDate>
		<dc:creator>hansen</dc:creator>
				<category><![CDATA[free software world]]></category>
		<category><![CDATA[IT world]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[virtual machine]]></category>

		<guid isPermaLink="false">http://hansen.alfansa.org/?p=99</guid>
		<description><![CDATA[Ingin menginstall sistem operasi (SO) GNU/Linux di banyak komputer sekaligus? Malas install satu persatu? Mesin virtual bisa diminta bantuannya! SO GNU/Linux dua-satu tahun terakhir ini lebih mudah dipindah-tempatkan. Install di satu komputer dan akan jalan juga bila dipindah ke komputer lain. Ini memudahkan kita bila ingin menginstal banyak SO sekaligus. Install di satu tempat, baru [...]]]></description>
			<content:encoded><![CDATA[<p>Ingin menginstall sistem operasi (SO) GNU/Linux di banyak komputer sekaligus? Malas install satu persatu? Mesin virtual bisa diminta bantuannya!</p>
<p>SO GNU/Linux dua-satu tahun terakhir ini lebih mudah dipindah-tempatkan. Install di satu komputer dan akan jalan juga bila dipindah ke komputer lain. Ini memudahkan kita bila ingin menginstal banyak SO sekaligus. Install di satu tempat, baru nanti kita distribusikan ke komputer lain. Menginstall satu-satu? Tidak perlu, kita install di satu hard disk dan kita bisa duplikasi. Cara duplikasinya macam-macam, bisa memakai <a title="Partimage" href="http://www.partimage.org/Main_Page" target="_blank">partimage</a>, <a title="GNU Coreutils" href="http://www.gnu.org/software/coreutils/" target="_blank">dd</a>, <a title="ddrescue" href="http://www.gnu.org/software/ddrescue/ddrescue.html" target="_blank">ddrescue</a> dan aplikasi lain yang pada dasarnya menduplikasi (partisi) hard disk. Partimage menduplikasi partisi, sedang dd dan ddrescue menduplikasi hard disk.</p>
<p>Lalu apa kaitannya dengan mesin virtual? Kita bisa install SO baru di mesin virtual dan hard disk virtual-nya bisa duplikasi ke hard disk beneran! dd dan ddrescue akan meng-copy data pada level blok. Bila kita punya hard disk 80GB ingin diduplikasi dengan dd/ddrescue maka 80GB itu yg di-copy, bukan data yang ada di hard disk (yg pasti lebih kecil dari kapasitas hard disk). Jadi kebayang berapa lama waktu dibutuhkan untuk duplikasinya, dan hard disk 80GB juga sudah mulai susah dicari <img src='http://hansen.alfansa.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Partimage bisa meng-copy datanya saja, tapi tidak kita bahas disini. Nah, kalau pakai mesin virtual kita bisa tentukan sekecil mungkin hard disk virtualnya dan nantinya kita duplikasi ke hard disk yang lebih besar, tinggal kita resize saja partisi hasil duplikasinya. <span id="more-99"></span></p>
<p>Nah, berikut ini adalah prosesnya:</p>
<ul>
<li>Bikin mesin virtual baru, saya memakai qemu untuk hal ini. Jangan lupa tipe hard disk virtualnya adalah raw, besarnya saya buat 10GB saja, segini sudah cukup untuk SO beserta aplikasi-aplikasinya. Ini penting, karena tipe raw ini yang bisa diduplikasi langsung dengan dd dan ddrescue</li>
<li>Install SO GNU/Linux-nya, saya memakai Fedora 14, untuk distro lain mungkin perlu ada penyesuaian pada perintah-perintah selanjutnya. Untuk susunan partisi saya buat dua partisi, satu partisi ext4 400MB untuk /boot dan sisanya LVM yang berisi ext4 8GB untuk / (root), satu partisi swap sebesar 1GB dan ext4 sisanya untuk /home. Nanti setelah diduplikasi ke hard disk beneran kita besarkan lagi partisi untuk / (root) dan /home. Kenapa pakai LVM? Ini akan memudahkan kita untuk me-resize partisi-partisi tersebut</li>
<li>Setelah diinstall personalisasi SO-nya bila perlu. Misal mematikan dan/atau menghidupkan servis-servis tertentu. Demikian juga personalisasi aplikasi autorun-nya. Setelah SO sesuai kebutuhan saatnya kita duplikasi</li>
<li>Pasang hard disk target dan gunakan ddrescue sebagai user root untuk duplikasinya (dd bisa juga)
<pre># ddrescue -v /folder-vm/os-mst.img /dev/sdb</pre>
<p>Perintah diatas mengandaikan nama hard disk virtualnya adalah os-mst.img ada di folder folder-vm dan hard disk targetnya dikenali sebagai /dev.sdb</li>
<li>Karena hard disk virtual biasanya lebih kecil dari hard disk target, maka kita resize partisi LVM di hard disk target dengan menggunakan fdisk atau sfdisk. Cukup delete partisi LVM dan bikin baru dengan menggunakan seluruh kapasitas tersisa hard disk target.</li>
<li>Selanjutnya kita perbesar volume group dan logical volume LVM untuk memperbesar partisi / (root) dan /home
<pre># pvresize /dev/sdb2
# vgchange -a y vg_mst
# lvextend -L +10G /dev/vg_mst/lv_root
# lvextend -l +631 /dev/vg_mst/lv_home</pre>
<p>pvresize untuk menggunakan seluruh partisi LVM yang baru, vgchange -a y digunakan untuk mengaktifkan volume group pada hard disk target dan lvextend digunakan untuk memperbesar partisi yang digunakan / (root) dan /home, disini opsi -L untuk tambahan dalam satuan byte dan -l untuk tambahan dalam satuan PE (physical extension). Info PE yang tersedia bisa dilihat dengan perintah vgdisplay</li>
<li>Setelah memperbesar LVM giliran file system untuk / (root) dan /home yang kita perbesar.
<pre># fsck -f /dev/vg_mst/lv_root
# resize2fs /dev/vg_mst/lv_root
# fsck -f /dev/vg_mst/lv_home
# resize2fs /dev/vg_mstlv_home</pre>
<p>resize2fs mensyaratkan &#8216;fsck -f&#8217; sebelum melakukan perubahan ukuran file system</li>
<li>Kemudian saya rubah nama volume group dari hasil duplikasi, hal ini opsional supaya tidak bentrok manakala kita menggabungkan beberapa hard disk hasil duplikasi. Opsi ini juga memerlukan langkah-langkah selanjutnya. Kalau tidak maka hasil duplikasi kita sudah jadi, tinggal colok ke komputer lain!
<pre># vgrename vg_mst vg_dup1</pre>
</li>
<li>Perubahan nama volume group memerlukan penyesuaian setingan untuk bootingnya. Yang pertama adalah perubahan pada grub.conf. Ganti semua kata vg_mst dengan vg_dup1, demikian juga untuk file fstab.</li>
<li>Yang ini opsional juga, perubahan nama hostname, untuk fedora cukup rubah nama di file /etc/sysconfig/network</li>
</ul>
<p>Sudah siap, tinggal bikin sebanyak-banyaknya dan pasang di komputer sebanyak-banyaknya <img src='http://hansen.alfansa.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Perkiraan waktu duplikasi untuk satu target sekitar 30 menit sampai 1 jam. Jadi sehari kita bisa lah meng-GNU/Linux-kan sampai 10 <img src='http://hansen.alfansa.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://hansen.alfansa.org/2011/04/mesin-virtual-untuk-duplikasi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Memonitor pemakaian bandwidth</title>
		<link>http://hansen.alfansa.org/2010/05/memonitor-pemakaian-bandwidth/</link>
		<comments>http://hansen.alfansa.org/2010/05/memonitor-pemakaian-bandwidth/#comments</comments>
		<pubDate>Fri, 28 May 2010 06:39:40 +0000</pubDate>
		<dc:creator>hansen</dc:creator>
				<category><![CDATA[free software world]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://hansen.alfansa.org/?p=90</guid>
		<description><![CDATA[Ketika menggunakan koneksi internet yang dibatasi besarnya pemakaian per waktu tentu membuat kita suka bertanya-tanya berapa besar pemakaian yang sudah digunakan? Apalagi kalau kita menggunakan koneksi dengan GSM atau CDMA yang terkenal mahal per KB-nya, bisa tekor kalau sering kelebihan kuota Setelah sibuk berkeliling dengan om Google akhirnya mendapat informasi yang tepat dari situsnya forum [...]]]></description>
			<content:encoded><![CDATA[<p>Ketika menggunakan koneksi internet yang dibatasi besarnya pemakaian per waktu tentu membuat kita suka bertanya-tanya berapa besar pemakaian yang sudah digunakan? Apalagi kalau kita menggunakan koneksi dengan GSM atau CDMA yang terkenal mahal per KB-nya, bisa tekor kalau sering kelebihan kuota <img src='http://hansen.alfansa.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Setelah sibuk berkeliling dengan om Google akhirnya mendapat informasi yang tepat dari situsnya <a title="Traffic monitor for NetworkManager" href="http://forums.opensuse.org/get-help-here/applications/416641-traffic-monitor-networkmanager.html" target="_blank">forum opensuse</a>. Dari situ saya coba adaptasi dengan kebutuhan saya. Berikut langkah-langkahnya.</p>
<ul>
<li>Tentu kita memerlukan NetworkManager untuk koneksinya, versi 0.8.x adalah NM yang paling OK untuk koneksi menggunakan GSM atau CDMA. Untuk mengoleksi data pemakaian digunakan vnstat, aplikasi command line kecil yang sangat bermanfaat <img src='http://hansen.alfansa.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
<li>Kita mulai konfigurasi, yang pertama kita perlu edit adalah file /etc/cron.d/vnstat, file ini digunakan untuk mengatur seberapa sering kita akan mengupdate data koneksi. Punya saya seperti ini:
<pre>MAILTO=root
# to enable interface monitoring via vnstat remove comment on next line
*/2 * * * *  vnstat /usr/sbin/vnstat.cron</pre>
<p>&#8220;*/2&#8243; berarti kita akan mengupdate data setiap 2 menit. vnstat kemudian memakai /usr/sbin/vnstat.cron, yang isinya</p>
<pre>#!/bin/bash
# this script (/usr/sbin/vnstat.cron) reads /etc/sysconfig/vnstat
# to start /usr/bin/vnstat.
# example for /etc/sysconfig/vnstat:
# VNSTAT_OPTIONS="-u -i eth0"
# see also: vnstat(1)

VNSTAT_CONF=/etc/sysconfig/vnstat

if [ ! -f  ]; then
 exit 0
fi

. $VNSTAT_CONF

/usr/bin/vnstat $VNSTAT_OPTIONS</pre>
<p>Hmm&#8230;, file ini membaca /etc/sysconfig/vnstat, yg isinya</p>
<pre># see also: vnstat(1)
#
# starting with vnstat-1.6 vnstat can also be
# configured via /etc/vnstat.conf
#
# the following sets vnstat up to monitor ppp0
VNSTAT_OPTIONS="-u -i ppp0"</pre>
<p>Perhatikan &#8220;ppp0&#8243;, itu interface yang dibuat NetwokManager ketika koneksi internet terhubung. Sesuaikan dengan interface dari distro anda. Oh ya, file-file setingan tersebut berdasarkan konfigurasi di Fedora, untuk distro lain bisa jadi berbeda, sesuaikan saja <img src='http://hansen.alfansa.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
<li>Kemudian bagaimana menghubungkannya dengan NetworkManager? Pada prinsipnya kita hanya ingin menghitung manakali koneksi terjadi dan tidak perlu menghitung manakala tidak ada koneksi. Tetapi vnstat dijalankan dengan cron job dan data akan tidak akurat kalau koneksi tidak ada (ppp0 tidak ada). Ternyata vnstat ada option &#8211;disable dan &#8211;enable untuk menghindari penghitungan pada interface yang tidak ada. Nah, kita buat file script untuk menjalan vnstat dengan option tersebut dan taruh di /etc/NetworkManager/dispatcher.d/. File-file yang ada di folder tersebut akan dijalan ketika NM membuat atau memutus koneksi. File script saya adalah:
<pre>#!/bin/sh

case "$2" in
 up)
 /usr/bin/vnstat --enable -i ppp0
 ;;
 down)
 /usr/bin/vnstat -r --disable -i ppp0
 ;;
 *)
 exit 0
 ;;
esac</pre>
<p>Ketika &#8220;up&#8221; (koneksi terhubung) vnstat dipanggil dengan option &#8211;enable yang akan membuat perhitungan untuk ppp0 dibuka. Ketika &#8220;down&#8221; vnstat dipanggil dengan option &#8211;disable yang membuat perhitungan untuk ppp0 ditutup/diabaikan.</li>
</ul>
<p>Bereslah sudah dan ketika berinternet ria dengan GSM/CDMA kita bisa cek jumlah pemakain kita dengan mengetikkan &#8220;vnstat&#8221; dari terminal. Option untuk menampilkan data-nya banyak, silahkan baca dari &#8220;man vnstat&#8221; <img src='http://hansen.alfansa.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://hansen.alfansa.org/2010/05/memonitor-pemakaian-bandwidth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Seri HA 3] Sentuhan Terakhir</title>
		<link>http://hansen.alfansa.org/2009/08/seri-ha-3-sentuhan-terakhir/</link>
		<comments>http://hansen.alfansa.org/2009/08/seri-ha-3-sentuhan-terakhir/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 09:09:27 +0000</pubDate>
		<dc:creator>hansen</dc:creator>
				<category><![CDATA[free software world]]></category>
		<category><![CDATA[IT world]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[HA]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://hansen.alfansa.org/?p=24</guid>
		<description><![CDATA[DRBD sudah, Heartbeat juga sudah, sekarang tinggal menggabungkan keduanya dan memilih layanan apa saja yang akan tersedia di HA kita. Layanan yang akan kita pasang sebagai HA adalah vitual IP, dimana IP ini yang akan dituju oleh kilen, file server dengan nfs dan samba, web server httpd dengan php-nya serta database server MySQL. Sebelum mengintegrasikan [...]]]></description>
			<content:encoded><![CDATA[<p>DRBD sudah, Heartbeat juga sudah, sekarang tinggal menggabungkan keduanya dan memilih layanan apa saja yang akan tersedia di HA kita. Layanan yang akan kita pasang sebagai HA adalah vitual IP, dimana IP ini yang akan dituju oleh kilen, file server dengan nfs dan samba, web server httpd dengan php-nya serta database server MySQL. Sebelum mengintegrasikan layanan tersebut dengan heartbeat ada baiknya dicobakan dulu tanpa heartbeat dan sudah jalan dengan benar.</p>
<p>Agar semua perubahan data dari layanan tersebut dapat tersinkronisasi dengan baik maka ada beberapa lokasi data layanan diatas akan ditempatkan di folder yang tersinkronisasi oleh drbd, dalam hal ini di folder /drdisk. Untuk file server kita tempatkan di /drdisk/shares. Halaman web kita tempatkan di /drdisk/html dan file untuk php session kita tempatkan di /drdisk/php/session, sementara file upload lewat php tempat penyimpanan sementaranya ada di /drdisk/tmp. MySQL database di folder /drdisk/mysql.</p>
<p>Pada tutorial sebelumnya kita matikan dulu layanan drbd, nah sekarang kita hidupkan di kedua komputer dan kerjakan pembuatan folder diatas pada komputer yang dijadikan primary.</p>
<pre>[root@hb1 ~]# drbdadm primary r0
[root@hb1 ~]# mount /dev/drbd1 /drdisk/
[root@hb1 ~]# mkdir -p /drdisk/shares /drdisk/html /drdisk/mysql /drdisk/tmp /drdisk/php/session
[root@hb1 ~]# chmod ugo=rwXt /drdisk/tmp/ /drdisk/shares/
[root@hb1 ~]# chmod 770 /drdisk/php/session/
[root@hb1 ~]# chgrp apache /drdisk/php/session/</pre>
<p>/drdisk/tmp dan /drdisk/shares permission-nya kita jadi seperti /tmp. /drdisk/php/session ber-permisson 700 dan group owner adalah apache. Setelah itu kita konfigurasi masing-masing layanan agar menggunakan folder yang telah kita sediakan tersebut. File-file konfigurasi ini harus sama di kedua komputer.</p>
<p>Untuk nfs file konfigurasinya adalah file /etc/exports dan isinya cuma satu baris saja:</p>
<pre>/drdisk/shares            *(rw,squash_uids=0-99,sync)</pre>
<p>Untuk keterangan variabelnya coba saja cari tutorial tentang nfs di internet <img src='http://hansen.alfansa.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Untuk samba, tambahkan baris berikut pada file /etc/samba/smb.conf:</p>
<pre>[shares]
        comment = Shares Stuff
        path = /drdisk/shares
        public = yes
        writable = yes
        printable = no</pre>
<p>File-file yang ada di /etc/samba juga perlu diduplikasi di komputer satu lagi.</p>
<p>Untuk apache (httpd) file yang perlu dirubah adalah /etc/httpd/conf/httpd.conf. Cari &#8216;DocumentRoot&#8217; dan isikan dengan /drdisk/html. Kemudian cari &#8216;&lt;Directory &#8220;/var/www/html&#8221;&gt;&#8217; dan ganti menjadi &#8216;&lt;Directory &#8220;/drdisk/html&#8221;&gt;&#8217;. Untuk konfigurasi php, silahkan rubah file /etc/php.ini pada bagian sbb:</p>
<pre>....
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = /drdisk/tmp
....
session.save_path = "/drdisk/php/session"
....</pre>
<p>Pada dasarnya itu saja yang dirubah, kalau ternyata masih ada yang perlu dirubah karena terkait dengan modul lain silahkan baca-baca di www.php.net</p>
<p>Untuk MySQL file konfigurasi yang dirubah adalah /etc/my.cnf:</p>
<pre>[mysqld]
datadir=/drdisk/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid</pre>
<p>Nah, kalau semua layanan diatas sudah jalan dengan baik tanpa terintegrasi dengan heartbeat, maka kini saatnya mengintegrasikan dengan heartbeat. Layanan-layanan diatas berposisi off pada waktu komputer dinyalakan (termasuk drbd), heartbeat yang akan menyalakannya.</p>
<p>File konfigurasi untuk layanan diatas kita tuliskan (misal) di hb-resources.xml dan hb-constarint.xml. hb-resources.xml untuk mengatur setingan layanan dan hb-constaint.xml untuk mengatur batasan/urutan layanan dinyalakan.<span id="more-24"></span></p>
<p>hb-resources.xml:</p>
<pre>&lt;resources&gt;
  &lt;master_slave id="ms-drbd1"&gt;
    &lt;meta_attributes id="ma-ms-drbd1"&gt;
      &lt;attributes&gt;
        &lt;nvpair id="ma-ms-drbd1-1" name="clone_max" value="2"/&gt;
        &lt;nvpair id="ma-ms-drbd1-2" name="clone_node_max" value="1"/&gt;
        &lt;nvpair id="ma-ms-drbd1-3" name="master_max" value="1"/&gt;
        &lt;nvpair id="ma-ms-drbd1-4" name="master_node_max" value="1"/&gt;
        &lt;nvpair id="ma-ms-drbd1-5" name="notify" value="yes"/&gt;
        &lt;nvpair id="ma-ms-drbd1-6" name="globally_unique" value="false"/&gt;
        &lt;nvpair id="ma-ms-drbd1-7" name="target_role" value="stopped"/&gt;
      &lt;/attributes&gt;
    &lt;/meta_attributes&gt;
    &lt;primitive id="drbd1" class="ocf" provider="heartbeat" type="drbd"&gt;
      &lt;instance_attributes id="ia-drbd1"&gt;
        &lt;attributes&gt;
          &lt;nvpair id="ia-drbd1-1" name="drbd_resource" value="r0"/&gt;
        &lt;/attributes&gt;
      &lt;/instance_attributes&gt;
      &lt;operations&gt;
        &lt;op id="op-drbd1-1" name="monitor" interval="59s" timeout="10s" role="Master"/&gt;
        &lt;op id="op-drbd1-2" name="monitor" interval="60s" timeout="10s" role="Slave"/&gt;
      &lt;/operations&gt;
    &lt;/primitive&gt;
  &lt;/master_slave&gt;
  &lt;group id="group0"&gt;
    &lt;meta_attributes id="ma-group0"&gt;
      &lt;attributes&gt;
        &lt;nvpair id="ma-group0-1" name="target_role" value="started"/&gt;
      &lt;/attributes&gt;
    &lt;/meta_attributes&gt;
    &lt;primitive class="ocf" provider="heartbeat" type="Filesystem" id="fs0"&gt;
      &lt;instance_attributes id="ia-fs0"&gt;
        &lt;attributes&gt;
          &lt;nvpair id="ia-fs0-1" name="fstype" value="ext3"/&gt;
          &lt;nvpair id="ia-fs0-2" name="directory" value="/drdisk"/&gt;
          &lt;nvpair id="ia-fs0-3" name="device" value="/dev/drbd1"/&gt;
        &lt;/attributes&gt;
      &lt;/instance_attributes&gt;
    &lt;/primitive&gt;
    &lt;primitive id="vip0" class="ocf" type="IPaddr2" provider="heartbeat"&gt;
      &lt;instance_attributes id="ia-vip0"&gt;
        &lt;attributes&gt;
          &lt;nvpair id="ia-vip0-1" name="ip" value="192.168.0.10"/&gt;
          &lt;nvpair id="ia-vip0-2" name="broadcast" value="192.168.0.255"/&gt;
          &lt;nvpair id="ia-vip0-3" name="nic" value="eth0"/&gt;
          &lt;nvpair id="ia-vip0-4" name="cidr_netmask" value="32"/&gt;
        &lt;/attributes&gt;
      &lt;/instance_attributes&gt;
      &lt;operations&gt;
        &lt;op id="op-vip0-1" name="monitor" interval="21s" timeout="5s"/&gt;
      &lt;/operations&gt;
    &lt;/primitive&gt;
    &lt;primitive class="lsb" id="nfs0" provider="heartbeat" type="nfs"/&gt;
    &lt;primitive class="lsb" id="smb0" provider="heartbeat" type="smb"/&gt;
    &lt;primitive class="lsb" id="httpd0" provider="heartbeat" type="httpd"/&gt;
    &lt;primitive class="lsb" id="mysql0" provider="heartbeat" type="mysqld"/&gt;
  &lt;/group&gt;
&lt;/resources&gt;</pre>
<p>Setingan untuk drbd ada di dalam tag &#8216;master_slave&#8217;, yang perlu diperhatikan pada &#8216;name=&#8221;drbd_resource&#8221;&#8216; value-nya harus sama dengan nama resource pada setingan drbd. Untuk layanan lain tergabung dalam tag &#8220;group&#8221;.</p>
<p>Selanjutnya kita lihat tag &#8216;primitve&#8217; dengan tipe &#8220;Filesystem&#8221;, ini adalah layanan untuk me-mount filesystem drdb. Perhatikan atributnya dan sesuaikan bila perlu. Tag &#8216;primitive&#8217; dengan tipe &#8220;IPaddr2&#8243; adalah layanan IP virtual, yaitu IP yang kita tuju untuk mengakses server kita. IP ini berbeda dengan IP kedua komputer yang dijadikan server. Dan sesuaikan bila perlu data-data yang ada pada bagian atribut.</p>
<p>Setelah itu perhatikan tipe-tipe &#8216;nfs&#8217;, &#8216;smb&#8217;, &#8216;httpd&#8217; dan &#8216;mysqld&#8217;. Ini sebetulnya nama script yang kita gunakan waktu menjalankan layanan, kalau di centos dan fedora based itu adalah variabel yang dipakai setelah perintah service, untuk debian based bisa dilihat di folder /etc/init.d.</p>
<p>Kalau semua sudah beres tinggal mengintegrasikan kedalam layanan heartbeat yang sedang jalan dengan perintah:</p>
<pre>cibadmin -C -o resources -x hb-resources.xml</pre>
<p>Ganti &#8216;-C&#8217; dengan &#8216;-R&#8217; kalau setelah itu perlu merubah file hb-resources.xml dan ingin mengupdate setingan.</p>
<p>hb-constarint.xml:</p>
<pre>&lt;constraints&gt;
  &lt;rsc_order id="drbd1_before_group0" from="group0" action="start" to="ms-drbd1" to_action="promote"/&gt;
  &lt;rsc_colocation id="group0_on_drbd1" to="ms-drbd1" to_role="master" from="group0" score="infinity"/&gt;
&lt;/constraints&gt;</pre>
<p>Setingan ini untuk mengatur agar layanan dalam group0 dijalankan apabila drbd-nya sudah jalan dengan baik. Hal ini perlu dibatasi karena kalau drbd tidak jalan maka semua layanan di atas akan bermasalah waktu dijalankan. Integrasikan juga kedalam heartbeat yang sudah jalan dengan perintah</p>
<pre>cibadmin -C -o constraints -x hb-constarint.xml</pre>
<p>Semua sudah beres, tinggal mencobanya. Oh ya untuk memantau heartbeat kita gunakan aplikasi hb_gui, biasanya disediakan oleh paket heartbeat-gui. Misalkan kita akan mencoba file sharing lewat nfs, kita salin file lagu, terus mainkan lewat komputer klien dan matikan komputer heartbeat yang sedang jadi master, dari hb_gui biasanya terlihat komputer mana yang sedang jadi master. Mestinya waktu peralihan heartbeat master dari satu komputer ke komputer lain akan ada jeda saat mendengarkn musik, tetapi musik tetap jalan terus. Kalau itu berhasil maka setingan HA kita bisa dibilang sukses! Fuih&#8230; <img src='http://hansen.alfansa.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://hansen.alfansa.org/2009/08/seri-ha-3-sentuhan-terakhir/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>[Seri HA 2] Pasang Heartbeat</title>
		<link>http://hansen.alfansa.org/2009/07/seri-ha-2-pasang-heartbeat/</link>
		<comments>http://hansen.alfansa.org/2009/07/seri-ha-2-pasang-heartbeat/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 10:29:09 +0000</pubDate>
		<dc:creator>hansen</dc:creator>
				<category><![CDATA[free software world]]></category>
		<category><![CDATA[IT world]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[HA]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://hansen.alfansa.org/?p=22</guid>
		<description><![CDATA[Nah ini aplikasi yang menjadi tulang punggung HA, Heartbeat dari Linux HA. Silahkan baca-baca link tersebut untuk mengetahui lebih jauh apa itu heartbeat. Untuk mengaktifkan heartbeat ini ternyata cukup mudah. Rubah file /etc/ha.d/ha.cf, bikin aja kalau belum ada, dengan isi sebagai berikut: use_logd on udpport 694 keepalive 1 # 1 second deadtime 10 initdead 80 [...]]]></description>
			<content:encoded><![CDATA[<p>Nah ini aplikasi yang menjadi tulang punggung HA, Heartbeat dari <a title="The High Availability Linux Project" href="http://www.linux-ha.org/">Linux HA</a>. Silahkan baca-baca link tersebut untuk mengetahui lebih jauh apa itu heartbeat.</p>
<p>Untuk mengaktifkan heartbeat ini ternyata cukup mudah. Rubah file <code>/etc/ha.d/ha.cf</code>, bikin aja kalau belum ada, dengan isi sebagai berikut:</p>
<pre>use_logd on
udpport 694
keepalive 1 # 1 second
deadtime 10
initdead 80
bcast eth0
node hb1 hb2
crm yes
auto_failback yes</pre>
<p>isi dari <code>node</code> disesuaikan dengan nama-nama komputernya. Setelah itu membuat file <code>/etc/ha.d/authkeys</code> untuk autentikasinya dengan menggunakan script ini:</p>
<pre>cat &lt;&lt;-!AUTH &gt;/etc/ha.d/authkeys
# Automatically generated authkeys file
auth 1
1 sha1 `dd if=/dev/urandom count=4 2&gt;/dev/null | openssl dgst -sha1` !AUTH</pre>
<p>Karena file <code>/etc/ha.d/authkeys</code> sensitif, maka rubah permission-nya menjadi 600 (<code>-rw------</code>). Yak segitu saja, heartbeat siap dijalankan. Di fedora <em>based</em> tinggal jalankan &#8216;<code>service heartbeat start</code>&#8216; dan jangan lupa service heartbeat di on-kan waktu komputer dihidupkan.</p>
<p>Tapi dengan konfigurasi seperti itu saja heartbeat tidak banyak berguna, harus ada service-service yang ditangani heartbeat yang menjadikannya fungsional sebagai HA, misal visual IP, digabung dengan drbd untuk sinkronisasi data, httpd, nfs, samba dan lain-lain. Nah yang begini akan dibahas pada <a href="http://hansen.alfansa.org/2009/08/seri-ha-3-sentuhan-terakhir/">[Seri HA 3] Sentuhan Terakhir</a></p>
]]></content:encoded>
			<wfw:commentRss>http://hansen.alfansa.org/2009/07/seri-ha-2-pasang-heartbeat/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[Seri HA 1] Pasang DRBD</title>
		<link>http://hansen.alfansa.org/2009/07/seri-ha-1-pasang-drbd/</link>
		<comments>http://hansen.alfansa.org/2009/07/seri-ha-1-pasang-drbd/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 04:49:58 +0000</pubDate>
		<dc:creator>hansen</dc:creator>
				<category><![CDATA[free software world]]></category>
		<category><![CDATA[IT world]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[HA]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://hansen.alfansa.org/?p=20</guid>
		<description><![CDATA[Apa itu DRBD? Dan apa pula hubungannya dengan HA? Coba jalan-jalan ke sini dulu. Pada dasarnya DRBD adalah software untuk sinkronisasi data tetapi pada level block device, yaitu level dibawah filesystem. Jadi membuat filesystem-pun akan disinkronkan. Sinkronisasi pada level block device ini diperlukan (tetapi tidak harus) agar HA bisa lebih mulus pergantian komputernya. OK, langsung [...]]]></description>
			<content:encoded><![CDATA[<p>Apa itu DRBD? Dan apa pula hubungannya dengan HA? Coba jalan-jalan <a title="What is DRBD" href="http://www.drbd.org/home/what-is-drbd/">ke sini</a> dulu.</p>
<p>Pada dasarnya DRBD adalah software untuk sinkronisasi data tetapi pada level <em>block device</em>, yaitu level dibawah filesystem. Jadi membuat <em>filesystem</em>-pun akan disinkronkan. Sinkronisasi pada <em>level block</em> device ini diperlukan (tetapi tidak harus) agar HA bisa lebih mulus pergantian komputernya.</p>
<p>OK, langsung ke <em>hardware</em> dan konfigurasinya yang diperlukan untuk drbd. Pertama-tama tentu partisi yang akan disinkronkan, berikut hasil perintah &#8216;fdisk -l&#8217; dari kedua komputer:</p>
<pre>[root@hb1 ~]# fdisk -l
....
   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        1305    10482381   83  Linux
/dev/hda2            1306        1436     1052257+  82  Linux swap / Solaris
/dev/hda3            1437        2564     9060660   83  Linux</pre>
<pre>[root@hb2 ~]# fdisk -l
....
   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        1305    10482381   83  Linux
/dev/hda2            1306        1370      522112+  82  Linux swap / Solaris
/dev/hda3            1371        2498     9060660   83  Linux</pre>
<p>Perhatikan, walau besar kedua hardisk berbeda, besar partisi (hda3) yang akan dipakai harus sama persis (1127 blok).</p>
<p>Selanjutnya saya menggunakan 2 kartu jaringan di masing-masing komputer. Berikut hasil &#8216;ifconfig&#8217; dari kedua komputer:</p>
<pre>[root@hb1 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:192.168.0.11  Bcast:192.168.0.255  Mask:255.255.255.0
          ....

eth1      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:10.0.0.11  Bcast:10.0.0.255  Mask:255.255.255.0
          ....</pre>
<pre>[root@hb2 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:192.168.0.12  Bcast:192.168.0.255  Mask:255.255.255.0
          ....

eth1      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:10.0.0.12  Bcast:10.0.0.255  Mask:255.255.255.0
          ....</pre>
<p>eth0 akan terhubung ke jaringan lokal dan eth1 akan saling terhubung dengan <a href="http://en.wikipedia.org/wiki/Ethernet_crossover_cable">kabel kros</a>, dengan kata lain kedua komputer punya jalur pribadi lewat eth1. Kenapa hal ini perlu dilakukan? Tipe sinkronisasi yang dipilih memerlukan <em>bandwidth</em> yang cukup besar, agar tidak mengganggu jaringan lokal maka perlu dipisahkan lewat jalur pribadi ini. Untuk men-tes apakah jalur ini telah berfungsi lakukan ping ke IP dari eth1 komputer lainnya.<span id="more-20"></span></p>
<p><em>Hardware</em> dan setingan yang diperlukan sudah, sekarang ke file konfigurasi. File yang dipakai adalah /etc/drbd.conf. Berikut isi drbd.conf dari <strong>kedua</strong> komputer:</p>
<pre>global {
  usage-count yes;
}
common {
  protocol C;
}
resource r0 {
  device    /dev/drbd1;
  meta-disk internal;
  net {
    after-sb-0pri discard-younger-primary;
    after-sb-1pri discard-secondary;
    after-sb-2pri disconnect;
  }
  on hb1 {
    address   10.0.0.11:7789;
    disk      /dev/hda3;
  }
  on hb2 {
    address   10.0.0.12:7789;
    disk      /dev/hda3;
  }
}</pre>
<p>Penjelasan singkatnya sebagai berikut:</p>
<p><code>protocol C;</code> Ini adalah protokol yang digunakan drbd untuk sinkronisasi, C adalah <em><a href="http://www.drbd.org/home/mirroring/">Synchronous mirroring</a></em>, oleh karena itu kita memerlukan jalur pribadi untuk tipe ini.<br />
<code>resource r0</code> adalah nama <em>resource</em> yang akan selalu digunakan sebagai parameter ketika memanggil fungsi-fungsi drbd.<br />
<code>device    /dev/drbd1;</code> <em>Device</em> ini yang akan kita gunakan ketika melakukan mount<br />
Opsi didalam <code>net{}</code> digunakan untuk menangani masalah <em>split brain</em>.</p>
<pre>  on hb1 {
    address   10.0.0.11:7789;
    disk      /dev/hda3;
  }</pre>
<p>Ini adalah konfigurasi untuk komputernya, masing-masing disesuaikan dengan setingan komputer.<br />
<code>address   10.0.0.11:7789;</code> adalah IP jalur pribadi dengan port standar drbd.<br />
<code>disk      /dev/hda3;</code> adalah partisi yang digunakan oleh drbd.</p>
<p>Setelah selesai dengan file konfigurasi tersebut, kita akan melakukan langkah pendahuluan untuk menghidupkan drbd ini. Perintah-perintah berikut dilakukan di <strong>kedua</strong> komputer.<br />
Membuat <em>device metadata</em>:</p>
<pre>[root@hb1 ~]# drbdadm create-md r0
....
Writing meta data...
initialising activity log
NOT initialized bitmap
New drbd meta data block sucessfully created.
success</pre>
<p>Memasang <em>backup device</em> dan menyetel parameter sinkronisasi:</p>
<pre>[root@hb1 ~]# drbdadm attach r0
[root@hb1 ~]# drbdadm syncer r0</pre>
<p>Untuk centos, sebelum memasang <em>backup device</em> perlu &#8216;modprobe drbd&#8217; dulu. Setelah proses inisialisasi selesai maka <em>loading</em> kernel <em>driver</em> akan dilakukan oleh <em>service</em> drbd.<br />
Selanjutnya adalah mengkoneksi kedua komputer:</p>
<pre>[root@hb1 ~]# drbdadm connect r0</pre>
<p>Untuk melihat status setelah prosedur diatas silahkan lihat isi file /proc/drbd:</p>
<pre>[root@hb1 ~]# cat /proc/drbd
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-i386-build, 2008-10-03 11:42:32

 1: cs:Connected st:Secondary/Secondary ds:Inconsistent/Inconsistent C r---
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 oos:9060344</pre>
<p>&#8220;cs:Connected&#8221; berarti kedua drbd sudah terkoneksi, &#8220;st:Secondary/Secondary&#8221; berarti status dari keduanya adalah secendary semua, nantinya harus ada yang jadi primary, yang didepan adalah drbd dari komputer tempat melihat status ini, &#8220;ds:Inconsistent/Inconsistent&#8221; berarti disk status inconsistent, pada saat ini adalah normal, nantinya kita perlu sinkronkan manual dulu.</p>
<p>Proses selanjutnya adalah mengsinkronkan pertama kali. Kalau kita memulai dari partisi kosong proses ini bisa dimulai dari komputer mana saja, tetapi satu komputer partisi yang dipakai sudah berisi data maka harus dimulai dari komputer tersebut, kalau tidak data akan hilang!</p>
<pre>[root@hb1 ~]# drbdadm -- --overwrite-data-of-peer primary r0</pre>
<p>Untuk melihat prosesnya bisa lewat /proc/drbd lagi:</p>
<pre>[root@hb1 ~]# cat /proc/drbd
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-i386-build, 2008-10-03 11:42:32

 1: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r---
    ns:6016 nr:0 dw:0 dr:6016 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 oos:9054328
	[&gt;....................] sync'ed:  0.1% (8842/8847)M
	finish: 7:11:09 speed: 348 (332) K/sec</pre>
<p>Yak, sedang berjalan, tunggu sampai selesai, 7 jam? itu baru 8847 MB <img src='http://hansen.alfansa.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Perhatikan bahwa status (st) berubah menjadi Primary/Secondary dan disk state (ds) menjadi UpToDate/Inconsistent.</p>
<p>Setelah sinkronisasi pertama selesai mari kita coba. Partisi yang dipakai drbd belum di format, maka perlu kita format dulu sebelum dipakai. Perhatikan bahwa kita hanya perlu memformat pada komputer yang status drbd-nya primary, yang secondary akan tersinkronisasi (bahkan pada level pembuatan file system <img src='http://hansen.alfansa.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ). Perhatikan juga <em>device</em> yang kita rujuk bukan lagi <code>/dev/hda3</code> tetapi <code>/dev/drbd1</code> seperti yang ada dalam file konfigurasi.</p>
<pre>[root@hb1 ~]# mkfs.ext3 /dev/drbd1
mke2fs 1.39 (29-May-2006)
....
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
....</pre>
<p>Setelah itu kita buat folder (<code>/drdisk</code>) yang akan menjadi tujuan mount di kedua komputer dan mari kita lakukan tes sederhana.<br />
Di komputer yang jadi <em>primary</em>:</p>
<ul>
<li><code>mount /dev/drbd1</code> ke <code>/drdisk</code></li>
<li>buat file</li>
<li><code>umount</code> kembali</li>
<li>turunkan role-nya jadi <em>secondary</em></li>
</ul>
<pre>[root@hb1 ~]# mount /dev/drbd1 /drdisk/
[root@hb1 ~]# echo "just test drbd" &gt;/drdisk/testdrbd
[root@hb1 ~]# umount /drdisk
[root@hb1 ~]# drbdadm secondary r0</pre>
<p>Setelah itu kita lakukan langkah berikut di komputer yang awalnya <em>secondary</em>:</p>
<ul>
<li>Naikkan role-nya sebagai <em>primary</em></li>
<li><code>mount /dev/drbd1</code> ke <code>/drdisk</code></li>
<li>coba lihat isi <code>/drdisk/testdrbd</code> yang pasti sama dengan komputer satu lagi</li>
</ul>
<pre>[root@hb2 ~]# drbdadm primary r0
[root@hb2 ~]# mount /dev/drbd1 /drdisk/
[root@hb2 ~]# cat /drdisk/testdrbd
just test drbd</pre>
<p>Kalau sudah OK, umount dan turunkan role-nya menjadi <em>secondary</em> lagi kalau mau digunakan oleh heartbeat. Selesai memasang DRBD, fuih&#8230; <img src='http://hansen.alfansa.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://hansen.alfansa.org/2009/07/seri-ha-1-pasang-drbd/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

