Wednesday, July 3, 2024

[Swift] – Phần 2: Cấu hình Network

-

1. Tổng quan.

OpenStack Object Storage, còn được gọi là Swift, là một hệ thống lưu trữ đối tượng đa người dùng. Nó có khả năng mở rộng cao và có thể quản lý lượng lớn dữ liệu không cấu trúc với chi phí thấp thông qua API HTTP RESTful.

Tài liệu tham khảo: https://docs.openstack.org/swift/latest/install/

Dưới đây là các thành phần chính của Swift:

  • Proxy servers (swift-proxy-server): Nhận các yêu cầu API OpenStack Object Storage và các yêu cầu HTTP thô để tải lên file, chỉnh sửa metadata và tạo containers. Nó cũng phục vụ danh sách file hoặc container cho trình duyệt web. Để cải thiện hiệu suất, máy chủ proxy có thể sử dụng bộ nhớ cache tùy chọn thường được triển khai với memcache.
  • Account servers (swift-account-server): Quản lý các tài khoản được định nghĩa với Object Storage.
  • Container servers (swift-container-server): Quản lý việc ánh xạ của các container hoặc thư mục, trong Object Storage.
  • Object servers (swift-object-server): Quản lý các object thực tế, như file, trên các nút lưu trữ.
  • Various periodic processes: Thực hiện các tác vụ dọn dẹp trên cửa hàng dữ liệu lớn. Các dịch vụ sao chép đảm bảo tính nhất quán và khả dụng thông qua cụm. Các quá trình định kỳ khác bao gồm auditors, updaters, và reapers.
  • WSGI middleware: Xử lý xác thực và thường là OpenStack Identity.
  • swift client: Cho phép người dùng gửi các lệnh đến API REST thông qua một client dòng lệnh được ủy quyền như một người dùng admin, người dùng reseller hoặc người dùng swift.
  • swift-init: Script khởi tạo việc xây dựng file ring, nhận tên daemon làm tham số và cung cấp các lệnh.
  • swift-recon: Một công cụ cli được sử dụng để lấy các số liệu và thông tin telemetry về một cụm đã được thu thập bởi middleware swift-recon.
  • swift-ring-builder: Công cụ xây dựng và cân bằng ring lưu trữ.

Mỗi thành phần đều có vai trò và chức năng riêng trong việc quản lý và vận hành hệ thống lưu trữ.

2. Cấu hình network.

Để đạt được hiệu suất I/O cao nhất cho OpenStack Swift, bạn cần cấu hình mạng của bạn theo cách sau:

  • Sử dụng Ethernet tốc độ cao: Sử dụng các kết nối Ethernet tốc độ cao như 10GbE hoặc hơn để đảm bảo rằng mạng không phải là nơi bị nghẽn cổ chai cho hiệu suất I/O.
  • Sử dụng Jumbo Frames: Jumbo Frames cho phép bạn gửi các gói dữ liệu lớn hơn thông qua mạng, giảm bớt overhead và cải thiện hiệu suất.
  • Sử dụng mạng riêng biệt cho lưu trữ: Để đảm bảo rằng lưu lượng mạng của Swift không bị ảnh hưởng bởi lưu lượng mạng khác, bạn nên sử dụng một mạng riêng biệt cho lưu trữ.
  • Sử dụng Load Balancing và Redundancy: Sử dụng các giải pháp cân bằng tải và dự phòng để đảm bảo rằng không có một node mạng nào trở thành một nơi bị nghẽn cổ chai và để đảm bảo tính sẵn sàng cao.
  • Tối ưu hóa cấu hình mạng: Tối ưu hóa các tham số mạng như kích thước bộ nhớ đệm gửi và nhận, số lượng kết nối tối đa, v.v. để cải thiện hiệu suất I/O.

Trước khi bắt đầu triển khai dịch vụ lưu trữ Object Storage trong môi trường OpenStack của bạn, cần phải cấu hình network cho hai Object Storage node lưu trữ bổ sung.

Máy chủ lưu trữ thứ nhất.

  • Management interface:
    • IP: 10.0.0.51
    • Netmask: 255.255.255.0 (hoặc /24)
    • Default gateway: 10.0.0.1
  • Lưu ý: Các thông số này cần khớp với cấu hình mạng hiện tại của môi trường OpenStack của bạn.

3. Cấu hình file hosts:

  • Đặt tên cho node là object1: Sử dụng lệnh đổi tên hostnamectl set-hostname <tên node> trên hệ điều hành.
  • Chỉnh sửa file /etc/hosts:
    • File này nằm trong thư mục /etc/ và chứa thông tin ánh xạ giữa tên miền và địa chỉ IP.
    • Thêm các dòng sau vào file:
      • 10.0.0.11 controller
      • 10.0.0.31 compute1
      • 10.0.0.41 block1
      • 10.0.0.51 object1
      • 10.0.0.52 object2
    • Lưu ý: Dòng mới được thêm vào là dòng 10.0.0.51 object1. Các dòng khác có thể đã tồn tại trong file tùy thuộc vào cấu hình hệ thống của bạn.

Máy chủ lưu trữ tiếp theo.

Sau khi hoàn thành các bước trên node 1, cần thực hiện các bước tương tự cho node thứ hai (object2) với địa chỉ IP là 10.0.0.52 hoặc các node lữu trữ khác nữa nếu bạn có nhiều hơn 2 node lưu trữ.

Cảnh báo.

Một số bản phân phối Linux tự động thêm một dòng vào file /etc/hosts liên kết tên máy chủ (hostname) với địa chỉ IP loopback khác như 127.0.1.1. Điều này có thể gây ra vấn đề với việc phân giải tên miền trên hệ thống của bạn. Bạn cần phải comment hoặc xóa dòng này để tránh gặp vấn đề. Tuy nhiên, bạn không nên xóa dòng có tên máy chủ với địa chỉ IP loopback 127.0.0.1.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories