How To Create a Redundant Storage Pool Using GlusterFS on Ubuntu Servers เตรียมเครื่อง ubutu 16.04 สามเครื่อง
1,2 สำหรับ ทำ virsual storage
3. client สำหรับ access ใช้งาน
Step 1login root config เครื่องแรก
sudo nano /etc/hostsจะเห็นใน file ประมาณนี้
127.0.0.1 localhost
127.0.1.1 ubuntu
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ให้เพิ่มชื่อ host และ ip ให้ครบทุก node จะได้ค่าประมาณนี้
127.0.0.1 localhost
127.0.1.1 ubuntu
192.168.30.161 gluster1.com gluster1
192.168.30.162 gluster2.com gluster2
192.168.30.163 gluster3.com gluster_client# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ตรงบรรทัดที่มีข้อความ "gluster1.com gluster1" สามารถเปลี่ยนเป็นอย่างอื่นตามคุณต้องการได้แต่ในครั้งนี้เราใช้แบบนี้
เมื่อทำเสร็จให้บันทึก และ copy ข้อความที่เพิ่มมาในเครื่องนี้ ไปทำกับเครื่องที่เหลือให้เหมือนกัน ที่ห้องเดียวกัน คือ /etc/hosts
............................
192.168.30.161 gluster1.com gluster1
192.168.30.162 gluster2.com gluster2
192.168.30.163 gluster3.com gluster_client
..............................
บันทึก file
Ubuntu จะมีแพ็เกจ GlusterFS update ตลอด เพื่อการใช้งานที่เหมาะสมเราจะเพิ่ม PPA(Personal Package Archive) เพื่อให้เราสามารถจัดการ package ได้ด้วยเครื่องมือเดียวกัน
ขั้นแรกเราต้องติดตั้งแพ็กเกจ python-software-properties ซึ่งจะช่วยให้เราสามารถจัดการ PPA ได้อย่างง่ายดายด้วย apt:
sudo apt-get update
sudo apt-get install python-software-propertiesเมื่อมีการติดตั้งเครื่องมือ PPA แล้วเราสามารถเพิ่ม PPA สำหรับแพคเกจ GlusterFS ได้โดยการพิมพ์:
sudo add-apt-repository ppa:semiosis/ubuntu-glusterfs-3.4ด้วยการเพิ่ม PPA เราจำเป็นต้องรีเฟรชฐานข้อมูลแพคเกจในประเทศของเราเพื่อให้ระบบของเรารู้เกี่ยวกับแพคเกจใหม่ที่มีอยู่ใน PPA:
sudo apt-get updateทำซ้ำขั้นตอนเหล่านี้กับอินสแตนซ์ VPS ทั้งหมดที่คุณใช้ทำครั้งนี้
Install Server Componentsในคู่มือนี้เราจะกำหนดสองเครื่องของเราเป็นสมาชิกคลัสเตอร์และที่สาม clinet
เราจะติดตั้ง GlusterFS ที่ 2 เครื่องโดยการพิมพ์:
sudo apt-get install glusterfs-serverเมื่อติดตั้งบนโหนดทั้งสองแล้วเราจะเริ่มตั้งค่าจัดเก็บข้อมูลของเรา
เพื่อให้เข้าใจง่ายเราดูที่ host แรก เราจะสั่งให้มันดู hostที่ 2
พิมพ์:
sudo gluster peer probe gluster2.comผลที่ถูกต้อง
peer probe: success
ถ้าไม่ถูกต้องผลจะเป็น
peer probe: failed: Probe returned with Transport endpoint is not connected
ให้ตรวจสอบใหม่
ถ้าถูกต้อง เราสามารถตรวจสอบว่าโหนดกำลังติดต่อสื่อสารได้ตลอดเวลาโดยการพิมพ์:
sudo gluster peer statusผลที่ได้ประมาณนี้
Number of Peers: 1
Hostname: gluster2.com
Uuid: a1e07188-09bf-49ec-9fff-b4cfe4c00445
State: Peer in Cluster (Connected)
ณ จุดนี้เซิร์ฟเวอร์สองเครื่องของเรากำลังสื่อสารอยู่และสามารถตั้งค่าไดรฟ์ข้อมูลร่วมกันได้
Create a Storage Volumeขณะนี้เรามีเซิร์ฟเวอร์ที่พร้อมให้บริการแล้ว
เนื่องจากเราต้องการสำเนาข้อมูล ตัวเลือก repilcate คือ "2" ซึ่งเป็นจำนวนเซิร์ฟเวอร์ ไวยากรณ์ทั่วไปที่เราจะใช้เพื่อสร้างไดรฟ์ข้อมูลคือ:
sudo gluster volume create volume_name replica num_of_servers transport tcp domain1.com:/path/to/data/directory domain2.com:/path/to/data/directory ... forceคำสั่งที่เราจะเรียกใช้ครั้งนี้คือ:
sudo gluster volume create volume1 replica 2 transport tcp gluster1.com:/gluster-storage gluster2.com:/gluster-storage forceผล
volume create: volume1: success: please start the volume to access data
ซึ่งจะสร้างไดรฟ์ข้อมูลที่เรียกว่า volume1 จะเก็บข้อมูลจากไดรฟ์ข้อมูลนี้ในไดเร็กทอรีสำหรับแต่ละโฮสต์ที่ / gluster-storage หากไม่มีไดเร็กทอรีนี้ระบบจะสร้างขึ้นมาเอง
ณ จุดนี้ปริมาณของเราถูกสร้างขึ้น แต่ไม่ใช้งาน เราสามารถเริ่มต้นไดรฟ์ข้อมูลและทำให้สามารถใช้งานได้โดยการพิมพ์:
sudo gluster volume start volume1ผล
volume start: volume1: success
เป็นอันว่า Storage เราออนไลน์แล้ว
Install and Configure the Client Componentsตอนนี้เรามีการกำหนดค่าคอนฟิกของโวลุ่มไว้แล้วจะพร้อมใช้งานโดยเครื่องไคลเอ็นต์ของเรา gluster_client
ก่อนที่เราจะเริ่มต้นเราจำเป็นต้องติดตั้งแพคเกจที่เกี่ยวข้องจาก PPA ให้พิมพ์:
sudo apt-get install glusterfs-clientเครื่อง client นี้เราจะติดตั้งเครื่องมือฟิวส์ไฟล์ที่จำเป็นกับการทำงานของระบบแฟ้มที่อยู่นอก kernel
เราจะกำหนดปริมาณการจัดเก็บข้อมูลระยะไกลไว้ในคอมพิวเตอร์ไคลเอ็นต์ของเรา
ในการดำเนินการนี้เราจำเป็นต้องสร้าง mount point ในไดเร็กทอรี / mnt แต่สามารถใช้งานได้ทุกที่
เราจะสร้างไดเร็กทอรีที่ / storage-pool:
sudo mkdir /storage-poolและทำให้มันติดต่อระยะไกลด้วยไวยกรณ์คำสั่งดังนี้
sudo mount -t glusterfs domain1.com:volume_name path_to_mount_pointโปรดสังเกตว่า เรามี GlusterFS Storage ที่อยู่ใน directory ของเครื่องเราชื่อ /gluster-storage แต่ชื่อ volume คือ volume1
นอกจากนี้โปรดทราบว่าเราจะต้องระบุสมาชิกกลุ่มหนึ่งในคลัสเตอร์เท่านั้น
คำสั่งที่แท้จริงที่เราจะใช้คือ:
sudo mount -t glusterfs gluster1.com:/volume1 /storage-poolนี่คือการชี้่ไปยัง mount point ห้อง /storage-pool กับ volume1(ซึ่งก็คือห้อง /gluster-storage)
ถ้าเราใช้คำสั่ง df คุณจะเห็นว่า GlusterFS ของเราอยู่ในตำแหน่งที่ถูกต้อง
Testing the Redundancy Featuresการทดสอบคุณสมบัติ Redundancy
ในเครื่องไคลเอ็นต์ (gluster_client) ของเราเราสามารถพิมพ์ข้อความนี้เพื่อเพิ่มไฟล์บางไฟล์ลงในไดเร็กทอรี pool-pool:
cd /storage-poolsudo touch file{1..20}ซึ่งจะสร้างไฟล์ทั้งหมด 20 ไฟล์ในพูลเก็บข้อมูลของเรา
ถ้าเราดูไดเร็กทอรีของเรา / gluster-storage ในโฮสต์ที่จัดเก็บแต่ละไฟล์เราจะเห็นว่าไฟล์เหล่านี้มีอยู่ในแต่ละระบบ:
#บนเครื่อง gluster1.com และ gluster2.com
cd /gluster-storagelsผล
file1 file10 file11 file12 file13 file14 file15 file16 file17 file18 file19 file2 file20 file3 file4 file5 file6 file7 file8 file9
อย่างที่คุณเห็นข้อมูลนี้ได้เขียนข้อมูลจากลูกค้าของเราไปทั้งโหนดของเรา
ถ้ามีจุดที่โหนดในคลัสเตอร์ของคุณหยุดทำงานและการเปลี่ยนแปลงจะเกิดขึ้นกับระบบแฟ้ม
การดำเนินการอ่านบนจุดเชื่อมต่อไคลเอ็นต์หลังจากที่โหนดกลับมาออนไลน์ควรแจ้งเตือนเพื่อรับไฟล์ที่ขาดหายไป:
ls /storage-poolจำกัด การเข้าถึงไดรฟ์ข้อมูล
ขณะนี้เรารู้แล้วว่าสามารถเชื่อมต่อข้อมูลเราได้แล้ว เราสามารถกำหนดการเข้าถึงข้อมูลได้โดย
sudo gluster volume set volume1 auth.allow gluster_client_IP_addrคุณจะต้องเปลี่ยนที่อยู่ IP ของไคลเอ็นต์คลัสเตอร์ของคุณ (gluster_client) ในคำสั่งนี้
ขณะนี้การกำหนดค่าอย่างน้อยกับ / etc / hosts ข้อ จำกัด ของชื่อโดเมนไม่ทำงานอย่างถูกต้อง
หากคุณตั้งค่าข้อ จำกัด ด้วยวิธีนี้จะเป็นการป้องกันการเข้าชมทั้งหมด คุณต้องใช้ที่อยู่ IP แทน
หากต้องการลบข้อ จำกัด นี้คุณสามารถพิมพ์:
sudo gluster volume set volume1 auth.allow *นี้จะช่วยให้การเชื่อมต่อจากเครื่องใด ๆ อีกครั้ง ปัญหานี้ไม่ปลอดภัย แต่อาจมีประโยชน์สำหรับการแก้ไขปัญหา
หากคุณมีลูกค้าหลายรายคุณสามารถระบุที่อยู่ IP ของตนพร้อมกันโดยคั่นด้วยเครื่องหมายจุลภาค:
sudo gluster volume set volume1 auth.allow gluster_client1_ip,gluster_client2_ipGetting Info with GlusterFS Commandsเมื่อคุณเริ่มเปลี่ยนการตั้งค่าบางอย่างสำหรับที่เก็บข้อมูล GlusterFS ของคุณคุณอาจได้รับความสับสนเกี่ยวกับว่าคุณมีตัวเลือกใดบ้างที่ไดรฟ์อยู่และโหนดใดเชื่อมโยงกับแต่ละไดรฟ์ข้อมูล
มีคำสั่งต่างๆที่มีอยู่ในโหนดของคุณเพื่อเรียกค้นข้อมูลนี้และโต้ตอบกับพูลเก็บข้อมูลของคุณ
หากคุณต้องการข้อมูลเกี่ยวกับวอลุ่มแต่ละประเภทให้พิมพ์:
sudo gluster volume infoผล
Volume Name: volume1
Type: Replicate
Volume ID: bd02aeed-ca39-4797-86d3-d6b3b077d797
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gluster1.com:/gluster-storage
Brick2: gluster2.com:/gluster-storage
Options Reconfigured:
performance.readdir-ahead: on
ในทำนองเดียวกันเพื่อดูข้อมูลเกี่ยวกับเพื่อนที่โหนดนี้เชื่อมต่ออยู่คุณสามารถพิมพ์:
sudo gluster peer statusผล
Number of Peers: 1
Hostname: gluster2.com
Uuid: a1e07188-09bf-49ec-9fff-b4cfe4c00445
State: Peer in Cluster (Connected)
ถ้าคุณต้องการทราบรายละเอียดเกี่ยวกับวิธีการทำงานของแต่ละโหนดคุณสามารถกำหนดระ volume ได้โดยการพิมพ์:
sudo gluster volume profile volume_name startใช้จริง
sudo gluster volume profile volume1 startเมื่อคำสั่งนี้เสร็จสิ้นคุณสามารถรับข้อมูลที่รวบรวมโดยการพิมพ์:
sudo gluster volume profile volume_name infoใช้จริง
sudo gluster volume profile volume1 infoผล
Brick: gluster1.com:/gluster-storage
------------------------------------
Cumulative Stats:
Block Size: 16b+ 1024b+
No. of Reads: 0 0
No. of Writes: 1 2
%-latency Avg-latency Min-Latency Max-Latency No. of calls Fop
--------- ----------- ----------- ----------- ------------ ----
0.00 0.00 us 0.00 us 0.00 us 2 FORGET
0.00 0.00 us 0.00 us 0.00 us 25 RELEASE
0.00 0.00 us 0.00 us 0.00 us 22 RELEASEDIR
Duration: 3544 seconds
Data Read: 0 bytes
Data Written: 2066 bytes
...............................
คุณจะได้รับข้อมูลจำนวนมากเกี่ยวกับโหนดแต่ละคำด้วยคำสั่งนี้
สำหรับรายการของคอมโพเนนต์ GlusterFS ที่เชื่อมโยงอยู่ทั้งหมดบนโหนดแต่ละโหนดของคุณคุณสามารถพิมพ์:
sudo gluster volume statusผล
Status of volume: volume1
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick gluster1.com:/gluster-storage 49152 0 Y 22433
Brick gluster2.com:/gluster-storage 49152 0 Y 7802
NFS Server on localhost 2049 0 Y 22460
Self-heal Daemon on localhost N/A N/A Y 22454
NFS Server on gluster2.com 2049 0 Y 7830
Self-heal Daemon on gluster2.com N/A N/A Y 7823
Task Status of Volume volume1
------------------------------------------------------------------------------
There are no active volume tasks
หากคุณกำลังจะจัดการGlusterFS
โดยไม่จำเป็นต้องพิมพ์ Gladiator sudo ก่อนทุกอย่าง:ให้เข้าใช้โดยพิมพ์
sudo glusterจะมีเครื่องหมาย พร้อม \> แล้วให้คุณพิมพ์คำสั่งต่างๆได้เลย ไม่รู้ให้พิมพ์
helpออกให้พิมพ์
exitโดย freelancethai.netอ้างอิงจาก https://www.digitalocean.com/community/tutorials/how-to-create-a-redundant-storage-pool-using-glusterfs-on-ubuntu-servers