ผู้เขียน หัวข้อ: How To Create a Redundant Storage Pool Using GlusterFS on Ubuntu Servers  (อ่าน 3224 ครั้ง)

ออฟไลน์ ผู้ดูแลระบบ

  • Administrator
  • Jr. Member
  • *****
  • กระทู้: 64
  • +0/-0
    • ดูรายละเอียด
How To Create a Redundant Storage Pool Using GlusterFS on Ubuntu Servers
« เมื่อ: สิงหาคม 15, 2017, 12:43:51 am »
How To Create a Redundant Storage Pool Using GlusterFS on Ubuntu Servers
เตรียมเครื่อง ubutu 16.04 สามเครื่อง
1,2 สำหรับ ทำ virsual storage
3. client สำหรับ access ใช้งาน

Step 1
login 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-pool
sudo touch file{1..20}

ซึ่งจะสร้างไฟล์ทั้งหมด 20 ไฟล์ในพูลเก็บข้อมูลของเรา
ถ้าเราดูไดเร็กทอรีของเรา / gluster-storage ในโฮสต์ที่จัดเก็บแต่ละไฟล์เราจะเห็นว่าไฟล์เหล่านี้มีอยู่ในแต่ละระบบ:

#บนเครื่อง gluster1.com และ gluster2.com

cd /gluster-storage
ls
ผล
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_ip


Getting 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
« แก้ไขครั้งสุดท้าย: สิงหาคม 15, 2017, 12:49:45 am โดย ผู้ดูแลระบบ »