Langkau ke kandungan utama

GlusterFS & cara penggunaan

Apa itu GlusterFS?
GlusterFS ialah sistem fail storan yang dilampirkan berskala. Ia aplikasi yang dijumpai di pengkomputeran awan, perkhidmatan media streaming dan penghantaran kandungan rangkaian . GlusterFS telah dibangunkan semula oleh Gluster, Inc. dan kemudian oleh Red Hat, Inc. Hasilnya Red Hat memperoleh Gluster pada tahun 2011. Pada Jun 2012, Red Hat Storage Server diumumkan sebagai penyepaduan komersil antara GlusterFS dengan Red Hat Enterprise Linux. Red Hat membeli Inktank Storage pada bulan April 2014, yang merupakan syarikat di sebalik sistem teragih (Ceph), dan menjenamakan semula Red Hat Storage Server berasaskan GlusterFS kepada "Red Hat Gluster Storage". GlusterFS mengagregat pengiraan, penyimpanan, dan sumber I/O ke dalam ruang nama global.Setiap pelayan ditambah storan komoditi sama ada (storan berhubung langsung, JBOD atau menggunakan storan SAN) dianggap sebagai nod. Kapasiti diperkecil dengan menambahkan nod tambahan atau menambahkan storan tambahan kepada setiap nod. Prestasi akan lebih meningkat dengan menggunakan storan yang mempunyai lebih banyak nod. "High availability"(HA) boleh dilakukan dengan mereplikasi data di antara nod. [Wikipedia]. Cara pemasangan server boleh didapati di lawan web seperti :-







Struktur:-

1 Disk/LUN ->  1 VG ->  1 thin pool -> 1 thin LV -> EXT-4 or XFS filesystem ->  mount sebagai satu mountpoint

Setiap brick Mountpoint akan mengandungi direktori yang dipanggil brick01. Kita akan menggunakan direktori brick ini untuk mencipta Gluster volumes.

Contoh:
OS disk devices                = /dev/sdm & /dev/sdb 
Multipathed disk device = /dev/mapper/mpathl
LVM PV                            = /dev/mapper/mpathl
LVM VG                           =  vg_gfs_01
LVM thinpool                 =  lv_gfs_01_thinpool
LVM thin LV                   = lv_gfs_01_thinlv
LV Filesystem                = ext-4
Mountpoint                   =  /opt/cust/gluster_fs/mount01
Brick directory              = /opt/cust/gluster_fs/mount01/brick01    <--- Ini Gluster volumes yang akan diguna.

[root@server~]# multipath -ll
mpathl (360060e80101e2060058be1d600000032) dm-4 HITACHI,DF600F
size=1000G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 1:0:0:1 sdm 8:192 active ready running
`-+- policy='round-robin 0' prio=0 status=enabled
  `- 2:0:0:1 sdb 8:16  active ready running

[root@server~]# lvs vg_gfs_01
  LV                                 VG        Attr       LSize   Pool               Origin Data%  Meta%  Move Log Cpy%Sync Convert
  9690cb6fc9744283956212399a335d4b_0 vg_gfs_01 Vwi-a-t--- 968.00g lv_gfs_01_thinpool        79.15
  lv_gfs_01_thinlv                   vg_gfs_01 Vwi-aot--- 968.00g lv_gfs_01_thinpool        79.15
  lv_gfs_01_thinpool                 vg_gfs_01 twi-aot--- 968.00g                           80.65  0.72

[root@server~]# pvs
  PV                 VG        Fmt  Attr PSize    PFree
  /dev/mapper/mpathl vg_gfs_01 lvm2 a--u 1000.00g      0

[root@server~]# df -PTh /opt/cust/gluster_fs/mount01
Filesystem                             Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg_gfs_01-lv_gfs_01_thinlv ext4  953G  751G  154G  83% /opt/cust/gluster_fs/mount01

Buat Gluster bricks baru

1: Jika Disk/LUN baru telah di dapati dari SAN storage, kemudian pastikan dahulu multipathing yang digunakan. Semak sama ada pelayan menggunakan produk DM-multipath asal atau produk pihak ke-3 (cth Veritas) atau kedua-duanya.  

DM-multipath dari OS asal: 
















Veritas:









Hitachi DLM:
# /opt/DynamicLinkManager/bin/dlnkmgr view -path

2: Simpan output of command seperti :-
#lsblk 
#lsscsi 
#/etc/multipath.conf 

3: Scan LUN baru pada OS

echo "- - -" > /sys/class/scsi_host/hostX/scan

X adalah 0, 1, 2 ,dll....


Cari hostX , jalankan command berikut:-

[root@server~]# systool -c scsi_host -A info
Class = "scsi_host"

  Class Device = "host0"

    Device = "host0"


  Class Device = "host1"
    info                = "Emulex LPe12000-M8 8Gb PCIe Fibre Channel Adapter on PCI bus 04 device 00 irq 34 Logical Link Speed: 4000 Mbps"

    Device = "host1"


  Class Device = "host10"

    Device = "host10"


  Class Device = "host2"
    info                = "Emulex LPe12000-M8 8Gb PCIe Fibre Channel Adapter on PCI bus 05 device 00 irq 42 Logical Link Speed: 4000 Mbps"

    Device = "host2"


  Class Device = "host3"

    Device = "host3"


Jadi, host1 and host2  adalah Fiber Channel SCSI controller.

echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
  
Tunggu beberapa saat dan periksa sistem log.

[root@server~]# less /var/log/messages
Jul 13 00:24:23 server kernel: [10626720.782304] scsi 1:0:0:6: Direct-Access     HITACHI  DF600F           0000 PQ: 0 ANSI: 4
Jul 13 00:24:23 server kernel: [10626720.782922] sd 1:0:0:6: Attached scsi generic sg23 type 0
Jul 13 00:24:23 server kernel: [10626720.783556] sd 1:0:0:6: [sdx] 2097152000 512-byte logical blocks: (1.07 TB/1000 GiB)
Jul 13 00:24:23 server kernel: [10626720.784323] sd 1:0:0:6: [sdx] Write Protect is off
Jul 13 00:24:23 server kernel: [10626720.785442] sd 1:0:0:6: [sdx] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
Jul 13 00:24:23 server kernel: [10626720.787173]  sdx: unknown partition table
Jul 13 00:24:23 server kernel: [10626720.813693] sd 1:0:0:6: [sdx] Attached SCSI disk
Jul 13 00:24:23 servervxvm-udev: device sdx with devno 65:112 has been added.
Jul 13 00:24:23 server multipathd: sdx: add path (uevent)
Jul 13 00:24:32 server kernel: [10626730.098954] VxVM vxdmp V-5-0-34 [Info] added disk array 93053398, datype = HUS_150
Jul 13 00:24:32 server kernel: [10626730.099505]
Jul 13 00:24:32 server kernel: [10626730.100307]  VxDMP9: unknown partition table
Jul 13 00:24:34 server kernel: [10626731.511156] scsi 2:0:0:6: Direct-Access     HITACHI  DF600F           0000 PQ: 0 ANSI: 4
Jul 13 00:24:34 server kernel: [10626731.511799] sd 2:0:0:6: Attached scsi generic sg24 type 0
Jul 13 00:24:34 server kernel: [10626731.513237] sd 2:0:0:6: [sdy] 2097152000 512-byte logical blocks: (1.07 TB/1000 GiB)
Jul 13 00:24:34 server kernel: [10626731.514112] sd 2:0:0:6: [sdy] Write Protect is off
Jul 13 00:24:34 server kernel: [10626731.515081] sd 2:0:0:6: [sdy] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
Jul 13 00:24:34 server kernel: [10626731.517126]  sdy: unknown partition table
Jul 13 00:24:34 server kernel: [10626731.539095] sd 2:0:0:6: [sdy] Attached SCSI disk
Jul 13 00:24:34 server vxvm-udev: device sdy with devno 65:128 has been added.
Jul 13 00:24:34 server multipathd: sdy: add path (uevent)
(END)

OS mengesan dan menambah dua peranti baru - 2 peranti tetapi sebenarnya kedua-duanya menunjuk LUN yang sama, satu untuk setiap laluan SAN.

/dev/sdx dan /dev/sdy (1.07 TB/1000 GiB)
                                                                                                                  
4: Buat LUN baru di bawah kawalan Native DM-Multipath. Anda boleh melangkau langkah ini jika langkah 2 mendedahkan tiada multipath pihak ke-3 yang digunakan. Pertama, kita mesti menghalang perkhidmatan multipath lain (Veritas, Hitachi, dll) daripada menguruskan LUN yang dikesan.

Dalam contoh ini, LUN yang baru dikawal oleh Veritas DMP

[root@server~]# vxdmpadm getsubpaths
NAME         STATE[A]   PATH-TYPE[M] DMPNODENAME  ENCLR-NAME   CTLR   ATTRS
================================================================================
sda          ENABLED(A)   -          disk_0       disk         c0        -
...............
sdh          ENABLED(A)   -          hitachi_vsp1_339b hitachi_vsp1 c2        -
sds          ENABLED(A)   -          hitachi_vsp1_339b hitachi_vsp1 c1        -
sdx          ENABLED(A)   -          hus_1500_60  hus_1500     c1        -
sdy          ENABLED(A)   -          hus_1500_60  hus_1500     c2        -

Keluarkan nod dmp dari kawalan VxDMP:

[root@server~]# vxdmpadm exclude dmpnodename=hus_1500_60

Sekarang sdx and sdy telah terkeluar dari output:

[root@server~]# vxdmpadm getsubpaths
NAME         STATE[A]   PATH-TYPE[M] DMPNODENAME  ENCLR-NAME   CTLR   ATTRS
================================================================================
sda          ENABLED(A)   -          disk_0       disk         c0        -
sdg          ENABLED(A)   -          hitachi_vsp0_3313 hitachi_vsp0 c2        -
......        -
sdh          ENABLED(A)   -          hitachi_vsp1_339b hitachi_vsp1 c2        -
sds          ENABLED(A)   -          hitachi_vsp1_339b hitachi_vsp1 c1        -

Seterusnya, ketahui WWIDs LUN baru. Dalam kes ini, mereka sama kerana laluan SAN (redundant) LUN yang sama.

[root@server~]# /lib/udev/scsi_id --whitelisted --device=/dev/sdx
360060e80101e2060058be1d60000003c
[root@server~]# /lib/udev/scsi_id --whitelisted --device=/dev/sdy
360060e80101e2060058be1d60000003c 

 Sekarang,   tukar /etc/multipath.conf bagi memasukkan WWID kepada senarai hitam pengecualian:

[root@server~]# tail /etc/multipath.conf
}

blacklist_exceptions {
  wwid 360060e80101e2060058be1d600000032
  wwid 360060e80101e2060058be1d600000036
  wwid 360060e80101e2060058be1d600000035
  wwid 360060e80101e2060058be1d600000034
  wwid 360060e80101e2060058be1d600000033
  wwid 360060e80101e2060058be1d60000003c
}

Reload servis multipathd.  Kita akan lihat multipath device yang baru /dev/mapper/mpathm

[root@server~]# service multipathd reload
Reloading multipathd:                                      [  OK  ]
[root@server~]# multipath -ll
mpathm (360060e80101e2060058be1d60000003c) dm-39 HITACHI,DF600F
size=1000G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 1:0:0:6 sdx 65:112 active ready running
`-+- policy='round-robin 0' prio=0 status=enabled
  `- 2:0:0:6 sdy 65:128 active ready running

Pastikan LUN ID  (dalam hex) sama dengan dari SAN storage.

360060e80101e2060058be1d60000003c

3C (hex) =  60 (in decimals)


5:Buat LVM PV baru.
Untuk setiap LUN baru, buat PV menggunakan peranti multipath.

#  pvcreate -v --dataalignment 256k /dev/mapper/mpathXXXXXXX









6:Buat LVM VG
Pertukaran nama VG :  vg_gfs_XXXX      (dimana XX ialah 01,02,03.....)
#vgcreate <vg_name>  <pv>



7:Buat LVM thin pool dalam VG.

Pertukaran nama Thin pool: 
#lvcreate --thin vg_gfs_XXXX/lv_gfs_XXXX_thinpool --extents 100%FREE --chunksize 256k --poolmetadatasize 16g  --zero n

Nota!!Parameter --poolmetadatasize 16g  perlu dibuang jika saiz VG kecil, cth. < 200GB








8:Buat LVM thin LV dalam VG  "thin pool".

Pertukaran nama Thin LV :  lv_gfs_XXX_thinlv    (Dimana XXXX ialah 01,02,03.....)

#lvcreate --thin --name lv_gfs_XXXX_thinlv --virtualsize <thinpool size> vg_gfs_XXX/lv_gfs_XXXX_thinpool


Command untuk mencari saiz thinpool:

[root@server~]# lvs --units B vg_gfs_06
  LV                 VG        Attr       LSize          Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_gfs_06_thinpool vg_gfs_06 twi-a-t--- 1039377891328B             0.00   0.01








9: Format thinLV kepada fail sistem ext-4 atau XFS dan mount.

# mkfs.ext4 /dev/mapper/vg_gfs_XXXXXX-lv_gfs_XXXXX_thinlv    (dimana XXXX ialah 01,02,03.....)

Contoh ext-4:































Letak fail sistem brick ke fail /etc/fstab  untuk auto mount pada boot.











Buat mountpoint dan Mount fail sistem brick:


#mkdir /opt/cust/gluster_fs/mount06

Pertukaran nama Gluster brick : /opt/cust/gluster_fs/mountXXX  (dimana XXX ialah 01,02,03.....) 

[root@server~]# mount /opt/cust/gluster_fs/mount06
[root@server ~]# df -PhT /opt/cust/gluster_fs/mount06
Filesystem                             Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg_gfs_06-lv_gfs_06_thinlv ext4  953G   72M  905G   1% /opt/cust/gluster_fs/mount06 


10:Buat subdir dibawah mountpoint dipanggil "brick01", owner adalah root dan permission 755 :

#mkdir /opt/cust/gluster_fs/mount06/brick01










Catatan popular daripada blog ini

Setting APACHE Tomcat Dengan Configure mod_jk Connector pada RHEL6.4 cara ringkas.

 Asas - Apakah mod_jk?   Penyambung mod_jk ialah modul Apache httpd yang membolehkan httpd untuk berkomunikasi dengan Apache Tomcat  bagi  seluruh  keadaan  protokol AJP. Modul ini digunakan bersama- s ama dengan komponen Penyambung AJP Tomcat ini.  Mengenai Penyambung   Apache Tomcat menggunakan komponen Penyambung untuk membolehkan komunikasi antara contoh nya  Tomcat dan pihak lain, seperti pelayar, pelayan atau contoh lain Tomcat yang merupakan sebahagian daripada rangkaian yang sama. Sebagai contoh, penyambung HTTP mendengar untuk permintaan lebih protokol HTTP/1.1 pada pelbagai port TCP...

Cara setting router Cisco 2600 & MRTG

Manual setting router Cisco 2600 Masuk ke dalam router menggunakan konsol atau telnet. Masukkan password dan taip enable. Router> enable Tekan enter taip enable. 2600# config Configuring from terminal, memory, or network [terminal]? t Enter configuration commands, one per line.  End with CNTL/Z. Taip t dan taip hostname yang baru. Router(config)# hostname JL Tekan enter dan taip interface serial 0/0. JL(config)# interface serial 0/0 Tekan enter dan taip ip address serial 0/0. JL (config-if) ip address 58.26.##.### 255.255.255.252 Tekan enter dan taip setting untuk encapsulation. JL (config-if) encapsulation ppp Tekan enter dan taip no shutdown. JL (config-if) no shutdown Tekan enter dan tekan ctrl + z. Kemudian taip  show interface serial 0/0 untuk melihat maklumat interface serial 0/0  . JL # show interface serial 0/0 Tekan enter dan taip config semula. JL # config    ...