Minggu, 07 Oktober 2012

Riwayat Versi freebsd zfs mirror raidz maupun non = tutorial step by step


Zfs hemm.. lumayan bingung ngejelasin nya ya... coba googling aja yach..

artikle ini aku tulis sesuai dengan pemahaman ku...
di zfs dikenal dengan istilah tank.. atau tandon...

kelebihane buanyak banget.. salah satu keunggulan nya jika listrik mati / padam maka jarang bermasalah untuk sebuah mesin proxy.. CMiiw yach.. karena aku belum pernah compare.

 di Zfs di kenal dengan system Tank..
dalam sebuah pc kita bisa memiliki banyak tank.. atau pun dengan 1 tank dengan banyak HDD..

SSD adalah HDD tercepat menurut beberapa sumber. tapi kita akan di pusingkan dengan harganya... yang cukup bisa di bilang mahal banget..

kita ngakalin nya dengan system mirror atau raid... dan di zfs kita akan di permudah dalam penempatannya...

contoh penerapan...
kita ingin membangun sebuah mesin proxy. tapi membutuhkan kecepatan baca tulis. dimana kita ingin menerapkan Raid. tapi kita kesulitan dalam penerapannya. dikarenakan kita belum tahu. dan gak ada yang pernah share dalam versi yang mudah di pahami....
2 hdd kita raid maka akan di namakan mirror......
3 hdd kita raid maka akan di namakan raid.

contoh.......... ilustrasi kita menggunakan 2 HDD dengan beda kecepatan.
a. HD 250Gb
b. HD 500Gb
jika kita raid maka akan terbaca cuma 250Gb di zfs.  dan di zfs maka akan di namakan mode mirror
kecepatan baca tulis akan naik signifikan.

contoh.......... ilustrasi kita menggunakan 3 HDD dengan beda kecepatan.
a. HD 250GB.
b. HD 500GB.
c. HD 1000Gb.
jika kita raid akan terbaca tetep 250Gb di zfs. karena menggunakan lebih dari 2 hdd.. maka modenya Raid.

kesimpulan nya... untuk mode Raid untuk kejar kecepatan. gunakan ukuran yang sama. karena jika gak sama HDD nya maka akan dianggap sampah oleh system Raid tersebut.

okey langsung praktek aja ya... kita download source nya yach..... dan burn ke cd.
#32bit support di bawah 4GB
http://mfsbsd.vx.sk/files/iso/mfsbsd-se-9.0-RELEASE-i386.iso
#64bit support 4GB lebih
http://mfsbsd.vx.sk/files/iso/mfsbsd-se-9.0-RELEASE-amd64.iso
=============================
di sisi Mikrotik
rename dulu interface yang mau kita gunakan untuk proxy dengan nama ==>
interface   : proxy
ip mikrotik :192.168.168.253
ip proxy :192.168.168.254 maka gateway ntar ke 192.168.168.253

===============================================
setting mikrotik
===============================================
/ip address
add address=192.168.168.253/24 comment=Proxy disabled=no interface=proxy network=192.168.168.0

/ip pool
add name=Proxy ranges=192.168.168.254

/ip dhcp-server
add add-arp=yes address-pool=Proxy authoritative=after-2sec-delay bootp-support=static disabled=no interface=proxy lease-time=3d name=Server

/ip dhcp-server network
add address=192.168.168.0/24 comment="Proxy card onboard" dhcp-option="" dns-server="" gateway=192.168.168.253 ntp-server="" wins-server=""



===============================================
disini asumsi dial mikrotik dengan ppoe dengan nama default dial nya  ==> pppoe-out1

#jika mau di remote dari luar saran ku port diganti ya.. dari 22 ke 2222
/ip firewall nat
add action=dst-nat chain=dstnat comment="Remot SSH" disabled=no dst-port=2222 in-interface=pppoe-out1 protocol=tcp to-addresses=192.168.168.254 to-ports=22

#jika ada yang berusaha masuk ke port 22 maka akan kita masukkan ke koleksi ip orang yang mau masuk...
/ip firewall nat
add action=add-src-to-address-list address-list=LOG_SSH address-list-timeout=1d chain=dstnat disabled=no dst-port=22 in-interface=pppoe-out1 protocol=tcp

jika kita setting seperti diatas.. maka jika kita colokin suatu perangkat maka... otomatis akan dapet ip dari mikrotik 192.168.168.254.......
===============================================
#proses instalasi... booting dari CD
udah di download yach.. dan udah di burn...

jika udah.. masukin cd nya.. set booting ke arah cd room yach... otomatis dia akan booting dan dapet ip dari mikrotik dengan ip yang kita tentukan yaitu 192.168.168.254.

download putty dan winscp. dan kita bisa login ke server kita dengan pc lain. (dengan asumsi udah paham itu putty dan winscp)
# local 192.168.168.254 port 22 user root dan password mfsroot.
# luar jaringan maka... ip publik port 2222 user root pass mfsroot

===============================================

udah kebuka kan di putty... kita butuh informasi penting 3 opsi.. yaitu HDD cdroom dan interface card.
caranya:
yoyoxnet# dmesg
ada0: <ST3250318AS CC38> ATA-8 SATA 2.x device
ada0: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
ada0: 238475MB (488397168 512 byte sectors: 16H 63S/T 16383C)
ada0: Previously was known as ad10
ada1 at ata4 bus 0 scbus4 target 0 lun 0
ada1: <ST2000DL003-9VT166 CC32> ATA-8 SATA 3.x device
ada1: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
ada1: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
ada1: Previously was known as ad12
cd0 at ata6 bus 0 scbus6 target 0 lun 0
cd0: <ATAPI iHAS122   8 3L04> Removable CD-ROM SCSI-0 device
cd0: 150.000MB/s transfers (SATA 1.x, UDMA5, ATAPI 12bytes, PIO 8192bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed

===============================================
hasil diatas hasil capture hardware kita..... dan menentukan dalam pembuatan script nya... karena kita menggunakan auto yach..
data data yang kita dapet....
ada0 <=== HDD pertama 250GB
ada1 <=== HDD kedua 2TB
cd0  <=== CD ROOM

===============================================
untuk versi reges bisa mauk kesini....
http://reges007.wordpress.com/2011/03/27/install-file-system-zfs-di-freebsd/
===============================================
disini kita gunakan versi saya sendiri....
jalan kan perintah seperti ini.....
yoyoxnet# gpart show
=>       34  488397101  ada0  GPT  (232G)
         34        128     1  freebsd-boot  (64k)
        162   67108864     2  freebsd-swap  (32G)
   67109026  421288109     3  freebsd-zfs  (200G)

=>        34  3907029101  ada1  GPT  (1.8T)
          34           6        - free -  (3.0k)
          40  3907029088     1  freebsd-zfs  (1.8T)
  3907029128           7        - free -  (3.5k)

dan kita harus hancurkan seluruh isi hdd tersebut
ada0 <=== HDD pertama 250GB
ada1 <=== HDD kedua 2TB
gunakan script ya... tinggal sesuai kan arah nya aja..  :)
untuk hdd petama
yoyoxnet# dd if=/dev/zero of=/dev/ada0 bs=1m count=1

untuk hdd kedua
yoyoxnet# dd if=/dev/zero of=/dev/ada1 bs=1m count=1
===============================================
Auto install menggunakan zfs install

masuk ke cdroom
cd0  <=== CD ROOM
yoyoxnet# mount_cd9660 /dev/cd0 /media

lihat isinya ya..... karena aku menggunakan versi 64 bit maka akan muncul seperti ini
yoyoxnet# ls /media
9.0-RELEASE-amd64.tar.xz
===============================================
Proses instalasi HDD
===============================================
===============================================
#jika menggunakan 1 harddisk maka script nya seperti ini ===> 4G (2x memory internal)
ada0 <=== HDD pertama 250GB

yoyoxnet#  zfsinstall -d ada0 -t /media/9.0-RELEASE-amd64.tar.xz -s 4G
dan jangan lupa jalan kan script ini untuk keluar dari cd room
yoyoxnet# chroot /mnt


===============================================
#mode mirro raid untuk mencapai maksimum baca tulis recomended 2hdd. jika lebih kenaikan nya cuma 20% berdasarkan hasil googling
#jika menggunakan 2 harddisk maka script nya seperti ini ===> 4G (2x memory internal)
ada0 <=== HDD pertama 250GB
ada1 <=== HDD kedua 2TB

#2hdd mode mirror
yoyoxnet#  zfsinstall -d ada0 -d ada1 -t /media/9.0-RELEASE-amd64.tar.xz -r mirror -p tank01 -s 4G

#3hdd mode Raidz
yoyoxnet#  zfsinstall -d ada0 -d ada1 -d ada3 -t /media/9.0-RELEASE-amd64.tar.xz -r mirror -p tank01 -s 4G

dan jangan lupa jalan kan script ini untuk keluar dari cd room
yoyoxnet# chroot /mnt

============================
format script
zfsinstall [-h] -d geom_provider [-d geom_provider ...] -t archive_file [-r mirror|raidz] [-m mount_point] [-p zfs_pool_name] [-V zfs_pool_version] [-s swap_partition_size] [-z zfs_partition_size] [-c] [-l] [-4]
============================

jika menggunakan lebih dari dari satu hdd tapi tidak mau mode Mirror atau mode raidz... maka kita harus membuat 2 hdd harus bebeda tank... HDD pertama akan kita kasih nama tank01 dan hdd ke 2 dikasih nama tank02 dalam kasus ini hasil uji coba ku berhasil dengan cara kita kerjakan HDD pertama baru kerjakan HDD ke 2.
disini target nya adalan sebesar 2.250TB
ada0 <=== HDD pertama 250GB #dikerjakan dulu
ada1 <=== HDD kedua 2TB #dikerjakan belakangan atau terakhir setelah reboot.

yoyoxnet#  zfsinstall -d ada0 -t /media/9.0-RELEASE-amd64.tar.xz -s 4G
dan jangan lupa jalan kan script ini untuk keluar dari cd room
yoyoxnet# chroot /mnt

============================
setting yang penting penting..
jagan lupa ya keluar dari cd room dulu.. kebiasaan lupa wkwkwkw...
yoyoxnet# chroot /mnt

kita gunakan mode menu aja ya... biar agak mudah..
yoyoxnet# sysinstall

maka keluar menu... ==>Configure
==>Configure ==> root password ==> isi password nya ketik 2x
==>Configure ==> Time ZOne ==> sesuaikan dengan daerah kalian
==>Configure ==> interface ==>  IPV6 NO. ==> DHCP YES
==>Configure ==> NTPDATE ==> pilih asia ya...
==>Configure ==> SSHD ==> pastikan tercentang

setelah selesai monggo keluar dari menu dengan memilih cancel.... :)
####edit pada bagian ini... dan masukkan PermitRootLogin yes caranya..
yoyoxnet# ee /etc/ssh/sshd_config
PermitRootLogin yes
####simpan    esc + a + a

reboot pc kamu... pastikan booting nya arah ke HDD pertama. :)
============================
============================

jika udah selesai dan disimpan.. selesai dach.... buat yang mau add HDD baru non mirro atau raidz.... proses instalasi belum selesai yach...
============================
============================

Instalasi di HDD ke dua
ada0 <=== HDD pertama 250GB
ada1 <=== HDD kedua 2TB

disini kita asumsikan HDD pertama (tank01 hdd ada0) udah kelar dan udah booting normal tanpa cdroom.. target kita membbuat tank02 di hdd ada1

jika masih keluar maka hancurkan dulu isinya HDD ke 2 (ada1) ====> dd if=/dev/zero of=/dev/ada1 bs=1m count=1

gpart create -s gpt ada1
gpart add -t freebsd-zfs ada1
zpool create tank02 /dev/ada1p1
zfs create tank02/root

##########################################################
######### hasil nya akan tampil seperti ini ##########
##########################################################
yoyoxnet# zpool status
  pool: tank01
 state: ONLINE
 scan: none requested
config:
        NAME        STATE     READ WRITE CKSUM
        tank01      ONLINE       0     0     0
          ada0p3    ONLINE       0     0     0
errors: No known data errors

  pool: tank02
 state: ONLINE
 scan: none requested
config:
        NAME        STATE     READ WRITE CKSUM
        tank02      ONLINE       0     0     0
          ada1p2    ONLINE       0     0     0

##########################################################

#kita buat folder tank01 cache
zfs create -o atime=off tank01/root/cache-01
zfs create -o atime=off tank01/root/cache-02
zfs create -o atime=off tank01/root/cache-03

#kita buat folder tank02 cache
zfs create -o atime=off tank02/root/cache-04
zfs create -o atime=off tank02/root/cache-05
zfs create -o atime=off tank02/root/cache-06
zfs create -o atime=off tank02/root/cache-07
zfs create -o atime=off tank02/root/cache-08
zfs create -o atime=off tank02/root/cache-09
zfs create -o atime=off tank02/root/cache-10
zfs create -o atime=off tank02/root/cache-11
zfs create -o atime=off tank02/root/cache-12
zfs create -o atime=off tank02/root/cache-13

#ada kendala nih.. karena tank02 ini hdd berbeda maka kita harus mountpoint supaya di kenali oleh system
zfs set mountpoint=/cache-04 tank02/root/cache-04
zfs set mountpoint=/cache-05 tank02/root/cache-05
zfs set mountpoint=/cache-06 tank02/root/cache-06
zfs set mountpoint=/cache-07 tank02/root/cache-07
zfs set mountpoint=/cache-08 tank02/root/cache-08
zfs set mountpoint=/cache-09 tank02/root/cache-09
zfs set mountpoint=/cache-10 tank02/root/cache-10
zfs set mountpoint=/cache-11 tank02/root/cache-11
zfs set mountpoint=/cache-12 tank02/root/cache-12
zfs set mountpoint=/cache-13 tank02/root/cache-13

##########################################################
######### hasil nya akan tampil seperti ini ##########
##########################################################
yoyoxnet# zfs list
NAME                   USED  AVAIL  REFER  MOUNTPOINT
tank01                 390M   196G    31K  none
tank01/root            389M   196G   389M  /
tank01/root/cache-01    31K   196G    31K  /cache-01
tank01/root/cache-02    31K   196G    31K  /cache-02
tank01/root/cache-03    31K   196G    31K  /cache-03
tank01/root/tmp         35K   196G    35K  /tmp
tank01/root/var        188K   196G   188K  /var
tank02                 540K  1.78T    32K  /tank02
tank02/root            352K  1.78T    42K  /tank02/root
tank02/root/cache-04    31K  1.78T    31K  /tank02/root/cache-04
tank02/root/cache-05    31K  1.78T    31K  /tank02/root/cache-05
tank02/root/cache-06    31K  1.78T    31K  /tank02/root/cache-06
tank02/root/cache-07    31K  1.78T    31K  /tank02/root/cache-07
tank02/root/cache-08    31K  1.78T    31K  /tank02/root/cache-08
tank02/root/cache-09    31K  1.78T    31K  /tank02/root/cache-09
tank02/root/cache-10    31K  1.78T    31K  /tank02/root/cache-10
tank02/root/cache-11    31K  1.78T    31K  /tank02/root/cache-11
tank02/root/cache-12    31K  1.78T    31K  /tank02/root/cache-12
tank02/root/cache-13    31K  1.78T    31K  /tank02/root/cache-13

##########################################################
yoyoxnet# zpool list
NAME     SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
tank01   200G   390M   200G     0%  1.00x  ONLINE  -
tank02  1.81T   548K  1.81T     0%  1.00x  ONLINE  -
yoyoxnet# zpool status
  pool: tank01
 state: ONLINE
 scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank01      ONLINE       0     0     0
          ada0p3    ONLINE       0     0     0

errors: No known data errors

  pool: tank02
 state: ONLINE
 scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank02      ONLINE       0     0     0
          ada1p1    ONLINE       0     0     0



##########################################################
######### PERHATIAN ##########
##########################################################

proses instalasi hasil dokumentasi praktek selama 3 hari.
mohon maaf jika ada kesalahan nya.. mohon di koreksi yach...

system udah siap tinggal diisi squid atau squid lusca ataupun program pendukung baik unbound maupun apache..
tutor selanjut nya menyusul yach....

regard
yoyoxcomputer
##########################################################








Tidak ada komentar:

Posting Komentar