Thursday, September 19, 2024

Ceph RBD trong Proxmox

-

1. Tổng quan.

Trong Proxmox VE, nếu bạn kết nối với một cụm Ceph không nhất thiết phải cài đặt gói ceph-common nếu Proxmox VE không trực tiếp chạy các dịch vụ Ceph (Monitor, OSD, v.v.). Tuy nhiên, nếu bạn muốn tương tác với Ceph thông qua các lệnh như rados, rbd hoặc ceph từ giao diện dòng lệnh, thì cần cài đặt gói ceph-common để có các công cụ cần thiết.

Proxmox VE sử dụng krbd (kernel RBD module) để mount RBD (RADOS Block Device) từ Ceph. Khi bạn cấu hình và sử dụng RBD trong Proxmox, hệ thống sẽ tự động sử dụng module kernel krbd để quản lý và truy cập các block devices từ cụm Ceph. Nhưng bản thân krbd nó không cung cấp các lệnh trực tiếp để liệt kê thông tin.

Dưới đây là quy trình cơ bản mà Proxmox VE sử dụng để mount RBD:

  • Khi bạn cấu hình RBD trong Proxmox:
    • Bạn chỉ định các thông tin về monitor daemon (monhost), pool và username.
    • Proxmox VE sẽ sử dụng thông tin này để thiết lập kết nối với cụm Ceph.
  • Sử dụng krbd:
    • Nếu cấu hình krbd được bật (hoặc mặc định), hệ thống sẽ sử dụng module kernel này để mount và quản lý các thiết bị RBD.
    • Module krbd cung cấp khả năng truy cập trực tiếp vào block devices từ Ceph như là thiết bị lưu trữ cục bộ.
  • Quản lý qua giao diện Proxmox:
    • Sau khi RBD được mount thông qua krbd, Proxmox sẽ quản lý các thiết bị này như ổ đĩa lưu trữ thông thường, có thể được sử dụng cho các máy ảo (VM) hoặc container.

2. Cấu hình Ceph RBD.

Ceph RBD là một phương thức lưu trữ trong Proxmox VE. Backend này hỗ trợ các thuộc tính chung như nodes, disable, content và một số thuộc tính riêng của RBD như:

  • monhost: Danh sách các IP của daemon monitor. Thuộc tính này là tùy chọn và chỉ cần khi Ceph không chạy trực tiếp trên Proxmox.
  • pool: Tên của pool Ceph.
  • username: ID của người dùng RBD. Thuộc tính này cũng là tùy chọn nếu Ceph không chạy trực tiếp trên Proxmox.
  • krbd: Bắt buộc truy cập vào các thiết bị RBD thông qua module kernel krbd (tùy chọn).

Ví dụ cấu hình cho Ceph bên ngoài.

Nếu bạn có một cụm Ceph bên ngoài Proxmox, bạn có thể cấu hình lưu trữ RBD như sau trong file /etc/pve/storage.cfg:

rbd: ceph
        content images
        krbd 0
        monhost 192.168.100.201 192.168.100.202 192.168.100.203 192.168.100.204 192.168.100.205
        nodes ods1
        pool ceph
        username admin

Và nếu vào giao diện Add RBD trên Proxmox bạn cũng sẽ thấy giao diện thêm RDB dạng như dưới.

Xác thực Ceph.

Nếu Ceph được cài đặt cục bộ trên Proxmox VE, việc xác thực sẽ được thực hiện tự động. Tuy nhiên, nếu bạn kết nối với một cụm Ceph bên ngoài, bạn cần phải sao chép file keyring từ cụm Ceph bên ngoài về máy Proxmox.

File keyring sẽ có nội dung định dạng như sau:

[client.admin]
	key = AQDcbUJlXdsaklcnxmzlnfdasrr6wazxhQ==
	caps mds = "allow *"
	caps mgr = "allow *"
	caps mon = "allow *"
	caps osd = "allow *"

Ví dụ, bạn có thể sao chép file keyring như sau:

scp <external cephserver>:/etc/ceph/ceph.client.admin.keyring /root/rbd.keyring

Sau đó, sử dụng công cụ pvesm để thêm lưu trữ RBD từ Ceph bên ngoài với lệnh:

pvesm add rbd ceph --content images --krbd 0 --monhost "192.168.100.201 192.168.100.202 192.168.100.203 192.168.100.204 192.168.100.205" --nodes ods1 --pool ceph --username admin

Trong lệnh pvesm add rbd <name>, <name> không phải là tên của pool, mà là tên của storage mà bạn muốn thêm vào Proxmox VE. Đây là tên mà bạn sẽ sử dụng để tham chiếu đến storage RBD trong giao diện Proxmox hoặc khi sử dụng các lệnh quản lý storage.

Ví dụ, nếu bạn muốn thêm một RBD storage với tên là “ceph-storage”, lệnh sẽ như sau:

pvesm add rbd ceph-storage --content images --krbd 0 --monhost "192.168.100.201 192.168.100.202 192.168.100.203 192.168.100.204 192.168.100.205" --nodes ods1 --pool ceph --username admin

Trong cấu hình này ceph-storage là tên của storage mà bạn sẽ thấy trong danh sách các storage của Proxmox.

Tính năng của Ceph RBD.

Ceph RBD hỗ trợ lưu trữ dạng block level, và cung cấp các tính năng đầy đủ của snapshot và clone. Nó hỗ trợ các loại nội dung như imagesrootdir, cho phép snapshot và clone, đồng thời hỗ trợ chia sẻ dữ liệu.

Tóm tắt.

Bài viết này giải thích cách cấu hình RBD trong Ceph khi sử dụng trong môi trường Proxmox VE. Nếu Ceph được cài đặt và chạy cục bộ trên các node Proxmox, các gói cần thiết cho Ceph sẽ được tự động cài đặt, bao gồm ceph-common. Nếu Proxmox chỉ kết nối với một cụm Ceph bên ngoài để sử dụng RBD hoặc các dịch vụ lưu trữ khác, thì bạn chỉ cần cấu hình kết nối tới cụm Ceph qua file cấu hình hoặc giao diện đồ họa, và không bắt buộc phải cài đặt ceph-common trừ khi bạn muốn sử dụng các lệnh dòng lệnh Ceph trên node Proxmox.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories