Ana içeriğe geç

VDC kotaları ve kaynakları

Kotalar, içindeki tek tek nesnelerin değil, VDC'nin bir özelliğidir. Oluşturma sırasında (vdc-create) belirlenir ve güncellemelerle (vdc-set) değiştirilir; kullanım sayaçlarıyla birlikte tek bir vdc-list çağrısıyla okunur. Boş bir değer (null), o kaynak için sınır belirlenmediği anlamına gelir.

Ağlar kotalardan ayrı olarak hesaplanır. Ağ, küme düzeyinde bir nesnedir: bir VDC'ye atama yoluyla girer ve adres kapasitesi VDC↔ağ çifti üzerindeki bir sınırla kısıtlanır. Paylaşılan bir ağdaki iki VDC'ye tek bir sınır uygulanmaz; her çift için ayrı bir değer belirlenir.

Kotalar​

Her biri kendi kaynağını sınırlayan beş alan vardır. vdc-create değeri bir sayı veya dize olarak kabul eder ("" ve null değerleri null üretir) ve i32 olarak seri durumdan çıkarır; vdc-set bir sayı veya null kabul eder.

AlanSınırlanan kaynak
quota_ram_gbRAM, GB
quota_space_gbDisk alanı, GB
quota_cpu_ghzCPU frekansı, GHz
quota_cpu_coresCPU çekirdekleri
quota_space_snapshotsAnlık görüntü alanı

quota_space_gb, VDC için toplam alanı sınırlar: sanal makine diskleri ve depolama birimleri toplanır. Kotayı birimlerle tüketmiş bir kiracı VM diski ekleyemez veya genişletemez. Mevcut makineleri başlatmak bu kurala tabi değildir: kiracı, kota tükenmiş olsa bile kapalı olan kendi makinesini açabilir.

quota_space_gb değerini gerçekte kullanılan alanın altına düşüremezsiniz: vdc-set böyle bir değeri -3309 koduyla reddeder ve iletiye istenen sınırı ve geçerli alan kullanımını ekler. Reddedilen değer uygulanmaz; sınır her zaman tamamen kaldırılabilir (null).

VDC kartı: kotalara göre kullanım, kota ve sınır özeti ve ayarlar formu

Aşırı abonelik katsayıları​

Her kota için bir katsayı vardır. Değerler f64 olarak seri durumdan çıkarılır: kotaların kendisinden farklı olarak katsayılar kesirli olabilir. Girdi kuralları aynıdır: vdc-create bir sayı veya dize, vdc-set bir sayı veya null kabul eder.

AlanKarşılık gelen kota
quota_oversubscription_rate_ramquota_ram_gb
quota_oversubscription_rate_space_gbquota_space_gb
quota_oversubscription_rate_cpu_ghzquota_cpu_ghz
quota_oversubscription_rate_cpu_coresquota_cpu_cores
quota_oversubscription_rate_space_snapshotsquota_space_snapshots

Sayaçlar ve kullanım hesabı​

vdc-list, erişilebilir her VDC için eksiksiz bir kayıt döndürür: tanımlama, çağıran kullanıcının rolü, kotalar, katsayılar ve kullanım.

AlanAnlamı
id, name, descriptionVDC tanımlaması
created, modifiedOluşturma ve son değişiklik zaman damgaları
role_id, role_nameÇağıran kullanıcının bu VDC'deki rolü
vms_total, vms_runningToplam VM'ler ve çalışan VM'ler
cpu_runningÇalışan VM'lerin CPU kullanımı
ram_usageRAM kullanımı
space_gb_usedKullanılan alan, GB: VM diskleri ve depolama birimleri birlikte
cpu_cores_quota_usageKotaya göre CPU çekirdeği kullanımı
ram_quota_usageKotaya göre bellek kullanımı
space_quota_usageKotaya göre disk alanı kullanımı

Parametresiz bir isteğe yanıt:

{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": [
{
"id": 2,
"name": "vdc_name",
"description": null,
"created": 1710000000,
"modified": 1710000000,
"role_id": 2,
"role_name": "vDC admin",
"quota_cpu_cores": null,
"quota_cpu_ghz": null,
"quota_ram_gb": null,
"quota_space_gb": null,
"quota_space_snapshots": null,
"quota_oversubscription_rate_cpu_cores": null,
"quota_oversubscription_rate_cpu_ghz": null,
"quota_oversubscription_rate_ram": null,
"quota_oversubscription_rate_space_gb": null,
"quota_oversubscription_rate_space_snapshots": null,
"cpu_cores_quota_usage": null,
"cpu_running": 0,
"ram_quota_usage": null,
"ram_usage": 0,
"space_gb_used": 0,
"space_quota_usage": null,
"vms_running": 0,
"vms_total": 0
}
]
}
}

Bu VDC'nin kotası yoktur: tüm quota_* alanları boştur; göreli alanlar (*_quota_usage) da boştur, çünkü oranın hesaplanacağı bir değer yoktur. Mutlak sayaçlar yine de doldurulur ve sıfıra eşittir.

objective biçimi​

İsteğe bağlı objective parametresi vdc-list yanıtının biçimini değiştirir: bir dizi yerine, anahtarları VDC kimlikleri ve değerleri aynı kayıtlar olan bir nesne döndürür. Biçim alanın varlığıyla etkinleşir; parametrenin değeri önemli değildir. Bu, bir VDC'yi id ile ararken istemciyi bir dizi üzerinde yineleme yapmaktan kurtarır.

VDC'ye atanmış ağlar​

YöntemAmaçErişim
vdc-assign-networkVDC'ye ağ atamaCluster master veya VDC düzeyinde role (role_id <= 2) sahip ağ oluşturucusu
vdc-deassign-networkAğ atamasını kaldırmaAynı gereksinimler
vdc-networksErişilebilir VDC'lere atanmış ağlarHerhangi bir kullanıcı; yanıt erişilebilir VDC'lerle sınırlıdır
vdc-network-addr-limitVDC↔ağ çifti için adres sınırıCluster master

vdc-assign-network ve vdc-deassign-network aynı parametre çiftini kabul eder: her ikisi de zorunlu olan vdc_id ve network_id. Başarılı bir yanıtta data alanı boştur.

Atama isteği:

{
"jsonrpc": "2.0",
"method": "vdc-assign-network",
"params": {
"vdc_id": 10,
"network_id": 42
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}

Atamayı kaldırma daha kısıtlayıcıdır: VM'lere atanmış portları olan bir ağın ataması kaldırılamaz. -2206 yanıtı bu tür portların sayısını verir. VM'lerin ağla bağlantısını kesin, ardından çağrıyı tekrarlayın.

vdc-networks yanıtı iç içe bir nesnedir: dış anahtarlar VDC kimlikleridir; içinde VDC'nin id ve name değerleri ile her biri kendi kimliğiyle anahtarlanmış atanmış ağ kayıtları bulunur. Her ağ kaydı, ağın kendi parametrelerinin yanında bu VDC↔ağ çifti için geçerli adres sınırı olan addr_limit alanını içerir: tür ve aktarım (network_type_id, backend), vlan_id ve qinq_id etiketleri ve VXLAN parametreleri (vxlan_multicast_addr, vxlan_port). Bu ağ türüne uygulanmayan alanlar boştur (null):

{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": {
"10": {
"id": 10,
"name": "vdc_name",
"42": {
"addr_limit": 32,
"backend": 2,
"creator": 1,
"id": 42,
"mtu": 1500,
"name": "net",
"net_cidr": "192.0.2.0/24",
"network_type_id": 2,
"vlan_id": null,
"qinq_id": null,
"vxlan_multicast_addr": "239.0.0.1",
"vxlan_port": 9009
}
}
}
}
}

VDC↔ağ çifti için adres sınırı​

vdc-network-addr-limit yöntemi yalnızca Cluster master tarafından kullanılabilir.

ParametreTürZorunluKısıtlamalar
vdc_idSayıEvetEn az 0
network_idSayıEvetEn az 0
addr_limitSayı veya nullEvetEn az 0; boş dizeye izin verilmez

İstek:

{
"jsonrpc": "2.0",
"method": "vdc-network-addr-limit",
"params": {
"vdc_id": 10,
"network_id": 42,
"addr_limit": 32
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}

İşlem sırası sabittir: sınır yalnızca zaten atanmış bir ağda belirlenebilir. Ağ VDC'ye atanmamışsa yanıt -23030 olur ve çifti belirtir. Önce vdc-assign-network çağrısını çalıştırın.

VDC'de atanmış roller​

vdc-roles, VDC id değerini kabul eder ve yalnızca Cluster master tarafından kullanılabilir. Yanıt bir atama haritasıdır: her anahtar, bu VDC'de verilmiş rol kimliklerinin bir listesine karşılık gelir.

{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": {
"12": [2, 3],
"15": [4]
}
}
}

-403 reddi ("Access denied"), çağrının bir Cluster master tarafından yapılmadığı anlamına gelir.

VDC kaynak hata kodları​

Her kod çiftinde ilk kod vdc-assign-network yöntemine, ikincisi vdc-deassign-network yöntemine aittir: yöntemler aynı denetimleri yapar ancak ayrı hata kodu kümeleri kullanır. İletilerde <vdc> ve <net> istekteki kimliklerdir; sunucu bunların yerine gerçek değerleri koyar.

KodİletiNe zaman döndürülür
-2102, -2203"No params at all"İstekte params nesnesi yok
-403"Access denied"İstekteki VDC için yetki yok veya yetki var ancak rol gerekli düzeyin altında; her iki durumda da aynı izin reddi kullanılır
-2108, -2218"You ain't the creator of network"Küme izinleri olmayan VDC düzeyinde bir rol ve ağ başka bir kullanıcı tarafından oluşturulmuş
-2120, -2220"Network id does not exist"Bu network_id değerine sahip ağ yok
-2121, -2221"Bad vdc_id param value"vdc_id eksik veya izin verilen aralığın dışında
-2122, -2222"Bad network_id param value"network_id eksik veya izin verilen aralığın dışında
-2206"There are N ports assigned to VMs"VM portları hâlâ atanmışken bir ağın VDC'den ataması kaldırılıyor
-2207"Error upon network ID==<net> deassignment from vDC ID==<vdc>"Ağ atamasını kaldırma başarısız oluyor
-23020"No param addr_limit"Zorunlu addr_limit istekte eksik
-23022"Bad addr_limit"addr_limit değeri doğrulamadan geçemiyor
-23030"network_id==<net> has not been assigned to vdc_id==<vdc>, so limit can't be set"VDC'ye atanmamış bir ağda sınır belirleniyor

Ayrıca bakın​