Posts Tagged ‘linux’

Menghapus GPT Partition label pada Disk

February 13, 2015

Pernahkah anda menemukan error berikut pada saat akan menginstall Linux?

gpt error

GPT Partition Error

Ini berarti hdd anda diset menggunakan GPT (GUID Partition Table). Pada sebagian distribusi linux terkadang masih ada yang belum support GPT sehingga kita harus mengconvertnya menjadi MBR.

Berikut adalah cara mudahnya yang saya temukan pada knowledge basenya Redhat:

PERHATIAN: Perintah berikut akan menghapus semua partisi pada hdd anda, lakukan backup terlebih dahulu. Saya tidak bertanggung jawab atas kehilangan data yang terjadi karena mengikuti langkah ini.

Login ke linux rescue mode menggunakan CD installasi linux

Linux Rescue Mode

Linux Rescue Mode

 

Pada prompt shell, gunakan comand parted berikut untuk merubah label pada disk. Pada contoh berikut hdd pada system saya adalah /dev/cciss/c0d0. Kemungkinan akan berbeda pada system anda

Parted Command

Parted Command

Verifikasi lagi untuk melihat apakah disk labelnya sudah berubah

Verifikasi

Verifikasi perintah parted

Perhatikan pada baris “Partition Table: msdos” ini tandanya disk telah berhasil dirubah menjadi MBR.

Setelah disk berhasil dirubah partition tablenya maka anda bisa reboot systemnya dan melakukan install linux seperti biasa.

 

Sekian.

Advertisements

Menginstall Docker di CentOS 6.5

June 16, 2014

Setelah baru cuma sekadar baca – baca mengenai docker dan linux container, sepertinya menarik.

Akhirnya baru hari ini ada waktu untuk ngoprek coba install dan bikin – bikin docker.
Ternyata tidak sesusah keliatannya, syukurlah dokumentasi dan manual installasinya disediakan lumayan lengkap dan mudah diikuti.

Malah ada emulator-nya segala buat yang mau sekadar nyoba, dan ternyata disitu racunnya, jadi keterusan install beneran deh. 🙂

docker.com

Kali ini saya coba install di vps saya yang cuma punya memory 512MB dan disk cuma 20GB dengan sistem operasi Linux CentOS 6.5

Berikut catatannya:

Untuk CentOS 6 packet rpm docker-io ada pada repository epel, untuk menggunakan epel cukup download packet epel-release nya dialamat berikut:

http://download.fedoraproject.org/pub/epel/6/i386/repoview/epel-release.html

 

[root@dudulz-box ~]# wget http://kartolo.sby.datautama.net.id/EPEL/6/i386/epel-release-6-8.noarch.rpm
--2014-06-16 06:20:14-- http://kartolo.sby.datautama.net.id/EPEL/6/i386/epel-release-6-8.noarch.rpm
Resolving kartolo.sby.datautama.net.id... 123.255.202.74, 2403:ba00:602::1e
Connecting to kartolo.sby.datautama.net.id|123.255.202.74|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14540 (14K) [application/x-redhat-package-manager]
Saving to: âepel-release-6-8.noarch.rpmâ

100%[======================================>] 14,540 34.7K/s in 0.4s

2014-06-16 06:20:14 (34.7 KB/s) - âepel-release-6-8.noarch.rpmâ

Install package epel-release nya:

[root@dudulz-box ~]# rpm -ivh epel-release-6-8.noarch.rpm
warning: epel-release-6-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing... ########################################### [100%]
1:epel-release ########################################### [100%]

Sekarang coba cari package docker-io:

[root@dudulz-box ~]# yum search docker-io
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/metalink | 13 kB 00:00
* base: mirrors.kernel.org
* epel: mirrors.kernel.org
* extras: mirrors.kernel.org
* updates: mirrors.kernel.org
epel | 4.4 kB 00:00
epel/primary_db | 6.2 MB 00:00
epel/pkgtags | 1.0 MB 00:00
============================ N/S Matched: docker-io ============================
docker-io.x86_64 : Automates deployment of containerized applications

Name and summary matches only, use "search all" for everything.

Ok, sudah ketemu. Mari mulai kita install docker-io nya sekarang:

[root@dudulz-box ~]# yum install docker-io
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.kernel.org
* epel: mirrors.kernel.org
* extras: mirrors.kernel.org
* updates: mirrors.kernel.org
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package docker-io.x86_64 0:0.11.1-4.el6 will be installed
--> Processing Dependency: xz for package: docker-io-0.11.1-4.el6.x86_64
--> Processing Dependency: lxc for package: docker-io-0.11.1-4.el6.x86_64
--> Processing Dependency: libcgroup for package: docker-io-0.11.1-4.el6.x86_64
--> Running transaction check
---> Package libcgroup.x86_64 0:0.40.rc1-5.el6_5.1 will be installed
---> Package lxc.x86_64 0:0.9.0-2.el6 will be installed
--> Processing Dependency: liblxc.so.0()(64bit) for package: lxc-0.9.0-2.el6.x86 _64
---> Package xz.x86_64 0:4.999.9-0.3.beta.20091007git.el6 will be installed
--> Running transaction check
---> Package lxc-libs.x86_64 0:0.9.0-2.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
docker-io x86_64 0.11.1-4.el6 epel 4.4 M
Installing for dependencies:
libcgroup x86_64 0.40.rc1-5.el6_5.1 updates 125 k
lxc x86_64 0.9.0-2.el6 epel 78 k
lxc-libs x86_64 0.9.0-2.el6 epel 116 k
xz x86_64 4.999.9-0.3.beta.20091007git.el6 base 137 k

Transaction Summary
================================================================================
Install 5 Package(s)

Total download size: 4.9 M
Installed size: 24 M
Is this ok [y/N]: y
Downloading Packages:
(1/5): docker-io-0.11.1-4.el6.x86_64.rpm | 4.4 MB 00:00
(2/5): libcgroup-0.40.rc1-5.el6_5.1.x86_64.rpm | 125 kB 00:00
(3/5): lxc-0.9.0-2.el6.x86_64.rpm | 78 kB 00:00
(4/5): lxc-libs-0.9.0-2.el6.x86_64.rpm | 116 kB 00:00
(5/5): xz-4.999.9-0.3.beta.20091007git.el6.x86_64.rpm | 137 kB 00:00
--------------------------------------------------------------------------------
Total 32 MB/s | 4.9 MB 00:00
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOK EY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Importing GPG key 0x0608B895:
Userid : EPEL (6)
Package: epel-release-6-8.noarch (installed)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : libcgroup-0.40.rc1-5.el6_5.1.x86_64 1/5
Installing : lxc-libs-0.9.0-2.el6.x86_64 2/5
Installing : lxc-0.9.0-2.el6.x86_64 3/5
Installing : xz-4.999.9-0.3.beta.20091007git.el6.x86_64 4/5
Installing : docker-io-0.11.1-4.el6.x86_64 5/5
Verifying : xz-4.999.9-0.3.beta.20091007git.el6.x86_64 1/5
Verifying : lxc-libs-0.9.0-2.el6.x86_64 2/5
Verifying : docker-io-0.11.1-4.el6.x86_64 3/5
Verifying : libcgroup-0.40.rc1-5.el6_5.1.x86_64 4/5
Verifying : lxc-0.9.0-2.el6.x86_64 5/5

Installed:
docker-io.x86_64 0:0.11.1-4.el6

Dependency Installed:
libcgroup.x86_64 0:0.40.rc1-5.el6_5.1
lxc.x86_64 0:0.9.0-2.el6
lxc-libs.x86_64 0:0.9.0-2.el6
xz.x86_64 0:4.999.9-0.3.beta.20091007git.el6

Complete!

Sampai disini proses installasinya sudah selesai, langkah berikutnya adalah menjalankan service docker.

Cek versi docker:

[root@dudulz-box ~]# docker version
Client version: 0.11.1
Client API version: 1.11
Go version (client): go1.2.1
Git commit (client): fb99f99/0.11.1
2014/06/16 06:21:41 Get http:///var/run/docker.sock/v1.11/version: dial unix /var/run/docker.sock: no such file or directory

Jalankan service docker:

[root@dudulz-box ~]# service docker start
Starting cgconfig service: [ OK ]
Starting docker: [ OK ]

Masukkan service docker ke dalam start up script jika mau langsung up bila servernya restart:

[root@dudulz-box ~]# chkconfig docker on

Setelah selesai semua, nah disinilah mulai menarik.
Tapi sayang kalau saya lanjutkan disini, bersambung aja deh 😀

Salam.

Command line speedtest

April 19, 2014

Untuk mengetest kecepatan koneksi internet, biasanya saya menggunakan site yang sudah sangat populer yaitu speedtest.net yang dapat diakses menggunakan browser internet. Untuk mengakses site ini kita memerlukan flash yang harus terinstall pada browser.

Speedtest Result

Bagaimana jika kita ingin melakukan speedtest pada server kita yang tidak menggunakan GUI?

Berikut adalah yang saya lakukan:

Download script speedtest-cli
[onay@dudulz-box ~]$ wget -O speedtest-cli https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
--2014-04-19 02:36:06-- https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
Resolving raw.github.com... 103.245.222.133
Connecting to raw.github.com|103.245.222.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 20043 (20K) [text/plain]
Saving to: âspeedtest-cliâ

100%[==============================================================================================================================>] 20,043 --.-K/s in 0s

2014-04-19 02:36:07 (60.9 MB/s) - âspeedtest-cliâ

Berikan permissions untuk execute pada scriptnya
[onay@dudulz-box ~]$ chmod +x speedtest-cli

Execute script untuk mulai melakukan speedtest
[onay@dudulz-box ~]$ ./speedtest-cli
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from DigitalOcean (XXX.XXX.XXX.XXX)...
Selecting best server based on ping...
Hosted by SGIX (Singapore) [6.25 km]: 22.014 ms
Testing download speed........................................
Download: 408.71 Mbit/s
Testing upload speed..................................................
Upload: 82.48 Mbit/s
[onay@dudulz-box ~]$

Hasil speedtest untuk donwload/upload ada pada bagian yang saya cetak tebal pada output diatas.

Thanks to https://github.com/sivel yang sudah bersusah payah membuat scriptnya dan memberikannya gratis untuk public.

Wasallam.

Cara mudah mensalin ssh-key ke server remote

November 4, 2013

Salah satu ciri yang membedakan antara unix dengan linux adalah, di Linux banyak sekali tools2 kecil untuk memudahkan suatu task.

Contohnya adalah tools berikut untuk mensalin ssh-key ke server remote sehingga kita bisa mengakses remote server tersebut tanpa menggunakan password (password less).

ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host

Bila tanpa menggunakan tools diatas, kita harus mengcopy paste manual atau mengirim filenya secara manual keserver tujuan.

Lumayan menghemat beberapa langkah command bila menggunakan tools diatas. 🙂

[Tips] Mem-bypass alias pada command line Linux

October 8, 2012

Teman bule saya memberitahukan saya tentang tips ini. Yaitu cara untuk membypass suatu command yang sudah disetting menggunakan alias. Berikut contohnya:

[root@test1 newfolder]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

Seperti diatas, Redhat membuat default alias pada perintah rm menjadi rm -i. Sehingga apabila kita ingin menghapus suatu file menggunakan perintah rm, maka sebenarnya perintah yang dijalankan adalah rm -i, yang artinya interactive mode. Dengan options ini, setiap file yang akan kita pilih akan melakukan konfirmasi apakah kita benar ingin menghapus file ini atau tidak. Kita harus mengetikkan “y” bila ingin melanjutkan menghapus filenya.

[root@test1 newfolder]# rm newfile1
rm: remove regular empty file `newfile1'? y
[root@test1 newfolder]#

Default alias ini sebenarnya sangat berguna demi keamanan. Agar tidak terjadi menghapus file secara tidak sengaja.
Tapi bila kita sudah yakin dengan file yang akan kita hapus, dan kita tetap menginginkan perintah rm tersebut tetap dialias. Jadi yang kita inginkan saat itu adalah menjalankan perintah rm tersebut tanpa options interactive yang tentunya akan bertanya setiap file yang akan kita hapus.

[root@test1 newfolder]# ll
total 0
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile2
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile3
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile4
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile5
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile6
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile7
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile8
-rw-r--r-- 1 root root 0 Oct 8 02:19 newfile9
[root@test1 newfolder]# rm newfile*
rm: remove regular empty file `newfile2'? y
rm: remove regular empty file `newfile3'? y
rm: remove regular empty file `newfile4'? y
rm: remove regular empty file `newfile5'? y
rm: remove regular empty file `newfile6'? y
rm: remove regular empty file `newfile7'? y
rm: remove regular empty file `newfile8'? y
rm: remove regular empty file `newfile9'? y
[root@test1 newfolder]# ll
total 0
[root@test1 newfolder]#

Untuk itu yang kita perlukan adalah mem-bypass alias tersebut. Berikut cara mudahnya:

[root@test1 newfolder]# ll
total 0
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile1
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile2
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile3
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile4
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile5
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile6
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile7
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile8
-rw-r--r-- 1 root root 0 Oct 8 02:31 newfile9
[root@test1 newfolder]# \rm newfile*
[root@test1 newfolder]# ll
total 0
[root@test1 newfolder]#

Ya benar, cukup gunakan “\” backslash untuk membypass perintah rm tersebut agar tidak menggunakan alias rm -i.

Semoga bermanfaat. 🙂

Mengkonfigurasi iscsi disk dengan multipath

September 16, 2012

Multipath pada external storage berfungsi sebagai redudansi link. Jadi jika kabel atau salah satu jaringan terputus maka external storage masih tetap bisa diakses.

iscsi sebagai external storage murah meriah (baca: nas) 🙂 pun bisa dibuat multipath. Dengan begitu data anda akan tetap aman jika salah satu link putus.
Berikut adalah yang saya lakukan mengkonfigurasi iscsi via multipathing.

Environment yang saya pakai adalah Virtual Box dengan 2 guest OS RHEL 5.8. Satu sebagai iscsi target dan satu lagi sebagai iscsi initiator.

Hostname: server1(iscsi-target) dan node1(iscsi-initiator)

Pada server1 terdapat 3 nic (eth[0-2]) dengan fungsi eth0 sebagai management, eth1 sebagai network1 dan eth2 sebagai network2.

Pada node1 terdapat 3 nic (eth[0-2]) dengan fungsi eth0 sebagai management, eth1 sebagai network1 dan eth2 sebagai network2.

Berikut /etc/hosts pada keduanya:

[root@node1 data]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost

### server1 ###
192.168.56.3    server1.example.com     server1
192.168.100.10  iscsi-eth1
192.168.200.10  iscsi-eth2

### node1 ###
192.168.56.4   node1.example.com       node1
192.168.100.11  node1-iscsi1
192.168.200.11  node1-iscsi2

Setelah jaringan sudah siap, lanjutkan dengan menginstall iscsi-target pada server1:

Server1:

(Catatan: Sebelumnya siapkan disk partisi yg akan digunakan sebagai disk yg akan diassign ke node1, pada tutorial ini saya menggunakan salah satu partisi lvm)

[root@server1 ~]# yum install scsi-target-utils -y

(Konfigurasikan /etc/tgt/targets.conf menjadi seperti dibawah)

[root@server1 ~]# cat /etc/tgt/targets.conf | grep -v "#"

default-driver iscsi

<target iqn.2012-09.com.example:server.target1>
backing-store /dev/vg_iscsi/lv_target1
</target>

initiator-address 192.168.100.11
initiator-address 192.168.200.11

[root@server1 ~]#
[root@server1 ~]# chkconfig tgtd on
[root@server1 ~]# service tgtd start
Starting SCSI target daemon: Starting target framework daemon
[root@server1 ~]#

Selesai pada server1, lanjut konfigurasi pada node1.

Node1:
(install paket iscsi initiator)

[root@node1 ~]# yum install iscsi-initiator-utils -y
[root@node1 ~]# service iscsi start
[root@node1 ~]# chkconfig iscsi on

(cek apakah bisa mengenali disk dari iscsi target melalui network1 iscsi-eth1)

[root@node1 ~]# iscsiadm -m discovery -t sendtargets -p iscsi-eth1
192.168.100.10:3260,1 iqn.2012-09.com.example:server.target1

(cek apakah bisa mengenali disk dari iscsi target melalui network1 iscsi-eth2)

[root@node1 ~]# iscsiadm -m discovery -t sendtargets -p iscsi-eth2
192.168.200.10:3260,1 iqn.2012-09.com.example:server.target1

(add disk via network1)

[root@node1 ~]# iscsiadm -m node -T iqn.2012-09.com.example:server.target1 -p iscsi-eth1 -l
Logging in to [iface: default, target: iqn.2012-09.com.example:server.target1, portal: 192.168.100.10,3260] (multiple)
Login to [iface: default, target: iqn.2012-09.com.example:server.target1, portal: 192.168.100.10,3260] successful.

(verify apakah disk sudah dikenali, disk dikenali sebagai /deb/sdb)

[root@node1 ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        1044     8281507+  8e  Linux LVM

Disk /dev/sdb: 1048 MB, 1048576000 bytes
33 heads, 61 sectors/track, 1017 cylinders
Units = cylinders of 2013 * 512 = 1030656 bytes

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

(add disk via network2)

[root@node1 ~]# iscsiadm -m node -T iqn.2012-09.com.example:server.target1 -p iscsi-eth2 -l

(verify apakah disk sudah dikenali, disk dikenali sebagai /dev/sdb dan /dev/sdc)

[root@node1 ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        1044     8281507+  8e  Linux LVM

Disk /dev/sdb: 1048 MB, 1048576000 bytes
33 heads, 61 sectors/track, 1017 cylinders
Units = cylinders of 2013 * 512 = 1030656 bytes

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

Disk /dev/sdc: 1048 MB, 1048576000 bytes
33 heads, 61 sectors/track, 1017 cylinders
Units = cylinders of 2013 * 512 = 1030656 bytes

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

[root@node1 ~]#

Sampai langkah ini configure iscsi initiator sudah selesai, dua disk sudah dikenali melalui 2 jalur network yang berbeda.
Sebenarnya disk tersebut adalah disk yang sama dari iscsi-target disk: “iqn.2012-09.com.example:server.target1”

(scsi_id kedua disk sama, menunjukkan bahwa kedua disk tersebut adalah sama)

[root@node1 ~]# scsi_id -gus /block/sdb
1IET_00010001
[root@node1 ~]# scsi_id -gus /block/sdc
1IET_00010001

Langkah selanjutnya adalah menggabungkan kedua disk tadi menggunakan multipath.

(Config multipath.conf menjadi seperti dibawah)

[root@node1 ~]# cat /etc/multipath.conf | grep -v "#"
defaults {
user_friendly_names yes
}
[root@node1 ~]#

(jalankan service multipathd)

[root@node1 ~]# service multipathd start
Starting multipathd daemon:                                [  OK  ]
[root@node1 ~]# chkconfig multipathd on

(verify apakah multipath sudah aktif)

[root@node1 ~]# multipath -ll
mpath1 (1IET_00010001) dm-2 IET,VIRTUAL-DISK
[size=1000M][features=0][hwhandler=0][rw]
\_ round-robin 0 [prio=1][active]
\_ 1:0:0:1 sdb 8:16  [active][ready]
\_ round-robin 0 [prio=1][enabled]
\_ 2:0:0:1 sdc 8:32  [active][ready]

Sampai langkah ini kedua disk sudah dimultipath menjadi satu “mpath1”
Langkah selanjutnya adalah membuat FileSystem dan memountnya.
Saya membuatnya menggunakan LVM:

[root@node1 ~]# pvcreate /dev/mapper/mpath1
Writing physical volume data to disk "/dev/mapper/mpath1"
Physical volume "/dev/mapper/mpath1" successfully created
[root@node1 ~]# pvs
PV                VG         Fmt  Attr PSize    PFree
/dev/mpath/mpath1            lvm2 a--  1000.00M 1000.00M
/dev/sda2         VolGroup00 lvm2 a--     7.88G       0

[root@node1 ~]# vgcreate vg_iscsi /dev/mapper/mpath1
Volume group "vg_iscsi" successfully created
[root@node1 ~]# vgs
VG         #PV #LV #SN Attr   VSize   VFree
VolGroup00   1   2   0 wz--n-   7.88G      0
vg_iscsi     1   0   0 wz--n- 996.00M 996.00M

[root@node1 ~]# lvcreate -n lv_target1 -L 512M vg_iscsi
Logical volume "lv_target1" created
[root@node1 ~]# lvs
LV         VG         Attr   LSize   Origin Snap%  Move Log Copy%  Convert
LogVol00   VolGroup00 -wi-ao   6.88G
LogVol01   VolGroup00 -wi-ao   1.00G
lv_target1 vg_iscsi   -wi-ao 512.00M
[root@node1 ~]# mkfs.ext3 /dev/vg_iscsi/lv_target1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
64 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

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

This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@node1 ~]#

Sampai sini FS sudah selesai dan tinggal lakukan mounting agar FS tersebut dapat digunakan untuk diisi data.

[root@node1 ~]# mkdir /data
[root@node1 ~]# mount /dev/mapper/vg_iscsi-lv_target1 /data/
[root@node1 ~]#
[root@node1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6.7G  1.7G  4.7G  27% /
/dev/sda1              99M   12M   82M  13% /boot
tmpfs                 252M     0  252M   0% /dev/shm
/dev/mapper/vg_iscsi-lv_target1
496M   19M  452M   4% /data

Terakhir mari kita coba menulis file pada FS tersebut.

[root@node1 ~]# cd /data/
[root@node1 data]# ll
total 12
drwx------ 2 root root 12288 Sep 16 01:02 lost+found
[root@node1 data]# touch newfile
[root@node1 data]# ll
total 12
drwx------ 2 root root 12288 Sep 16 01:02 lost+found
-rw-r--r-- 1 root root     0 Sep 16 06:42 newfile
[root@node1 data]#

Selesai. Untuk melakukan testing, kita bisa coba untuk memutuskan salah satu network yg digunakan dalam multipath.
Pada virtual box bisa dilakukan melalui menu:
Klik pada guest os node1 > Settings > Network > Adapter 2 > Cable conected #uncheck untuk memutuskan koneksi

Lalu pada node1 periksa kembali multipathnya:

[root@node1 data]# multipath -ll
sdb: checker msg is "readsector0 checker reports path is down"
mpath1 (1IET_00010001) dm-2 IET,VIRTUAL-DISK
[size=1000M][features=0][hwhandler=0][rw]
\_ round-robin 0 [prio=0][active]
\_ 1:0:0:1 sdb 8:16  [failed][faulty]
\_ round-robin 0 [prio=1][enabled]
\_ 2:0:0:1 sdc 8:32  [active][ready]

Terlihat status disk pada sdb adalah [failed] yg berarti koneksi pada network1 putus
Verify apakah external storage masih bisa diakses dan berfungsi dengan baik.

[root@node1 data]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6.7G  1.7G  4.7G  27% /
/dev/sda1              99M   12M   82M  13% /boot
tmpfs                 252M     0  252M   0% /dev/shm
/dev/mapper/vg_iscsi-lv_target1
496M   19M  452M   4% /data
[root@node1 data]# touch newfile2
[root@node1 data]# ll
total 12
drwx------ 2 root root 12288 Sep 16 01:02 lost+found
-rw-r--r-- 1 root root     0 Sep 16 06:42 newfile
-rw-r--r-- 1 root root     0 Sep 16 06:48 newfile2
[root@node1 data]#

Selesai, sekarang iscsi disk sudah dimultipath.

Salam.

Menambahkan ‘date’ pada nama file

March 11, 2010

Sometimes kita ingin membackup secara otomatis menggunakan script. Misalnya membackup suatu database mysql setiap hari. Yang mana nama filenya sesuai dengan tanggal file tersebut dibackup. Cara yg gampang adalah dengan menambahkan command date pada nama filenya. Berikut contoh scriptnya:

#!/bin/bash

# Mysql backup script
# by. onay

BACKUPDIR=/backup/mysql/apps
DBNAME=appsbak

/usr/bin/mysqldump -R -u user -pdbpassword $DBNAME > $BACKUPDIR/$DBNAME-$(date +%d-%m-%Y).sql

Script tersebut bisa dijalankan setiap hari melalui crontab. Hasilnya adalah file dengan nama filenya terdapat tanggal file tersebut dibackup:

# ls /backup/mysql/apps
appsbak-10-03-2010.sql
appsbak-11-03-2010.sql

Yang mau saya bahas adalah pada command date sendiri. Perintah date adalah untuk menampilkan tanggal. Default outputnya adalah:

[root@dudulz-box ~]# date
Thu Mar 11 15:06:52 WIT 2010

Perintah date ini bisa juga ditambahkan options agar format tanggal outputnya sesuai dengan yang kita inginkan.

[root@dudulz-box ~]# date +%d-%m-%Y
11-03-2010
[root@dudulz-box ~]# date +%d_%m_%Y
11_03_2010
[root@dudulz-box ~]# date +%d%m%Y
11032010
[root@dudulz-box ~]# date +%d-%m-%y
11-03-10

Bisa juga menampilkan sekalian dengan jamnya.

[root@dudulz-box ~]# date +%d-%m-%Y/%T
11-03-2010/15:14:54

Format yang lengkapnya bisa dilihat dari manual pagesnya. Fungsi dari date ini, salah satunya seperti yang saya contohkan diatas adalah untuk diredirect kenama file sebagai keperluan backup.

Selamat mencoba.

Alias Command

March 8, 2010

Bosen bangeet ngetikin perintah yang sama berulang – ulang kali. Apa lagi perintahnya lumayan ribet dan bikin tangan kriting. Sukurlah ada command alias dilinux. Lumayan ga bikin tangan pegel lagi. Perintahnya cukup sederhana, cuma alias cmdalias=’real cmd’. Begitulah kira – kira. Untuk lebih lengkapnya, bisa langsung merujuk ke man alias. 😆

Contohnya:

# alias javaps='ps -ef | grep [j]ava'

Sekarang untuk menjalankan command diatas cukup jalankan:

# javaps

Tadaaa.. Mantaab.. Hemat energi.. 😎

Tinggal masukkin ke rc.local atau .bash_profile atau /etc/profile terserah yg mana yg disuka. Biar command aliasnya tetep selalu ada setiap anda login.

Salam.

Apa itu umask?

February 5, 2010

Here we go. Another simply note’s.

Setiap pagi sebelum berangkat kerja saya suka mengobrol tentang linux dengan teman sekamar saya. Kebetulan beliau sedang semangat2nya belajar linux. Dan pagi itu dia bertanya tentang apa itu umask? Emmn.. Saya tidak bisa langsung menjelaskannya saat itu. Karena saya juga sudah lupa detail perhitungannya. Yang saya jelaskan adalah fungsi umask sebagai default permission disystem2 unix/linux.

So, buat teman saya. With a little googling, here’s the explanation about what you ask. Have a nice read.. 😉

Umask:
Pernahkah terbayang, begitu kita membuat suatu file dilinux misal $ touch coba.tes maka hak aksesnya akan seperti bagaimana? Dan mengapa bisa hak aksesnya langsung seperti itu? Seperti contoh:

[onay@sandradewi ~]$ touch coba.tes
[onay@sandradewi ~]$ ll
total 0
-rw-rw-r-- 1 onay onay 0 Feb 5 20:48 coba.tes

Permission pada file coba.tes yang baru saya buat adalah -rw-rw-r-- atau bisa juga disebut 664. Yang jadi pertanyaan adalah, mengapa permissionnya bisa 644, kenapa bukan 755 atau yang lainnya?

Pada wikipedia dijelaskan Umask, singkatan dari (user mask) adalah sebuah command pada environment posix yang berfungsi untuk menset hak akses dari file yang akan dibuat oleh proses yang berjalan saat itu. Umask, memberi batasan hak akses untuk file dan direktori yang dibuat oleh suatu proses. Ketika shell atau program lain membuat suatu file atau direktori, umask memberikan permission tertentu.

Kembali kepertanyaan saya sebelumnya, jawabanya adalah karena sudah didefine default permissionnya dengan menggunakan umask. Pada mesin redhat yang saya gunakan untuk testing ini, settingan default permissionnya terdapat pada file /etc/bashrc. Pada file tersebut disetting umask 002 untuk user dan umask 022 untuk root. Nah, apa ini 002 atau 022?

Begini ceritanya.. 😆

Ada dua macam cara pengoperasian umask. Yang pertama menggunakan symbolic umask dan yang kedua menggunakan nomer octal. Berikut saya berikan kedua contohnya:

Symbolic umask ~
Symbolic umask, menggunakan simbol huruf u=rwx,g=rwx dan o=rwx. Yang artinya u = user, g = group dan o = others. Sedangkan rwx adalah read, write dan execute. Sama seperti pada command chmod. Contohnya:

[onay@sandradewi ~]$ umask u=rwx,g=rwx,o=
[onay@sandradewi ~]$ mkdir co
[onay@sandradewi ~]$ touch ba
[onay@sandradewi ~]$ ll
total 4
-rw-rw---- 1 onay onay 0 Feb 5 23:27 ba
drwxrwx--- 2 onay onay 4096 Feb 5 23:27 co

Dengan perintah diatas, maka setiap file yang dibuat menjadi -rw-rw—- dan folder yang dibuat menjadi drwxrwx—. Yang jadi pertanyaan adalah, kenapa pada file menjadi -rw-rw—-, bukannya -rwxrwx—? Ternyata ada perlakuan berbeda pada umask untuk file dan folder. Untuk folder maksimal permissionnya adalah u=rwx, g=rwx, o=rwx atau 777 sedangkan pada file adalah u=rw, g=rw, o=rw atau 666. Jadi walaupun pada command diatas umask adalah rwx maka hasilnya akan menjadi rw untuk file dan baru rwx untuk folder.

Octal umask ~
Octal umask, menggunakan 4 digit bilangan octal. Tapi pada prosesnya hanya 3 digit yang dipakai. Untuk file, maksimal adalah 0666 dan 0777 untuk folder. Contohnya:

[onay@sandradewi ~]$ umask 000
[onay@sandradewi ~]$ mkdir co
[onay@sandradewi ~]$ touch ba
[onay@sandradewi ~]$ ll
total 4
-rw-rw-rw- 1 onay onay 0 Feb 6 01:19 ba
drwxrwxrwx 2 onay onay 4096 Feb 6 01:19 co

000 pada octal umask ini maksudnya adalah rw atau 666 untuk file dan rwx atau 777 untuk folder. Cara perhitungannya adalah:
Untuk file, maksimal adalah 666. Jadi bila octalnya 002 maka real permissionnya menjadi rw,rw,r atau 6-0,6-0,6-2 = 664. Untuk folder adalah 777, bila octalnya 022 maka real permissionnya menjadi rwx,rx,rx atau 7-0,7-2,7-2 = 755. Gampang kan? 😎

Begitulah kira2. Bila masih kurang jelas bisa merujuk langsung referensi saya disini dan disini. Semoga mengerti dan semoga bermanfaat.

Have a nice weekend!!

Cheers. 😛

My First Webinar

January 15, 2010

Berawal dari email yang dikirim Red Hat ke inbox saya. Ternyata adalah undangan untuk menghadiri webinar. Sebelumnya saya juga sudah beberapa kali mendapat undangan webinar dan saya kurang tertarik mengikutinya. Tapi kali ini, saya melihat materi webminar yang cukup menarik untuk saya. Maka tidak ada salahnya kalau saya coba untuk ikut, sekalian mau tau juga bagaimana sih rasanya mengikuti webminar ini. ❓

Sebagai informasi, Webinar yang saya terjemahkan dari wikipedia, adalah Web conferencing yang biasanya digunakan untuk melakukan live meeting, training, atau presentasi via internet. Para peserta mengikutinya dengan cara menggunakan aplikasi desktop atau aplikasi web menggunakan browser dimana para peserta mengakses meeting tersebut dengan cara mengklik link yang didistribusikan melalui email ( meeting invitation ) untuk memasuki conference.

Begitu juga yang saya lakukan. Saya mendapat undangan via email, dan harus saya konfirmasi apakah saya mau ikut atau tidak. Setelah saya melakukan konfirmasi, maka akan ada email balasan yang isinya waktu pelaksanan, password login dan link untuk mengakses webinar tersebut.

Webinar yang saya ikuti kali ini adalah tentang cloud computing. Dengan judul webinarnya: Cluster To Cloud Evolving HPC Solutions Using Open Source Software & Industry-Standard Hardware. Red Hat dan Hewlett-Packard bekerjasama memenuhi kebutuhan teknologi cloud dan hpc dengan cara mengoptimasi open source software seperti kernel-based virtualization, Real Time Linux, AMQP messaging, dan grid workload management yang powerful pada modular hardware seperti HP BladeSystem.
Read the rest of this entry »