DRBD + HEARTBEAT UNTUK HIGH AVAILABILITY LAMP SERVER

Assalamu’alaikum Wr. Wb.

Alhamdulillah setelah beberapa hari melakukan percobaan gabungin DRBD + Heartbeat untuk keperluan High availability pada server khususnya untuk LAMP (Linux Apache MySQL PHP) server sekarang baru bisa nulis.hehe… maklum banyak trouble selama proses ngelabnya, masalahnya pada service MySQL gak mau konek sama DRBD storage yang saya belajarnya merusuk sumberny dari disni. Sebelumnya udah belajar mengenai DRBD dan Heartbeat sekarang postingan kali ini akan membahas gabungan dari service keduanya untuk membentuk High Availability server. Seperti biasa akan dibahas komponen-komponen pendukung untuk lab antara lain :
  1. 2 Server OS Ubuntu 12.04 64 bit (VirtualBox).
  2. hostname server 1 : akrom server 2 : arum.
  3. IP server 1 : 192.168.42.131 server 2 : 192.168.42.132.
  4. DRBD storage /dev/sdb1.
  5. IP Virtual : 192.168.42.133

Langsung saja untuk langkah pertama bikin identitias hostname untuk masing-masing server edit pada file /etc/hosts.
#nano /etc/hosts
127.0.0.1       localhost
192.168.42.131  akrom
192.168.42.132  arum
 

Kemudian install tools DRBD dan Heartbeat pada masing-masing server. Tool DRBD bisa download disini untuk versi terbaru, sesuaikan distro Linux dan arsitekturnya.

#dpkg -i drbd8-utils_8.3.13-1.1ubuntu1_amd64.deb
#apt-get install heartbeat

Ubah permission directory DRBD agar Heartbeat dapat terhubung ke service DRBD.

#chgrp haclient /sbin/drbdsetup
#chmod o-x /sbin/drbdsetup
#chmod u+s /sbin/drbdsetup
#chgrp haclient /sbin/drbdmeta
#chmod o-x /sbin/drbdmeta
#chmod u+s /sbin/drbdmeta

Kedua server menggunakan partisi /dev/sdb1 yang digunakan sebagai DRBD Storage yang sama-sama berkapasitas 8GB (hanya contoh walaupun  di implementasi nyata bisa sampai ratusan giga bahkan tera).

#fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000053f8

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    15728639     7863296   83  Linux
/dev/sda2        15730686    16775167      522241    5  Extended
/dev/sda5        15730688    16775167      522240   82  Linux swap / Solaris

Disk /dev/sdb: 8589 MB, 8589934592 bytes
86 heads, 1 sectors/track, 195083 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe102bff1

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    16777215     8387584   83  Linux

Buat file konfigurasi DRBD pada kedua server, yaitu file global_common.conf dan *.res (sebagai contoh server.res)

#nano /etc/drbd.d/global_common.conf

global { usage-count no; }
common { syncer { rate 30M; verify-alg md5; }

#nano /etc/drbd.d/server.res

resource server {
    protocol C;

    handlers {
        pri-on-incon-degr “echo o > /proc/sysrq-trigger ; halt -f”;
        pri-lost-after-sb “echo o > /proc/sysrq-trigger ; halt -f”;
        local-io-error “echo o > /proc/sysrq-trigger ; halt -f”;
        outdate-peer “/usr/lib/heartbeat/drbd-peed-outdater -t 5”;
    }

    startup {
        degr-wfc-timeout 120;
    }

    disk {
        on-io-error detach;
    }

    net {
        cram-hmac-alg sha1;
        shared-secret “apayaadadeh”;
        after-sb-0pri disconnect;
        after-sb-1pri disconnect;
        after-sb-2pri disconnect;
        rr-conflict disconnect;
    }

    on akrom {
        device /dev/drbd0;
        disk /dev/sdb1;
        address 192.168.42.131:7788;
        meta-disk internal;
    }
   
    on arum {
        device /dev/drbd0;
        disk /dev/sdb1;
        address 192.168.42.132:7788;
        meta-disk internal;
    }
}

Langkah berikutnya adalah menginisialisasi meta disk pada masing-masing server.

#drbadm create-md server

md_offset 8588881920
al_offset 8588849152
bm_offset 8588587008

Found ext3 filesystem
     8387292 kB data area apparently used
     8387292 kB left usable by current configuration

Even though it looks like this would place the new meta data into
unused space, you still need to confirm, as this is only a guess.

Do you want to proceed?
[need to type ‘yes’ to confirm] yes

You want me to create a v08 style flexible-size internal meta data block.
There appears to be a v08 flexible-size internal meta data block
already in place on /dev/sdb1 at byte offset 8588881920
Do you really want to overwrite the existing v08 meta-data?
[need to type ‘yes’ to confirm] yes

Writing meta data…
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
 
Start service DRBD dengan perintah berikut di kedua server.

#/etc/init.d/drbd start

Dari kedua sever pilih salah satu untuk dijadikan sebagai server primary (utama), sebagai contoh pada server akrom. Jadikan server tersebut dengan perintah berikut.

#drbadm — –overwrite-data-of-peer primary server

Setelah itu akan tindakan sinkronisasi storage antara kedua server, kita bisa memonitoring proses sinkronisasi melalui terminal.
#watch cat /proc/drbd
Every 2.0s: cat /proc/drbd                                        Mon Dec  9 10:00:20 2013

version: 8.3.13 (api:88/proto:86-96)
srcversion: 697DE8B1973B1D8914F04DB
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r—–
    ns:734208 nr:0 dw:0 dr:734880 al:0 bm:44 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:7653084
        [>……………….] sync’ed:  8.8% (7472/8188)Mfinish: 0:03:57 speed: 32,192 (3
0,592) K/sec
  

Setelah proses sinkronisasi kedua server storage selesai kemudian format storage tersebut ke sebuah file system (contoh : ext4).
#mkfs.ext4 /dev/drbd0

mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
524288 inodes, 2096823 blocks
104841 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2147483648
64 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done                           
Writing inode tables: done                           
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
Kemudian lakukan mounting ke sebuah directory /media/data.

#mkdir -p /media/data
#mount /dev/drbd0 /media/data
#chmod 777 /media/data 

Langkah berikutnya adalah install LAMP server di kedua server.

#apt-get install tasksel
#tasksel install lamp-server

Setelah instalasi lamp server sudah selesai sekarang pindah semua direktori tempat database dan web servernya ke DRBD storage, tapi sebelumnya hentikan terlebih dahulu service-nya. Lakukan pada server primary terlebih dahulu

root@akrom#service apache2 stop
root@akrom#update-rc.d -f apache2 remove
root@akrom#service mysql stop
root@akrom#update-rc.d -f mysql remove

root@akrom#mkdir -p /media/data/mysql
root@akrom#mkdir -p /media/data/www
root@akrom#mv /var/www/* /media/data/www/
root@akrom#mv /var/lib/mysql/* /media/data/mysql

root@akrom#ln -s /media/data/www /var

Ubah sedikit pada konfigurasi MySQL pada file /etc/mysql/my.conf dan /etc/apparmor.d/usr.sbin.mysqld.
root@akrom#nano /etc/mysql/my.conf

[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /media/data/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

root@akrom#nano /etc/apparmor.d/usr.sbin.mysqld

  /etc/mysql/*.pem r,
  /etc/mysql/conf.d/ r,
  /etc/mysql/conf.d/* r,
  /etc/mysql/*.cnf r,
  /usr/lib/mysql/plugin/ r,
  /usr/lib/mysql/plugin/*.so* mr,
  /usr/sbin/mysqld mr,
  /usr/share/mysql/** r,
  /var/log/mysql.log rw,
  /var/log/mysql.err rw,
# /var/lib/mysql/ r,
# /var/lib/mysql/** rwk,
  /media/data/mysql/ r,       
  /media/data/mysql/** rwk,
Start kembali semua service lamp pada server primary.
root@akrom#/etc/init.d/apparmor reload
root@akrom#/etc/init.d/mysql start
root@akrom#/etc/init.d/apache2 start
Kemudian pada server secondary (server arum) lakukan beberapa perintah berikut tapi sebelumnya ubah dulu mode DRBD pada server akrom menjadi secondary dan server arum menjadi primary:
root@akrom#service apache2 stop
root@akrom#service mysql stop
root@akrom#umount /media/data
root@akrom#drbdadm secondary server
root@arum#service mysql stop
root@arum#service apache2 stop
root@arum#mkdir /media/data
root@arum#drbadm primary server
root@arum#rm -r /var/www
root@arum#rm -r /var/lib/mysql
root@arum#ln -s /media/data/www /var
root@arum#nano /etc/mysql/my.conf
[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /media/data/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
 
 
 
root@arum#nano /etc/apparmor.d/usr.sbin.mysqld
/etc/mysql/*.pem r,
  /etc/mysql/conf.d/ r,
  /etc/mysql/conf.d/* r,
  /etc/mysql/*.cnf r,
  /usr/lib/mysql/plugin/ r,
  /usr/lib/mysql/plugin/*.so* mr,
  /usr/sbin/mysqld mr,
  /usr/share/mysql/** r,
  /var/log/mysql.log rw,
  /var/log/mysql.err rw,
# /var/lib/mysql/ r,
# /var/lib/mysql/** rwk,
  /media/data/mysql/ r,       
  /media/data/mysql/** rwk,
 
root@arum#/etc/init.d/apparmor reload
root@arum#/etc/init.d/apache2 start
root@arum#/etc/init.d/mysql start

Berikutnya adalah konfigurasi heartbeat yang berfungsi sebagai failover server bila terjadi down. Ada beberapa file konfigurasi heartbeat yang harus dibuat di kedua antara lain /etc/hearbeat/authkeys, /etc/heartbeat/ha.cf dan /etc/heartbeat/haresources.
#nano /etc/heartbeat/authkeys
auth 1
1 md5 rahasiadong
#chmod 600 /etc/heartbeat/authkeys
root@akrom#nano /etc/heartbeat/ha.cf
logfacility local0
keepalive 2
deadtime 5
ping 192.168.42.132
udpport 694
bcast eth0
node akrom
node arum
auto_failback on
root@arum#nano /etc/heartbeat/ha.cf
logfacility local0
keepalive 2
deadtime 5
ping 192.168.42.132
udpport 694
bcast eth0
node akrom
node arum
auto_failback on
 
#nano /etc/heartbeat/haresources
akrom IPaddr::192.168.42.133/24/eth0 drbddisk::server Filesystem::/dev/drbd0::/media/data::ext4 mysql apache2

Konfigurasi DRBD dan Heartbeat kali ini sudah selesai tinggal install contentnya tapi sebelum itu restart kedua server dengan cara berikut.
#/etc/init.d/apache2 stop
#/etc/init.d/mysql stop
#umount /media/data
#drbdadm secondary server
#/etc/init.d/heartbeat start
#reboot
Setelah proses reboot selesai kita bisa install content dalam server. Sebagai contoh saya akan install wordpress. Download dulu installernya disini.
#unzip wordpress-3.7.1.zip
#cp -r wordpress/* /media/data/var/ 
Buat sebuah database yang akan digunakan untuk wordpress yang akan diinstall.
#mysql -u root -p
mysql> create databse coba;
mysql> quit
Buka browser kemudian lakukan instalasi wordpress, akses web dengan IP address 192.168.42.133. Bila sudah selesai melakukan proses instalasi wordpress akses web tersebut dan sebagai percobaan failover matikan server pertama (primary) kemudian coba akses terus dengan alamat yang sama yaitu 192.168.42.133. Seharusnya akan langsung fail over walaupun ada downtime beberapa detik.

LINUX HEARTBEAT

Alhamdulillah bisa bikin posting lagi 🙂 judulnya tentang Heartbeat. Heartbeat merupakan bagian dari Linux High Availability yang fungsinya adalah sebagai backup primary server atau sebagai fungsi failover. Jadi prinsipnya server primary yang menjalankan service ke client misalnya web server tiba-tiba terjadi down maka secara otomatis oleh server secondary akan mengambil alih service, bila server primary pulih kembali service diambil alih kembali oleh server primary. Jadi sekian penjelasan singkat aja 🙂
Postingan kali ini membahas tentang konfigurasi dasar Heartbeat seperti biasa untuk server saya gunakan OS Linux distro Ubuntu 12.04.2 64 bit. Kasusnya adalah untuk fungsi HA pada web server.
Komponen pendukung :
  1. 2 server Linux Ubuntu 12.04.2 64 bit
  2. hostname server pertama akrom
  3. hostname server kedua arum
  4. IP server akrom 192.168.42.131/24
  5. IP server arum 192.168.42.132/24
  6. IP virtual 192.168.42.133/24
Pertama install paket heartbeat dan apache2 pada masing-masing server.
#apt-get install apache2 heartbeat

Untuk keperluan hostname pada server edit file /etc/hosts pada masing-masing server.

#nano /etc/hosts

127.0.0.1      localhost
192.168.42.131 akrom
192.168.42.132 arum

Selanjutnya buat file konfigurasi Heartbeat antara lain /etc/hearbeat/authkeys, /etc/heartbeat/ha.cf dan /etc/heartbeat/haresources.

#nano /etc/heartbeat/authkeys

auth 1
1 md5 adadeh

root@arum#nano /etc/heartbeat/ha.cf

logfacility local0
keepalive 2
deadtime 5
ping 192.168.42.131
udpport 694
bcast eth0
node akrom
node arum
auto_failback on

root@akrom#nano /etc/heartbeat/ha.cf

logfacility local0
keepalive 2
deadtime 5
ping 192.168.42.132
udpport 694
bcast eth0
node akrom
node arum
auto_failback on

#nano /etc/heartbeat/haresources

akrom IPaddr::192.168.42.133/24/eth0 apache2

Untuk konfigurasi pada file /etc/heartbeat/haresources diatas menunjukkan bahwa untuk akses web dari client menggunakan alamat IP virtual yaitu 192.168.42.133 yang akan diforward ke server akrom, bila terjadi down pada server akrom heartbeat akan meng-failover ke server arum.

Sebagai analisa saja pada percobaan kita edit halaman index.html pada masing-masing server.

root@akrom#nano /var/www/index.html

<html><body><h1>It works! server 1</h1>

<p>This is the default web page for this server.</p>

<p>The web server software is running but no content has been added, yet.</p>
</body></html>

root@arum#nano /var/www/index.html

<html><body><h1>It works! server 1</h1>

<p>This is the default web page for this server.</p>

<p>The web server software is running but no content has been added, yet.</p>
</body></html>

Dari client buka browser kemudian ketikkan alamat http://192.168.42.133
















Matikan server primary kemudian akses web kembali dari client.
Sekian untuk penggunaan Heartbeat semoga bermanfaat 🙂

MEMBUAT DRBD CLUSTER

Sekarang lagi seneng-senengnya belajar storage khususnya networking storage, kali ini tentang DRBD (Distributed Replicated Block Device) yaitu block device yang sering digunakan untuk keperluan clustering High Availability. Adapun konsepnya adalah mereplikasi antar host storage sehingga membentuk sistem backup. Dalam percobaan kali ini saya akan mencoba mengimplementasikan DRBD pada Linux distro Ubuntu.
Komponen-komponen pendukung :
  1. 2 server virtual (Guest VirtualBox) Ubuntu 12.04.2 64 bit.
  2. Masing-masing Guest memiliki 1 partisi yang digunakan untuk keperluan DRBD masing berkapasitas 5 GB.
  3. Guest 1 (akrom-VirtualBox) dan Guest 2 (arum-VirtualBox).
  4. IP 192.168.42.131 dan 192.168.42.132.
Pertama install terlebih dahulu paket drbd pada masing-masing server, download terlebih dahulu packetnya disini. Install pada kedua server.

#dpkg -i drbd8-utils_8.3.13-1.1ubuntu1_amd64.deb

Partisi pada masing-masing server yang digunakan untuk DRBD adalah /dev/sde1 pada server akrom-VirtualBox dan /dev/sdb1 pada server arum-VirtualBox.

akrom-VirtualBox#fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d9f3e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    15728639     7863296   83  Linux
/dev/sda2        15730686    16775167      522241    5  Extended
/dev/sda5        15730688    16775167      522240   82  Linux swap / Solaris

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn’t contain a valid partition table

Disk /dev/sdc: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdc doesn’t contain a valid partition table

Disk /dev/sdd: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdd doesn’t contain a valid partition table

Disk /dev/sde: 5368 MB, 5368709120 bytes
181 heads, 40 sectors/track, 1448 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x11def5f6

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1            2048    10485759     5241856   8e  Linux LVM

Disk /dev/mapper/am-akrom: 18.8 GB, 18790481920 bytes
255 heads, 63 sectors/track, 2284 cylinders, total 36700160 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/am-akrom doesn’t contain a valid partition table

arum-VirtualBox#fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0007366c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    15728639     7863296   83  Linux
/dev/sda2        15730686    16775167      522241    5  Extended
/dev/sda5        15730688    16775167      522240   82  Linux swap / Solaris

Disk /dev/sdb: 5368 MB, 5368709120 bytes
181 heads, 40 sectors/track, 1448 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5296ad90

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10485759     5241856   8e  Linux LVMv


Ada beberapa file yang harus dikonfigurasi antara lain /etc/drbd.d/global_common.conf dan /etc/drbd.d/r0.res

akrom-VirtualBox#nano /etc/drbd.d/global_common.conf

global { usage-count no; }
common { syncer { rate 30M; verify-alg md5; } }

akrom-VirtualBox#nano /etc/drbd.d/r0.res

  resource r0 {
        protocol C;
        startup {
                wfc-timeout 15;
                degr-wfc-timeout 60;
        }

        net {
                cram-hmac-alg sha1;
                shared-secret “apaya”;
        }

        on akrom-VirtualBox {
                device /dev/drbd0;
                disk /dev/sde1;
                address 192.168.42.131:7788;
                meta-disk internal;
        }

        on arum-VirtualBox {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 192.168.42.132:7788;
                meta-disk internal;
        }

Kopi kedua file tadi ke server kedua (arum-VirtualBox) dengan perintah berikut.

akrom-VirtualBox#scp /etc/drbd.d/r0.res arum@192.168.42.132:/home/arum
akrom-VirtualBox#scp /etc/drbd.d/global_common.conf arum@192.168.42.132:/home/arum

Pada server kedua pindahkan file kopian tadi ke directory /etc/drbd.d/.

arum-VirtualBox#cp /home/arum/global_common.conf /etc/drbd.d/
arum-VirtualBox#cp /home/arum/r0.res /etc/drbd.d/

Kemudian pada kedua server aktifkan service DRBD dengan perintah berikut.

#/etc/init.d/drbd start

Pada kedua server juga buat masing-masing untuk meta data storage.

#drbdadm create-md r0
Aktifkan meta data storage pada masing-masing server.

#drbdadm up r0
Aktifkan server 1 (akrom-VirtualBox) sebagai primary dengan perintah berikut.

akrom-VirtualBox#drbdadm — –overwrite-data-of-peer primary all
Setelah itu kita dapat mengamati proses sinkronisasi dengan perintah dibawah ini.

#watch -n1 cat /proc/drbd

version: 8.3.13 (api:88/proto:86-96)srcversion: 697DE8B1973B1D8914F04DB  0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r—–    ns:80 nr:636 dw:716 dr:1758 al:2 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

Untuk stop tekan tombol ctrl+c.

Setelah logical disk untuk DRBD terbentuk selanjutnya adalah memberikan file system sebagai contoh adalah ext3 pada masing-masing server.

#mkfs.ext3 /dev/drbd0

 Selanjutnya adalah lakukan mounting.

akrom-VirtualBox#mkdir /media/akrom
akrom-VirtualBox#mount /dev/drbd0 /media/akrom
akrom-VirtualBox#chmod 777 /media/akrom


TESTING

Sebagai langkah pengujian buka partisi pada server pertama (akrom-VirtualBox) kemudian isikan beberapa file seperti gambar berikut.
Buktikan apakah sudah terbackup pada partisi server kedua (arum-VirtualBox). Tapi ubah terlebih dahulu server pertama menjadi secondary dan server kedua menjadi primary.

akrom-VirtualBox#umount /media/akrom
akrom-VirtualBox#drbdadm secondary r0
arum-VirtualBox#drbdadm primary r0
arum-VirtualBox#mkdir /media/arum
arum-VirtualBox#mount /dev/drbd0 /media/arum

MEMBUAT LVM STORAGE

LVM (Logical Volume Management) hampir ada pada semua distor Linux. Ini merupakan solusi bagi Anda yang memerlukan kapasitas Hardisk yang besar. Jika pada suatu saat ruang partisi hardisk penuh kita dapat menambahkan hardisk baru tanpa harus membuat partisi ulang. Dalam manajemen disk biasa sistem operasi Linux akan mencari disk yang tersedia (/dev/sda, /dev/sdb, /dev/sdc, dll) dan partisi apa saja yang tersedia pada disk (/dev/sda1, /dev/sda2, /dev/sdb1, dll). Dengan menggunakan LVM sebuah partisi dapat terdiri dari beberapa hardisk sehingga menghasilkan kapasitas yang lebih besar. Karena volume group dan logical group tidak terhubung langsung ke hardisk maka kita dapat lebih leluasa untuk merubah ukuran dan atau menambahkan hardisk/partisi baru.
Keuntungan LVM :
  1. Mudah untuk merubah ukuran partisi.
  2. Mampu menggabungkan beberapa partisi menjadi satu sehingga memperoleh space yang lebih besar.
  3. Mudah dalam management hardisk.
Dalam postingan kali ini saya akan mencoba berbagi ilmu tentang bagaimana membuat LVM storage pada Linux distro Ubuntu. Untuk percobaan kali ini saya mempunyai 4 buah hardisk 
  1. /dev/sda, system Linux 8 GB
  2. /dev/sdb, 5 GB
  3. /dev/sdc, 5 GB
  4. /dev/sdd, 5 GB
Sebagai studi kasus karena dengan kapasitas hardisk yang kecil saya berencana akan menggabungkan disk /dev/sdb dan /dev/sdc sehingga memperoleh ukuran hardisk sekitar 10 GB. Maka dari itu saya gunakan teknik LVM.
Langkah pertama yang harus dilakukan adalah kita install paket lvm2 pada Linux Ubuntu.
#apt-get install lvm2

kemudian kita lihat disk yang tersedia pada komputer dengan ketik perintah fdisk -l.

#fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d9f3e
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    15728639     7863296   83  Linux
/dev/sda2        15730686    16775167      522241    5  Extended
/dev/sda5        15730688    16775167      522240   82  Linux swap / Solaris
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn’t contain a valid partition table
Disk /dev/sdc: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdc doesn’t contain a valid partition table
Disk /dev/sdd: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdd doesn’t contain a valid partition table
Kita pilih physic volume yang akan digunakan untuk LVM storage yaitu /dev/sdb dan /dev/sdc dengan perintah berikut.
#pvcreate /dev/sdb /dev/sdc

Cek dengan perintah pvdisplay.

#pvdisplay
  — Physical volume —

  PV Name               /dev/sdb
  VG Name               am
  PV Size               5.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              1279
  Free PE               1279
  Allocated PE          0
  PV UUID               n6xKug-tdD4-ooq3-2Zez-1k4j-keeq-648HJG
   
  — Physical volume —
  PV Name               /dev/sdc
  VG Name               am
  PV Size               5.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              1279
  Free PE               1279
  Allocated PE          0
  PV UUID               Z9gzaT-MyKU-nSWN-wvEG-gRKd-xcDU-5T0OF9

Kemudian buat volume group dan masukkan physic disk tadi kedalam member group sebagai contoh nama group volume-nya adalah am, lakukan dengan perintah berikut.

#vgcreate am /dev/sdb /dev/sdc

Cek konfigurasi volume group dengan perintah vgdisplay.

#vgdisplay

  — Volume group —
  VG Name               am
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               9.99 GiB
  PE Size               4.00 MiB
  Total PE              2558
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2558 / 9.99 GiB
  VG UUID               pUk41o-ZrON-fyl4-Pzd2-1EhW-XIuu-zfvgfW
Langkah berikutnya adalah membuat logical volume dari volume group yang telah dibuat dengan menentukan kapasitasnya sebagai contoh saya beri nama akrom dengan perintah berikut.
#lvcreate -L 9.5G -n akrom am

Cek konfigurasi logical volume dengan perintah lvdisplay.
#lvdisplay

  — Logical volume —
  LV Name                /dev/am/akrom
  VG Name                am
  LV UUID                ncV1Zo-5HIB-5dON-413e-UJFQ-PBOp-MSisPQ
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                9.50 GiB
  Current LE             2432s
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  – currently set to     256
  Block device           252:0
Langkah terakhir adalah dari logical volume yang telah dibangun buat partisi dengan file system ext4.
#mkfs.ext4 -m 0 /dev/am/akrom

mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
622592 inodes, 2490368 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2550136832
76 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done 
Ubah permission agar partisi dapat diakses dengan perintah chmod.

#chmod 777 /media/0bb1e80c-fb54-426e-88e2-189f4ea9f245/
Partisi baru pun selesai dibuat 🙂
Dari gambar diatas menunjukkan partisi 10 GB diperoleh dari 2 buah hardisk 5 GB yang digabungkan.
Setelah pembuatan partisi berhasil ternyata ada kasus bahwa partisi tersebut sudah hampir penuh kapasitasnya dan perlu penambahan kapasitas tanpa harus install ulang maupun partisi ulang. maka dari itu dengan LVM kita dapat menggunakan hardisk baru (/dev/sdd) untuk menambah kapasitas partisi yang telah dibuat sebelumnya.
Pilih physic volume terlebih dahulu disk /dev/sdd untuk dibuat sebagai LVM storage.
#pvcreate /dev/sdd

Kemudian masukkan physic volume kedalam volume group sebelumnya dengan perintah vgextend.

#vgextend am /dev/sdd
Cek volume group apakah kapasitasnya bertambah dari sebelumnya

#vgdisplay
  — Volume group —

  VG Name               am

  System ID             

  Format                lvm2

  Metadata Areas        3
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               17.99 GiB
  PE Size               4.00 MiB
  Total PE              4605
  Alloc PE / Size       2432 / 9.50 GiB
  Free  PE / Size       2173 / 8.49 GiB
  VG UUID               pUk41o-ZrON-fyl4-Pzd2-1EhW-XIuu-zfvgfW

Setelah itu ubah ukuran logical volume agar ukuran partisi bertambah dengan perintah lvextend.

#lvextend -L 17.5G /dev/am/akrom
#e2fsck -f /dev/dm-0
#fsadm resize /dev/am/akrom 17G -v

Kemudian liat kembali kapasitas partisi 🙂

#lvdisplay
  — Logical volume —

  LV Name                /dev/am/akrom

  VG Name                am

  LV UUID                ncV1Zo-5HIB-5dON-413e-UJFQ-PBOp-MSisPQ

  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                17.50 GiB
  Current LE             4480
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  – currently set to     256
  Block device           252:0


MEMBUAT NFS STORAGE DI FREENAS 9.1.1

Assalamualaikum warrohmatullohiwabarokatuh 🙂

Bulan ini menurut saya adalah bulan yang paling malas, bagaimana tidak? karena bulan ini baru nulis 2 posting.hehe.. oke skip aja, kali ini saya akan menulis kembali tentang bagaimana membuat share storage NFS di FreeNAS tapi kali ini dengan versi terbaru, yaitu FreeNAS 9.1.1 silahkan download disini. Dari konfigurasi sebelumnya FreeNAS versi terbaru memilki tampilan yang sedikit berbeda. Tanpa berlama-lama mari kita menuju ke langkah pertama membangun NFS storage :
Buka web browser dan ketik alamat server FreeNAS. Kemudian buat user admin dan group terlebih dahulu jika kita baru install FreeNAS untuk pertama kali, contohnya usernama:root dan group:am.
User admin


Ubah password admin

Buat group


Masukkan user root ke member group

Klik Members kemudian tambahkan root ke groups am.

Setelah selesai membuat user dan group kita bisa langsung ujicoba untuk membuat share storage NFS. Masuk ke menu Storage dan pada tab menu Active Volumes masih kosong karena belum ada volume disk yang kita aktifkan. Untuk membuat NFS storage kita bisa menggunakan ZFS Volume Manager. Pada kasusnya saya memiliki 2 buah disk sebesar 8GB didalam server FreeNAS dan akan saya gabungkan sehingga kapasistasnya menjadi gabungan dari kedua buah disk tersebut.

Volume Name adalah nama volume yang diberikan sebagai contoh am. Untuk keperluan enkripsi volume bisa kita centang pada Encryption dan Initalize Safely. Kemudian tambahkan 2 disk yang ada dalam server dengan Volume layout Stripe maksudnya ini akan menggabungkan kapasitas dari disk yang kita gabungkan menjadi satu. Jika sudao OK klik pada Add Volume.

Seteah selesai membuat active volume selanjutnya adalah membuat NFS storage pada menu Sharing > UNIX (NFS)

Add Unix (NFS) Share


Isikan Authorized network dengan network IP di jaringan yang dipakai oleh server FreeNAS, centang pada All Directories, Mapall User diisikan dengan user root yang telah dibuat dan Mapall Group diisikan dengan group am yang sudah dibuat juga. Bila sudah klik OK.

Aktifkan service NFS di menu Services > Control Servicesb.

NFS Storage selesai dan bisa kita koneksikan ke sistem operasi berbasis Unix. 🙂