GlusterFS กล่าวสั้นๆ คือ Clustered File System (เอา File System ของหลายๆ เครื่องมา Cluster รวมกัน) โดยสามารถ Access ได้หลาย Protocol ด้วยกันเช่น

  1. Gluster Native
  2. NFS
  3. CIFS

ทั้งนี้ GlusterFS ยังสามารถทำ Distributed, Striped หรือ Replicated ได้อีกด้วย ซึ่งเราจะมาติดตั้ง GlusterFS กันบน Ubuntu 14.04 Server กันดูครับ

จากที่ทราบกัน GlusterFS นั้นคือ Clustered File System ดังนั้นการติดตั้งเราจะต้องติดตั้ง GlusterFS ลงบน OS ตั้งแต่ 2 เครื่องขึ้นไป โดยการติดตั้ง GlusterFS บน Ubuntu 14.04 Server นั้นสามารถทำได้โดยติดตั้งผ่าน package manager ได้ทันทีซึ่งสามารถทำได้ดังนี้

ขั้นตอน:-

  1. เปิด terminal ขึ้นมา
  2. รันคำสั่ง sudo apt-get install glusterfs-server
  3. ทำซ้ำกับ Ubuntu Server อีกเครื่อง

โดยเมื่อติดตั้งเสร็จแล้ว หากเราลองรันคำสั่ง glusterfs –version ที่ node1 และ node2 จะต้องได้ผลลัพธ์ดังนี้

node1

node2

ถ้าได้ผลลัพธ์ออกมาเหมือนด้านบนแสดงว่าติดตั้ง GlusterFS เสร็จสมบูรณ์แล้ว ต่อไปเราจะมา Add Server แต่ละตัวเข้า Storage Pool กันโดยก่อนอื่น เราต้องทำให้แต่ละเครื่องรู้จักกันเสียก่อนโดยไปจัดการที่ไฟล์ /etc/hosts

สมมติว่าเครื่องแต่ละเครื่องมี IP ดังนี้

  1. node1 : 192.168.1.100
  2. node2: 192.168.1.101

ให้แก้ไขไฟล์ที่ /etc/hosts แต่ละเครื่องดังนี้

node1

127.0.0.1 localhost
127.0.0.1 node1
192.168.1.100 node1.example.com gluster1
192.168.1.101 node2.example.com gluster2

node2

127.0.0.1 localhost
127.0.0.1 node2
192.168.1.100 node1.example.com gluster1
192.168.1.101 node2.example.com gluster2

โดยเมื่อเราแก้ไขไฟล์ /etc/hosts แล้วเราควรจะสามารถ ping แต่ละเครื่องกันเจอ จากนั้นเราจะมา Add แต่ละ Server เข้าไปใน Pool ด้วยคำสั่งดังนี้

node1
admins@node1:~$ sudo gluster peer probe gluster1
peer probe: success: on localhost not needed
admins@node1:~$ sudo gluster peer probe gluster2
peer probe: success

node2
admins@node2:~$ sudo gluster peer probe gluster1
peer probe: success
admins@node2:~$ sudo gluster peer probe gluster2
peer probe: success: on localhost not needed

จะสังเกตได้ว่าไม่จำเป็นต้องสั่ง peer probe เครื่องตัวเอง โดยเมื่อ Add Server แล้วให้ลองรันคำสั่ง gluster peer status ดูเพื่อตรวจสอบความถูกต้องดังนี้

node1

node2

หากได้ผลลัพธ์ตามด้านบน แสดงว่า Add Server เสร็จสมบูรณ์แล้ว ถัดไปเราจะมาสร้าง Volume กันโดยไปที่ node1 แล้วรันคำสั่ง
admins@node1:~$ sudo gluster volume create data-volume transport tcp gluster1:/data-volume gluster2:/data-volume force
volume create: data-volume: success: please start the volume to access data

Gluster จะสร้าง directory data-volume ที่ root ของแต่ละเครื่องให้อัตโนมัติ เราสามารถตรวจสอบ volume ที่เราสร้างได้จากคำสั่ง

node1

node2

เมื่อเราสร้าง Volume เสร็จแล้วขั้นตอนถัดไปคือการ Start Volume ให้เราไปที่ node1 แล้วพิมพ์คำสั่ง
admins@node1:~$ sudo gluster volume start data-volume
volume start: data-volume: success

ให้ลองรันคำสั่ง netstat ในแต่ละเครื่องเพื่อดูว่ามีการ LISTEN GlusterFS port หรือไม่

node1

node2

หากได้ผลลัพธ์เหมือนด้านบน แสดงว่า Start Volume สำเร็จเรียบร้อย ขั้นตอนถัดไปเราจะลองให้ client mount content ของ Gluster มาใช้งานโดยก่อนอื่นต้องติดตั้ง glusterfs-client เสียก่อนดังนี้
admins@client:~$ sudo apt-get install glusterfs-client

เมื่อติดตั้ง client แล้วให้เรามากำหนด /etc/hosts ให้กับ client ก่อนเพื่อให้ client นั้นรู้จัก gluster server ของเราดังนี้
127.0.0.1 localhost
127.0.0.1 node2
192.168.1.100 node1.example.com gluster1
192.168.1.101 node2.example.com gluster2

ให้เราสร้าง directory ไว้สำหรับ mount กันครับโดยส่วนมากจะสร้างไว้ที่ /mnt/
admins@client:~$ sudo mkdir /mnt/glusterfs

จากนั้นก็บรรจง mount glusterfs เลยครับด้วยคำสั่ง
admins@client:~$ sudo mount.glusterfs gluster1:/data-volume /mnt/glusterfs/

เมื่อลองรันคำสั่ง mount จะเห็นว่าเราได้ mount gluster สำเร็จแล้วดังนี้

เมื่อ mount เสร็จแล้วเรามาลองสร้างไฟล์บน /mnt/glusterfs ดูแล้วดูผลลัพธ์ที่เกิดขึ้นบนเครื่อง gluster1 และ gluster2 กัน

client
admins@client:~$ cd /mnt/glusterfs/
admins@client:/mnt/glusterfs$ sudo touch test1.txt
admins@client:/mnt/glusterfs$ sudo touch test2.txt
admins@client:/mnt/glusterfs$ sudo touch test3.txt

gluster1

gluster2

จะเห็นได้ว่าเมื่อเราสร้างไฟล์บน client ไฟล์นั้นได้ถูก distribute ไปยังแต่ละ gluster server อัติโนมัติทันที

รูปภาพจาก : http://www.gluster.org/

Comments are closed.