Distributed แปลตรงตัวคือ “แจกจ่าย” สำหรับ Distributed Volume ของ GlusterFS นั้นคือการแจกจ่ายไฟล์ไปยังแต่ละ Brick (Server) นั่นเอง โดยจุดประสงค์ของการทำ Distributed Volume นั้นคือการทำ Horizontal Scaling และ Distibuted ข้อมูลออก ทำให้ได้พื้นที่ของการเก็บข้อมูลที่เพิ่มมากขึ้น เพียงแค่เพิ่ม Brick (Server) นั่นเอง
ก่อนอื่นให้ติดตั้ง GlusterFS กันก่อนโดยหากใครติดตั้งเรียบร้อยแล้วสามารถข้ามไปในส่วนของ Distributed Volume ได้เลย GlusterFS เป็น Clustered File System ดังนั้นการติดตั้งเราจะต้องติดตั้ง GlusterFS ลงบน OS ตั้งแต่ 2 เครื่องขึ้นไป การติดตั้ง GlusterFS โดยใช้ Ubuntu 14.04 Server นั้นสามารถทำได้ง่ายๆ โดยการติดตั้งผ่าน package manager แต่ก่อนที่จะลงมือติดตั้ง GlusterFS มาดูโครงสร้างพื้นฐานที่ต้องใช้กันก่อน โดยเรามีเครื่อง Ubuntu Server 2 เครื่อง ดังนี้
- node1 มี IP Address เป็น 192.168.1.100
- node2 มี IP Address เป็น 192.168.1.101
ให้ติดตั้ง Gluster Server ทั้ง 2 เครื่องด้วยคำสั่ง
sudo apt-get install glusterfs-server
เมื่อติดตั้งเสร็จแล้วให้ลองใช้คำสั่ง glusterfs –version ที่ node1 และ node2 จะต้องได้ผลลัพธ์ดังนี้
ถ้าได้ผลลัพธ์ออกมาเหมือนด้านบนแสดงว่าติดตั้ง GlusterFS เสร็จสมบูรณ์แล้ว ต่อไปเราจะมา Add Server แต่ละตัวเข้า Storage Pool กันโดยก่อนอื่น เราต้องทำให้แต่ละเครื่องรู้จักกันเสียก่อนโดยไปจัดการที่ไฟล์ /etc/hosts ให้แก้ไขไฟล์ที่ /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 เสร็จสมบูรณ์แล้ว
การสร้าง Distributed Volume สำหรับ GlusterFS นั้นเป็นการสร้าง Volume ที่ง่ายที่สุดสามารถสร้างโดยไปที่ node1 แล้วรันคำสั่ง
admins@node1:~$ sudo gluster volume create data-volume-distributed gluster1:/data-volume gluster2:/data-volume force
volume create: data-volume-distributed: success: please start the volume to access data
เมื่อสร้าง Volume เสร็จแล้วให้สั่ง Start Volume โดยไปที่ node1 แล้วรันคำสั่ง
admins@node1:~$ sudo gluster volume start data-volume-distributed
volume start: data-volume-distributed: success
จากนั้นเราลองมาทดสอบให้ client connect มายัง Volume ดังกล่าวโดยให้ client mount ด้วยคำสั่ง
admins@client:~$ sudo mount.glusterfs gluster1:/data-volume /mnt/glusterfs/
เมื่อ mount เสร็จแล้วให้ลองสร้างไฟล์ที่ /mnt/glusterfs ดูเช่น
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 จะได้ผลลัพธ์ดังนี้
node1
node2
จะเห็นได้ว่าไฟล์นั้นถูก distribute (แจกจ่าย) ไปยังเครื่องต่างๆ อัติโนมัติเป็นที่เรียบร้อย นอกจากนี้ในกรณีที่ต้องการลบ Volume ออกก็สามารถทำได้เช่นกัน โดยขั้นตอนแรกให้ Stop Volume เสียก่อนด้วยคำสั่ง
admins@node1:~$ sudo gluster volume stop data-volume-distributed
Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y
volume stop: data-volume-distributed: success
จากนั้นก็สั่งลบ Volume ด้วยคำสั่ง
admins@node1:~$ sudo gluster volume delete data-volume-distributed
Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y
volume delete: data-volume-distributed: success
ทั้งนี้ทั้ง 2 คำสั่งให้ทำที่ node1 เพียง node เดียว
รูปภาพจาก : https://github.com/gluster/glusterfs