Saturday, November 23, 2024

Mount File System sử dụng Fuse

-

1. Tổng quan.

CephFS FUSE (Filesystem in Userspace) là một phương pháp để gắn kết (mount) Ceph File System (CephFS) vào hệ thống tệp tin của máy tính thông qua giao diện người dùng không gian nhân (userspace). CephFS là hệ thống tệp tin phân tán được cung cấp bởi Ceph, một nền tảng lưu trữ phân tán mã nguồn mở.

Khi sử dụng CephFS FUSE, bạn có thể truy cập và quản lý dữ liệu trong CephFS như một hệ thống tệp tin thông thường trên máy tính của bạn. CephFS FUSE sử dụng giao thức Ceph để giao tiếp với cluster Ceph và thực hiện các hoạt động như đọc, ghi, xóa và thay đổi tệp tin và thư mục trong CephFS.

Ưu điểm của việc sử dụng CephFS FUSE bao gồm:

  • Truy cập dữ liệu trong CephFS từ bất kỳ máy tính nào có CephFS FUSE được cài đặt.
  • Tương thích với các ứng dụng và công cụ làm việc với hệ thống tệp tin tiêu chuẩn.
  • Cho phép quản lý dữ liệu trong CephFS một cách thuận tiện và linh hoạt.

Tuy nhiên, việc sử dụng CephFS FUSE có thể có hiệu suất thấp hơn so với việc sử dụng các giao thức truy cập trực tiếp như CephFS kernel mount hoặc Ceph Object Gateway. Điều này do CephFS FUSE hoạt động trong không gian người dùng và có thêm một lớp trung gian giữa ứng dụng và CephFS.

Tóm lại, CephFS FUSE cung cấp khả năng gắn kết CephFS vào hệ thống tệp tin của máy tính thông qua giao diện người dùng không gian nhân, giúp bạn truy cập và quản lý dữ liệu trong CephFS một cách thuận tiện và linh hoạt.

2. Thực hành.

2.1. Quy trình mount CephFS.

Đầu tiên bạn hãy cài Ceph Fuse trước.

apt install ceph-fuse -y

Bạn có thể verify phiên bản của Ceph-fuse

$ ceph-fuse --version
ceph version 16.2.13 (b81a1d7f978c8d41cf452da7af14e190542d2ee2) pacific (stable)

Copy file cấu hình ceph.conf và file keyring sang client.

scp /etc/ceph/ceph.conf root@<ipaddr_domain_client>:/etc/ceph/
scp /etc/ceph/ceph.client.admin.keyring root@<ipaddr_domain_client>:/etc/ceph/

Để mount CephFS bằng FUSE, bạn có thể sử dụng lệnh ceph-fuse. Dưới đây là một số lệnh và tùy chọn để mount và unmount CephFS bằng FUSE:

Tạo thư mục để mount CephFS:

mkdir /mnt/cephfs

Sử dụng lệnh ceph-fuse --id <ceph_user> /mnt/cephfs để mount CephFS:

$ ceph-fuse --id admin /mnt/cephfs
2023-06-06T21:52:05.226+0700 7f1bd0ff1200 -1 init, newargv = 0x564403966bd0 newargc=15
ceph-fuse[1980917]: starting ceph client
ceph-fuse[1980917]: starting fuse

Trong đó, admin là tên người dùng CephX và /mnt/cephfs là thư mục mục tiêu để mount CephFS.

Nếu keyring không nằm trong đường dẫn mặc định, bạn có thể truyền đường dẫn tới keyring:

$ ceph-fuse --id admin -k /etc/ceph/ceph.client.admin.keyring /mnt/cephfs
2023-06-06T21:55:12.548+0700 7ff2ebffa200 -1 init, newargv = 0x55f6587babb0 newargc=15
ceph-fuse[1983134]: starting ceph client
ceph-fuse[1983134]: starting fuse

Bạn có thể chỉ định địa chỉ IP và cổng của MON (Monitor) nếu cần:

$ ceph-fuse --id admin -m 192.168.13.225:6789 /mnt/cephfs
2023-06-06T21:57:08.902+0700 7f382fb22200 -1 init, newargv = 0x557b5b96c3f0 newargc=15ceph-fuse[1984344]: starting ceph client

ceph-fuse[1984344]: starting fuse

Kết quả sau khi mount thành công nhé.

$ df -hT
Filesystem            Type            Size  Used Avail Use% Mounted on
udev                  devtmpfs        126G     0  126G   0% /dev
tmpfs                 tmpfs            26G  2.0M   26G   1% /run
/dev/mapper/pve-root  ext4             65G   22G   40G  36% /
tmpfs                 tmpfs           126G   85M  126G   1% /dev/shm
tmpfs                 tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/sda2             vfat           1022M  344K 1022M   1% /boot/efi
/dev/fuse             fuse            128M   36K  128M   1% /etc/pve
tmpfs                 tmpfs            26G     0   26G   0% /run/user/0
192.168.13.225:6789:/ ceph            4.6T     0  4.6T   0% /mnt
/dev/rbd0             ext4             49G  851M   46G   2% /mnt/rbd
ceph-fuse             fuse.ceph-fuse  4.6T     0  4.6T   0% /mnt/cephfs

2.2. Huỷ CephFS.

Để unmount CephFS, đầu tiên bạn hãy umount phân vùng đã mount, bạn có thể sử dụng lệnh umount:

umount /mnt/cephfs

Lưu ý: Đảm bảo rằng bạn không đang ở bên trong các thư mục của hệ thống tệp trước khi thực hiện lệnh này.

Tiếp theo bạn hãy xoá bỏ CephFS đã tạo bằng lệnh ceph fs rm <cephfs_name> --yes-i-really-mean-it. Nếu bạn gặp lỗi dưới thì hãy xem bài này https://wiki.hoanghd.com/loi-mds-daemons-must-be-inactive-failed-before-removing-filesystem-khi-xoa-cephfs/ để xử lý lỗi.

$ ceph fs rm cephfs --yes-i-really-mean-it
Error EINVAL: all MDS daemons must be inactive/failed before removing filesystem. See `ceph fs fail`.

Tiếp theo bạn gỡ 2 pools chứa metadata và data là xong.

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

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

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories