Striped Volume นั้นจะช่วยให้เราสามารถ Access File ได้เร็วขึ้นโดยเมื่อมีการสร้างไฟล์บน Gluster แล้วไฟล์จะถูก Strip ออกเป็นหลายๆ ส่วนแล้วโยนเข้าไปในแต่ละ Brick ดังนั้นการ Access File จะมีประสิทธิภาพที่ดีขึ้นอย่างเห็นได้ชัดโดยเฉพาะไฟล์ใหญ่ๆ

ก่อนอื่นให้ติดตั้ง GlusterFS กันก่อนโดยหากใครติดตั้งเรียบร้อยแล้วสามารถข้ามไปในส่วนของ Striped 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

สมมติว่าเครื่องแต่ละเครื่องมี 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 เสร็จสมบูรณ์แล้ว

การสร้าง Striped Volume

Reference Architecture

  1. node1: 192.168.100
  2. node2: 192.168.101
  3. client: 192.168.1.110

การสร้าง Striped Volume สำหรับ GlusterFS สามารถทำได้โดยใช้คำสั่ง

admins@node1:~$ sudo gluster volume create data-volume-striped stripe 2 transport tcp gluster1:/data-volume-striped gluster2:/data-volume-striped force
volume create: data-volume-striped: success: please start the volume to access data

เมื่อสร้าง Volume เสร็จแล้วให้สั่ง Start Volume โดยไปที่ node1 แล้วรันคำสั่ง

admins@node1:~$ sudo gluster volume start data-volume-striped
volume start: data-volume-striped: success

จากนั้นเรามาลองให้ client สร้างไฟล์บน Volume ดังกล่าวดูกันว่าจะเกิดอะไรขึ้น ขึ้นแรกให้สั่ง mount ที่ client ก่อน

sudo mount -t glusterfs gluster1:/data-volume-striped /mnt/glusterfs/

จากนั้นเรามาลอง copy ไฟล์ขนาด 10M เข้าไปที่ /mnt/glusterfs

admins@client:~$ sudo cp /home/admins/10MB.zip /mnt/glusterfs/

ลอง check ขนาดไฟล์ดู

จากนั้นไปดูที่ node1 และ node2 ว่าเกิดอะไรขึ้น

node1

node2

จะเห็นได้ว่าไฟล์ทั้งสองไฟล์นั้นได้ถูก stripe ออกเป็น 2 ส่วนเพื่อให้สามารถ Access ไฟล์ได้อย่างรวดเร็ว ในกรณีที่ต้องการลบ Volume ออกก็สามารถทำได้เช่นกัน โดยขั้นตอนแรกให้ Stop Volume เสียก่อนด้วยคำสั่ง

admins@node1:~$ sudo gluster volume stop data-volume-striped
Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y
volume stop: data-volume-striped: success

จากนั้นก็สั่งลบ Volume ด้วยคำสั่ง

admins@node1:~$ sudo gluster volume delete data-volume-striped
Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y
volume delete: data-volume-striped: success

ทั้งนี้ทั้ง 2 คำสั่งให้ทำที่ node1 เพียง node เดียว

รูปภาพจาก : https://github.com/gluster/glusterfs

Comments are closed.