Saturday, January 18, 2025

[Ceph] – Phần 4: Sử dụng File System

-

1. Tổng quan.

Ceph File System (CephFS) là một hệ thống file phân tán, và cũng là một phần của hệ thống lưu trữ phân tán Ceph. CephFS cho phép nhiều client cùng một lúc có thể mount và tương tác với cùng một hệ thống file, giống như NFS hoặc SMB, nhưng với khả năng mở rộng và độ tin cậy cao hơn.

CephFS sử dụng cùng một cụm lưu trữ phân tán như các thành phần khác của Ceph (như RBD và RADOS Gateway). Dữ liệu được chia nhỏ và phân phối đều qua tất cả các OSD (Object Storage Daemons) trong cụm.

CephFS sử dụng một hoặc nhiều MDS (Metadata Server) để quản lý metadata của hệ thống file. MDS cho phép CephFS mở rộng số lượng file và thư mục mà nó có thể quản lý mà không giảm hiệu suất.

CephFS hỗ trợ cả giao thức POSIX, cho phép nó tương thích với hầu hết các ứng dụng hiện có.

2. Sơ đồ LAB.

Cấu hình Ceph Client [ceph-client.hoanghd.com] để sử dụng Ceph File System với sơ đồ như sau.

                                                  |
    +-------------------------+                   |
    |[ceph-client.hoanghd.com]|192.168.13.234     |
    |     Ceph Client         +-------------------+
    |                         |                   |
    +-------------------------+                   |
                                                  |
               +----------------------------------+-----------------------------------+
               |public: 192.168.13.231            |public: 192.168.13.232             |public: 192.168.13.233
               |cluster: 172.16.13.231            |cluster: 1172.16.13.232            |cluster: 172.16.13.233
+--------------+--------------+    +--------------+--------------+     +--------------+--------------+ 
|   [ceph-node1.hoanghd.com]  |    |   [ceph-node2.hoanghd.com]  |     |   [ceph-node3.hoanghd.com]  | 
|        Object Storage       +----|        Object Storage       +-----|        Object Storage       |
|        Monitor Daemon       |    |                             |     |                             |
|        Manager Daemon       |    |                             |     |                             |
+-----------------------------+    +-----------------------------+     +-----------------------------+

3. Quy trình tạo CephFS.

Ví dụ sau đây sẽ tạo một CephFS trên ceph-node1.hoanghd.com và mount nó trên Ceph Client.

Bước 1: Cấu hình môi trường cho Ceph Client.

Để tiện thì mình sẽ chuyển khóa chung SSH sang cho Ceph Client và cấu hình nó từ Admin Node.

Hãy thêm nội dung mới vào file cấu hình SSH trong ~/.ssh/config để khai báo thông tin kết nối đến Ceph Client.

cat >> ~/.ssh/config << 'OEF'
Host ceph-client
    Hostname ceph-client.hoanghd.com
    User root
OEF

Bạn có thể xác minh lại nội dung file ~/.ssh/config sau khi thêm nội dung mới.

shell> cat ~/.ssh/config
Host ceph-node1
    Hostname ceph-node1.hoanghd.com
    User root
Host ceph-node2
    Hostname ceph-node2.hoanghd.com
    User root
Host ceph-node3
    Hostname ceph-node3.hoanghd.com
    User root
Host ceph-client
    Hostname ceph-client.hoanghd.com
    User root

Do mình thêm bằng shell làm quyền của file có thể bị thay đổi nên mình sẽ cấp lại quyền truy cập cho file cấu hình SSH để chỉ có người dùng hiện tại mới có thể đọc và ghi vào file.

chmod 600 ~/.ssh/config

Mình cũng trỏ file hosts về thông tin domain của Ceph Client cho Admin Node.

cat >> /etc/hosts << 'OEF'
192.168.13.234 ceph-client.hoanghd.com ceph-client
OEF

Xác minh nội dung đã thêm thành công vào file hosts.

shell> cat /etc/hosts
# Your system has configured 'manage_etc_hosts' as True.
# As a result, if you wish for changes to this file to persist
# then you will need to either
# a.) make changes to the master file in /etc/cloud/templates/hosts.debian.tmpl
# b.) change or remove the value of 'manage_etc_hosts' in
#     /etc/cloud/cloud.cfg or cloud-config from user-data
#
127.0.1.1 ceph-node1-13.231 ceph-node1-13
127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

172.16.13.231 ceph-node1.hoanghd.com ceph-node1
172.16.13.232 ceph-node2.hoanghd.com ceph-node2
172.16.13.233 ceph-node3.hoanghd.com ceph-node3
192.168.13.234 ceph-client.hoanghd.com ceph-client

Giờ mình sẽ copy thông tin sshkey sang cho Ceph Client theo thông tin domain mình đã khai báo.

shell> ssh-copy-id -o StrictHostKeychecking=no ceph-client.hoanghd.com
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@ceph-client.hoanghd.com's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh -o 'StrictHostKeychecking=no' 'ceph-client.hoanghd.com'"
and check to make sure that only the key(s) you wanted were added.

Cài đặt Ceph Fuse cho Ceph Client.

ssh ceph-client.hoanghd.com "apt -y install ceph-fuse"

Copy file ceph.conf từ Admin Node cho Ceph Client.

scp /etc/ceph/ceph.conf ceph-client.hoanghd.com:/etc/ceph/

Copy ceph.client.admin.keyring từ Admin Node cho Ceph Client.

scp /etc/ceph/ceph.client.admin.keyring ceph-client.hoanghd.com:/etc/ceph/

Phân quyền thư mục /etc/ceph/ cho Ceph Client.

ssh ceph-client.hoanghd.com "chown ceph. /etc/ceph/ceph.*"

Bước 2 – Cấu hình MDS (MetaData Server) trên Admin Node.

MDS trong CephFS quản lý metadata của file system, bao gồm thông tin về cấu trúc thư mục, quyền truy cập, thời gian tạo và sửa đổi và vị trí của các khối dữ liệu.

Mỗi CephFS được tạo ra chúng ta cần ít nhất một MDS (Metadata Server) để hoạt động. Tuy nhiên, bạn có thể cấu hình nhiều MDS cho một CephFS để cải thiện hiệu suất và độ tin cậy.

Trong một số trường hợp, bạn có thể chia sẻ MDS giữa các CephFS bằng cách sử dụng chế độ “multifs” của Ceph. Tuy nhiên, điều này có thể làm giảm hiệu suất và độ tin cậy, và hiện tại chỉ được khuyến nghị cho các môi trường kiểm tra hoặc phát triển.

Trong hầu hết các trường hợp, bạn nên cấu hình ít nhất một MDS riêng biệt cho mỗi CephFS.

Mình sử dụng ceph-node1.hoanghd.com ở ví dụ này.

Đầu tiên hãy lấy thông tin Node Name.

NODENAME=$(grep "^mon_initial" /etc/ceph/ceph.conf | awk {'print $NF'})

Xác minh tên Node Name đã lấy thành công.

shell> echo $NODENAME
ceph-node1

Lệnh này tạo một thư mục mới cho Metadata Server (MDS) của Ceph. $NODENAME là tên của node mà MDS đang chạy. -p đảm bảo rằng tất cả thư mục cha cần thiết cũng được tạo.

mkdir -p /var/lib/ceph/mds/ceph-$NODENAME

Xác minh lại thư mục đã tạo thành công.

shell> ls /var/lib/ceph/mds/
ceph-ceph-node1

Lệnh này tạo một keyring mới và sinh ra một key cho MDS. Keyring này được lưu trữ trong thư mục MDS.

ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-$NODENAME/keyring --gen-key -n mds.$NODENAME

Ví dụ.

shell> ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-$NODENAME/keyring --gen-key -n mds.$NODENAME
creating /var/lib/ceph/mds/ceph-ceph-node1/keyring

Thay đổi quyền sở hữu của thư mục MDS và tất cả các file và thư mục con của nó thành người dùng và nhóm ceph.

chown -R ceph. /var/lib/ceph/mds/ceph-$NODENAME

Thêm quyền truy cập cho MDS vào cụm Ceph. Nó cho phép MDS đọc, ghi và thực thi (rwx) trên OSDs, và cho phép MDS truy cập vào monitors (mon).

ceph auth add mds.$NODENAME osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-$NODENAME/keyring

Ví dụ.

shell> ceph auth add mds.$NODENAME osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-$NODENAME/keyring
added key for mds.ceph-node1

Kích hoạt và khởi động dịch vụ MDS ngay lập tức. systemctl enable đảm bảo rằng dịch vụ sẽ tự động khởi động khi hệ thống khởi động, và --now khởi động dịch vụ ngay lập tức.

shell> systemctl enable --now ceph-mds@$NODENAME
Created symlink /etc/systemd/system/ceph-mds.target.wants/ceph-mds@ceph-node1.service → /lib/systemd/system/ceph-mds@.service.

Kết quả bạn đã có 1 MDS đầu tiên.

shell> ceph mds stat
 1 up:standby

Bước 3 – Tạo 2 nhóm RADOS cho Data và MeataData trên Node MDS trên Admin Node.

Tạo một pool mới trong cụm Ceph có tên là cephfs_data với 64 Placement Groups (PGs). PGs là các đơn vị dữ liệu mà Ceph sử dụng để phân phối dữ liệu đều qua tất cả các OSD (Object Storage Daemons) trong cụm.

shell> ceph osd pool create cephfs_data 64
pool 'cephfs_data' created

Tương tự như lệnh trên, lệnh này tạo một pool mới có tên là cephfs_metadata với 64 PGs.

shell> ceph osd pool create cephfs_metadata 64
pool 'cephfs_metadata' created

Tạo một Ceph File System (CephFS) mới có tên là cephfs, sử dụng hai pool cephfs_metadata và cephfs_data cho metadata và dữ liệu, tương ứng.

shell> ceph fs new cephfs cephfs_metadata cephfs_data
new fs with metadata pool 4 and data pool 3

Liệt kê tất cả các CephFS hiện có trong cụm.

shell> ceph fs ls
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

Hiển thị trạng thái của tất cả Metadata Servers (MDS) trong cụm, trạng thái đã chuyển từ Stanby sang Active.

shell> ceph mds stat
cephfs:1 {0=ceph-node1=up:active}

Hiển thị trạng thái của CephFS có tên là cephfs.

shell> ceph fs status cephfs
cephfs - 1 clients
======
RANK  STATE      MDS         ACTIVITY     DNS    INOS  
 0    active  ceph-node1  Reqs:    0 /s    10     13   
      POOL         TYPE     USED  AVAIL  
cephfs_metadata  metadata  1536k   281G  
  cephfs_data      data       0    281G  
MDS version: ceph version 15.2.17 (8a82819d84cf884bd39c17e3236e0632ac146dc4) octopus (stable)

Kết quả này cho thấy trạng thái của Ceph File System (CephFS) có tên là cephfs.

  • cephfs - 0 clients: CephFS cephfs hiện không có client nào đang kết nối.
  • RANK 0 active ceph-node1 Reqs: 0 /s 10 13: Đây là thông tin về Metadata Server (MDS). RANK 0 cho biết đây là MDS chính. active cho biết MDS đang hoạt động. ceph-node1 là tên của node mà MDS đang chạy. Reqs: 0 /s cho biết không có yêu cầu nào đến MDS trong giây này. 10 và 13 là số lượng dentries và inodes mà MDS đang quản lý.
  • cephfs_metadata metadata 1536k 281G: Đây là thông tin về pool cephfs_metadata được sử dụng để lưu trữ metadata của CephFS. Pool này đang sử dụng 1536KB và còn trống 281GB.
  • cephfs_data data 0 281G: Đây là thông tin về pool cephfs_data được sử dụng để lưu trữ dữ liệu của CephFS. Pool này chưa sử dụng và còn trống 281GB.
  • MDS version: ceph version 15.2.17 (8a82819d84cf884bd39c17e3236e0632ac146dc4) octopus (stable): Đây là phiên bản của Ceph mà MDS đang sử dụng.

Bước 4 – Mount CephFS vào Client Host.

Hãy remote vào Ceph Client.

ssh root@ceph-client.hoanghd.com

Xác minh file /etc/ceph/ceph.client.admin.keyring đã tồn tại ở Client Host.

shell> cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
        key = AQCcCbFljk1NHBAA/AwoD1dEH/6B3rp+08EH/w==
        caps mds = "allow *"
        caps mgr = "allow *"
        caps mon = "allow *"
        caps osd = "allow *"

Dùng công cụ ceph-authtool để tạo ra file admin.key từ file /etc/ceph/ceph.client.admin.keyring.

ceph-authtool -p /etc/ceph/ceph.client.admin.keyring > admin.key

Phân quyên 600 cho admin.key.

chmod 600 admin.key

Xác minh admin.key đã có thông tin key xác thực cluster như dưới.

shell> cat admin.key 
AQCcCbFljk1NHBAA/AwoD1dEH/6B3rp+08EH/w==

Mình sử dụng Domain để kết nối từ Ceph Client trỏ file hosts cho Ceph Client. Lưu ý đối với các kết nối từ bên ngoài vào cụm, bạn hãy sử dụng IP Public nhé.

cat >> /etc/hosts << 'OEF'
192.168.13.231 ceph-node1.hoanghd.com ceph-node1
192.168.13.232 ceph-node2.hoanghd.com ceph-node2
192.168.13.233 ceph-node3.hoanghd.com ceph-node3
192.168.13.234 ceph-client.hoanghd.com ceph-client
OEF

Vì mình muốn mount bằng Domain nên mình phải đảm bảo có kết nối đến Admin Node bằng Domain.

shell> ping -c 4 ceph-node1.hoanghd.com
PING ceph-node1.hoanghd.com (192.168.13.231) 56(84) bytes of data.
64 bytes from ceph-node1.hoanghd.com (192.168.13.231): icmp_seq=1 ttl=64 time=0.259 ms
64 bytes from ceph-node1.hoanghd.com (192.168.13.231): icmp_seq=2 ttl=64 time=0.422 ms
64 bytes from ceph-node1.hoanghd.com (192.168.13.231): icmp_seq=3 ttl=64 time=0.371 ms
64 bytes from ceph-node1.hoanghd.com (192.168.13.231): icmp_seq=4 ttl=64 time=0.566 ms

--- ceph-node1.hoanghd.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3054ms
rtt min/avg/max/mdev = 0.259/0.404/0.566/0.110 ms

Nếu mount thành công bạn sẽ không nhận được kết quả output nhé.

mount -t ceph ceph-node1.hoanghd.com:6789:/ /mnt -o name=admin,secretfile=admin.key

Và đây là kết quả.

shell> df -hT
Filesystem            Type      Size  Used Avail Use% Mounted on
udev                  devtmpfs  3.9G     0  3.9G   0% /dev
tmpfs                 tmpfs     795M  1.1M  794M   1% /run
/dev/sda1             ext4       49G  2.1G   47G   5% /
tmpfs                 tmpfs     3.9G     0  3.9G   0% /dev/shm
tmpfs                 tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs                 tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/loop1            squashfs   92M   92M     0 100% /snap/lxd/24061
/dev/loop0            squashfs   64M   64M     0 100% /snap/core20/2015
/dev/loop2            squashfs   41M   41M     0 100% /snap/snapd/20290
/dev/sda15            vfat      105M  6.1M   99M   6% /boot/efi
tmpfs                 tmpfs     795M     0  795M   0% /run/user/0
192.168.13.231:6789:/ ceph      282G     0  282G   0% /mnt

4. Quy trình xóa CephFS.

Để xóa một file system CephFS, bạn cần thực hiện các bước sau:

Bước 1 – Dừng tất cả các client đang sử dụng file system

Remote vào ceph-client.hoanghd.com.

ssh root@ceph-client.hoanghd.com

Tiến hành unmount 192.168.13.231:6789:/ để ngừng sử dụng file system.

umount -l 192.168.13.231:6789:/

Bước 2 – Dừng tất cả các dịch vụ MDS (Metadata Server) cho file system.

Để xem tên cụ thể của MDS, bạn cần sử dụng lệnh ceph fs status. Lệnh này sẽ cung cấp thông tin chi tiết hơn về từng MDS, bao gồm tên của chúng.

Ví dụ về đầu ra của lệnh ceph fs status:

shell>  ceph fs status cephfs
cephfs - 0 clients
======
RANK  STATE      MDS         ACTIVITY     DNS    INOS  
 0    active  ceph-node1  Reqs:    0 /s    10     13   
      POOL         TYPE     USED  AVAIL  
cephfs_metadata  metadata  1536k   344G  
  cephfs_data      data       0    344G  
MDS version: ceph version 15.2.17 (8a82819d84cf884bd39c17e3236e0632ac146dc4) octopus (stable)

Trong đó, ceph-node1 là tên của MDS.

Bước 3 – Đánh dấu ngăn không cho các MDS (Metadata Server) của CephFS tham gia vào cụm.

Câu lệnh ceph fs fail cephfs được sử dụng để đánh dấu tất cả các MDS (Metadata Server) của một CephFS như đã thất bại và ngăn chúng tham gia vào cụm. Điều này hữu ích khi bạn muốn ngăn chặn MDS từ việc nhận thêm yêu cầu trong khi bạn đang cố gắng sửa chữa hoặc bảo dưỡng hệ thống.

shell> ceph fs fail cephfs
cephfs marked not joinable; MDS cannot join the cluster. All MDS ranks marked failed.

Thông báo cephfs marked not joinable; MDS cannot join the cluster. All MDS ranks marked failed. cho biết lệnh đã hoạt động thành công. Hệ thống CephFS của bạn (cephfs) đã được đánh dấu là không thể tham gia (not joinable) và tất cả các MDS đã được đánh dấu là đã thất bại (failed).

Giờ bạn sử dụng ceph fs status bạn sẽ thấy CephFS của bạn tạo ra đã ở trạng thái failed.

shell> ceph fs status cephfs
cephfs - 0 clients
======
RANK  STATE   MDS  ACTIVITY  DNS  INOS  
 0    failed                            
      POOL         TYPE     USED  AVAIL  
cephfs_metadata  metadata  1536k   344G  
  cephfs_data      data       0    344G  
STANDBY MDS  
 ceph-node1  
MDS version: ceph version 15.2.17 (8a82819d84cf884bd39c17e3236e0632ac146dc4) octopus (stable)

Bước 4 – Xóa dữ liệu và metadata pools của file system.

ceph fs rm <fs_name> --yes-i-really-mean-it

Ví dụ trường hợp xóa CephFS có tên là cephfs.

ceph fs rm cephfs --yes-i-really-mean-it

Nếu xóa thành công, bạn sẽ không nhận được kết quả đầu ra.

Bước 5 – Xóa dữ liệu và metadata pools

ceph osd pool delete <data_pool> <data_pool> --yes-i-really-really-mean-it
ceph osd pool delete <metadata_pool> <metadata_pool> --yes-i-really-really-mean-it

Trong đó, <fs_name> là tên của file system CephFS, <data_pool> và <metadata_pool> là tên của data pool và metadata pool tương ứng.

Ví dụ.

shell> ceph osd pool delete cephfs_data cephfs_data --yes-i-really-really-mean-it
pool 'cephfs_data' removed

shell> ceph osd pool delete cephfs_metadata cephfs_metadata --yes-i-really-really-mean-it
pool 'cephfs_metadata' removed

Lưu ý: Việc xóa file system và các pools liên quan sẽ xóa tất cả dữ liệu được lưu trữ trong file system đó. Hãy chắc chắn rằng bạn đã sao lưu bất kỳ dữ liệu quan trọng nào trước khi thực hiện các bước này.

Giờ đây bạn sẽ không còn thấy thông tin CephFS có tên cephfs khi sử dụng lệnh ceph fs status nữa.

shell>  ceph fs status 
STANDBY MDS  
 ceph-node1  
MDS version: ceph version 15.2.17 (8a82819d84cf884bd39c17e3236e0632ac146dc4) octopus (stable)

Bước 6 – Gỡ bỏ MDS (MetaData Server) trên Admin Node.

Nếu bạn chạy lệnh ceph mds stat bạn sẽ thấy có một MDS đang UP và từ mode Active đã chuyển sang mode Stanby.

shell> ceph mds stat
 1 up:standby

Khi bạn dùng lệnh ceph -s bạn cũng thấy thông tin tương tự.

shell> ceph -s
  cluster:
    id:     0aed20ae-5941-4578-aedb-c78fdfd75bdf
    health: HEALTH_WARN
            mon is allowing insecure global_id reclaim
 
  services:
    mon: 1 daemons, quorum ceph-node1 (age 14h)
    mgr: ceph-node1(active, since 11h)
    mds:  1 up:standby
    osd: 11 osds: 11 up (since 6h), 11 in (since 6h)
    rgw: 1 daemon active (www)
 
  task status:
 
  data:
    pools:   6 pools, 113 pgs
    objects: 227 objects, 5.1 KiB
    usage:   12 GiB used, 1.1 TiB / 1.1 TiB avail
    pgs:     113 active+clean

Để xóa MDS này, bạn hãy chạy lệnh systemctl disable –now ceph-mds@$NODENAME với thông tin Node Name bạn chạy lệnh NODENAME=$(grep "^mon_initial" /etc/ceph/ceph.conf | awk {'print $NF'}) để lấy nhé.

shell> systemctl disable --now ceph-mds@$NODENAME
Removed /etc/systemd/system/ceph-mds.target.wants/ceph-mds@ceph-node1.service.

Giờ nếu bạn sử dụng lại lệnh ceph mds stat, bạn sẽ có kết quả trống.

ceph mds stat

Tương tự với lệnh ceph -s bạn cũng không thấy thông tin mds: 1 up:standby xuất hiện nữa.

shell> ceph -s
  cluster:
    id:     0aed20ae-5941-4578-aedb-c78fdfd75bdf
    health: HEALTH_WARN
            mon is allowing insecure global_id reclaim
 
  services:
    mon: 1 daemons, quorum ceph-node1 (age 14h)
    mgr: ceph-node1(active, since 11h)
    osd: 11 osds: 11 up (since 6h), 11 in (since 6h)
    rgw: 1 daemon active (www)
 
  task status:
 
  data:
    pools:   6 pools, 113 pgs
    objects: 227 objects, 5.1 KiB
    usage:   12 GiB used, 1.1 TiB / 1.1 TiB avail
    pgs:     113 active+clean

Mình sẽ xóa luôn thư mục lưu thông tin MDS này.

rm -rf /var/lib/ceph/mds/ceph-$NODENAME

5. Các điểm cần chú ý.

5.1. Lỗi entity mds.<mds_name> exists but key does not match khi tạo lại MDS.

Nếu bạn đã xóa MDS và sau này tạo lại MDS với tên đó có thể bạn sẽ gặp lỗi EEXIST: entity mds.ceph-node1 exists but key does not match có nghĩa là đã có một entity với tên mds.ceph-node1 tồn tại trong cụm Ceph của bạn, nhưng key bạn đang cố gắng thêm vào không khớp với key hiện tại của entity đó.

Để giải quyết vấn đề này, bạn có thể thử một trong các phương pháp sau:

Xóa entity hiện tại và tạo lại với key mới:

ceph auth del mds.ceph-node1
ceph auth add mds.ceph-node1 osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-cep-node1/keyring

Hoặc, nếu bạn muốn giữ lại entity hiện tại và chỉ cập nhật key của nó, bạn có thể sử dụng lệnh ceph auth import:

ceph auth import -i /var/lib/ceph/mds/ceph-cep-node1/keyring

Lưu ý: Hãy chắc chắn rằng bạn đã sao lưu key hiện tại trước khi thực hiện bất kỳ thao tác nào có thể thay đổi hoặc xóa nó.

5.2. Lỗi Creation of multiple filesystems is disabled. To enable this experimental feature, use ‘ceph fs flag set enable_multiple true khi tạo nhiều CephFS.

Khi bạn tạo nhiều CephFS, cụ thể là từ 2 CephFS trở lên, bạn sẽ nhận thông báo như dưới.

shell> ceph fs new cephfs_name1 cephfs_metadata1 cephfs_data1
Error EINVAL: Creation of multiple filesystems is disabled.  To enable this experimental feature, use 'ceph fs flag set enable_multiple true'

Lỗi EINVAL: Creation of multiple filesystems is disabled. To enable this experimental feature, use 'ceph fs flag set enable_multiple true' xuất hiện khi bạn cố gắng tạo nhiều CephFS mà không kích hoạt tính năng cho phép điều này.

Theo mặc định, Ceph chỉ cho phép tạo một CephFS duy nhất trong một cụm. Tuy nhiên, bạn có thể kích hoạt tính năng cho phép tạo nhiều CephFS bằng cách sử dụng lệnh sau:

ceph fs flag set enable_multiple true

Lưu ý rằng việc tạo nhiều CephFS trong một cụm là một tính năng thử nghiệm và có thể không phù hợp cho mọi môi trường. Hãy đảm bảo rằng bạn đã hiểu rõ các hậu quả có thể xảy ra trước khi kích hoạt tính năng này.

Ceph ngăn chặn việc tạo nhiều CephFS mặc định vì một số lý do:

  • Độ phức tạp: Việc quản lý nhiều CephFS trong cùng một cụm Ceph có thể tăng độ phức tạp và khó khăn trong việc quản lý và giám sát.
  • Hiệu suất: Mỗi CephFS cần một hoặc nhiều MDS (Metadata Server) để hoạt động. Việc chạy nhiều MDS có thể tốn nhiều tài nguyên hệ thống và ảnh hưởng đến hiệu suất của cụm.
  • Tính năng thử nghiệm: Việc hỗ trợ nhiều CephFS là một tính năng thử nghiệm trong Ceph. Mặc dù nó đã được kiểm thử và sử dụng trong một số môi trường, nhưng vẫn có thể có các vấn đề hoặc hạn chế chưa được phát hiện hoặc giải quyết.

Vì những lý do trên, Ceph mặc định chỉ cho phép tạo một CephFS trong một cụm. Tuy nhiên, bạn có thể thay đổi cài đặt này nếu bạn cần tạo nhiều CephFS và hiểu rõ các rủi ro và hậu quả có thể xảy ra.

Nếu bạn chạy lệnh ceph fs flag set enable_multiple true mà không có tham số --yes-i-really-mean-it đang cảnh báo rằng tính năng này vẫn đang trong giai đoạn thử nghiệm và có thể gây ra các vấn đề, bao gồm cả mất dữ liệu. Ceph khuyên bạn nên tham khảo tài liệu tại ceph.com trước khi tiếp tục.

shell> ceph fs flag set enable_multiple true
Warning! This feature is experimental.It may cause problems up to and including data loss.Consult the documentation at ceph.com, and if unsure, do not proceed.Add --yes-i-really-mean-it if you are certain.

Nếu bạn đã hiểu rõ các rủi ro và muốn tiếp tục, bạn có thể thêm tùy chọn --yes-i-really-mean-it vào lệnh của mình để xác nhận rằng bạn chấp nhận các rủi ro:

ceph fs flag set enable_multiple true --yes-i-really-mean-it

Hãy chắc chắn rằng bạn đã hiểu rõ các hậu quả có thể xảy ra trước khi kích hoạt tính năng này.

Và giờ đây bạn có thể tạo ra nhiều CephFS trong một cụm mà không gặp thông báo ngăn cản nữa.

shell> ceph fs new cephfs_name1 cephfs_metadata1 cephfs_data1
new fs with metadata pool 15 and data pool 14

Kết quả cụm Ceph của bạn đã có 2 CephFS.

shell> ceph fs status
cephfs_name - 1 clients
===========
RANK  STATE      MDS         ACTIVITY     DNS    INOS  
 0    active  ceph-node1  Reqs:    0 /s    10     13   
      POOL         TYPE     USED  AVAIL  
cephfs_metadata  metadata  1536k   344G  
  cephfs_data      data       0    344G  
cephfs_name1 - 0 clients
============
      POOL          TYPE     USED  AVAIL  
cephfs_metadata1  metadata     0    344G  
  cephfs_data1      data       0    344G  
MDS version: ceph version 15.2.17 (8a82819d84cf884bd39c17e3236e0632ac146dc4) octopus (stable)

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories