VM envanteri, ölçümler ve yapılandırma doğrulama
Bu sayfadaki yöntemler hiçbir şeyi değiştirmez. Dört soruyu yanıtlarlar: kümede hangi VM'lerin bulunduğu, belirli bir VM'nin nasıl yapılandırıldığı, ona ne olduğu ve şu anda nasıl durumda olduğu. Yapılandırma doğrulama ayrıdır: çalışan VM'yi vStack Center'ın tuttuğu yetkili yapılandırmayla karşılaştırır.
Tüm yöntemlerin görünürlük kapsamı aynıdır: Cluster master rolü kümenin tamamını görür; diğer kullanıcılar yalnızca rol atandıkları VDC'lerdeki (sanal veri merkezleri) VM'leri görür.
Web arayüzünde aynı veriler All Virtual Machines listesinde görünür: ID, Name, IP, OS, State, Health, vCPU class, CPU (Cores), RAM (GB) ve Storage (GB) sütunları, Search in table araması ve CSV dışa aktarımı. VM kartında CPU, Disks, Networks ve Memory geçişlerini içeren bir Perfdata bölümü ile ID, Action, Method, Status, Report, Start Time, End time ve Duration s sütunlarını içeren bir Event history bölümü bulunur.

vm-list
VM listesi. Erişim:
- Cluster master: kümedeki tüm VM'ler; yanıt ek
nodeverstartalanlarını içerir. - Sıradan bir kullanıcı: yalnızca rol atandığı VDC'lerdeki VM'ler;
nodeverstartdöndürülmez.
Her VM yanıtta tam olarak bir kez görünür. 3.2.0'dan önce bir VM, kullanıcının o VM'nin VDC'sinde sahip olduğu rol sayısı kadar görünüyordu; bu nedenle bu listeden envanter oluşturan harici sistemler yinelenen kayıtlar alıyordu. Düzeltme, listenin hangi VM'leri içerdiğini değiştirmedi; yalnızca yinelenenleri kaldırdı.
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
objective | Herhangi | Hayır | Alan herhangi bir değerle mevcutsa yanıt, dizi yerine vm_id anahtarlı bir eşlemedir (map) |
vdc | Sayı | Hayır | VDC'ye göre filtre; en az 1 |
{
"jsonrpc": "2.0",
"method": "vm-list",
"params": {},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": [
{
"vdc_id": 2,
"vm_id": 1,
"vm_name": "vm-1",
"vm_status": 3,
"admin_status": 1,
"oper_status": 3,
"oper_status_ts": 1700000000,
"os_type": 1,
"os_profile": "8f14e45f-ceea-467a-9c1e-2d3b7a0f5c61",
"cpu_count": 2,
"memory_count": 1073741824,
"hw_version": 3,
"locked": 1,
"create_completed": 1,
"nvme": true,
"storage_provisioned": 10737418240,
"address": "192.0.2.1",
"address_v6": ["2001:db8::10", "2001:db8::11"],
"pool": "1000",
"vcpu_class": 1,
"service": 0,
"GI_object": 0,
"modified": 1700000000,
"incarnation": 17000000000,
"node": 5,
"rstart": 0
}
]
}
}
Alan ayrıntıları: address, ilk bağlantı noktasının (en düşük yuvaya göre) IPv4
adresidir veya IPv4 adresi atanmamışsa null olur; address_v6, aynı bağlantı
noktasının IPv6 dizisidir veya adres yoksa boş bir dizidir; nvme disk modunu
gösterir ve böylece VM'nin nerede başlatılabileceğini belirler.
Hata: -7 listenin okunamadığı anlamına gelir.
vm-get
Tanımlayıcıya göre tam VM kartı: ana alanlar, network_ports ve disks dizileri,
hv_faults nesnesi ve ölçümler kullanılabiliyorsa bellek kullanımını içeren bir
guest nesnesi.
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | Sayı | Evet | VM tanımlayıcısı; en az 1 |
{
"jsonrpc": "2.0",
"method": "vm-get",
"params": { "id": 42 },
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Aygıtları içeren yanıt alıntısı:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": {
"id": 42,
"name": "vm-42",
"cpus": 2,
"ram": 1073741824,
"hw_version": 4,
"status": 3,
"admin_status": 1,
"oper_status": 3,
"oper_status_ts": 1700000050,
"locked": 0,
"create_completed": 1,
"nvme": true,
"node": 3,
"pool": "123456789",
"root_dataset_name": "z01/.vm_V4/000000042",
"vdc": 5,
"network_ports": [
{
"network_id": 100,
"port_id": 1,
"address": "192.0.2.5",
"address_v6": ["2001:db8::10"],
"mac": "00:11:22:33:44:55",
"ip_guard": 1,
"mac_guard": 0,
"ratelimit_mbits": 1000,
"slot": 14
}
],
"disks": [
{
"guid": "111222333",
"label": "data-disk",
"size": 10737418240,
"slot": 1,
"iops_limit": 5000,
"mbps_limit": 200,
"sector_size": { "logical": 512, "physical": 4096 },
"pool_name": "z01"
}
],
"guest": {
"ram_used": 536870912,
"ram_balloon_requested": null,
"ram_balloon_performed": null
}
}
}
}
API istemcileri için önemli biçim ayrıntıları:
os_profile, imaj UUID'sini içeren bir dize veyanullolarak döndürülür. Kısa sayısal imaj tanımlayıcısı 3.0.5'te bir UUID ile değiştirildi; bu, duyurulmuş geriye dönük uyumsuz bir değişikliktir.GI_object,locked,create_completed,ip_guardvemac_guard;0,1veyanullolarak serileştirilir.poolbir dizedir;root_datasetbir sayıdır.- Bir disk için
sector_size.logicalvarsayılan olarak512,physicalise4096'dır. guestnesnesi, değerlerin kendisinullolsa bile ölçüm deposu kullanılabilir olduğunda bulunur; ölçümler kullanılamıyorsa alan yoktur.
Hatalar: -78 okuma hatası; -3001 VM'nin çağıranın görünürlük kapsamında
bulunamadığı anlamına gelir.
vm-statuses
VM durum başvurusu: koddan ada bir eşleme. Parametre yoktur.
{
"jsonrpc": "2.0",
"method": "vm-statuses",
"params": {},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Belirli bir kümede vm-list ve vm-get yöntemlerinden gelen sayısal durumları
yorumlamak için kullanın. Hata: -7.
vm-history
Bir VM'nin durum değişiklikleri geçmişi.
| Parametre | Tür | Zorunlu | Varsayılan | Sınır |
|---|---|---|---|---|
vm_id | Sayı | Evet | — | En az 1 |
lines | Sayı | Hayır | 50000 | İzin verilen aralık 1..999 |
ts_start | Sayı | Hayır | null | 1531924200 değerinden önce olamaz |
ts_finish | Sayı | Hayır | null | 1531924200 değerinden önce, 2222222222 değerinden sonra olamaz; ts_start değerinden büyük olmalıdır |
{
"jsonrpc": "2.0",
"method": "vm-history",
"params": {
"vm_id": 42,
"lines": 100,
"ts_start": 1700000000,
"ts_finish": 1700100000
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": [
{ "ts": 1700000000, "ts_nano": 1700000000000000, "status": 3, "progress": 100 },
{ "ts": 1700000100, "ts_nano": 1700000100000000, "status": 5, "progress": 0 }
]
}
}
Zamana göre filtreleme yalnızca her iki aralık parametresi de verildiğinde çalışır.
Aralık verilmezse lines ile sınırlı olarak en son kayıtlar döndürülür.
Hatalar: -9305 lines değerinin aralık dışında olduğu; -9320 ve -9325 aralık
sınırlarının çok eski olduğu; -9326 üst sınırın çok büyük olduğu; -9327
ts_finish değerinin ts_start değerinden büyük olmadığı; -7 okuma hatası
anlamına gelir.
vm-perfdata
VM performans ölçümleri. Erişim: Cluster master herhangi bir VM'ye erişebilir;
sıradan bir kullanıcı, role_id ≤ 3 olan bir role sahip olduğu VDC'deki VM'lere
erişebilir.
Üç mod:
| Mod | Nasıl çağrılır | Döndürdüğü |
|---|---|---|
| Pano | Yalnızca vm_id | Son 25 saniyenin CPU, ağ, disk ve RAM verileri |
| Bir süre için grafik | metric + interval | Geçerli zamandan interval kadar geriye uzanan bir seri |
| Bir aralık için grafik | metric + begin_time + end_time | Belirtilen sınırlar içindeki bir seri |
| Parametre | Tür | Varsayılan | Sınır |
|---|---|---|---|
vm_id | Sayı | — | Zorunlu; en az 1 |
metric | Dize | null | cpu, disk, net, ram, balloon, all |
interval | Dize | "1h" | Bir veya iki rakam ve bir birim: s, m, h, d, w |
slice | Dize | "30s" | Bir veya iki rakam ve bir birim: s, m, h; gruplama aralığı |
begin_time, end_time | Sayı | null | 10 basamaklı zaman damgaları; yalnızca çift olarak kullanılır |
{
"jsonrpc": "2.0",
"method": "vm-perfdata",
"params": {
"vm_id": 42,
"metric": "cpu",
"interval": "1h",
"slice": "30s"
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": {
"results": [
{
"statement_id": 0,
"series": [
{
"name": "bhyve_cpu",
"columns": ["time", "cpu", "vm_cpus"],
"values": [[1700000030, 5.2, 4]]
}
]
}
]
}
}
}
Ölçüm deposunun yanıtı istemciye dönüştürülmeden iletilir; zaman damgaları epoch
saniyesi cinsindendir. Hatalar: -4930 böyle bir VM olmadığı; -403 VDC'de rol
olmadığı veya erişimin reddedildiği; -4907, -4911, -4912, -4915 ve -4916
sırasıyla geçersiz metric, interval, slice, begin_time ve end_time; -4925
ve -4923 ölçümlerin alınamadığı anlamına gelir.
vm-check-configuration
Çalışan VM'nin hipervizördeki yapılandırmasını vStack Center'ın sakladığı yetkili yapılandırmayla karşılaştırır ve kısa bir sonuç döndürür. Ham hipervizör verileri istemciye gönderilmez.
Yetki, VDC kapsamlı Check VM Configuration (1114) yetkisidir. Cluster master, VDC
yöneticisi, VDC kullanıcısı ve VDC gözlemcisi rollerine atanmıştır; yöntem Resource
viewer rolünü -403 ile reddeder.
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
vm_id | Sayı | Evet | VM tanımlayıcısı; en az 1 |
{
"jsonrpc": "2.0",
"method": "vm-check-configuration",
"params": { "vm_id": 42 },
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Eşleşme sonucu:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": {
"status": "match",
"mismatch_count": 0,
"meta": { "fetched_at": 1780669931 }
}
}
}
Uyuşmazlık durumunda status değeri mismatch olur ve mismatch_count farklı olan
yapılandırma anahtarlarının sayısını gösterir. Anahtar adlarının ve değerlerinin
kendisi yanıta veya günlüğe dahil edilmez.
Şunları göz önünde bulundurun:
- Yöntem eşzamansızdır: önce ara bir yanıt gelir ve son yanıt
taskaracılığıyla alınır. - VM'nin çalışıyor olması gerekir. Durdurulmuş veya askıya alınmış bir VM için yöntem,
düğümle iletişim kurmadan
-4941döndürür. - Başarılı bir sonuç VM tanımlayıcısına göre 10 saniye önbelleğe alınır: bu süre içindeki başka bir çağrı düğümle iletişim kurmadan aynı sonucu döndürür. Önbellek, VM yapılandırmasını değiştiren herhangi bir işlemden sonra temizlenir.
- Bazı anahtarlar, yapılandırmanın anlamını değiştirmeden hipervizör başlatmaları
arasında değiştikleri için uyuşmazlık sayısından hariç tutulur. Bunlar
gc.,uefi.vars,pci.0.29.0.tcpönekleri ile.password,.secretveya.keyile biten anahtarlardır. - 2000'den fazla anahtar içeren bir ajan yanıtı çok büyük olduğu için reddedilir.
- Değişiklik olmadan yapılan başka bir çağrı aynı
statusvemismatch_countdeğerlerini döndürür; yalnızcameta.fetched_atgüncellenir.
| Yanıt | Anlamı |
|---|---|
-403 | Yetki eksik veya VM rolün kapsamı dışında |
-4940 | VM mevcut değil veya görünürlük kapsamı tarafından gizleniyor |
-4941 | VM çalışmıyor |
-4942 | VM'nin düğümü kullanılamıyor |
-4943 | Düğüm ajanı, VM çalışırken yapılandırmayı döndüremiyor |
-4944 | Ajan yanıtı çok fazla anahtar içeriyor |
-4945 | Dahili doğrulama hatası |
Doğrulama sonucu güvenlik günlüğüne kaydedilir: tamamlanan denetim için her zaman bir
olay kaydedilir ve mismatch sonucu ayrıca alert düzeyinde bir bütünlük ihlali olayı
oluşturur. İhlal olayı yalnızca yeni bir sonuç için kaydedilir; önbellekten gelen bir
sonuç denetim olayında görünür.
vm-inventory
Kümenin VM envanteri: vStack Center ajanları sorgular ve kendi verilerini düğümlerin gördükleriyle karşılaştırır. Yöntem eşzamansızdır ve parametresi yoktur; etkin bir oturum yeterlidir.
{
"jsonrpc": "2.0",
"method": "vm-inventory",
"params": {},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": {
"discrepancy": [
[42, null],
[null, 99]
],
"VMs": {
"42": 3,
"50": 1,
"99": 5
}
}
}
}
Yanıt nasıl okunur: discrepancy, "vStack Center tarafı — düğüm tarafı" biçiminde
çiftler içerir. [42, null] çifti, VM 42'nin kümede kayıtlı olduğu ancak hiçbir
ajanın onu görmediği anlamına gelir; [null, 99] ise tersini ifade eder. Boş bir dizi
tutarsızlık olmadığı anlamına gelir. VMs, ajan verilerine dayanan bir VM
tanımlayıcısından duruma eşlemedir. Tanımlayıcısı 30'un altında olan servis VM'leri
hariç tutulur.
Mod küme ayarına bağlıdır: havuza göre sorgulamada yanıt discrepancy ve VMs
içerir; düğüme göre sorgulamada bu alanlar yoktur. Hatalar: -200 düğüm durumlarının
alınamadığı; -78 okuma hatası anlamına gelir.
Ayrıca bkz.
- Sanal makine yaşam döngüsü — durumların ve
hw_version,nvmevelockedözniteliklerinin ne anlama geldiği - Sanal makine oluşturma, silme ve taşıma — OS profili başvurusu
- VM disklerini ve işlem kaynaklarını yönetme — önyükleme ortamı başvurusu