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.