Friday, September 13, 2024

Tạo và quản lý một block device từ Ceph RBD trên hệ thống Proxmox

-

1. Tổng quan.

Quy trình này mô tả cách tạo và quản lý một block device từ Ceph RBD trên hệ thống Linux. Chúng ta sẽ tạo một image RBD, ánh xạ nó thành block device, định dạng với XFS và mount để sử dụng trong hệ thống filesystem Linux. Đây là một quy trình phổ biến khi bạn cần sử dụng lưu trữ Ceph trong môi trường máy chủ hoặc cloud.

2. Quy trình tạo RBD.

Liệt kê pool bằng lệnh ceph osd pool ls hoặc rados lspools, 2 lệnh này cho kết quả giống nhau.

shell> ceph osd pool ls
.mgr
CEPH-NVME-01

Liệt kê pool với chi tiết hơn bằng lệnh ceph osd pool ls detail:

shell> ceph osd pool ls detail
pool 1 '.mgr' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 1 pgp_num 1 autoscale_mode on last_change 2065 flags hashpspool stripe_width 0 pg_num_max 32 pg_num_min 1 application mgr read_balance_score 11.76
pool 2 'CEPH-NVME-01' replicated size 2 min_size 1 crush_rule 1 object_hash rjenkins pg_num 1024 pgp_num 1024 autoscale_mode off last_change 2078 flags hashpspool,selfmanaged_snaps stripe_width 0 application rbd read_balance_score 1.10

Sau đây là quy trình bạn đã thực hiện là một ví dụ về cách tạo, ánh xạ, định dạng và gắn kết (mount) một block device từ Ceph RBD (RADOS Block Device) trên hệ thống Linux. Dưới đây là các bước chi tiết mà bạn đã thực hiện:

Tạo RBD Image.

Tạo một image RBD có tên là rbd01 với kích thước 5TB trong pool CEPH-NVME-01. Image này sẽ được lưu trữ trên các OSDs của Ceph.

rbd create --size 5T --pool CEPH-NVME-01 rbd01

Liệt kê Image RBD.

Liệt kê các image trong pool CEPH-NVME-01. Bạn có thể thấy thông tin về image rbd01, bao gồm kích thước, định dạng, và các thông số khác.

shell> rbd ls -l --pool CEPH-NVME-01
rbd: error opening vm-144-disk-0: (2) No such file or directory
NAME           SIZE     PARENT  FMT  PROT  LOCK
rbd01            5 TiB            2

Ánh xạ Image RBD thành Block Device.

Ánh xạ image RBD rbd01 thành một block device trên hệ thống Linux của bạn. Sau khi ánh xạ, image này được gán với thiết bị /dev/rbd0.

shell> rbd map rbd01 --pool CEPH-NVME-01
/dev/rbd0

Kiểm tra Block Device.

Hiển thị tất cả các block device trên hệ thống của bạn. Ở đây, bạn thấy rằng thiết bị /dev/rbd0 có kích thước 5TB, khớp với kích thước của image RBD mà bạn đã tạo.

shell> lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0  63.3M  1 loop /snap/core20/1822
loop1                       7:1    0  63.9M  1 loop /snap/core20/2318
loop2                       7:2    0    87M  1 loop /snap/lxd/29351
loop3                       7:3    0  49.8M  1 loop /snap/snapd/18357
loop4                       7:4    0 111.9M  1 loop /snap/lxd/24322
loop5                       7:5    0  38.8M  1 loop /snap/snapd/21759
sr0                        11:0    1  1024M  0 rom
rbd0                      251:0    0     5T  0 disk
vda                       252:0    0   240G  0 disk
├─vda1                    252:1    0     1M  0 part
├─vda2                    252:2    0     2G  0 part /boot
└─vda3                    252:3    0   238G  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0   238G  0 lvm  /

Định dạng Block Device với XFS.

Định dạng block device /dev/rbd0 với hệ thống tệp XFS. Đây là bước cần thiết để chuẩn bị block device cho việc lưu trữ dữ liệu.

shell> mkfs.xfs /dev/rbd0
meta-data=/dev/rbd0              isize=512    agcount=32, agsize=41943040 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=1342177280, imaxpct=5
         =                       sunit=16     swidth=16 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=512   sunit=16 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.

Tạo thư mục và mount Block Device.

Tạo thư mục /ceph/rdp sử dụng làm thư mục mount point.

mkdir -p /ceph/rdp

Mount block device /dev/rbd0 vào thư mục này, cho phép hệ thống truy cập và sử dụng từ image RBD

mount /dev/rbd0 /ceph/rdp/

Kiểm tra dung lượng ổ đĩa.

Hiển thị thông tin về hệ thống filesystem và dung lượng đĩa. Bạn thấy rằng thư mục /ceph/rdp được mount với block device /dev/rbd0, có dung lượng 5TB, trong đó chỉ mới sử dụng 36GB.

shell> df -h
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              794M  1.1M  793M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  234G   29G  193G  13% /
tmpfs                              3.9G     0  3.9G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/vda2                          2.0G  253M  1.6G  14% /boot
tmpfs                              794M  4.0K  794M   1% /run/user/1000
tmpfs                              794M  4.0K  794M   1% /run/user/1002
/dev/rbd0                          5.0T   36G  5.0T   1% /ceph/rdp

3. Quy trình xóa RBD.

Trước khi xóa block device, bạn cần unmount nó, điều này sẽ giải phóng block device /dev/rbd0 khỏi thư mục /ceph/rdp

umount /ceph/rdp

Sau khi unmount, bạn cần unmap (hủy ánh xạ) block device này khỏi hệ thống, lệnh này sẽ hủy ánh xạ thiết bị /dev/rbd0, làm cho nó không còn xuất hiện trong danh sách các block device của hệ thống (có thể kiểm tra bằng lsblk).

rbd unmap /dev/rbd0

Cuối cùng, bạn có thể xóa image RBD từ pool CEPH-NVME-01, lệnh này sẽ xóa hoàn toàn image rbd01 khỏi pool CEPH-NVME-01, giải phóng dung lượng đã được sử dụng trong cluster Ceph.

shell> rbd rm rbd01 --pool CEPH-NVME-01
Removing image: 100% complete...done.

Sau khi thực hiện các bước này, block device rbd01 sẽ bị xóa khỏi hệ thống và pool Ceph, không còn tồn tại hoặc sử dụng bất kỳ tài nguyên nào.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories