พอเราใช้งาน GlusterFS ไปซักระยะบางครั้งเราก็มีความจำเป็นที่ต้องเพิ่มพื้นที่เข้าไปใน Volume กันซึ่ง GlusterFS ก็สามารถทำได้ โดยเรียก Feature นี้ว่าการ Expand Volume
สมมติว่าเรามี Volume ที่เป็น Distributed Volume อยู่ดังภาพ
และมี Architecture ดังนี้
- node1: 192.168.1.100, volume name: distributed
- node2: 192.168.1.101, volume name: distributed
โดยที่แต่ละ node มีไฟล์เก็บอยู่จำนวนหนึ่ง
แล้วเราต้องการที่จะเพิ่มอีก 1 node เข้าไปใน Distributed Volume สมมติชื่อว่า node3: 192.168.1.102 โดยให้เพิ่มพื้นที่เข้าไปใน volume name: distributed
ทำได้โดยให้ไปที่ node1, node2 แล้วสั่ง probe ไปที่ node3 ก่อน
admins@node1:~$ sudo gluster peer probe gluster3
admins@node2:~$ sudo gluster peer probe gluster3
จากนั้นให้สั่ง add brick
admins@node1:~$ sudo gluster volume add-brick distributed gluster3:/distributed force
เมื่อ add brick ของ gluster3 เสร็จแล้วให้สั่ง rebalance เพื่อให้ volume มัน balance กันดังนี้
admins@node1:~$ sudo gluster volume rebalance distributed start
เมื่อลองตรวจสอบ volume ดูจะเห็นว่ามี brick ของ gluster3 เพิ่มมาแล้ว
ในกรณีที่ต้องการจะ ลดจำนวน brick ออกก็สามารถทำได้เช่นกัน โดยจะเรียกว่าการ Shrink Volume (การ Shrink Volume นั้นเมื่อ remove brick ออกไปแล้ว ไฟล์จะไม่สามารถ Access ได้จาก client)
admins@node1:~$ sudo gluster volume remove-brick distributed gluster2:/distributed
Removing brick(s) can result in data loss. Do you want to Continue? (y/n) y
เมื่อลองสั่ง volume info ดูจะเห็นว่า gluster2 brick ได้หายไปแล้ว
และที่ client ไฟล์ที่อยู่ใน gluster2 brick ก็จะหายไปด้วย
สุดท้ายหากต้องการจะลบ Volume สามารถทำได้โดย Stop Volume ก่อน
admins@node1:~$ sudo gluster volume stop distributed
Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y
จากนั้นสั่งลบ Volume
admins@node1:~$ sudo gluster volume delete distributed
Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y
รูปภาพจาก https://github.com/gluster/glusterfs