Triển khai GlusterFS

0
1175

1       Giới thiệu các hình thức lưu trữ

1.1      Direct Attached Storage (DAS)

Direct attached storage (DAS) là cách lưu trữ mà chúng ta đã quen biết từ lâu, đó là các ổ cứng SCSI gắn bên trong các máy chủ. Các ứng dụng có thể truy cập vào ổ cứng gắn trong ở mức độ block-level hoặc file-level, thích hợp cho mọi nhu cầu với khả năng truy vấn tốc độ cao.

1.2      Network Attached Storage (NAS)

Network attached storage (NAS) là dạng lưu trữ kết nối từ xa đến server thông qua mạng LAN với giao thức TCP/IP. Thay vì truy cập đến thiết bị lưu trữ gắn trong (như DAS), ứng dụng truy cập đến thiết bị lưu trữ gắn trên 1 thiết bị lưu trữ khác thông qua network.

Image of NAS

Các thiết bị NAS thiết kế để tối ưu cho lưu trữ, và có thể dễ dàng mở rộng dung lượng bằng cách cắm thêm thiết bị lưu trữ ngoài, hoặc combine với nhau thành group. Lúc này, ứng dụng cài trên server khác, sẽ truy cập đến thiết bị lưu trữ này (cũng là 1 server chạy Windows, hoặc một HĐH nào khác) ở mức file-level, dùng CIFS (Windows) hoặc NFS (Unix).

Cũng có thể hiểu rằng NAS chính là DAS được đặt trên mạng IP mà các Server/Client truy xuất từ xa đến nó.

1.3      Storage Area Network (SAN)

SAN (Storage Area Network) là một mạng được thiết kế để kết nối các máy chủ tới hệ thống lưu trữ dữ liệu, trong đó các máy chủ truy cập tới hệ thống lưu trữ ở mức block. Trong khi đó NAS (Network Attached Storage) là công nghệ lưu trữ nối mạng cho phép máy chủ truy cập dữ liệu ở mức tệp tin.

Image of SAN

SAN có rất nhiều ưu điểm. Quản lí và khai thác thiết bị lưu trữ ở dạng tập trung là một trong những mục tiêu phát triển chính của SAN. Đối với quản trị viên thì việc quản lý tất cả các nguồn tài nguyên lưu trữ trong môi trường luôn phát triển và đòi hỏi cao là một việc không dễ dàng, chi phí đắt. Còn đối với SAN thì chi phí quản lý cũng như độ phức tạp được giảm đáng kể trong khi vẫn cung cấp đầy đủ các tính năng kỹ thuật quan trọng.

SAN có thể dựa trên nhiều chuẩn kết nối tốc độ cao khác nhau, thực tế mạng SAN ngày nay sử dụng phối hợp nhiều chuẩn khác nhau.

Hiện nay chuẩn kết nối FC (Fibre Channel) được xem như là một chuẩn (không chính thức) cho hầu hết các SAN. FC là một kết nối theo chuẩn công nghiệp và là một giao thức I/O nối tiếp hiệu năng cao. Ngoài chuẩn kết nối này còn có  iSCSI, SAS cũng thường được sử dụng như là chuẩn kết nối thông dụng.

Image of iSCSI

2       Gluster FS

GlusterFS phần mềm mã nguồn mở cho phép mở rộng hệ thống lưu trữ file lên tới mức peta-byte và xử lý cùng lúc cho hàng ngàn client, nó có khả năng tập hợp các server lưu trữ khác nhau qua mạng Ethernet hoặc RDMA (Remote Direct Memory Access) kết nối thành một hệ thống lưu trữ tập tin lớn và song song. Trong nhiều trường hợp, GlusterFS được lựa chọn như một giải pháp phần mềm chi phí thấp thay thế cho SAN.

GlusterFS ngay từ khi ra đời đã được định hướng theo Software Define Storage, phiên bản mới nhất hiện nay là Gluster 3.8.

Phần cứng của Gluster yêu cầu khá thông dụng, từ máy chủ x86_64 của Dell, HP, IBM, SuperMicro hay kể cả Server lắp ráp, mỗi server phải có hệ thống DAS (các ổ cứng) tích hợp sẵn .

Kiến trúc Gluster dựa gồm bốn phần chính:

  • Node: các máy chủ lưu trữ được cài đặt Gluster.
  • Brick: các thiết bị lưu trữ kết nối với máy chủ, ví dụ như đĩa RAID, được định dạng với chuẩn XFS (với các thuộc tính mở rộng).
  • Volume: Gluster đóng vai trò như một LVM (Logical Volume Manager) bằng cách quản lý các brick phân tán trên các máy chủ như là một điểm kết nối lưu trữ duy nhất trên mạng.
  • Client: là các máy tính kết nối với hệ thống lưu trữ của Gluster. Đó có thể là các Windows client chuẩn (thông qua CIFS), NFS client, hay sử dụng Gluster client cải tiến hơn so với NFS, đặc biệt là tính sẵn sàng cao.

Ưu điểm của GlusterFS:

  • Khả năng mở rộng: GluserFS có khả năng tương thích linh hoạt với mức độ tăng trưởng của dữ liệu, có khả năng lưu trữ đến hàng nghìn Petabyte và lớn hơn.
  • Tính linh hoạt: GlusterFS có thể sử dụng nhiều định dạng lưu trữ hệ thống như ext4, xfs…
  • Đơn giản: Việc quản lý GlusterFS rất dễ dàng, được tách biệt khỏi kernel space và thực thi trên user space.
  • Chi phí: GlusterFS có thể triển khai trên các hệ thống phần cứng thông thường mà không yêu cầu bất kỳ một thiết bị chuyên biệt nào.
  • Nguồn mở: Hiện nay mã nguồn của GlusterFS vẫn được công khai và điều hành bởi Red Hat Inc.

2.1      Các Concept Volume cấu hình trong GlusterFS

Mỗi một concept volume đều có tính năng riêng, chúng có thể được kết hợp với nhau để tạo ra một concept mới. Tùy vào mục đích riêng của từng hệ thống mà người quản trị tạo các volume. Mỗi loại volume đều có ưu và nhược điểm riêng, vậy nên hãy tìm hiểu thật kĩ nhu cầu hệ thống của mình để xây dựng volume tối ưu và tránh các rủi ro dữ liệu.

  • Distributed Glusterfs Volume
  • Replicated Glusterfs Volume
  • Striped Glusterfs Volume
  • Distributed Replicated Glusterfs Volume
  • Distributed Striped Glusterfs Volume
  • Replicated Striped Glusterfs Volume

2.1.1      Distributed Glusterfs Volume

Với concept này, các files (data) sẽ được phân tán, lưu trữ rời rạc (distributed) trong các bricks khác nhau . Ví dụ, bạn có 100 files: file1, file2, file3…, file100. Thì file1, file2 lưu ở brick1, file3,4lưu ở brick2, etc. Việc phân bố các files trên brick dựa vào thuật toán hash, kiểu concept này tương tự JBOD

distributed_volume

Ưu điểm: Mở rộng được dung lượng lưu trữ nhanh chóng và dễ dàng, tổng dung lượng lưu trữ của volume bằng tổng dung lượng của các brick.

Nhược điểm: Khi một trong các brick bị ngắt kết nối, hoặc bị lỗi thì dữ liệu sẽ bị mất hoặc không truy vấn được.

2.1.2      Replicated Glusterfs Volume

Với concept này, dữ liệu sẽ được copy sang các bricks trong cùng một volume. Nhìn vào concept này chúng ta thấy rõ ưu điểm đó là dữ liệu sẽ có tính sẵn sàng cao và luôn trong trạng thái dự phòng tương tự Raid 1

replicated_volume

Tổng dung lượng của volume sẽ chỉ bằng một dung lượng của một brick trong volume.

2.1.3      Striped Glusterfs Volume

Với concept này, dữ liệu được chia nhỏ thành những phần khác nhau và lưu trữ ở những brick khác nhau trong volume. Loại concept này tương tự RAID 0.

striped_volume

Ưu điểm: Phù hợp với việc lưu trữ mà dữ liệu cần truy xuất với hiệu năng cao, đặc biệt là truy cập vào những tệp tin lớn.

Nhược điểm: Khi một trong những brick trong volume bị lỗi, thì volume đó không thể hoạt động được

2.1.4      Distributed Replicated Glusterfs Volume

Concept này là sự kết hợp giữa Concept 1 (Distributed Glusterfs Volume) và Concept 2 (Replicated Glusterfs Volume).

distributed_replicated_volume

Khi tạo thì tương tự với 1, nhưng chú ý với tùy chọn là (option) 2 replica. Tùy chọn này sẽ định nghĩa số lượng brick trong volume này sẽ là bội số của replica . Như ở ví dụ này, số lượng replica là 2, thì số lượng bricks sẽ là 4, 6, 8, …. Nếu số bricks = 2 thì nó sẽ trở thành Concept 2.

2.1.5      Distributed Striped Glusterfs Volume

Kết hợp Concept 1 (Distributed Glusterfs Volume) và Concept 3 (Striped Glusterfs Volume)
Số lượng bricks phải là bội của số striped count ở trong concept này.

distributed_striped_volume

Ở đây, stripe 4, tức lượng brick phải là 8, 12. Nếu lượng brick = strip = 4 thì Concept này sẽ trở thành Concept 3 (Striped Glusterfs Volume)

2.2      Installing GlusterFS – Quick Start Guide

Bước 1 – Yêu cầu tối thiểu 2 nodes server – 1 node client

  • Fedora 22 (or later) hoặc CentOS 5.8 (or later) trên hai node đặt tên “server1” & “server2”
  • Card mạng 1Gb
  • Tối thiểu 2 virtual disks, 1 cho cài đặt OS, & một để lưu trữ GlusterFS storage (sdb). Mô hình này chỉ để giả lập trong môi trường Lab.
  • Note: GlusterFS sẽ tự tạo thư mục và file /var/lib/glusterd.
  • Sửa lại /etc/hosts của 3 server như sau:
    • 192.168.55.10 server1
    • 192.168.55.11 server2
    • 192.168.55.5 client

Bước 2 – Format & mount the bricks

Note: trong lab này, brick được lưu trữ trên /dev/sdb1.

mkfs.xfs -i size=512 /dev/sdb1

mkdir -p /data/brick1

echo ‘/dev/sdb1 /data/brick1 xfs defaults 1 2’ >> /etc/fstab

mount -a && mount

Bạn phải chắc chắn sdb1 mounted tại /data/brick1

Bước 3 – Cài đặt GlusterFS

(trên cả hai nodes) Cài đặt software

yum install glusterfs-server

Start GlusterFS bằng daemon:

service glusterd start

service glusterd status

glusterd.service – LSB: glusterfs server

Loaded: loaded (/etc/rc.d/init.d/glusterd)

Active: active (running) since Mon, 13 Aug 2012 13:02:11 -0700; 2s ago

Process: 19254 ExecStart=/etc/rc.d/init.d/glusterd start (code=exited, status=0/SUCCESS)

CGroup: name=systemd:/system/glusterd.service

├ 19260 /usr/sbin/glusterd -p /run/glusterd.pid

├ 19304 /usr/sbin/glusterfsd –xlator-option georep-server.listen-port=24009 -s localhost…

└ 19309 /usr/sbin/glusterfs -f /var/lib/glusterd/nfs/nfs-server.vol -p /var/lib/glusterd/…

Bước 4 – Cấu hình trusted pool

Tại “server1”

gluster peer probe server2

Tại “server2”

gluster peer probe server1

Note: Khi pool khởi tạo hoàn tất, chỉ có các trusted members mới có thể probe new servers vào pool pool.

Bước 5 – Set up a GlusterFS volume

Trên cả hai server1 & server2:

mkdir /data/brick1/gv0

Trên bất cứ server1 hoặc server2:

gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0

gluster volume start gv0

Xác đinh chắc chắn kết quả sau khi chạy lệnh bên dưới là “Started”:

gluster volume info

Note: Nếu the volume không ở trạng thái started thì phải vào log files tại /var/log/glusterfs tìm file etc-glusterfs-glusterd.vol.log để kiểm tra

Bước 6 – Kiểm tra GlusterFS volume

Trên máy client ta thực hiện mount tới thư mục Gluster và kiểm tra.

mount -t glusterfs server1:/gv0 /mnt

for i in `seq -w 1 100`; do cp -rp /var/log/messages /mnt/copytest-$i; done

Đầu tiên, kiểm tra mount point:

ls –lA /mnt | wc –l

Bạn phải nhìn thấy 100 files đã tạo ở trên. Kế tiếp, kiểm tra GlusterFS mount points on trên mỗi server:

ls -lA /data/brick1/gv0

Do ở trên chúng ta đang cấu hình theo dạng replicate nên bạn phải nhìn thấy 100 files đã tạo ở trên. Nếu chúng ta sử dụng Distribute thì chỉ thấy 50 files trên mỗi server.

Thông tin chi tiết có thể tham khảo ở đây: http://gluster.readthedocs.io/en/latest/Administrator%20Guide/Did%20You%20Know/

Nguồn:

Storage Technologies Overview:

https://technet.microsoft.com/en-us/library/dn610883(v=ws.11).aspx

GlusterFS Administration Guide

http://gluster.readthedocs.io/en/latest/Administrator%20Guide/

Link Video Step by Step: Comming soon….

This site uses Akismet to reduce spam. Learn how your comment data is processed.