การทำ Striped Replicated Volume นั้นจะคล้ายๆ กับการทำ Striped Volume ซึ่งมีจุดประสงค์คือช่วยให้สามารถ Access ไฟล์ได้อย่างรวดเร็ว ซึ่ง Striped Replicated นั้นพ่วงการทำ Replicated ไฟล์เข้ามาด้วยนั่นเอง
ก่อนอื่นให้ติดตั้ง GlusterFS กันก่อนโดยหากใครติดตั้งเรียบร้อยแล้วสามารถข้ามไปในส่วนของการทำ Striped Replicated ได้เลย GlusterFS เป็น Clustered File System ดังนั้นการติดตั้งเราจะต้องติดตั้ง GlusterFS ลงบน Ubuntu Server ตั้งแต่ 2 เครื่องขึ้นไป ซึ่งในกรณีการทำ Striped Replicated นั้นจำเป็นที่จะต้องมี Server ตั้งแต่ 4 เครื่องขึ้นไป โดยการติดตั้ง GlusterFS บน Ubuntu 14.04 Server นั้นสามารถทำได้โดยติดตั้งผ่าน package manager ได้ทันที การติดตั้ง GlusterFS นั้นสามารถทำได้ง่ายๆ โดยการติดตั้งผ่าน package manager แต่ก่อนที่จะลงมือติดตั้ง GlusterFS มาดูโครงสร้างพื้นฐานที่ต้องใช้กันก่อน โดยเรามีเครื่อง Ubuntu Server 4 เครื่อง ดังนี้
- node1 มี IP Address เป็น 192.168.1.100
- node2 มี IP Address เป็น 192.168.1.101
- node3 มี IP Address เป็น 192.168.1.102
- node4 มี IP Address เป็น 192.168.1.103
ให้ติดตั้ง Gluster Server ทั้ง 4 เครื่องด้วยคำสั่งซึ่งสามารถทำได้ดังนี้
sudo apt-get install glusterfs-server
โดยเมื่อติดตั้งเสร็จแล้ว หากเราลองรันคำสั่ง glusterfs –version จะต้องได้ผลลัพธ์ดังนี้ (ต่างกันที่ชื่อ host เท่านั้น)
ถ้าได้ผลลัพธ์ออกมาเหมือนด้านบนแสดงว่าติดตั้ง 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
192.168.1.102 node3.example.com gluster3
192.168.1.103 node4.example.com gluster4
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
192.168.1.102 node3.example.com gluster3
192.168.1.103 node4.example.com gluster4
node3
127.0.0.1 localhost
127.0.0.1 node3
192.168.1.100 node1.example.com gluster1
192.168.1.101 node2.example.com gluster2
192.168.1.102 node3.example.com gluster3
192.168.1.103 node4.example.com gluster4
node4
127.0.0.1 localhost
127.0.0.1 node4
192.168.1.100 node1.example.com gluster1
192.168.1.101 node2.example.com gluster2
192.168.1.102 node3.example.com gluster3
192.168.1.103 node4.example.com gluster4
โดยเมื่อเราแก้ไขไฟล์ /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
admins@node1:~$ sudo gluster peer probe gluster3
peer probe: success
admins@node1:~$ sudo gluster peer probe gluster4
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
admins@node1:~$ sudo gluster peer probe gluster3
peer probe: success: host gluster3 port 24007 already in peer list
admins@node1:~$ sudo gluster peer probe gluster4
peer probe: success: host gluster4 port 24007 already in peer list
node3
admins@node3:~$ sudo gluster peer probe gluster1
peer probe: success
admins@node3:~$ sudo gluster peer probe gluster2
peer probe: success: host gluster2 port 24007 already in peer list
admins@node3:~$ sudo gluster peer probe gluster3
peer probe: success: on localhost not needed
admins@node3:~$ sudo gluster peer probe gluster4
peer probe: success: host gluster4 port 24007 already in peer list
node4
admins@node4:~$ sudo gluster peer probe gluster1
peer probe: success: host gluster1 port 24007 already in peer list
admins@node4:~$ sudo gluster peer probe gluster2
peer probe: success: host gluster2 port 24007 already in peer list
admins@node4:~$ sudo gluster peer probe gluster3
peer probe: success: host gluster3 port 24007 already in peer list
admins@node4:~$ sudo gluster peer probe gluster4
peer probe: success: on localhost not needed
จะสังเกตได้ว่าไม่จำเป็นต้องสั่ง peer probe เครื่องตัวเอง และในบางกรณีหากตัว GlusterFS มีการ update ไปยัง node ปลายทางแล้ว การ probe ก็จะฟ้องว่า already in peer list แล้วด้วยโดยเมื่อ Add Server แล้วให้ลองรันคำสั่ง gluster peer status ดูเพื่อตรวจสอบความถูกต้องดังนี้
หากได้ผลลัพธ์ตามด้านบน แสดงว่า Add Server เสร็จสมบูรณ์แล้ว
ขั้นตอนการทำ Striped Replicated Volume
เราจะ Replicate ไฟล์เป็นจำนวน 2 ชุดด้วยกัน ซึ่งหากต้องการ Replicate มากว่า 2 ชุดก็สามารถทำได้ โดยให้เพิ่ม Server Storage เป็นจำนวนเท่ากับจำนวนที่จะ Replicate นั่นเอง
การสร้าง Volume แบบ Striped Replicated ทำได้โดยไปที่ node1 แล้วสั่ง Create Volume ดังนี้
admins@node1:~$ sudo gluster volume create striped-replicated stripe 2 replica 2 transport tcp gluster1:/striped-replicated gluster2:/striped-replicated gluster3:/striped-replicated gluster4:/striped-replicated force
volume create: striped-replicated: success: please start the volume to access data
เมื่อสร้าง Volume เสร็จแล้วต่อมาก็ให้สั่ง Start Volume
admins@node1:~$ sudo gluster volume start striped-replicated
volume start: striped-replicated: success
จากนั้นเราจะมาลองให้ทาง client mount gluster ดูและลองใส่ไฟล์ เพื่อดูผลลัพธ์ดังนี้ ที่เครื่อง client ให้ mount ไปยัง striped-replicated
admins@client:~$ sudo mount -t glusterfs gluster1:/striped-replicated /mnt/glusterfs/
ลอง copy ไฟล์ขนาดใหญ่ลงไปใน /mnt/glusterfs
admins@client:~$ sudo cp 10MB-1.zip 10MB-2.zip /mnt/glusterfs/
ลองสั่ง du -h ดูเพื่อดูขนาดไฟล์
เมื่อลองไปดูที่แต่ละ Server จะได้ผลลัพธ์ดังนี้
node1
node2
node3
node4
จะเห็นว่าไฟล์ถูกแบ่งออกเป็นขนาดเท่าๆ กันและถูก replicate ไปเก็บอีก 1 copy อัตโนมัติทันที
รูปภาพจาก : https://github.com/gluster/glusterfs