Replicated Volume ของ GlusterFS นั้น Concept ก็เหมือนกับการ Replicate ทั่วๆ ไปคือเมื่อมี Content วางอยู่ใน node ใด node หนึ่งให้ทำการ copy ไปเก็บไว้อีก node หนึ่งอัติโนมัติ
ก่อนอื่นให้ติดตั้ง GlusterFS กันก่อนโดยหากใครติดตั้งเรียบร้อยแล้วสามารถข้ามไปในส่วนของ Replicated Volume ได้เลย GlusterFS เป็น Clustered File System ดังนั้นการติดตั้งเราจะต้องติดตั้ง GlusterFS ลงบน Ubuntu Server ตั้งแต่ 2 เครื่องขึ้นไป โดยการติดตั้ง GlusterFS บน Ubuntu 14.04 Server นั้นสามารถทำได้โดยติดตั้งผ่าน package manager ได้ทันที การติดตั้ง GlusterFS นั้นสามารถทำได้ง่ายๆ โดยการติดตั้งผ่าน 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 เสร็จสมบูรณ์แล้ว
การสร้าง Replicated Volume
Reference Architecture
- node1: 192.168.100
- node2: 192.168.101
- client: 192.168.1.110
การสร้าง Replicated Volume สำหรับ GlusterFS สามารถทำได้โดยใช้คำสั่ง
admins@node1:~$ sudo gluster volume create data-volume-replicated replica 2 transport tcp gluster1:/data-volume-replicated gluster2:/data-volume-replicated force
volume create: data-volume-replicated: success: please start the volume to access data
เมื่อสร้าง Volume เสร็จแล้วให้สั่ง Start Volume โดยไปที่ node1 แล้วรันคำสั่ง
admins@node1:~$ sudo gluster volume start data-volume-replicated
volume start: data-volume-replicated: success
จากนั้นเรามาลองให้ client สร้างไฟล์บน Volume ดังกล่าวดูกันว่าจะเกิดอะไรขึ้น ขึ้นแรกให้สั่ง mount ที่ client ก่อน
sudo mount -t glusterfs gluster1:/data-volume-replicated /mnt/glusterfs/
จากนั้นลองสร้างไฟล์ที่ /mnt/glusterfs ดูซัก 1-2 ไฟล์
admins@client:~$ cd /mnt/glusterfs/
admins@client:/mnt/glusterfs$ sudo touch file1.txt
admins@client:/mnt/glusterfs$ sudo touch file2.txt
จากนั้นไปดูที่ node1 และ node2 ว่าเกิดอะไรขึ้น
node1
node2
จะเห็นได้ว่าไฟล์ทั้งสองไฟล์นั้นได้ถูก replicate ไปยังอีกเครื่องทันที ในกรณีที่ต้องการลบ Volume ออกก็สามารถทำได้เช่นกัน โดยขั้นตอนแรกให้ Stop Volume เสียก่อนด้วยคำสั่ง
admins@node1:~$ sudo gluster volume stop data-volume-replicated
Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y
volume stop: data-volume-replicated: success
จากนั้นก็สั่งลบ Volume ด้วยคำสั่ง
admins@node1:~$ sudo gluster volume delete data-volume-replicated
Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y
volume delete: data-volume-replicated: success
ทั้งนี้ทั้ง 2 คำสั่งให้ทำที่ node1 เพียง node เดียว
รูปภาพจาก : https://github.com/gluster/glusterfs