GlusterFS กล่าวสั้นๆ คือ Clustered File System (เอา File System ของหลายๆ เครื่องมา Cluster รวมกัน) โดยสามารถ Access ได้หลาย Protocol ด้วยกันเช่น
- Gluster Native
- NFS
- CIFS
ทั้งนี้ GlusterFS ยังสามารถทำ Distributed, Striped หรือ Replicated ได้อีกด้วย ซึ่งเราจะมาติดตั้ง GlusterFS กันบน Ubuntu 14.04 Server กันดูครับ
จากที่ทราบกัน GlusterFS นั้นคือ Clustered File System ดังนั้นการติดตั้งเราจะต้องติดตั้ง GlusterFS ลงบน OS ตั้งแต่ 2 เครื่องขึ้นไป โดยการติดตั้ง GlusterFS บน Ubuntu 14.04 Server นั้นสามารถทำได้โดยติดตั้งผ่าน package manager ได้ทันทีซึ่งสามารถทำได้ดังนี้
ขั้นตอน:-
- เปิด terminal ขึ้นมา
- รันคำสั่ง sudo apt-get install glusterfs-server
- ทำซ้ำกับ Ubuntu Server อีกเครื่อง
โดยเมื่อติดตั้งเสร็จแล้ว หากเราลองรันคำสั่ง glusterfs –version ที่ node1 และ node2 จะต้องได้ผลลัพธ์ดังนี้
ถ้าได้ผลลัพธ์ออกมาเหมือนด้านบนแสดงว่าติดตั้ง GlusterFS เสร็จสมบูรณ์แล้ว ต่อไปเราจะมา Add Server แต่ละตัวเข้า Storage Pool กันโดยก่อนอื่น เราต้องทำให้แต่ละเครื่องรู้จักกันเสียก่อนโดยไปจัดการที่ไฟล์ /etc/hosts
สมมติว่าเครื่องแต่ละเครื่องมี IP ดังนี้
- node1 : 192.168.1.100
- 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 ดูเพื่อตรวจสอบความถูกต้องดังนี้
หากได้ผลลัพธ์ตามด้านบน แสดงว่า 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 ที่เราสร้างได้จากคำสั่ง
เมื่อเราสร้าง Volume เสร็จแล้วขั้นตอนถัดไปคือการ Start Volume ให้เราไปที่ node1 แล้วพิมพ์คำสั่ง
admins@node1:~$ sudo gluster volume start data-volume
volume start: data-volume: success
ให้ลองรันคำสั่ง netstat ในแต่ละเครื่องเพื่อดูว่ามีการ LISTEN GlusterFS port หรือไม่
หากได้ผลลัพธ์เหมือนด้านบน แสดงว่า 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
จะเห็นได้ว่าเมื่อเราสร้างไฟล์บน client ไฟล์นั้นได้ถูก distribute ไปยังแต่ละ gluster server อัติโนมัติทันที
รูปภาพจาก : http://www.gluster.org/