Saturday, January 18, 2025

Xem thông tin Storage và xác định vị trí cụ thể của storage máy ảo trong Proxmox VE

-

1. Tổng quan.

Phần này giúp người đọc hiểu cách xác định vị trí cụ thể của ổ đĩa ảo trong môi trường ảo hóa Proxmox VE sử dụng lưu trữ Ceph. Bằng cách này, người quản trị hệ thống và người sử dụng có thể theo dõi và kiểm soát không gian lưu trữ của máy ảo một cách hiệu quả, đồng thời tối ưu hóa quản lý tài nguyên và đảm bảo hiệu suất ổn định của hệ thống ảo hóa.

Trong Proxmox Virtual Environment (Proxmox VE), bạn có thể sử dụng các lệnh dòng lệnh để xem thông tin về các ổ đĩa và không gian lưu trữ của máy ảo.

2. Trường hợp sử dụng Local Storage.

Dưới đây là một số lệnh bạn có thể sử dụng với trường hợp sử dụng Local Storage.

Hiển thị thông tin về ổ đĩa và không gian lưu trữ.

$ pvesm status
Name             Type     Status           Total            Used       Available        %
ceph              rbd     active     28452938108        57821564     28395116544    0.20%
local             dir     active        98497780        20411996        73036236   20.72%
local-lvm     lvmthin     active       334610432        53203058       281407373   15.90%

Lệnh này sẽ hiển thị tình trạng của các kho lưu trữ trên Proxmox VE.

Hiển thị thông tin chi tiết về ổ đĩa cụ thể.

pvesm list <storage_name>

Thay thế <storage_name> bằng tên của kho lưu trữ bạn quan tâm.

Ví dụ:

$ pvesm list local-lvm
Volid                     Format  Type              Size VMID
local-lvm:base-101-disk-0 raw     images         4194304 101
local-lvm:base-101-disk-1 raw     images     85899345920 101
local-lvm:vm-100-disk-0   raw     images     85899345920 100
local-lvm:vm-100-disk-1   raw     images    214748364800 100
local-lvm:vm-100-disk-2   raw     images         4194304 100

Hiển thị thông tin về các ổ đĩa cụ thể của máy ảo.

qm config <VM_ID>

Thay thế <VM_ID> bằng ID của máy ảo. Trong kết quả, bạn sẽ thấy các mục như virtio0, scsi0, vv… mô tả ổ đĩa của máy ảo.

Ví dụ:

$ qm config 100
agent: 1
boot: order=virtio0;ide2;net0
cores: 16
cpu: x86-64-v2-AES
ide2: none,media=cdrom
machine: pc-q35-8.0
memory: 16384
meta: creation-qemu=8.0.2,ctime=1698859161
name: NTJ-misa100d120
net0: virtio=4A:63:3D:B8:27:4D,bridge=vmbr2,firewall=1,tag=100
numa: 0
ostype: win11
scsihw: virtio-scsi-single
smbios1: uuid=fc22e20e-4a98-441b-9c87-6a1efec95740
sockets: 1
tpmstate0: local-lvm:vm-100-disk-2,size=4M,version=v2.0
virtio0: local-lvm:vm-100-disk-0,iothread=1,size=80G
virtio1: local-lvm:vm-100-disk-1,iothread=1,size=200G
vmgenid: 3237de1a-c91b-40c8-8f0b-6a841cf9afe2

Tìm vị trị lưu disk của máy ảo bằng lệnh find.

find /dev | grep <VM_ID>

Thay thế <VM_ID> bằng ID của máy ảo. Trong kết quả, bạn sẽ thấy các mục như virtio0, scsi0, vv… mô tả ổ đĩa của máy ảo.

Ví dụ:

$ find /dev | grep 100
/dev/pve/vm-100-disk-1
/dev/pve/vm-100-disk-0
/dev/pve/vm-100-disk-2
/dev/disk/by-id/dm-name-pve-vm--100--disk--1
/dev/disk/by-id/dm-name-pve-vm--100--disk--0
/dev/disk/by-id/dm-name-pve-vm--100--disk--2
/dev/mapper/pve-vm--100--disk--1
/dev/mapper/pve-vm--100--disk--0
/dev/mapper/pve-vm--100--disk--2

Thay thế <VM_ID><Disk_ID> bằng ID của máy ảo và ổ đĩa cụ thể.

Tìm vị trị lưu disk chính xác của máy ảo.

Đầu tiên hãy xem config của máy ảo, ví dụ của mình là máy ảo có ID là 100.

$ qm config 100
agent: 1
boot: order=virtio0;ide2;net0
cores: 16
cpu: x86-64-v2-AES
ide2: none,media=cdrom
machine: pc-q35-8.0
memory: 16384
meta: creation-qemu=8.0.2,ctime=1698859161
name: NTJ-misa100d120
net0: virtio=4A:63:3D:B8:27:4D,bridge=vmbr2,firewall=1,tag=100
numa: 0
ostype: win11
scsihw: virtio-scsi-single
smbios1: uuid=fc22e20e-4a98-441b-9c87-6a1efec95740
sockets: 1
tpmstate0: local-lvm:vm-100-disk-2,size=4M,version=v2.0
virtio0: local-lvm:vm-100-disk-0,iothread=1,size=80G
virtio1: local-lvm:vm-100-disk-1,iothread=1,size=200G
vmgenid: 3237de1a-c91b-40c8-8f0b-6a841cf9afe2

Chúng ta xác định được máy ảo có ID 100 đang sử dụng 2 disk.

virtio0: local-lvm:vm-100-disk-0,iothread=1,size=80G
virtio1: local-lvm:vm-100-disk-1,iothread=1,size=200G

Dùng lệnh pvesm path [storage] để tìm kiếm vị trí lưu ổ đĩa. Ví dụ dưới mình đang tìm kiếm với storage của VMID 100 là local-lvm:vm-100-disk-0 và chúng ta có kết quả /dev/pve/vm-100-disk-0 chính là nơi lưu ổ đĩa của ID này.

$ pvesm path local-lvm:vm-100-disk-0
/dev/pve/vm-100-disk-0

3. Trường hợp sử dụng Ceph Storage.

Nếu bạn lưu trữ máy ảo của mình trên Ceph trong Proxmox VE, bạn cũng có thể sử dụng các lệnh để xác định vị trí cụ thể của ổ đĩa. Dưới đây là một số lệnh mà bạn có thể thử:

Hiển thị danh sách các pool trên Ceph:

$ rados lspools
.mgr
ceph
kubernetes

Lệnh này sẽ hiển thị danh sách các pool Ceph. Pool Ceph là nơi dữ liệu của bạn có thể được lưu trữ.

Hiển thị danh sách các ổ đĩa trong pool cụ thể:

rados -p <pool_name> ls

Thay thế <pool_name> bằng tên của pool Ceph mà bạn quan tâm.

Ví dụ:

$ rados -p ceph ls | more
rbd_data.5311543a4d71b.0000000000000d21
rbd_data.99612d0155512.00000000000011d9
rbd_data.99612d0155512.0000000000001107
rbd_data.99612d0155512.0000000000001cdb
rbd_data.99612d0155512.00000000000005c9
rbd_data.99612d0155512.0000000000001616
rbd_data.99612d0155512.0000000000001c3f
rbd_data.99612d0155512.0000000000001ad1
rbd_data.99612d0155512.0000000000000b23
rbd_data.5311543a4d71b.0000000000000e3b
rbd_data.99612d0155512.00000000000009ca
rbd_data.5311543a4d71b.0000000000000db8
rbd_data.99612d0155512.000000000000189b

<còn nữa>

Với ceph là tên của pool.

Hiển thị thông tin chi tiết về một ổ đĩa cụ thể:

rados -p <pool_name> stat <object_name>

Thay thế <pool_name> bằng tên của pool Ceph và <object_name> bằng tên của ổ đĩa Ceph mà bạn muốn kiểm tra.

Ví dụ, nếu ổ đĩa rbd_data.5311543a4d71b.0000000000000d21 được lưu trữ trong pool Ceph có tên là ceph, bạn có thể thử các lệnh tương ứng như sau:

$ rados -p ceph stat rbd_data.5311543a4d71b.0000000000000d21
ceph/rbd_data.5311543a4d71b.0000000000000d21 mtime 2023-11-03T10:11:29.000000+0700, size 4194304

Những lệnh này sẽ giúp bạn xác định vị trí cụ thể của ổ đĩa Ceph trong hệ thống lưu trữ của bạn trên Proxmox VE.

  • Các bước để xem thông tin ổ đĩa của một VMID lưu trong Ceph Storage.

Bước 1 – Xác định tên của ổ đĩa đang sử dụng cho VMID bằng lệnh qm config <VMID>.

$ qm config 103
agent: 1
boot: order=virtio0;ide2;net0
cores: 16
cpu: x86-64-v2-AES
ide2: none,media=cdrom
machine: pc-q35-8.0
memory: 16384
meta: creation-qemu=8.0.2,ctime=1698859161
name: ceph
net0: virtio=EE:3C:04:EC:A1:F3,bridge=vmbr2,firewall=1,tag=100
numa: 0
ostype: win11
scsihw: virtio-scsi-single
smbios1: uuid=024754af-d849-4521-92c7-afc9b6fada66
sockets: 1
tpmstate0: ceph:vm-103-disk-0,size=4M,version=v2.0
virtio0: ceph:vm-103-disk-1,iothread=1,size=80G
vmgenid: 55e281db-1151-4d6c-b383-673263dd1c38

Lệnh này bạn sẽ xác định được tên của ổ đĩa đang sử dụng cho VMID 103 là vm-103-disk-1.

Bước 2 – Kiểm tra vị trí cụ thể của ổ đĩa trong pool.

rados -p <pool_name> ls | grep "<vm-storage>"

Thay thế <pool_name> bằng tên pool Ceph mà bạn đã xác định từ bước trước và <vm-storage>tương ứng của VMID.

Lệnh này sẽ hiển thị danh sách các đối tượng trong pool.

Ví dụ.

$ rados -p ceph ls | grep vm-103-disk-1
rbd_id.vm-103-disk-1

Kết quả sẽ cung cấp thông tin về nơi lưu trữ cụ thể của file disk của VMID trong Ceph.

Bước 3 – Kiểm tra tên OSD đối với đối tượng Ceph.

ceph osd map <pool_name> <vm-storage>

Thay thế <pool_name> bằng tên pool Ceph mà bạn đã xác định từ bước trước và <vm-storage>tương ứng của VMID.

Ví dụ:

$ ceph osd map ceph vm-103-disk-1
osdmap e1969 pool 'ceph' (2) object 'vm-103-disk-1' -> pg 2.8c967d3b (2.1b) -> up ([19,15,3], p19) acting ([19,15,3], p19)

Kết quả trên là kết quả của lệnh ceph osd map, và nó cung cấp thông tin về ánh xạ giữa pool Ceph ceph, đối tượng vm-103-disk-1, và các OSDs (Object Storage Devices) trong Ceph cluster. Dưới đây là ý nghĩa của từng phần trong kết quả:

  • osdmap e1969: Đây là phiên bản của OSD map, biểu diễn bằng một số. Mỗi lần có thay đổi trong cluster, số này sẽ được tăng lên.
  • pool 'ceph' (2): Cho biết đối tượng thuộc pool Ceph có tên là ‘ceph’, và số trong ngoặc là ID của pool.
  • object 'vm-103-disk-1': Đây là tên của đối tượng trong pool, ổ đĩa Ceph có tên là ‘vm-103-disk-1’.
  • -> pg 2.8c967d3b (2.1b): Đây là ánh xạ đối tượng vm-103-disk-1 đến Placement Group (PG). PG là một đơn vị quản lý dữ liệu trong Ceph. Số 2 là ID của PG, và 8c967d3b là hash của tên đối tượng.
  • -> up ([19,15,3], p19): Đối tượng được lưu trữ trên OSDs được chọn bởi Ceph để “lên” (up). Trong trường này, đối tượng được lưu trữ trên OSDs có ID là 19, 15, và 3.
  • acting ([19,15,3], p19): Đây là danh sách OSDs đang “acting” (đang thực hiện) cho đối tượng. Trong trường này, đối tượng đang được xử lý trên OSDs có ID là 19, 15, và 3.

Kết quả này giúp bạn xác định cách đối tượng Ceph vm-103-disk-1 được phân phối và lưu trữ trên OSDs trong Ceph cluster.

Lưu ý rằng thông tin này chỉ cho bạn biết về OSD chứa dữ liệu, không phải về vị trí file cụ thể trên hệ thống file của máy chủ. Để xác định vị trí cụ thể của đối tượng trong hệ thống file, bạn cần kiểm tra cấu hình Ceph và OSD trên các máy chủ tương ứng.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories