Posts Tagged ‘nas’

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.

Advertisements