12.4.4 VM
Создание VM¶
При создании VM в ГИ возможен выбор селектора не только для пула, но и для кластера.
Для создания VM в ГИ необходимо выполнить следующие действия:
1. Перейти во вкладку Все виртуальные машины в разделе ВЦОД провайдера.
2. Нажать на кнопку Действия и выбрать Создать ВМ.
Рисунок 1. Создание виртуальной машины
3. В появившемся окне заполнить основную информацию о VM:
- имя ВМ;
- кластер;
- тип операционной системы (ОС) – Linux, FreeBSD, Windows, pfSense;
- облачный шаблон ОС – выбрать подходящий из списка;
- краткое описание ВМ (опционально);
- ВЦОД (при необходимости) – по умолчанию выбран тот ВЦОД, в котором создается ВМ;
-
автоматический селектор пула с:
- Наименьшим провизированным пространством;
- Наименьшим провизированным количеством виртуальных ядер;
- Наименьшим провизированным количеством ОЗУ;
-
явный выбор пула;
- количество виртуальных ядер;
- количество оперативной памяти.
Рисунок 2. Заполнение основной информации о VM
Дальнейшие шаги по созданию VM выполняются аналогично действиям, указанным в документации на vStack HCP в разделе 7.7 Виртуальная машина (ВМ, или VM).
Методы¶
12.4.4.1 vms-create¶
Метод создания VM.
В данном примере создается VM с двумя дисками, второй из которых создается в виде 4kn. Создаются две NIC, IP-адреса назначаются автоматически с использованием функциональности пула IP-адресов каждой из сетей.
В секции настроек гостевой ОС описаны назначение пользователю root двух SSH-ключей и установка пароля, создание пользователя volobuev, назначение ему одного SSH-ключа и установка пароля, а также назначение конфигурации resolver, установка hostname и назначение команды, выполняемой при каждой загрузке.
Кластер можно выбрать вручную, если указать параметр cluster_id или воспользоваться автоматическим селектором. Если указать параметр cluster_selector, то cluster_id имеет больший приоритет (даже если указаны сразу два параметра).
Возможные значения cluster_selector:
- 0 - (CPU) Кластер с минимальным значением отношения used/total.
- 1 - (CPU) Кластер с минимальным значением отношения provisioned/total.
- 2 - (CPU) Кластер с минимальным абсолютным значением provisioned.
- 3 - (RAM) Кластер с минимальным значением отношения used/total.
- 4 - (RAM) Кластер с минимальным значением отношения provisioned/total.
- 5 - (RAM) Кластер с минимальным абсолютным значением provisioned.
- 6 - (STORAGE) Кластер с минимальным значением отношения used/total.
- 7 - (STORAGE) Кластер с минимальным значением отношения provisioned/total.
- 8 - (STORAGE) Кластер с минимальным абсолютным значением provisioned.
Значения предопределенных «автоматических» селекторов для выбора пула приведены в документации на vStack HCP в разделе 7.7 Виртуальная машина (ВМ, или VM).
Запрос:
{
"jsonrpc": "2.0",
"method": "vms-create",
"id": "769e8460-64d2-4dc6-ab3e-7a7ac099764a",
"params": {
"cluster_id": "d535b7b8-917d-4aed-aec0-6a09e54c9342",
"name": "Federation VM MVP",
"cpus": 2,
"ram": 2147483648,
"os_type": 6,
"os_profile": 3022,
"vdc_id": 37,
"disks": [
{
"size": 23622352896,
"slot": 1
},
{
"sector_size": {
"logical": 4096,
"physical": 4096
},
"size": 47244705792,
"label": "44GB 4Kn redo logs",
"slot": 2
}
],
"network_ports": [
{
"network_id": 174,
"slot": 1
},
{
"network_id": 176,
"slot": 2
}
],
"guest": {
"users": {
"root": {
"ssh-authorized-keys": [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEkIzoBL/vwQ1fbdhH8MGq/CPXA1QQtU2buiy03sVbn5 evgueni.gavrilov@vStack.com",
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJnT4MAS9coPy2nZhOiXXQeLcc4RoCaQJEBMbSp4ZAhs allan@vStack.com"
],
"password": "$6$csNIFbubwcx.vLWM$ua7n12KtekpzPhYi8hSS5xSITPFAyOwGKylUam4owBbtZVO2uUH1t3d8PcZj3f.w6OsSgODbRy8mozhDSCBjV."
},
"volobuev": {
"ssh-authorized-keys": [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILBz8xQUuLBZzVqSph0RGVLIuqyYMOTLYp/y1e3jmV7F vol@nsa.gov"
],
"password": "$6$csNIFbubwcx.vLWM$ua7n12KtekpzPhYi8hSS5xSITPFAyOwGKylUam4owBbtZVO2uUH1t3d8PcZj3f.w6OsSgODbRy8mozhDSCBjV."
}
},
"ssh_password_auth": 1,
"resolver": {
"name_server": [
"8.8.8.8",
"8.8.4.4",
"1.1.1.1"
],
"search": "nsa.gov"
},
"boot_cmds": [
"swapoff -a"
],
"run_cmds": [
"systemctl restart ntpd"
],
"hostname": "ubuntu-07-snap.docker.us.nsa.gov"
}
}
}
Ответ:
{
"jsonrpc": "2.0",
"id": "769e8460-64d2-4dc6-ab3e-7a7ac099764a",
"result": {
"code": 1,
"data": {
"d535b7b8-917d-4aed-aec0-6a09e54c9342": {
"id": "769e8460-64d2-4dc6-ab3e-7a7ac099764a",
"jsonrpc": "2.0",
"result": {
"code": "1",
"data": {
"admin_status": 10,
"boot_media_id": 0,
"cpu_priority": 1,
"cpus": 2,
"create_completed": 1,
"created": 1703593142,
"description": null,
"disks": [
{
"guid": "2361119567646420320",
"iops_limit": null,
"label": null,
"mbps_limit": null,
"sector_size": {
"logical": 512,
"physical": 4096
},
"size": 23622352896,
"slot": 1
},
{
"guid": "17328433694908340100",
"iops_limit": null,
"label": "44GB 4Kn redo logs",
"mbps_limit": null,
"sector_size": {
"logical": 4096,
"physical": 4096
},
"size": 47244705792,
"slot": 2
}
],
"gc_id": 2,
"gc_name": "Cloud-init: SmartOS",
"guest": {
"ram_used": null
},
"hv_faults": {
"sigabort": {
"interval": 60,
"restarts": 5
}
},
"hw_version": 4,
"id": 117921,
"incarnation": 17035931423,
"locked": 0,
"modified": 1703593142,
"name": "Federation VM MVP",
"ndmp_address": "10.32.141.208",
"network_ports": [
{
"address": "10.0.0.2",
"ip_guard": 1,
"mac": "ca:0b:fb:f9:98:89",
"network_id": 174,
"port_id": 122412,
"ratelimit_mbits": null,
"slot": 1
},
{
"address": "10.0.0.2",
"ip_guard": 1,
"mac": "ca:0b:2a:88:30:65",
"network_id": 176,
"port_id": 122413,
"ratelimit_mbits": null,
"slot": 2
}
],
"oper_status": 10,
"oper_status_ts": 1703593143,
"os_profile": "3022",
"os_type": 6,
"pool": "11506271842240015790",
"ram": 2147483648,
"root_dataset": 15642036712752733090,
"status": 10,
"uefi": "/usr/local/share/uefi-firmware/vStack_BHYVE_UEFI_20210214.fd",
"vcpu_class": 1,
"vdc": 5000014
}
}
}
}
}
}
12.4.4.2 vms-cpu-priority¶
Метод для установки приоритета vCPU для VM.
Данная возможность может быть полезной для исключения негативного влияния VM, потребляющих большое количество vCPU ресурсов. Меньшее значение (1) соответствует максимально возможному приоритету - VM получит больше vCPU ресурсов. Большее значение (20) соответствует минимально возможному приоритету - VM получит меньше vCPU ресурсов. Изменение данного параметра на работающей VM применяется сразу.
Запрос:
{
"jsonrpc": "2.0",
"method": "vms-cpu-priority",
"id": "1ccca298-c822-11ea-b43f-e7f855bcd16b",
"params": {
"vm_id": 500274,
"cluster_id": "579bfe88-82cd-40a5-a124-3adeaa0a3a18",
"cpu_priority": 7
}
}
Ответ:
{
"id" : "1ccca298-c822-11ea-b43f-e7f855bcd16b",
"jsonrpc" : "2.0",
"result" : {
"code" : 1,
"data" : {
"579bfe88-82cd-40a5-a124-3adeaa0a3a18": {
"id" : "1ccca298-c822-11ea-b43f-e7f855bcd16b",
"jsonrpc" : "2.0",
"result" : {
"code": 1
}
}
}
}
}
12.4.4.3 vm-billing¶
Метод запроса billing (сети).
Запрос:
{
"jsonrpc": "2.0",
"method": "vm-billing",
"id": "1ccca298-c822-11ea-b43f-e7f855bcd16b",
"params": {
"vm_id": 500274,
"cluster_id": "579bfe88-82cd-40a5-a124-3adeaa0a3a18",
"begin_time": 1567342800,
"end_time": 1567347642
}
}
Ответ:
{
"jsonrpc": "2.0",
"id": "8daa0668-44ce-4366-90a6-442d6d5685b0",
"result": {
"code": 1,
"data" : {
"results" : [
{
"series" : [
{
"columns" : [
"time",
"rx_bytes",
"tx_bytes"
],
"name" : "virtio_net",
"values" : [
[
"1970-01-01T00:00:00Z",
2328943108,
78679228
]
]
}
],
"statement_id" : 0
}
]
}
}
}
12.4.4.4 vm-import-area-list¶
Метод получения списка виртуальных машин, находящихся в области для импорта. Данная область применяется для восстановления из резервных копий или для приема виртуальных машин, мигрируемых из виртуальных инфраструктур, построенных с помощью других продуктов.
Запрос:
Ответ:
{
"jsonrpc": "2.0",
"id": "f018c35f-d8a6-4f26-a88d-2a6ba7c71ce8",
"result": {
"code": 1,
"data": {
"4ad7afcd-c7f1-48bf-8b6a-07d5c78f24fc": {
"id": "f018c35f-d8a6-4f26-a88d-2a6ba7c71ce8",
"jsonrpc": "2.0",
"result": {
"code": 1,
"data": {
"z05/.ndmp/.vm_V4/000005095": {
"dataset": "z05/.ndmp/.vm_V4/000005095",
"duration": 22,
"finished": 1,
"full_size": 1643266236,
"local_ip": "10.78.141.205",
"original_pool_exists": 1,
"original_vdc_exists": 1,
"original_vm_exists": 1,
"peer_ip": "10.78.27.24",
"pool_guid": "4182847010042355858",
"pool_name": "z05",
"start_ts": 1704891502,
"transferred": 1643266236,
"update_ts": 1704891523,
"vm": {
"cpus": 2,
"created": 1679903612,
"description": null,
"hw_version": 4,
"id": 5095,
"incarnation": 16813757185,
"modified": 1681375718,
"name": "VM -- NDMP backup to NetWorker",
"os_name": "Ubuntu 20.04",
"os_profile": 1023,
"os_type": 6,
"ram": 2147483648,
"vcpu_class": 1,
"vdc": 1350
}
}
}
}
},
"579bfe88-82cd-40a5-a124-3adeaa0a3a18": {
"id": "f018c35f-d8a6-4f26-a88d-2a6ba7c71ce8",
"jsonrpc": "2.0",
"result": {
"code": 1
}
}
}
}
}