Rabu, 15 Desember 2010

Membuat Repository di Local Harddisk pada Redhat Enterprise Linux


1. Install packet createrepo-0.4.11-3.el5.noarch.rpm, kebetulan package tersebut ada di cd4 dari Redhat Enterprise Linux 5.2.

[root@localhost ~]# rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm

2. Buat struktur directories seperti ini :

[root@localhost ~]# mkdir /DATA/repos/{cd1,cd2,cd3,cd4,cd5}
[root@localhost ~]# ls -l /DATA/repos/
total 24
drwxr-xr-x 8 root root 4096 Dec 15 17:51 cd1
drwxr-xr-x 6 root root 4096 Dec 15 17:54 cd2
drwxr-xr-x 6 root root 4096 Dec 15 17:57 cd3
drwxr-xr-x 6 root root 4096 Dec 15 18:01 cd4
drwxr-xr-x 6 root root 4096 Dec 15 18:04 cd5

3.Copy semua source dari masing-masing cd ke directory /DATA/{cd1,cd2,cd3,cd4,cd5}

4. Jalankan createrepo pada /DATA/repos/

[root@localhost ~]# createrepo /DATA/repos/

createrepo akan membuat repodata dari semua cd.

5. Kita copy template rhel-debuginfo.repo menjadi local.repo, pastikan extensionnya .repo

[root@localhost ~]# cp -va /etc/yum.repos.d/rhel-debuginfo.repo.bak /etc/yum.repos.d/local-repo.repo

6. Kemudian kita edit local.repo menjadi seperti ini :

[root@localhost yum.repos.d]#vi /etc/yum.repos.d/local-repo.repo
[local-repo-cd-based]
name=Red Hat Enterprise Linux Server cd1
baseurl=file:///DATA/repos/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release


7. Kita clean cache dari repo yg pernah dibuat.

[root@localhost ~]# yum clean all
Loading "security" plugin
Loading "rhnplugin" plugin
Cleaning up Everything

8. Kemudian buat cache kembali

[root@localhost ~]# yum makecache
Loading "security" plugin
Loading "rhnplugin" plugin
This system is not registered with RHN.
RHN support will be disabled.
local-repo-cd-based 100% |=========================| 951 B 00:00
primary.xml.gz 100% |=========================| 767 kB 00:00
local-repo: ################################################## 2324/2324
filelists.xml.gz 100% |=========================| 2.5 MB 00:00
local-repo: ################################################## 2324/2324
other.xml.gz 100% |=========================| 6.1 MB 00:00
local-repo: ################################################## 2324/2324
Metadata Cache Created

9. Done... :)


references :


Senin, 13 Desember 2010

Bonding Ethernet di Linux

Apa sih bonding ethernet? Bonding merupakan suatu cara untuk menggabungkan secara logika beberapa interface jaringan menjadi satu. Dengan kata lain, kita akan menggabungkan beberapa bandwith ke dalam satu koneksi. Jadi jika kita menggabungkan dua interface jaringan gigabit, maka sama dengan memiliki satu buah interface jaringan dengan kecepatan 2 gigabit [0]. Kalau di Windows kita kenal dengan istilah Teaming NIC.
Berikut merupakan step by step bonding ethernet di Linux :

1. [root@localhost /]# cd /etc/sysconfig/network-scripts/

2. [root@localhost network-scripts]# vi ifcfg-eth0

DEVICE=eth0
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
PERDNS=no
BOOTPROTO=no
HWADDR=08:00:27:21:72:5D
TYPE=Ethernet

3. [root@localhost network-scripts]# vi ifcfg-eth1

DEVICE=eth1
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
PERDNS=no
BOOTPROTO=no
HWADDR=08:00:27:d2:a9:92
TYPE=Ethernet

4. [root@localhost network-scripts]# vi ifcfg-bond0

DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETWORK=192.168.1.0
NETMASK=255.255.255.0
IPADDR=192.168.1.12
USERCTL=no
GATEWAY=192.168.1.1
TYPE=Ethernet
IPV6INIT=no
PEERDNS=no

5. [root@localhost network-scripts]# vi /etc/modprobe.conf
Tambahkan pada modprobe.conf

alias bond0 bonding
options bond0 miimon=100 mode=active-backup

disini kita menggunakan mode=active-backup [1]

6. [root@localhost network-scripts]# service network restart
Shutting down interface bond0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface bond0: [ OK ]



7. [root@localhost ~]# ifconfig
bond0 Link encap:Ethernet HWaddr 08:00:27:21:72:5D
inet addr:192.168.1.12 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe21:725d/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:63 errors:0 dropped:0 overruns:0 frame:0
TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12455 (12.1 KiB) TX bytes:12737 (12.4 KiB)

eth0 Link encap:Ethernet HWaddr 08:00:27:21:72:5D
inet6 addr: fe80::a00:27ff:fe21:725d/64 Scope:Link
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:32 errors:0 dropped:0 overruns:0 frame:0
TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6502 (6.3 KiB) TX bytes:6151 (6.0 KiB)
Base address:0xd010 Memory:f0000000-f0020000

eth1 Link encap:Ethernet HWaddr 08:00:27:21:72:5D
inet6 addr: fe80::a00:27ff:fe21:725d/64 Scope:Link
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:31 errors:0 dropped:0 overruns:0 frame:0
TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5953 (5.8 KiB) TX bytes:6586 (6.4 KiB)
Base address:0xd240 Memory:f0820000-f0840000

8. Kita coba lihat hasil dari konfigurasi bonding ethernet

[root@localhost ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.2.4 (January 28, 2008)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 08:00:27:21:72:5d

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 08:00:27:d2:a9:92

Kita menggunakan bonding dengan mode active-backup ( fault tolerance ), jika terjadi masalah pada salah satu koneksi, seharusnya koneksi tetap berjalan :)

Untuk membuktikan hasil bonding ethernet sukses, anda coba putus salah satu koneksi ethernet, kemudian ping, seharusnya koneksi tidak bermasalah :)


references :

Sabtu, 27 November 2010

Tips : find kemudian compress

Awalnya cuma ingin backup document gw yang formatnya pdf semua, coba cari cara dengan perintah "find" kemudian langsung di compress pakai tar, jadilah seperti ini :

syahal@redarix:~/Download/tmp> find /home/syahal/Download/ -iname "*.pdf" | tar -cvzf backup-pdf.tar.gz -T -
tar: Removing leading `/' from member names
/home/syahal/Download/Enterprise_Agr_Singapore.pdf
/home/syahal/Download/ds-portable-zero-client-mz900.pdf
/home/syahal/Download/jadwalimsakiyahpuasaramadhan2010-UjungPandang.pdf
/home/syahal/Download/ade.pdf
/home/syahal/Download/c01805554.pdf
/home/syahal/Download/ext4-foss.pdf
/home/syahal/Download/hardware_rekomendasi.pdf
syahal@redarix:~/Download/tmp> ls -lh
total 3.8M
-rw-r--r-- 1 syahal users 3.8M 2010-11-27 16:05 backup-pdf.tar.gz

Jumat, 29 Oktober 2010

Menggunakan LVM ( Logical Volume Manager ) Linux untuk Menggabungkan harddisk atau partisi

Disini kita coba gabungkan 2 harddisk di partisi /dev/sdb1 /dev/sdc1 biar kapasitas partisi size-nya bertambah dengan LVM Linux.
1. Berikut schema partisi-nya :

mail:~ # cat /proc/partitions
major minor #blocks name

8 0 15728640 sda
8 1 12594928 sda1
8 2 3132675 sda2
8 16 1048576 sdb
8 17 497983 sdb1
8 18 498015 sdb2
8 32 2097152 sdc
8 33 497983 sdc1
8 34 498015 sdc2
8 48 3145728 sdd

2. Pertama kita buat physical volume untuk /dev/sdb1 dan /dev/sdc1 dengan pvcreate.

mail:~ # pvcreate /dev/sdb1 /dev/sdc1
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdc1" successfully created

Gunakan pvdisplay untuk melihat hasil physical volume yang tadi kita buat.

mail:~ # pvdisplay
"/dev/sdb1" is a new physical volume of "486.31 MB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 486.31 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID ESShN8-3gHC-uJl8-3PdA-wAff-RfrJ-jBZN05

"/dev/sdc1" is a new physical volume of "486.31 MB"
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size 486.31 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 84AOCW-PpD8-16rW-C0y0-TJy8-9mP5-cL9JOa

3. Lalu kita buat Volume Group, dan kita jadikan /dev/sdb1 dan /dev/sdc1 ke dalam Volume Group (VG) vg00.
Gunakan command vgcreate untuk membuat Volume Group :

mail:~ # vgcreate vg00 /dev/sdb1 /dev/sdc1
Volume group "vg00" successfully created

Gunakan vgdisplay untuk melihat hasil volume group.

mail:~ # vgdisplay
--- Volume group ---
VG Name vg00
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 968.00 MB
PE Size 4.00 MB
Total PE 242
Alloc PE / Size 0 / 0
Free PE / Size 242 / 968.00 MB
VG UUID T31hC7-FgO1-G9qB-VaqI-voTG-QC97-wDjPkM

4. Kita buat Logical Volume dengan command lvcreate :

mail:~ # lvcreate -L 968 -n /dev/vg00/lv01 vg00
Logical volume "lv01" created

Ket : lvcreate = create logical volume.
-L 968 = Alokasikan logical volume-nya sebesar 968MB
-n /dev/vg00/lv01 = Nama device block Logical Volumenya lv01
vg00 = Nama Volume Group.

Gunakan lvdisplay untuk hasil dari create logical volume :

mail:~ # lvdisplay
--- Logical volume ---
LV Name /dev/vg00/lv01
VG Name vg00
LV UUID sNQ39A-Ik2e-f2jP-HjFP-ojqP-hWOW-HwQ1rG
LV Write Access read/write
LV Status available
# open 0
LV Size 968.00 MB
Current LE 242

Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

5. Format Logical Volume dengan mkfs ( saya menggunakan ext4 untuk file system-nya ) :

mail:~ # mkfs -t ext4 /dev/vg00/lv01
mke2fs 1.41.9 (22-Aug-2009)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
61952 inodes, 247808 blocks
12390 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=255852544
8 block groups
32768 blocks per group, 32768 fragments per group
7744 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

6. Terakhir, coba mount partisi-nya :

mail:~ # mount /dev/vg00/lv01 /mnt/

Gunakan df untuk menampilkan hasil mount :

mail:~ # df -hT

Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext4 12G 3.5G 7.8G 31% /
udev tmpfs 250M 192K 250M 1% /dev
/dev/mapper/vg00-lv01
ext4 953M 18M 888M 2% /mnt

7. Agar LVM mount otomatis pada saat reboot, tambahkan entry mount point di /etc/fstab
/dev/disk/by-id/ata-VBOX_HARDDISK_VB45c0b48a-eecd7cce-part2 swap swap defaults 0 0
/dev/disk/by-id/ata-VBOX_HARDDISK_VB45c0b48a-eecd7cce-part1 / ext4 acl,user_xattr 1 1
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
debugfs /sys/kernel/debug debugfs noauto 0 0
usbfs /proc/bus/usb usbfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
/dev/vg00/lv01 /mnt ext4 defaults 0 0

8. Selesai.

Rabu, 29 September 2010

Belajar software RAID1 mirror dengan gmirror di FreeBSD

Oke, sediakan harddisk 2 buah dengan size yang sama, misal sebagai berikut
  • /dev/ad1
  • /dev/ad3
Kita format masing-masing dari harddisk melalui root :

  1. redfreebsd# dd if=/dev/zero of=/dev/ad1
  2. redfreebsd# fdisk -vBI /dev/ad1
  3. redfreebsd# bsdlabel -B -w ad1s1 auto
  4. redfreebsd# newfs /dev/ad1s1a
format juga harddisk kedua /dev/ad3 dengan step yang sama.

Untuk membuat software raid1 mirror di FreeBSD kita lewati step-step sebagai berikut :
  • Aktifkan debugging dan access informasi pada device di kern.geom.debugflags
  • redfreebsd# sysctl kern.geom.debugflags=17


  • Gunakan gmirror untuk membuat raid1 mirror
  • redfreebsd# gmirror label -v -b round-robin gm0 /dev/ad1

  • Tambahkan parameter di file /boot/loader.conf dengan geom_mirror_load="YES"
  • redfreebsd# echo "geom_mirror_load=YES" > /boot/loader.conf


  • Reboot freebsd-nya
  • redfreebsd# reboot
  • Setelah reboot, Lihat device raid1 yang sudah dibuat
  • redfreebsd# ls -l /dev/mirror/
  • Tambahkan atau insert harddisk /dev/ad3 ke raid1.
  • redfreebsd# gmirror insert gm0 /dev/ad3

  • Lihat proses pada saat gmirror menambahkan harddisk /dev/ad3 ke raid1, gambbar dibawah menunjukkan proses masih 10%.
  • redfreebsd# gmirror status
  • Setelah selesai 100% insert harddisk /dev/ad3 ke mirror raid1, kita coba mount raid1 mirror yang kita buat.
  • redfreebsd# mount /dev/mirror/gm0s1a /DATA

  • Kita tambahkan mount point di /etc/fstab, agar pada saat reboot freebsd. mirror yang kita buat automount.
  • redfreebsd# echo "/dev/mirror/gm0s1a /DATA ufs rw 1 1" >> /etc/fstab
Selesai.

Selasa, 14 September 2010

Tips : Shell Scripting - Membuat name file dengan date

Ketika anda ingin rename atau backup log file, misalnya "secure.log" menjadi nama file "Sep-14-2010-1002.log" . Kita bisa buat script kecil dengan perpaduan perintah date di linux.
Sebelumnya kita gunakan lihat parameter date itu apa saja :

syahal@redarix:~/tmp> date --help
FORMAT controls the output. Interpreted sequences are:

%% a literal %
%a locale's abbreviated weekday name (e.g., Sun)
%A locale's full weekday name (e.g., Sunday)
%b locale's abbreviated month name (e.g., Jan)
%B locale's full month name (e.g., January)
%c locale's date and time (e.g., Thu Mar 3 23:05:25 2005)
%C century; like %Y, except omit last two digits (e.g., 20)
%d day of month (e.g, 01)
%D date; same as %m/%d/%y
%e day of month, space padded; same as %_d
%F full date; same as %Y-%m-%d
%g last two digits of year of ISO week number (see %G)
%G year of ISO week number (see %V); normally useful only with %V
%h same as %b
%H hour (00..23)
%I hour (01..12)
%j day of year (001..366)
%k hour ( 0..23)
%l hour ( 1..12)
%m month (01..12)
%M minute (00..59)
%n a newline
%N nanoseconds (000000000..999999999)
%p locale's equivalent of either AM or PM; blank if not known
%P like %p, but lower case
%r locale's 12-hour clock time (e.g., 11:11:04 PM)

kita coba dengan perintah ini,

syahal@redarix:~/tmp> date +"%b-%d-%Y-%H%M"
Sep-14-2010-1027

Setelah itu, kita coba padukan hasil date untuk dijadikan nama file :

syahal@redarix:~/tmp> vi date-generator
isi scriptnya sebagai berikut :

#!/bin/bash
NOW=$(date +"%b-%d-%Y-%H%M")
LOGFILE="$NOW.log"
#Perintah dibawah bisa anda sesuaikan, dibawah hanya menampilkan hasil dari echo saja
echo $LOGFILE



simpan dengan :wq!

syahal@redarix:~/tmp> chmod +x date-generator ( agar bisa di-execute ).
syahal@redarix:~/tmp> ./date-generator
Sep-14-2010-1036.log

Selesai.

Kamis, 09 September 2010

Belajar Konfigurasi Software RAID1 Mirror di Linux

RAID, singkatan dari Redundant Array of Independent Disks merujuk kepada sebuah teknologi di dalam penyimpanan data komputer yang digunakan untuk mengimplementasikan fitur toleransi kesalahan pada media penyimpanan komputer (utamanya adalah hard disk) dengan menggunakan cara redundansi (penumpukan) data, baik itu dengan menggunakan perangkat lunak, maupun unit perangkat keras RAID terpisah.
Kata "RAID" juga memiliki beberapa singkatan Redundant Array of Inexpensive Disks, Redundant Array of Independent Drives, dan juga Redundant Array of Inexpensive Drives. Teknologi ini membagi atau mereplikasi data ke dalam beberapa hard disk terpisah. RAID didesain untuk meningkatkan keandalan data dan/atau meningkatkan kinerja I/O dari hard disk. -wiki
Jenis-jenis RAID :

- RAID level nol: Bandwith data tranfer rate dua kali lebih cepat dr 1 Harddisk, jika satu HD crash maka data akan hancur
- RAID level pertama: Data bersifat mirroring, jika ada 2 harddisk dan salah satu harddisknya crash, maka data masih tetap aman.
- RAID level kedua : Koreksi kesalahan dengan menggunakan kode Humming
- RAID level ketiga : Pengecekan terhadap disk tunggal di dalam sebuah kelompok disk.-
- RAID level keempat: Pembacaan dan penulisan secara independen
- RAID level kelima : Menyebarkan data dan paritas ke semua drive (tidak ada pengecekan terhadap disk tunggal). - wiki

Disini saya coba buat raid level 1 mirror dengan software raid mdadm di linux bukan hardware raid.

1. Sediakan 2 harddisk atau bisa gunakan VirtualBox untuk harddisk virtual, dengan masing-masing kondisi kita sudah format dengan ext4.
misal : /dev/sdb1 dan /dev/sdc1

2. Kita gunakan software raid mdadm :
mail:/# mdadm --create --verbose --level=raid1 --raid-devices=2 /dev/sdb1 /dev/sdc1



Anda bisa lihat progress pembuatan raid1 nya di /proc/mdstat
mail:/#cat /proc/mdstat


Pada gambar diatas dapat dilihat, bahwa progress pembuatan raid nya masih 6,4 %

Kita lihat detail dari /dev/md0 yang telah kita buat, gunakan perintah
mail:/#mdadm --detail /dev/md0




3. Kemudian format raid1 (/dev/md0) dengan ext4




4. Setelah selesai kita buat raid1, coba mount /dev/md0 ke directory /DATA/, dan coba dengan membuat satu file di /DATA/test.txt, apakah file tersebut benar-benar di mirror?



Pakai perintah df -h untuk melihat apa saja yang di mount.




5. Oke, setelah itu kita coba lihat apakah file test.txt yang sudah dibuat akan membuat duplikat di /dev/sdb1 dan /dev/sdc1

kita umount /dev/md0 di directory /DATA/ terlebih dahulu



kita stop device /dev/md0, gunakan perintah :
mail:/#mdadm --stop /dev/md0





kita cek struktur partisi di sistem linux-nya, terlihat bahwa /dev/md0 sudah di-deattach dan tidak terdapat dalam struktur partisi ( Gambar bawah ) . Kemudian kita coba mount partisi harddisk /dev/sdb1. Apakah ada file test.txt yang tadi kita buat di raid1 ( /dev/md0 ) ?



Ternyata pada gambar diatas terlihat bahwa test.txt terdapat di partisi /dev/sdb1.

Lalu kita lihat di partisi harddisk /dev/sdc1 ( lihat gambar bawah ). Ternyata file test.txt ada juga. Ini membuktikan bahwa raid 1 memang me-mirror-kan file test.txt yg tadi kita buat ke masing-masing partisi diharddisk /dev/sdb1 dan /dev/sdc1.




6. Kita normalkan kembali raid1.




7. Agar raid1 bisa secara automount pada saat kita reboot, hidupkan service /etc/init.d/boot.md



8. Tambahkan entry mount point di /etc/fstab.



9. Selesai :)