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>
và <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ượngvm-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.