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 จะต้องได้ผลลัพธ์ดังนี้
ถ้าได้ผลลัพธ์ออกมาเหมือนด้านบนแสดงว่าติดตั้ง 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 เสร็จสมบูรณ์แล้ว
การสร้าง Striped Volume
Reference Architecture
- node1: 192.168.100
- node2: 192.168.101
- 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