Saturday, October 5, 2024

[Swift] – Phần 4: Cài đặt và cấu hình các Storage Nodes

-

1. Tổng quan.

Bài này hướng dẫn cách cài đặt và cấu hình các node lưu trữ (storage nodes) cho dịch vụ Object Storage trong OpenStack trên hệ điều hành Ubuntu.

2. Chuẩn bị môi trường.

Cài đặt các gói phần mềm hỗ trợ xfsprogs (cung cấp các công cụ để làm việc với hệ thống file system XFS) và rsync (một công cụ để sao chép và đồng bộ hóa dữ liệu).

apt-get install xfsprogs rsync -y

Format hai disk/dev/sdb và /dev/sdc với file system XFS. XFS là một file system hiệu suất cao được thiết kế cho việc xử lý dữ liệu lớn.

mkfs.xfs /dev/sdb
mkfs.xfs /dev/sdc

Tạo thư mục để mount các thiết bị lưu trữ.

mkdir -p /srv/node/sdb
mkdir -p /srv/node/sdc

Tìm UUID (một định danh duy nhất) của các phân vùng mới.

blkid -s UUID -o value /dev/sdb
blkid -s UUID -o value /dev/sdc

Chỉnh sửa file /etc/fstab để thêm các dòng cấu hình cho việc tự động mount các thiết bị lưu trữ khi hệ thống khởi động.

cat >> /etc/fstab << OEF
UUID="$(blkid -s UUID -o value /dev/sdb)" /srv/node/sdb xfs noatime 0 2
UUID="$(blkid -s UUID -o value /dev/sdc)" /srv/node/sdc xfs noatime 0 2
OEF

Mount các thiết bị lưu trữ đã chỉ định trong file /etc/fstab.

mount -a

Tạo hoặc chỉnh sửa file /etc/rsyncd.conf để cấu hình dịch vụ rsync, một dịch vụ cho phép sao chép và đồng bộ hóa dữ liệu giữa các máy chủ.

cat > /etc/rsyncd.conf << 'OEF'
uid = swift
gid = swift
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address = MANAGEMENT_INTERFACE_IP_ADDRESS

[account]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/account.lock

[container]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/container.lock

[object]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/object.lock
OEF

Thay thế MANAGEMENT_INTERFACE_IP_ADDRESS bằng địa chỉ IP của mạng management trên storage node.

Chỉnh sửa file /etc/default/rsync để kích hoạt dịch vụ rsync.

sed -i 's/RSYNC_ENABLE=false/RSYNC_ENABLE=true/g' /etc/default/rsync

Khởi động dịch vụ rsync.

systemctl restart rsync
systemctl enable rsync
systemctl status  rsync | grep active

Lưu ý: Dịch vụ rsync không yêu cầu xác thực vì vậy hãy cân nhắc việc chạy dịch vụ này trên private network.

3. Cài đặt và cấu hình (thực hiện các bước này trên mỗi storage node.)

Các file cấu hình mặc định có thể khác nhau tùy theo bản phân phối Linux mà bạn đang sử dụng. Ví dụ, một file cấu hình trên Ubuntu có thể khác với file cấu hình tương tự trên CentOS.

Khi bạn cấu hình một dịch vụ, bạn có thể cần phải thêm các phần và tùy chọn mới vào file cấu hình, thay vì chỉ sửa đổi các phần và tùy chọn hiện có.

Khi bạn thấy dấu ba chấm (…) trong một đoạn cấu hình, điều này chỉ ra rằng có các tùy chọn cấu hình mặc định mà bạn nên giữ nguyên. Điều này giúp đảm bảo rằng bạn không vô tình thay đổi một tùy chọn quan trọng nào đó khi cấu hình dịch vụ.

3.1. Cài đặt các packages.

apt-get install swift swift-account swift-container swift-object -y

Ghi chú: Môi trường OpenStack hoàn chỉnh có thể bao gồm một số gói này.

Lấy file cấu hình accounting, container và object service từ Object Storage source repository.

curl -o /etc/swift/account-server.conf https://opendev.org/openstack/swift/raw/branch/master/etc/account-server.conf-sample
curl -o /etc/swift/container-server.conf https://opendev.org/openstack/swift/raw/branch/master/etc/container-server.conf-sample
curl -o /etc/swift/object-server.conf https://opendev.org/openstack/swift/raw/branch/master/etc/object-server.conf-sample

3.2. Cấu hình file /etc/swift/account-server.conf.

Trong phần [DEFAULT] cấu hình bind_ip, bind_port, user, thư mục chứa file cấu hình và thư mục đã mount các ổ đĩa.

[DEFAULT]
...
bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
bind_port = 6202
user = swift
swift_dir = /etc/swift
devices = /srv/node
mount_check = true

Lưu ý: mount_check = true không viết hoa chữ T nhé.

Thay thế MANAGEMENT_INTERFACE_IP_ADDRESS bằng địa chỉ IP của mạng management trên storage node.

Trong phần [pipeline:main] kích hoạt các modules.

[pipeline:main]
pipeline = healthcheck recon account-server

Để biết thêm thông tin về các modules khác để kích hoạt các tính năng bổ sung sau này, hãy bấm vào đây.

Trong phần [filter:recon] cấu hình một bộ lọc có tên là recon. Bộ lọc này được sử dụng để thu thập và báo cáo về các thông tin vận hành của dịch vụ Swift.

[filter:recon]
use = egg:swift#recon
#...
recon_cache_path = /var/cache/swift

use = egg:swift: Chỉ định rằng bộ lọc recon sẽ được sử dụng egg:swift là một chuỗi chỉ định module Python cụ thể sẽ được sử dụng để thực hiện bộ lọc này.

recon_cache_path = /var/cache/swift: Đường dẫn đến thư mục cache mà bộ lọc recon sẽ sử dụng để lưu trữ dữ liệu tạm thời.

Bộ lọc recon sẽ thu thập các thông tin vận hành từ dịch vụ Swift và lưu chúng vào thư mục cache này. Thông tin này sau đó có thể được sử dụng để giám sát hoạt động của dịch vụ và phát hiện các vấn đề tiềm ẩn.

3.3. Cấu hình file /etc/swift/container-server.conf.

Trong phần [DEFAULT], bạn cấu hình các thông số sau:

[DEFAULT]
#...
bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
bind_port = 6201
user = swift
swift_dir = /etc/swift
devices = /srv/node
mount_check = true
  • bind_ip: Địa chỉ IP mà dịch vụ container-server sẽ liên kết (bind) đến. Thay thế MANAGEMENT_INTERFACE_IP_ADDRESS bằng địa chỉ IP của mạng quản lý trên storage node.
  • bind_port: Cổng mà dịch vụ container-server sẽ liên kết (bind) đến.
  • user: Người dùng sẽ chạy dịch vụ container-server, trong trường hợp này là “swift”.
  • swift_dir: Đường dẫn đến thư mục chứa các file cấu hình của Swift.
  • devices: Đường dẫn đến thư mục chứa các thiết bị lưu trữ.
  • mount_check: Nếu đặt là true (không viết hoa chữ T nhé), Swift sẽ kiểm tra xem các thiết bị lưu trữ đã được mount chưa.

Trong phần [pipeline:main], bạn kích hoạt các module cần thiết:

[pipeline:main]
pipeline = healthcheck recon account-server

pipeline: Đây là chuỗi các bộ lọc (filters) sẽ được áp dụng cho mỗi yêu cầu đến dịch vụ container-server. Trong trường hợp này, các bộ lọc là healthcheck, recon và container-server.

Trong phần [filter:recon], bạn cấu hình thư mục cache cho bộ lọc recon:

[filter:recon]
use = egg:swift#recon
#...
recon_cache_path = /var/cache/swift
  • use: Chỉ định rằng bộ lọc recon sẽ được sử dụng.
  • recon_cache_path: Đường dẫn đến thư mục cache mà bộ lọc recon sẽ sử dụng để lưu trữ dữ liệu tạm thời.

3.4. Cấu hình file /etc/swift/object-server.conf.

Hướng dẫn này sẽ mô tả cách chỉnh sửa file cấu hình /etc/swift/object-server.conf cho dịch vụ OpenStack Swift, một dịch vụ lưu trữ đối tượng phân tán.

Các bước cụ thể bao gồm:

Trong phần [DEFAULT], bạn cấu hình các thông số sau:

[DEFAULT]
#...
bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
bind_port = 6200
user = swift
swift_dir = /etc/swift
devices = /srv/node
mount_check = true

Trong đó:

  • bind_ip: Địa chỉ IP mà dịch vụ object-server sẽ liên kết (bind) đến. Thay thế MANAGEMENT_INTERFACE_IP_ADDRESS bằng địa chỉ IP của mạng quản lý trên node lưu trữ.
  • bind_port: Cổng mà dịch vụ object-server sẽ liên kết (bind) đến.
  • user: Người dùng sẽ chạy dịch vụ object-server, trong trường hợp này là “swift”.
  • swift_dir: Đường dẫn đến thư mục chứa các file cấu hình của Swift.
  • devices: Đường dẫn đến thư mục chứa các thiết bị lưu trữ.
  • mount_check: Nếu đặt là true (không viết hoa chữ T nhé), Swift sẽ kiểm tra xem các thiết bị lưu trữ đã được gắn kết (mount) chưa.

Trong phần [pipeline:main], bạn kích hoạt các module cần thiết bằng cách thiết lập pipeline = healthcheck recon object-server.

[pipeline:main]
pipeline = healthcheck recon object-server

Trong phần [filter:recon], bạn cấu hình đường dẫn đến thư mục cache và thư mục khóa cho recon (một công cụ giám sát và kiểm tra hệ thống Swift).

[filter:recon]
use = egg:swift#recon
#...
recon_cache_path = /var/cache/swift
recon_lock_path = /var/lock

Cuối cùng, bạn đảm có quyền sở hữu thư mục mount point (/srv/node) và thư mục cache recon (/var/cache/swift).

chown -R swift:swift /srv/node
mkdir -p /var/cache/swift
chown -R root:swift /var/cache/swift
chmod -R 775 /var/cache/swift

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories