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 :-
Veritas:
Hitachi DLM:
6:Buat LVM VG
8:Buat LVM thin LV dalam VG "thin pool".
9: Format thinLV kepada fail sistem ext-4 atau XFS dan mount.
Letak fail sistem brick ke fail /etc/fstab untuk auto mount pada boot.
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 :-
- https://docs.gluster.org/en/latest/Install-Guide/Install/
- https://www.tecmint.com/introduction-to-glusterfs-file-system-and-installation-on-rhelcentos-and-fedora/
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/host
X/scan
X adalah 0, 1, 2 ,dll....
Cari
host
X , 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/host
2/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