Saturday, November 23, 2024

Sử dụng Block Storage trong Ceph

-

1. Tổng quan.

Block Storage trong Ceph là một dịch vụ cung cấp khả năng lưu trữ dữ liệu theo hình thức khối, giúp bạn tạo và quản lý các thiết bị lưu trữ ảo trên Ceph Cluster. Sử dụng Block Storage, bạn có thể thực hiện các hoạt động sau:

  • Lưu trữ dữ liệu: Block Storage cho phép bạn tạo ra các ổ đĩa ảo (virtual disks) và lưu trữ dữ liệu trên đó. Các ổ đĩa này có thể được sử dụng như các thiết bị lưu trữ thông thường và được gắn kết (attach) vào máy ảo hoặc máy chủ vật lý.
  • Tăng giảm kích thước: Bạn có thể tăng giảm kích thước của các ổ đĩa ảo theo nhu cầu. Điều này cho phép bạn mở rộng không gian lưu trữ hoặc giảm bớt không gian khi cần thiết mà không làm gián đoạn quá trình hoạt động của máy ảo hay máy chủ vật lý.
  • Sao lưu và khôi phục: Block Storage cung cấp khả năng sao lưu và khôi phục dữ liệu. Bạn có thể tạo bản sao lưu (snapshot) của các ổ đĩa ảo để đảm bảo an toàn dữ liệu và khôi phục lại chúng khi cần thiết.
  • Hiệu suất cao: Ceph Block Storage được thiết kế để cung cấp hiệu suất cao và đáng tin cậy. Với cơ chế phân tán và cân bằng tải trên Ceph Cluster, Block Storage cho phép tăng cường hiệu suất và khả năng chịu lỗi của hệ thống lưu trữ.
  • Tích hợp với ứng dụng và hệ thống hiện có: Ceph Block Storage có thể tích hợp với các ứng dụng và hệ thống hiện có thông qua giao thức như iSCSI. Điều này giúp bạn sử dụng Block Storage trong môi trường hiện có mà không cần thay đổi quá nhiều.

2. Thực hành.

Sau đây là quy trình tạo và sử dụng Block Storage trong Ceph. Bạn tạo một pool lưu trữ mới, tạo ổ đĩa ảo, ánh xạ nó vào hệ thống máy chủ và sử dụng các lệnh khác để quản lý và truy cập dữ liệu trong ổ đĩa ảo đó.

2.1. Tạo Block Storage và mount.

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

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

Tạo một pool lưu trữ mới có tên là “rbd” với 128 PG (Placement Group). Pool lưu trữ được sử dụng để lưu trữ các dữ liệu block.

$ ceph osd pool create rbd 128
pool 'rbd' created

Cấu hình chế độ tự động tự điều chỉnh số lượng PG cho pool “rbd”. Chế độ này cho phép Ceph tự động tính toán và cân bằng số lượng PG dựa trên cấu hình hệ thống và khối lượng dữ liệu.

$ ceph osd pool set rbd pg_autoscale_mode on
set pool 51 pg_autoscale_mode to on

Hiển thị trạng thái tự động tự điều chỉnh số lượng PG của pool.

$ ceph osd pool autoscale-status
POOL                     SIZE  TARGET SIZE  RATE  RAW CAPACITY   RATIO  TARGET RATIO  EFFECTIVE RATIO  BIAS  PG_NUM  NEW PG_NUM  AUTOSCALE  BULK   
ceph-vm                72937M                3.0        15202G  0.0141                                  1.0      32              on         False  
ceph-ct                 7554M                3.0        15202G  0.0015                                  1.0      32              on         False  
device_health_metrics   5840k                3.0        15202G  0.0000                                  1.0       1              on         False  
cephfs_data              131                 3.0        15202G  0.0000                                  1.0       1          32  off        False  
cephfs_metadata        42698                 3.0        15202G  0.0000                                  4.0       1          16  off        False  
rbd                       15                 3.0        15202G  0.0000                                  1.0      32              on         False  

Tạo một ổ đĩa ảo (rbd01) có kích thước 10GB trong pool “rbd”. Ceph sẽ cấp phát không gian lưu trữ cần thiết cho ổ đĩa ảo này.

rbd create --size 10G --pool rbd rbd01

Liệt kê danh sách các ổ đĩa ảo hiện có trong Ceph và thông tin chi tiết của chúng.

$ rbd ls -l
NAME   SIZE    PARENT  FMT  PROT  LOCK
rbd01  10 GiB            2

Ánh xạ ổ đĩa ảo (rbd01) vào một thiết bị block trên hệ thống máy chủ. Sau khi được ánh xạ, bạn có thể sử dụng thiết bị block như một ổ đĩa thông thường.

$ rbd map rbd01
/dev/rbd2

Hiển thị danh sách các ổ đĩa ảo đã được ánh xạ trên hệ thống máy chủ.

$ rbd showmapped
id  pool     namespace  image          snap  device   
0   ceph-ct             vm-113-disk-0  -     /dev/rbd0
1   ceph-ct             vm-104-disk-0  -     /dev/rbd1
2   rbd                 rbd01          -     /dev/rbd2

Tạo một hệ thống tệp XFS trên thiết bị block /dev/rbd2. Hệ thống tệp XFS sẽ được sử dụng để định dạng và quản lý không gian lưu trữ của thiết bị block.

$ mkfs.xfs /dev/rbd2
meta-data=/dev/rbd2              isize=512    agcount=16, agsize=163840 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=16     swidth=16 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=16 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.

Tạo một thư mục trên hệ thống máy chủ để gắn kết (mount) thiết bị block và sử dụng nó như một điểm gắn kết để truy cập dữ liệu trong ổ đĩa ảo.

mkdir /mnt/rbd

Mount ổ đĩa.

mount /dev/rbd0 /mnt/rdb

Và kết quả mount Block Storage thành công.

$ 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   21G   41G  34% /
tmpfs                 tmpfs     126G   82M  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

2.2. Loại bỏ Block Storage.

Đầu tiên hãy rbd unmap /dev/rbd0 trước.

rbd unmap /dev/rbd0

Tiếp theo hãy gỡ bỏ RBD đã được map, bạn có thể sử dụng lệnh rbd unmap với tên thiết bị hoặc ID của kết nối. Trong trường hợp này, bạn muốn gỡ bỏ kết nối có ID là 2 và tên thiết bị là /dev/rbd2. Dưới đây là cách thực hiện:

rbd unmap /dev/rbd2

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories