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 จะต้องได้ผลลัพธ์ดังนี้

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 ดูเพื่อตรวจสอบความถูกต้องดังนี้

node1

node2

หากได้ผลลัพธ์ตามด้านบน แสดงว่า Add Server เสร็จสมบูรณ์แล้ว

การสร้าง Replicated Volume

Reference Architecture

  1. node1: 192.168.100
  2. node2: 192.168.101
  3. 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

Comments are closed.