VMs CLI
Inleiding
VMs CLI is de opdrachtregeltool voor het beheer van de TerraMaster VMs-virtualisatietoepassing en biedt query- en beheermogelijkheden die consistent zijn met de webbeheerinterface. De CLI communiceert met de VMs-service via een lokale unix socket, gebruikt een gestandaardiseerde opdrachtinterface en JSON-uitvoerformaat, en kan worden geïntegreerd in scripts, geautomatiseerd beheer en secundaire ontwikkelworkflows.
Belangrijkste functies
- Direct gebruiksklaar: wordt samen met de VMs-toepassing geïnstalleerd, geen extra installatie nodig
- Flexibele aanroep: ondersteunt diverse aanroepkanalen zoals lokale terminals, externe SSH, scripts en AI-tools
- Interactieve en niet-interactieve modus: geschikt voor zowel dagelijks onderhoud door beheerders als voor scripts en geautomatiseerde taken
- Ondersteuning voor JSON-uitvoer: eenvoudig te parseren door programma's en te integreren in automatisering
- Lokale communicatie: communiceert alleen via een lokale unix socket met de VMs-service en opent geen poorten naar buiten
- Tweede bevestiging voor gevaarlijke bewerkingen: bewerkingen zoals het verwijderen van een virtuele machine of een netwerk vereisen standaard bevestiging
Snel aan de slag
# 在终端中执行(可通过本地终端、SSH、脚本、AI 工具等任意命令行途径)
vms --help
# 查看虚拟机列表
vms vm list
# 查看虚拟机详情
vms vm get <id>
# 以 JSON 格式输出(便于脚本解析)
vms vm list --json
Voorbeelduitvoer van vms vm list:
NAME GUEST ID STATUS VCPU NUM VRAM SIZE IP
145 09fd98ee-4e2d-4c7a-a95c-8bacab80d322 shutdown 4 2097152 -
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 shutdown 4 2097152 -
1454486 5a0391f2-c545-45eb-8eed-0a104972229b shutdown 4 2097152 -
win101 32ee5a74-de8b-47a9-959d-1725c881ceab shutdown 4 2097152 -
Algemene opties
De volgende opties gelden voor alle opdrachten:
| Optie | Afkorting | Beschrijving |
|---|---|---|
--help | -h | Toont hulpinformatie voor de opdracht |
--version | -v | Toont het versienummer (kan worden gecombineerd met --json voor gestructureerde informatie) |
--json | - | Uitvoer in JSON-formaat |
--yes | -y | Slaat de bevestigingsvraag voor gevaarlijke bewerkingen over (verplicht in niet-interactieve modus) |
--debug | - | Schakelt debug-uitvoer in en toont het gedetailleerde uitvoeringsproces |
--socket <path> | - | Pad naar de VMs unix socket, standaard /var/api/VMs.sock |
--timeout <duration> | - | Time-out voor verzoeken, standaard 30s |
Voorbeeld van versie-informatie
vms --version
vms CLI v1.0.058
vms --version --json
{
"build": "20260911",
"cli_version": "v1.0.058"
}
Runtime-omgeving
VMs CLI wordt samen met de VMs-toepassing geïnstalleerd. Wanneer de toepassing wordt ingeschakeld, wordt de CLI gekoppeld aan de standaard PATH-map van het systeem, zodat deze direct na aanmelding via SSH kan worden gebruikt.
| Item | Beschrijving |
|---|---|
| CLI-bestand | /Volume1/@apps/VMs/bin/vms |
| Opdrachtpad | /usr/local/sbin/vms(staat al in de systeem-PATH) |
| Communicatiemethode | Lokale unix socket, standaard /var/api/VMs.sock |
| Doelgroep | Beheerders die op de lokale machine zijn aangemeld |
Opmerkingen:
- De CLI wordt gebruikt om virtuele machines op de lokale machine te beheren en ondersteunt het op afstand beheren van andere apparaten via de CLI niet.
- De backend retourneert altijd HTTP 200; of een opdracht slaagt, wordt bepaald door het veld
codein de responsbody, op basis waarvan de CLI dit omzet in een exitcode. - Gevaarlijke bewerkingen (het verwijderen van een virtuele machine, een netwerk, een image of een opslagruimte) vragen in interactieve modus om bevestiging en vereisen in niet-interactieve modus expliciet
--yes.
Overzichtstabel met opdrachten
Hieronder volgt een beknopt naslagoverzicht van alle vms-opdrachten:
| Hoofdopdracht | Subopdracht | Functiebeschrijving | Bevestiging vereist | Hoog risico |
|---|---|---|---|---|
| vms | --version | Toont versie-informatie | Nee | Nee |
| vms vm | list | Toont alle virtuele machines | Nee | Nee |
| vms vm | get | Bekijkt de details van een opgegeven virtuele machine | Nee | Nee |
| vms vm | list-resource | Toont de beschikbare bronnen voor het maken van een virtuele machine | Nee | Nee |
| vms vm | logs | Bekijkt de bewerkingslogboeken van een virtuele machine | Nee | Nee |
| vms vm | poweron | Schakelt een virtuele machine in | Nee | Nee |
| vms vm | poweroff | Schakelt een virtuele machine uit (normale uitschakeling) | Ja | Nee |
| vms vm | force-poweroff | Forceert het uitschakelen van een virtuele machine | Ja | ✅ |
| vms vm | reboot | Start een virtuele machine opnieuw op | Nee | Nee |
| vms vm | pause | Pauzeert een virtuele machine | Nee | Nee |
| vms vm | resume | Hervat een gepauzeerde virtuele machine | Nee | Nee |
| vms vm | autorun | Stelt automatisch opstarten bij het opstarten in | Nee | Nee |
| vms vm | clone | Kloont een virtuele machine | Nee | Nee |
| vms vm | export | Exporteert een virtuele machine als OVA-bestand | Nee | Nee |
| vms vm | delete | Verwijdert een virtuele machine | Ja | ✅ |
| vms vm disk | list | Bekijkt de virtuele schijven van een virtuele machine | Nee | Nee |
| vms vm snapshot | list | Toont de snapshots van een virtuele machine | Nee | Nee |
| vms vm snapshot | create | Maakt een snapshot | Nee | Nee |
| vms vm snapshot | edit | Bewerkt de beschrijving en vergrendelingsstatus van een snapshot | Nee | Nee |
| vms vm snapshot | config | Bekijkt de configuratie van de virtuele machine die in een snapshot is opgeslagen | Nee | Nee |
| vms vm snapshot | consistency | Bekijkt een voorbeeld van de snapshotconsistentie | Nee | Nee |
| vms vm | link | Haalt de verbindingsgegevens van de VNC-console op | Nee | Nee |
| vms network | list | Toont virtuele netwerken | Nee | Nee |
| vms network | get | Bekijkt de details van een virtueel netwerk | Nee | Nee |
| vms network | create | Maakt een virtueel netwerk | Nee | Nee |
| vms network | update | Werkt een virtueel netwerk bij | Nee | Nee |
| vms network | delete | Verwijdert een virtueel netwerk | Ja | ✅ |
| vms network | list-interfaces | Toont netwerkinterfaces van een opgegeven type | Nee | Nee |
| vms network | list-vnics | Toont de virtuele netwerkkaarten op een netwerk | Nee | Nee |
| vms network | ovsinfo | Bekijkt of OVS is ingeschakeld | Nee | Nee |
| vms image | list | Toont images | Nee | Nee |
| vms image | edit | Bewerkt image-informatie | Nee | Nee |
| vms image | delete | Verwijdert een image | Ja | ✅ |
| vms image | list-vms | Bekijkt de virtuele machines die de image gebruiken | Nee | Nee |
| vms repo | list | Toont opslagruimten | Nee | Nee |
| vms repo | get | Bekijkt de details van een opslagruimte | Nee | Nee |
| vms repo | update | Werkt de configuratie van een opslagruimte bij | Nee | Nee |
| vms repo | delete | Verwijdert een opslagruimte | Ja | ✅ |
| vms repo | list-volumes | Toont de beschikbare volumes | Nee | Nee |
| vms repo | list-vms | Toont de virtuele machines in een opslagruimte | Nee | Nee |
| vms repo | check-running | Controleert de virtuele machines die op een opslagruimte draaien | Nee | Nee |
| vms repo | whether-exist-data | Controleert of er gegevens in een opslagruimte aanwezig zijn | Nee | Nee |
| vms setting | get | Bekijkt de algemene instellingen | Nee | Nee |
| vms collectd | hostinfo | Bekijkt de monitoringinformatie van de host | Nee | Nee |
| vms collectd | vminfo | Bekijkt de monitoringinformatie van de virtuele machine | Nee | Nee |
| vms collectd | storageinfo | Bekijkt de monitoringinformatie van de opslag | Nee | Nee |
Opdrachtreferentie
In de opdrachten is <id> de ID van de virtuele machine, die overeenkomt met de GUEST ID in de uitvoer van de lijst met virtuele machines; <network_id>, <image_id> en <repo_id> zijn vergelijkbaar en kunnen respectievelijk worden verkregen via vms network list, vms image list en vms repo list.
Over voorbeelduitvoer: De tabeluitvoer van
vmskapt te lange veldwaarden af op een vaste breedte (eindigend met een beletselteken, en onafhankelijk van de terminalbreedte), bijvoorbeeldVDISKS,VNICS,ISO IMAGESin de configuratie van de virtuele machine, evenals imagenamen. Daarom geven opdrachten met lange velden in dit document uniform een volledige--json-voorbeelduitvoer, terwijl de overige opdrachten een tabeluitvoer als voorbeeld geven. Bij het verwerken met scripts wordt ook aangeraden uniform--jsonte gebruiken.
I. Query van virtuele machines
vms vm list – Toont virtuele machines
Toont alle virtuele machines op de lokale machine en hun basale status.
vms vm list [--limit N] [--offset N] [--json]
--limiten--offsetzijn pagineringsparameters- Uitvoerkolommen: naam, ID van de virtuele machine, bedrijfsstatus, aantal CPU-kernen, geheugengrootte (eenheid KB), IP-adres
Voorbeelduitvoer:
NAME GUEST ID STATUS VCPU NUM VRAM SIZE IP
145 09fd98ee-4e2d-4c7a-a95c-8bacab80d322 shutdown 4 2097152 -
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 shutdown 4 2097152 -
1454486 5a0391f2-c545-45eb-8eed-0a104972229b shutdown 4 2097152 -
win101 32ee5a74-de8b-47a9-959d-1725c881ceab shutdown 4 2097152 -
Veelvoorkomende STATUS-waarden:
| Status | Beschrijving |
|---|---|
| running | In bedrijf |
| shutdown | Uitgeschakeld |
| saved | Gepauzeerd (de bedrijfsstatus is op schijf opgeslagen) |
vms vm get – Bekijkt de details van een virtuele machine
Bekijkt de volledige configuratie en bedrijfsstatus van een opgegeven virtuele machine.
vms vm get <id> --json
- De uitvoer bevat alle configuratie- en bedrijfsstatusvelden van de virtuele machine
- Lege waarden zoals geen beschrijving of geen IP worden als een lege tekenreeks weergegeven
- Wanneer de virtuele machine niet bestaat, retourneert de opdracht een fout en geeft foutinformatie weer
Voorbeelduitvoer:
{
"iso_images": [
"c93083a5-2b39-4f32-b19f-1ad97c6b4de4",
"9b3f2fdd-9173-4611-a84c-0cc9ce88293c"
],
"image_paths": [
"",
""
],
"autorun": 0,
"boot_from": "cdrom",
"bios": "bios",
"kb_layout": "en-us",
"serial_console": true,
"usb_version": 2,
"usb_device_name": [
"USB - Integrated Technology Express, Inc. Disk 2.0"
],
"usbs": [
":3:3:048d:1234"
],
"use_ovmf": false,
"vnics": [
{
"prefer_sriov": false,
"vnic_type": 3,
"mac": "1a:e2:ae:95:4a:51",
"network_id": "b364a1ec-f60c-4971-9ea2-f7a002f09fa3",
"virtual_interface_id": "fe972ef5-b066-4967-89fa-8e85e43c8808"
}
],
"operating_system_type": 0,
"vdisks": [
{
"vdisk_mode": 1,
"name": "",
"unmap": false,
"iops_enable": false,
"dev_limit": 0,
"dev_reservation": 0,
"dev_weight": 3,
"vdisk_size": 1024,
"idx": 0,
"vdisk_id": "f4ed4eae-1512-4273-963b-79ebd93a0932",
"disk_image_type": "",
"disk_image_id": ""
}
],
"name": "win10",
"vcpu_num": 4,
"vcpu_usage": 0,
"vram_size": 2097152,
"video_card": "vga",
"machine_type": "1",
"cpu_weight": 3,
"ip": "",
"desc": "",
"cpu_passthru": false,
"hyperv_enlighten": true,
"cpu_pin_num": 0,
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6",
"repo_name": "VM-Storage01",
"poweron_after_create": false,
"guest_id": "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1",
"increaseAllocatedSize": 0,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "",
"snap_num": 0,
"has_guest_agent": false,
"status": "shutdown",
"status_code": 0,
"status_desc": "",
"host_ram_size": 0,
"total_throughput": 0,
"total_iops": 0,
"total_io_latency": 0,
"total_rx_bytes": 0,
"total_tx_bytes": 0,
"memory_usage": 0,
"cpu_usage": 0,
"vm_status_progress": 0
}
vms vm list-resource – Toont de beschikbare bronnen voor het maken van een virtuele machine
Bekijkt de bronnen die de host kan bieden, zoals firmwaretypen, images, CPU, geheugen, netwerken, opslagruimten en apparaten die geschikt zijn voor passthrough, ter evaluatie voordat een virtuele machine wordt gemaakt.
vms vm list-resource --json
Geretourneerde velden: max_cpu_num, max_ram_size, usbs, pci_devices, networks, repos, images, video_cards, firmware, keyboard_layout.
Voorbeelduitvoer:
{
"max_cpu_num": 4,
"max_ram_size": 16503336960,
"usbs": [
{
"product_name": "4-Port USB 2.0 Hub",
"usb_id": ":3:3:0x0bda:0x5423",
"version": ""
},
{
"product_name": "4-Port USB 3.2 Hub",
"usb_id": ":4:2:0x0bda:0x0423",
"version": ""
},
{
"product_name": "Flash Drive",
"usb_id": ":3:2:0x058f:0x6387",
"version": ""
}
],
"pci_devices": [
{
"device_name": "",
"bdf": "0000:02:00.0",
"vendor_id": "0x10ec",
"product_id": "0x8126",
"class_id": "0x020000",
"iommu_group": 13,
"iommu_group_bdfs": [
"0x0000:0x02:0x00.0x0"
],
"driver": "r8169",
"type": "Network Controller"
},
{
"device_name": "",
"bdf": "0000:00:0d.0",
"vendor_id": "0x8086",
"product_id": "0x464e",
"class_id": "0x0c0330",
"iommu_group": 2,
"iommu_group_bdfs": [
"0x0000:0x00:0x0d.0x0"
],
"driver": "xhci_hcd",
"type": "USB Controller"
},
{
"device_name": "",
"bdf": "0000:03:00.0",
"vendor_id": "0x10ec",
"product_id": "0x8126",
"class_id": "0x020000",
"iommu_group": 14,
"iommu_group_bdfs": [
"0x0000:0x03:0x00.0x0"
],
"driver": "r8169",
"type": "Network Controller"
},
{
"device_name": "",
"bdf": "0000:00:14.0",
"vendor_id": "0x8086",
"product_id": "0x54ed",
"class_id": "0x0c0330",
"iommu_group": 3,
"iommu_group_bdfs": [
"0x0000:0x00:0x14.0x2",
"0x0000:0x00:0x14.0x0"
],
"driver": "xhci_hcd",
"type": "USB Controller"
},
{
"device_name": "",
"bdf": "0000:00:14.2",
"vendor_id": "0x8086",
"product_id": "0x54ef",
"class_id": "0x050000",
"iommu_group": 3,
"iommu_group_bdfs": [
"0x0000:0x00:0x14.0x2",
"0x0000:0x00:0x14.0x0"
],
"driver": "",
"type": "IOMMU Group Device"
}
],
"networks": [
{
"name": "VM-Network04",
"network_id": "ce9807c9-47b3-4258-9a80-ea8db1fd785d",
"support_sriov": false
},
{
"name": "VM-Network05",
"network_id": "b56c2f7b-e3f0-4b68-8a3b-245c90a8f8b5",
"support_sriov": false
},
{
"name": "VM-Network01",
"network_id": "b364a1ec-f60c-4971-9ea2-f7a002f09fa3",
"support_sriov": false
},
{
"name": "VM-Network02",
"network_id": "6c9fffd8-c7c4-4968-9b50-6890a640ec94",
"support_sriov": false
},
{
"name": "VM-Network03",
"network_id": "4c05b2a2-dd49-4588-ac5c-64975c92d2d3",
"support_sriov": false
}
],
"repos": [
{
"name": "VM-Storage01",
"free_size": 941970767872,
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6",
"volume_size": 1099511627776,
"file_system": "btrfs",
"status": ""
},
{
"name": "VM-Storage02",
"free_size": 445785296896,
"repo_id": "517571ba-f7f7-49e1-9a62-7eb6ddfd9c78",
"volume_size": 536870912000,
"file_system": "btrfs",
"status": ""
}
],
"images": [
{
"id": "c93083a5-2b39-4f32-b19f-1ad97c6b4de4",
"name": "cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f",
"status": "available",
"type": "iso",
"used_size": 3884539904
},
{
"id": "9b3f2fdd-9173-4611-a84c-0cc9ce88293c",
"name": "virtio-win-0.1.285pro",
"status": "available",
"type": "iso",
"used_size": 789645312
},
{
"id": "efd6da18-9475-44cf-8fb0-e2513421e68a",
"name": "haos_ova-18.2",
"status": "available",
"type": "qcow2",
"used_size": 1091698688,
"virtual_size": 34359738368
},
{
"id": "cb9d929a-d673-4e46-ac86-9488bbef19b9",
"name": "cn_windows_11_consumer_editions_version_21h2_updated_july_2022_x64_dvd_50ad4acf",
"status": "available",
"type": "iso",
"used_size": 5858816000
}
],
"video_cards": [
"cirrus",
"vga",
"vmvga"
],
"firmware": [
"Legacy BIOS",
"UEFI"
],
"keyboard_layout": [
"fr-be",
"ar",
"bepo",
"cz",
"da",
"de",
"de-ch",
"en-gb",
"en-us",
"es",
"et",
"fo",
"fr",
"fr-be",
"fr-ca",
"fr-ch",
"hr",
"hu",
"is",
"it",
"ja",
"lt",
"lv",
"mk",
"nl",
"nl-be",
"no",
"pl",
"pt",
"pt-br",
"ru",
"sl",
"sv",
"th",
"tr"
]
}
vms vm logs – Bekijkt de bewerkingslogboeken van een virtuele machine
Bekijkt de bewerkingslogboeken die verband houden met een opgegeven virtuele machine (in-/uitschakelen, snapshots, bewerken, importeren/exporteren, enz.).
vms vm logs <id> --json [--limit N] [--desc]
--limitgeeft het aantal geretourneerde vermeldingen aan, standaard 50--descsorteert in omgekeerde chronologische volgorde (standaard ingeschakeld)- Elke logregel bevat de tijd, het niveau, de categorie, de bewerkende gebruiker en de gebeurtenisbeschrijving; de gebeurtenisbeschrijving is de volledige tekst
- De gebeurtenisbeschrijving (
event) wordt door de VMs-service gelokaliseerd op basis van de systeemtaal van het apparaat; de voorbeelden in dit document gebruiken uniform Engels
Voorbeelduitvoer:
[
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:44:09.176535374+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:43:10.597187659+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) started successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:40:32.74904922+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:39:55.916718004+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) started successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:39:43.341421576+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:38:31.518259486+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:38:07.98065689+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) started successfully"
},
{
"id": 0,
"level": "Error",
"time": "2026-09-02T11:32:35.01952111+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine (win10) export failed (Error:stat : no such file or directory)"
}
]
II. Energiebeheer van virtuele machines
vms vm poweron – Schakelt een virtuele machine in
vms vm poweron <id>
- De virtuele machine moet de status uitgeschakeld hebben, anders wordt een statusconflictfout geretourneerd
- Uitvoer:
VM powered on: <id>
vms vm poweroff – Schakelt een virtuele machine uit
Stuurt een normaal uitschakelverzoek naar de virtuele machine, zodat het systeem netjes wordt afgesloten.
vms vm poweroff <id> [--yes]
- Dit is een gevaarlijke bewerking: in interactieve modus wordt om bevestiging gevraagd, in niet-interactieve modus moet
--yesworden toegevoegd - De virtuele machine moet de status in bedrijf hebben, anders wordt een statusconflictfout geretourneerd
Bevestigingsvraag in interactieve modus:
This action will powered off VM "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1". Do you want to continue? [y/N]:
- Uitvoer:
VM powered off: <id>
vms vm force-poweroff – Forceert het uitschakelen van een virtuele machine (hoog risico)
Forceert het uitschakelen van de virtuele machine, gelijk aan het direct onderbreken van de stroomtoevoer.
vms vm force-poweroff <id> [--yes]
- Dit is een risicovolle bewerking: in interactieve modus wordt om bevestiging gevraagd, in niet-interactieve modus moet
--yesworden toegevoegd - Kan gegevensverlies in de virtuele machine veroorzaken; het wordt aangeraden dit alleen te gebruiken wanneer de virtuele machine niet reageert
Bevestigingsvraag in interactieve modus:
This action will force powered off VM "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1". Do you want to continue? [y/N]:
- Uitvoer:
VM force powered off: <id>
vms vm reboot – Start een virtuele machine opnieuw op
vms vm reboot <id>
- Uitvoer:
VM rebooted: <id>
vms vm pause – Pauzeert een virtuele machine
Bevriest de bedrijfsstatus van de virtuele machine en slaat de huidige status op schijf op.
vms vm pause <id>
- De virtuele machine moet de status in bedrijf hebben, anders wordt een statusconflictfout geretourneerd
- Na het pauzeren wordt de status van de virtuele machine weergegeven als
saved - Uitvoer:
VM paused: <id>
vms vm resume – Hervat een virtuele machine
Hervat de virtuele machine van de gepauzeerde status naar de bedrijfsstatus.
vms vm resume <id>
- De virtuele machine moet de gepauzeerde status hebben, anders wordt een statusconflictfout geretourneerd
- Uitvoer:
VM resumed: <id>
vms vm autorun – Stelt automatisch opstarten bij het opstarten in
Stelt in of de virtuele machine automatisch mee opstart wanneer de host wordt ingeschakeld.
vms vm autorun <id> <true|false>
- De tweede parameter moet
trueoffalsezijn - De opdracht leest de huidige configuratie en wijzigt alleen de schakelaar voor automatisch opstarten; andere configuraties blijven ongewijzigd
- Uitvoer:
Auto-start enabled for VM <id>ofAuto-start disabled for VM <id>
III. Klonen, exporteren en verwijderen van virtuele machines
vms vm clone – Kloont een virtuele machine
Maakt een nieuwe virtuele machine door een bestaande virtuele machine als sjabloon te kopiëren.
vms vm clone --body '{"guest_id":"<source_id>","name":"my-clone"}'
vms vm clone --file clone.json
- In de aanvraagbody is
guest_idde ID van de bron-virtuele machine en isname(ofguest_name) de naam van de nieuwe virtuele machine - De bron-virtuele machine moet de status uitgeschakeld hebben
--bodygeeft de aanvraagbody direct als JSON-tekenreeks door,--fileleest de aanvraagbody uit een bestand
vms vm export – Exporteert een virtuele machine
Exporteert de virtuele machine als OVA-bestand, handig voor back-up of migratie naar andere virtualisatieplatforms.
vms vm export --body '{"guest_id":"<source_id>","target_ova_path":"/Volume1/export/my-vm.ova"}'
vms vm export --file export.json
- In de aanvraagbody is
guest_idde ID van de bron-virtuele machine, istarget_ova_pathhet doelbestandspad en isova_modeeen optionele VMware-compatibiliteitsmodus - De bron-virtuele machine moet de status uitgeschakeld hebben
- Exporteren is een tijdrovende taak; het exporteren van een virtuele machine met een grote capaciteit duurt lang
vms vm delete – Verwijdert een virtuele machine (hoog risico)
Verwijdert een virtuele machine permanent.
vms vm delete <id> [--yes]
- Dit is een risicovolle bewerking: in interactieve modus wordt om bevestiging gevraagd, in niet-interactieve modus moet
--yesworden toegevoegd - Na verwijdering kan deze niet worden hersteld; bevestig vooraf dat de gegevens in de virtuele machine zijn geback-upt
Bevestigingsvraag in interactieve modus:
This action will permanently delete VM "5a0391f2-c545-45eb-8eed-0a104972229b". Do you want to continue? [y/N]:
- Uitvoer:
VM deleted: <id>
IV. Virtuele schijven
vms vm disk list – Bekijkt de virtuele schijven
Toont alle virtuele schijven van een opgegeven virtuele machine.
vms vm disk list <id> [--json]
Voorbeelduitvoer:
NAME VDISK ID VDISK SIZE VDISK MODE IDX
- f4ed4eae-1512-4273-963b-79ebd93a0932 1024 1 0
VDISK MODEis het typenummer van de virtuele-schijfcontroller;1staat voor IDE- Een naamloze virtuele schijf wordt in de kolom
NAMEweergegeven als-
V. Snapshotbeheer
vms vm snapshot list – Toont snapshots
vms vm snapshot list <id> [--json]
Voorbeelduitvoer:
NAME GUEST ID DESCRIPTION LOCKED CREATED AT VM STATE ACTUAL CONSISTENCY
snapshot_2026-09-02T11-43-51.183703274 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 cli-test-edited false 2026-09-02T11:43:51+08:00 running crash
snapshot_2026-05-15T17-13-48.986448711 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 - false 2026-05-15T17:13:48+08:00 shutdown filesystem
VM STATEis de bedrijfsstatus van de virtuele machine op het moment dat de snapshot werd gemaaktACTUAL CONSISTENCYis het consistentietype van de snapshot;filesystembetekent bestandssysteemconsistent,crashbetekent crashconsistent
vms vm snapshot create – Maakt een snapshot
Maakt een snapshot voor een virtuele machine, voor een snelle terugdraaiing of het maken van een back-up van de huidige status.
vms vm snapshot create <id>
vms vm snapshot create <id> --body '{"description":"before-upgrade","locked":false}'
- De aanvraagbody is optioneel:
descriptionis de snapshotbeschrijving enlockedgeeft aan of deze wordt vergrendeld - De snapshotnaam wordt automatisch door het systeem gegenereerd op basis van de aanmaaktijd
- Snapshots nemen opslagruimte in beslag; als ze lange tijd niet worden opgeruimd, kunnen ze de opslagruimte vullen; regelmatig opruimen wordt aanbevolen
vms vm snapshot edit – Bewerkt een snapshot
Wijzigt de beschrijving of vergrendelingsstatus van een snapshot.
vms vm snapshot edit <id> <snapshot_name> --body '{"description":"updated description"}'
vms vm snapshot edit <id> <snapshot_name> --body '{"locked":true}'
- Alleen velden die in de aanvraagbody voorkomen worden gewijzigd; velden die niet voorkomen behouden hun oorspronkelijke waarde; het alleen wijzigen van de beschrijving verandert de vergrendelingsstatus niet, en omgekeerd
Voorbeelduitvoer:
PROPERTY VALUE
ACTUAL CONSISTENCY crash
CREATED AT 2026-09-02T11:43:51+08:00
DESCRIPTION cli-test-edited
GUEST ID 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1
LOCKED false
NAME snapshot_2026-09-02T11-43-51.183703274
VM STATE running
vms vm snapshot config – Bekijkt de configuratie van de virtuele machine in een snapshot
Bekijkt de configuratie van de virtuele machine die in een snapshot is opgeslagen.
vms vm snapshot config <id> <snapshot_name>
<id> is de ID van de virtuele machine en <snapshot_name> is de snapshotnaam, die kan worden verkregen via vms vm snapshot list <id>.
Voorbeelduitvoer:
PROPERTY VALUE
CPU COMPATIBILITY MODE true
CPU PASSTHRU false
HYPERV ENLIGHTEN true
REPO NAME VM-Storage01
USB DEVICE NAME ["USB - Integrated Technology Express, Inc. Disk 2.0"]
USB VERSION 2
USBS [":3:3:048d:1234"]
VCPU NUM 4
VDISK NUM 1
VDISK TOTAL SIZE 1024
VDISKS [{"name":"disk1","type":"ide","vdisk_size":1024}]
VIDEO CARD vga
VRAM SIZE 2097152
vms vm snapshot consistency – Bekijkt een voorbeeld van de snapshotconsistentie
Bekijkt het consistentietype dat kan worden verkregen voordat een snapshot wordt gemaakt, om te beoordelen of het huidige moment geschikt is om een snapshot te maken.
vms vm snapshot consistency <id>
Voorbeelduitvoer:
PROPERTY VALUE
CONSISTENCY TYPE filesystem
REASON vm_shutdown
VM STATE shutdown
Het maken van een snapshot terwijl de virtuele machine is uitgeschakeld, levert een bestandssysteemconsistente snapshot op; in bedrijf is doorgaans alleen een crashconsistente snapshot mogelijk.
VI. Externe console
vms vm link – Haalt de VNC-verbindingsgegevens op
Haalt de verbindingsgegevens van de VNC-console van de virtuele machine op, om de externe console in een browser te openen.
vms vm link <id> --json
- De virtuele machine moet de status in bedrijf of gepauzeerd hebben, anders wordt een statusconflictfout geretourneerd
Voorbeelduitvoer:
{
"url": "VMs/noVNC/vnc.html?autoconnect=true\u0026reconnect=true\u0026path=utils/websockify/?token=09fd98ee-4e2d-4c7a-a95c-8bacab80d322\u0026title=145",
"port": 8181,
"https": false
}
urlis het consolepad ten opzichte van het NAS-beheeradres,portis de poort van de consoledienst enhttpsgeeft aan of toegang via HTTPS nodig is- In de JSON-uitvoer wordt het teken
&in de URL geëscaped als\u0026
VII. Beheer van virtuele netwerken
Netwerktypen zijn er in twee soorten:
| Type | Beschrijving |
|---|---|
| Privé (private) | Een intern netwerk uitsluitend voor communicatie tussen virtuele machines op de lokale machine, niet gebonden aan een fysieke netwerkkaart |
| Extern (external) | Een netwerk dat aan een fysieke netwerkkaart is gebonden; virtuele machines kunnen via dit netwerk met de buitenwereld communiceren |
vms network list – Toont virtuele netwerken
vms network list [--limit N] [--offset N] [--json]
Voorbeelduitvoer:
NAME NETWORK ID TYPE VLAN ID NUM GUESTS NUM HOSTS NUM INTERFACES HOST NAME
VM-Network04 ce9807c9-47b3-4258-9a80-ea8db1fd785d external 0 0 1 1 A-eae4
VM-Network01 b364a1ec-f60c-4971-9ea2-f7a002f09fa3 external 0 2 1 1 A-eae4
NUM GUESTSis het aantal virtuele machines dat op het netwerk is aangesloten enNUM INTERFACESis het aantal geselecteerde fysieke netwerkkaarten
vms network get – Bekijkt de details van een virtueel netwerk
vms network get <network_id> --json
Voorbeelduitvoer:
{
"metadata": {
"createdAt": "2026-05-15T16:46:08.415062294+08:00",
"updatedAt": "2026-05-15T16:46:08.415062415+08:00"
},
"network_id": "b364a1ec-f60c-4971-9ea2-f7a002f09fa3",
"name": "VM-Network01",
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interfaces": {
"15341593-7f43-49f4-9523-6ac750a63a8a": {
"totalCount": 1,
"items": [
{
"checked": false,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interface_id": "/00000000-0000-0000-0000-6cbfb504eae5",
"interface_name": "LAN 2",
"ip": [
"192.168.2.121"
],
"mask": [
"ffffff00"
],
"speed_mbs": 1000,
"status": "connected",
"tx_kbps": 0,
"rx_kbps": 0
},
{
"checked": true,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interface_id": "/00000000-0000-0000-0000-6cbfb504eae4",
"interface_name": "LAN 1",
"ip": [
"10.18.8.95"
],
"mask": [
"ffffff00"
],
"speed_mbs": 1000,
"status": "connected",
"tx_kbps": 2.5458984375,
"rx_kbps": 11.45458984375
}
]
}
},
"num_guests": 0,
"num_hosts": 1,
"num_interfaces": 1,
"type": "external",
"vlan_id": 0
}
interfacesis de netwerkkaartinformatie die aan dit netwerk is gebonden, georganiseerd per host-ID;checkedgeeft aan of die netwerkkaart is geselecteerdmetadataregistreert de aanmaak- en wijzigingstijden van het netwerk
vms network create – Maakt een virtueel netwerk
vms network create --body '{"name":"net1","type":"private","host_name":"TNAS"}' --json
vms network create --body '{"name":"net1","type":"external","vlan_id":100,"host_name":"TNAS","interface_name":"LAN 1"}' --json
Een privénetwerk maken:
- De aanvraagbody moet
name,type(private) enhost_nameofhost_idbevatten, waarmee wordt aangegeven op welke host het netwerk wordt gemaakt - Vóór het maken kunnen de beschikbare hosts worden bekeken via
vms network list-interfaces private
Een extern netwerk maken:
- De aanvraagbody moet
name,type(external) envlan_idbevatten en ten minste één fysieke netwerkkaart aangeven - De netwerkkaart kan worden opgegeven via
interface_name(zoalsLAN 1) ofinterface_id; wanneer de naam van de netwerkkaart niet uniek is tussen hosts, moet deze samen methost_nameworden gebruikt - Vóór het maken kunnen de beschikbare netwerkkaarten worden bekeken via
vms network list-interfaces external
De uitvoer is de netwerkinformatie na het maken, consistent met de structuur van vms network get:
{
"metadata": {
"createdAt": "2026-09-17T16:57:32.064720576+08:00",
"updatedAt": "2026-09-17T16:57:32.064720634+08:00"
},
"network_id": "27047bd1-eeeb-4762-82ae-45094dea4854",
"name": "cli-demo-net",
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interfaces": {
"15341593-7f43-49f4-9523-6ac750a63a8a": {
"totalCount": 1,
"items": [
{
"checked": true,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interface_id": "",
"interface_name": "PNdea4854",
"ip": null,
"mask": null,
"speed_mbs": 0,
"status": ""
}
]
}
},
"num_guests": 0,
"num_hosts": 1,
"num_interfaces": 1,
"type": "private",
"vlan_id": 0
}
Wanneer geen netwerkkaart wordt opgegeven, geeft de opdracht een aanwijzing:
network create (type "external") requires selecting at least one interface; add "interface_name" (optionally scoped with "host_name") or "interface_id" to the body, e.g. {"name":"net1","type":"external","vlan_id":100,"host_name":"TNAS","interface_name":"LAN 1"}. Run "vms network list-interfaces external" to see available interfaces. Example available interface: LAN 2 on A-eae4 (host_id=15341593-7f43-49f4-9523-6ac750a63a8a, interface_id=/00000000-0000-0000-0000-6cbfb504eae5)
vms network update – Werkt een virtueel netwerk bij
Dien alleen de velden in die moeten worden gewijzigd; velden die niet worden ingediend behouden hun oorspronkelijke waarde.
vms network update --body '{"network_id":"<network_id>","name":"renamed"}'
vms network update --body '{"network_id":"<network_id>","vlan_id":200}'
- De aanvraagbody moet
network_idbevatten - De opdracht leest eerst de huidige netwerkconfiguratie en voegt de ingediende velden samen; de netwerknaam en geselecteerde netwerkkaarten worden niet gewist
- De uitvoer is de bijgewerkte netwerkinformatie
vms network delete – Verwijdert een virtueel netwerk (hoog risico)
vms network delete <network_id> [--yes]
- Dit is een risicovolle bewerking: in interactieve modus wordt om bevestiging gevraagd, in niet-interactieve modus moet
--yesworden toegevoegd - Het verwijderen van een netwerk verbreekt de verbinding met alle virtuele machines die op dat netwerk zijn aangesloten
- Het wordt aangeraden eerst de aangesloten virtuele machines te bevestigen via
vms network list-vnics <network_id>
Bevestigingsvraag in interactieve modus:
This action will delete network "b364a1ec-f60c-4971-9ea2-f7a002f09fa3". Do you want to continue? [y/N]:
- Uitvoer:
Network deleted: <network_id>
vms network list-interfaces – Toont netwerkinterfaces
Toont netwerkinterfaces van een opgegeven type.
vms network list-interfaces external [--limit N] [--offset N]
vms network list-interfaces private [--limit N] [--offset N]
externalretourneert de beschikbare fysieke netwerkkaarten op de hostprivateretourneert de hostinformatie die beschikbaar is voor het maken van een privénetwerk
Voorbeelduitvoer (external):
INTERFACE NAME INTERFACE ID HOST NAME STATUS IP SPEED MBS
LAN 2 /00000000-0000-0000-0000-6cbfb504eae5 A-eae4 disconnected - -1
LAN 1 /00000000-0000-0000-0000-6cbfb504eae4 A-eae4 connected ["10.18.8.73"] 1000
Voorbeelduitvoer (private):
INTERFACE NAME INTERFACE ID HOST NAME STATUS IP SPEED MBS
- - A-eae4 - - 0
vms network list-vnics – Toont de virtuele netwerkkaarten op een netwerk
vms network list-vnics <network_id> [--limit N] [--offset N] [--json]
Voorbeelduitvoer:
GUEST NAME GUEST ID MAC ADDRESS VIRTUAL INTERFACE ID NETWORK NAME STATUS PREFER SRIOV
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 1a:e2:ae:95:4a:51 fe972ef5-b066-4967-89fa-8e85e43c8808 VM-Network01 - false
win101 32ee5a74-de8b-47a9-959d-1725c881ceab 1a:f6:db:fb:3d:79 f93bf16c-01ca-4b60-b164-8a3083fb5f03 VM-Network01 - false
vms network ovsinfo – Bekijkt de OVS-status
Bevestigt of de virtuele switch Open vSwitch is ingeschakeld.
vms network ovsinfo [--json]
Voorbeelduitvoer:
PROPERTY VALUE
RESULT true
VALUE met de waarde true betekent dat OVS is ingeschakeld.
VIII. Imagebeheer
vms image list – Toont images
Toont de systeemimagebestanden die beschikbaar zijn voor het maken van virtuele machines.
vms image list --json
image_nameis de imagenaam enfile_nameis de bijbehorende bestandsnaamtypeis het imageformaat, zoalsisoofqcow2statusis de imagestatus;availablebetekent beschikbaarreposis de opslagruimte waarin de image zich bevindtprogressis de voortgang van de imageverwerkingstaak;0betekent geen lopende taak
Voorbeelduitvoer:
{
"totalCount": 4,
"items": [
{
"image_name": "cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f",
"image_id": "c93083a5-2b39-4f32-b19f-1ad97c6b4de4",
"file_name": "cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f.iso",
"type": "iso",
"file_size": 3884539904,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1778835784,
"repos": [
{
"repo_name": "VM-Storage01",
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
},
{
"image_name": "cn_windows_11_consumer_editions_version_21h2_updated_july_2022_x64_dvd_50ad4acf",
"image_id": "cb9d929a-d673-4e46-ac86-9488bbef19b9",
"file_name": "cn_windows_11_consumer_editions_version_21h2_updated_july_2022_x64_dvd_50ad4acf.iso",
"type": "iso",
"file_size": 5858816000,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1778835784,
"repos": [
{
"repo_name": "VM-Storage01",
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
},
{
"image_name": "virtio-win-0.1.285pro",
"image_id": "9b3f2fdd-9173-4611-a84c-0cc9ce88293c",
"file_name": "virtio-win-0.1.285.iso",
"type": "iso",
"file_size": 789645312,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1778836128,
"repos": [
{
"repo_name": "VM-Storage01",
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
},
{
"image_name": "haos_ova-18.2",
"image_id": "efd6da18-9475-44cf-8fb0-e2513421e68a",
"file_name": "haos_ova-18.2.qcow2",
"type": "qcow2",
"file_size": 1091698688,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1787191833,
"repos": [
{
"repo_name": "VM-Storage02",
"repo_id": "517571ba-f7f7-49e1-9a62-7eb6ddfd9c78"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
}
]
}
vms image edit – Bewerkt een image
Wijzigt de imagenaam of past de opslagruimte waarin de image zich bevindt aan.
vms image edit --body '{"image_id":"<image_id>","repos":["<repo_id>"]}'
vms image edit --body '{"image_id":"<image_id>","repos":["<repo_id_1>","<repo_id_2>"],"image_name":"renamed.iso"}'
- De aanvraagbody moet
image_idenreposbevatten;reposis de volledige lijst van doelopslagruimten van de image en mag niet leeg zijn image_name,file_name,typeenfile_sizezijn optionele velden; als ze niet worden opgegeven, worden de huidige waarden gebruikt- Een lege
reposzorgt ervoor dat de image uit alle opslagruimten wordt verwijderd; de opdracht weigert het verzoek voordat het wordt uitgevoerd - Uitvoer:
Image updated
vms image delete – Verwijdert een image (hoog risico)
vms image delete --image-id <image_id> [--yes]
--image-idis verplicht- Dit is een risicovolle bewerking: in interactieve modus wordt om bevestiging gevraagd, in niet-interactieve modus moet
--yesworden toegevoegd - Het verwijderen van een image beïnvloedt reeds gemaakte virtuele machines niet, maar beïnvloedt het later maken van virtuele machines op basis van die image
- Het wordt aangeraden eerst het gebruik te bevestigen via
vms image list-vms --image-id <image_id>
Bevestigingsvraag in interactieve modus:
This action will permanently delete image "efd6da18-9475-44cf-8fb0-e2513421e68a". Do you want to continue? [y/N]:
- Uitvoer:
Image deleted: <image_id>
vms image list-vms – Bekijkt de virtuele machines die de image gebruiken
vms image list-vms --image-id <image_id> [--json]
Voorbeelduitvoer:
GUEST NAME
1454486
Voer deze opdracht vóór het verwijderen van een image uit om de omvang van de impact te bevestigen; wanneer geen virtuele machine de image gebruikt, is de uitvoer leeg.
IX. Opslagruimtebeheer
vms repo list – Toont opslagruimten
vms repo list [--json]
Voorbeelduitvoer:
NAME REPO ID STATUS USED PERCENT USED TOTAL SIZE FILE SYSTEM HOST NAME
VM-Storage01 735ef7f7-5d8d-4102-9377-8a7b8c33cda6 - 155583651840 14.150249481201172 1097552691200 btrfs -
VM-Storage02 517571ba-f7f7-49e1-9a62-7eb6ddfd9c78 normal 89361494016 16.64487648010254 535146790912 btrfs A-eae4
vms repo get – Bekijkt de details van een opslagruimte
vms repo get <repo_id> [--json]
Voorbeelduitvoer:
PROPERTY VALUE
ENABLE LOWER NOTIFY false
FILE SYSTEM btrfs
HARD LIMIT 2
HOST ID 15341593-7f43-49f4-9523-6ac750a63a8a
HOST NAME A-eae4
LAST NOTIFY TRESHOLD -
LOCATION VOLUME /Volume2
NAME VM-Storage02
REPO ID 517571ba-f7f7-49e1-9a62-7eb6ddfd9c78
SOFT LIMIT 10
STATUS normal
TOTAL SIZE 534760128512
LOCATION VOLUMEis het volume waarin de opslagruimte zich bevindtSOFT LIMITenHARD LIMITzijn drempelwaarden voor capaciteitswaarschuwingen (percentage)ENABLE LOWER NOTIFYgeeft aan of de melding voor onvoldoende capaciteit is ingeschakeld
vms repo update – Werkt een opslagruimte bij
Dien alleen de velden in die moeten worden gewijzigd; velden die niet worden ingediend behouden hun oorspronkelijke waarde.
vms repo update --body '{"repo_id":"<repo_id>","name":"new-name"}'
vms repo update --body '{"repoId":"<repo_id>","enable_lower_notify":true}'
- De ID van de opslagruimte kan worden doorgegeven via
repo_idofrepoId - De opdracht leest eerst de huidige configuratie en voegt de ingediende velden samen; andere instellingen gaan niet verloren
- De uitvoer is de bijgewerkte opslagruimteinformatie
vms repo delete – Verwijdert een opslagruimte (hoog risico)
vms repo delete <repo_id> <true|false> [--yes]
- De tweede parameter is
need_save_data:truebetekent dat de gegevensbestanden op de schijf behouden blijven,falsebetekent dat ze samen met de gegevens worden verwijderd - Dit is een risicovolle bewerking: in interactieve modus wordt om bevestiging gevraagd, in niet-interactieve modus moet
--yesworden toegevoegd - Het verwijderen van een opslagruimte verwijdert ook de virtuele machines en images erin; het wordt aangeraden eerst
vms repo check-runningenvms repo whether-exist-datauit te voeren om de omvang van de impact te bevestigen
Bevestigingsvraag in interactieve modus:
This action will delete repository "735ef7f7-5d8d-4102-9377-8a7b8c33cda6" (save data: true). Do you want to continue? [y/N]:
- Uitvoer:
Repository deleted: <repo_id>
vms repo list-volumes – Toont de beschikbare volumes
Toont de volumes die beschikbaar zijn voor het maken van een opslagruimte.
vms repo list-volumes [--json]
Voorbeelduitvoer:
NAME UUID DEVICE FILESYSTEM STATUS VOLUME TYPE TOTAL USED AVAILABLE USAGE
lv3 00000004-2608-1311-3025-6cbfb504eae4 /dev/mapper/vg0-lv3 ext4 - - {"unit":"KB","value":102626232} {"unit":"KB","value":52} {"unit":"KB","value":101561220} 0.000051200619070623694
lv2 00000003-2606-2215-3256-6cbfb504eae4 /dev/mapper/vg0-lv2 btrfs - - {"unit":"KB","value":104857600} {"unit":"KB","value":9715824} {"unit":"KB","value":93096464} 9.450061066630479
vms repo list-vms – Toont de virtuele machines in een opslagruimte
vms repo list-vms --body '{"repo_id":"<repo_id>"}'
- De ID van de opslagruimte kan worden doorgegeven via
repo_idofrepoId - De opdracht haalt eerst het opslagruimteobject op en queryt vervolgens de virtuele machines, wat een betrouwbaarder resultaat geeft
vms repo check-running – Controleert de virtuele machines die op een opslagruimte draaien
vms repo check-running <repo_id> [--json]
Voer dit uit vóór het verwijderen van een opslagruimte om te bevestigen dat er geen virtuele machine draait; wanneer er geen draaiende virtuele machine is, is de uitvoer leeg.
vms repo whether-exist-data – Controleert of er gegevens in een opslagruimte aanwezig zijn
vms repo whether-exist-data --body '{"repo_id":"<repo_id>"}'
Voer dit uit vóór het verwijderen van een opslagruimte om te bevestigen of er nog gegevens in de opslagruimte aanwezig zijn; consistent met de voorcontrole vóór het verwijderen van een opslagruimte in de webinterface.
X. Algemene instellingen
vms setting get – Bekijkt de algemene instellingen
Bekijkt de algemene configuratie van de VMs-toepassing.
vms setting get [--json]
Voorbeelduitvoer:
PROPERTY VALUE
HOST SHUTDOWN BEHAVIOR 1
KB LAYOUT en-us
SHOW VIRTIO BLK VDISK false
HOST SHUTDOWN BEHAVIORis de manier waarop virtuele machines worden behandeld wanneer de host wordt uitgeschakeldKB LAYOUTis de toetsenbordindeling van de virtuele machine
XI. Query van monitoringinformatie
vms collectd hostinfo – Bekijkt de monitoringinformatie van de host
vms collectd hostinfo [--limit N] [--offset N] [--json]
Voorbeelduitvoer:
NAME ID STATUS TYPE CPU USAGE RAM USAGE DESC
A-eae4 - running healthy 2.53 15.66 Info
vms collectd vminfo – Bekijkt de monitoringinformatie van de virtuele machine
vms collectd vminfo [--limit N] [--offset N] [--json]
Voorbeelduitvoer:
NAME ID STATUS TYPE CPU USAGE RAM USAGE DESC
145 09fd98ee-4e2d-4c7a-a95c-8bacab80d322 shutdown healthy 0 0 info
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 shutdown healthy 0 0 info
win101 32ee5a74-de8b-47a9-959d-1725c881ceab shutdown healthy 0 0 info
vms collectd storageinfo – Bekijkt de monitoringinformatie van de opslag
vms collectd storageinfo [--limit N] [--offset N] [--json]
Voorbeelduitvoer:
NAME ID HOST NAME STATUS TYPE SIZE USED PERCENT USED PERCENT FREE
VM-Storage01 735ef7f7-5d8d-4102-9377-8a7b8c33cda6 A-eae4 none healthy 1097552691200 155583651840 14.328414916992188 85.67158508300781
VM-Storage02 517571ba-f7f7-49e1-9a62-7eb6ddfd9c78 A-eae4 none healthy 535146790912 89361494016 16.966018676757812 83.03398132324219
Interactieve en niet-interactieve modus
De CLI bepaalt of deze momenteel in een terminalomgeving draait en past verschillende gedragingen toe:
Interactieve modus (terminalomgeving)
- Gevaarlijke bewerkingen tonen een bevestigingsvraag, met de standaardoptie No
- Voer
yofYin om door te gaan met de uitvoering, voernin of druk direct op Enter om te annuleren - Bij het annuleren van een bewerking wordt
Operation cancelledweergegeven met exitcode 99
Niet-interactieve modus (script/automatisering)
- Gevaarlijke bewerkingen vereisen
--yesom de bevestiging over te slaan, anders geeft de opdracht direct een fout en retourneert exitcode 1 - Zonder terminalomgeving wordt niet op invoer gewacht, wat geschikt is voor scripts en geplande taken
- Het wordt aangeraden exitcodes expliciet in scripts te verwerken om succes, mislukking en statusconflict te onderscheiden
JSON-uitvoerformaat
Queryopdrachten ondersteunen de parameter --json, die genormaliseerde JSON-gegevens uitvoert die eenvoudig door programma's kunnen worden geparseerd.
Formaatafspraken:
- Veldnamen gebruiken snake_case
- Booleaanse waarden zijn true/false
- Tijd gebruikt het ISO 8601-formaat, inclusief nanoseconde-precisie en de UTC+8-offset (zoals 2026-09-02T11:43:51.176535374+08:00)
- JSON wordt naar stdout uitgevoerd, foutinformatie wordt naar stderr uitgevoerd
- Langere velden die in de tabeluitvoer worden afgekapt, zijn volledige waarden in de JSON-uitvoer
Voorbeeld:
vms setting get --json
{
"host_shutdown_behavior": 1,
"kb_layout": "en-us",
"show_virtio_blk_vdisk": false
}
De JSON-structuur verschilt enigszins per opdracht: vms vm list, vms vm snapshot list en vms vm logs geven rechtstreeks een array uit; de overige lijstopdrachten geven een object met totalCount en een gegevensveld, waarbij de naam van het gegevensveld per bron verschilt (zoals items, hosts, vms, storage). Bijvoorbeeld vms repo list --json:
{
"totalCount": 2,
"items": {
"517571ba-f7f7-49e1-9a62-7eb6ddfd9c78": {
"name": "VM-Storage02",
"repo_id": "517571ba-f7f7-49e1-9a62-7eb6ddfd9c78",
"status": "normal",
"used": 89361494016,
"percent_used": 16.64487648010254,
"location_volume": "/Volume2",
"total_size": 535146790912,
"hard_limit": 2,
"soft_limit": 10,
"enable_lower_notify": false,
"file_system": "btrfs"
}
}
}
De JSON-uitvoer van sommige opdrachten is een eenvoudige waarde, bijvoorbeeld vms network ovsinfo --json geeft true uit en vms vm pause --json geeft null uit.
Beschrijving van exitcodes
| Exitcode | Betekenis | Typisch scenario |
|---|---|---|
| 0 | Succes | De opdracht is normaal voltooid |
| 1 | Parameterfout | Verplichte parameter ontbreekt, onjuist parameterformaat, --yes niet toegevoegd |
| 3 | Bron bestaat niet | De voorcontrole van de opdracht is niet geslaagd, bijvoorbeeld de opgegeven image bestaat niet |
| 4 | Statusconflict | De huidige status van de virtuele machine staat de bewerking niet toe (zoals het uitschakelen van een reeds uitgeschakelde virtuele machine) |
| 6 | Verbindingsfout | Kan geen verbinding maken met de VMs-service, of het socketpad is onjuist |
| 7 | Time-out | Het verzoek is verlopen; dit kan worden aangepast via --timeout |
| 9 | Uitvoeringsfout | De backend retourneert een fout (de foutinformatie bevat code_num en de foutbeschrijving) |
| 99 | Geannuleerd door gebruiker | No kiezen of direct op Enter drukken bij de interactieve bevestiging |
Voorbeeld:
# 退出码 1(参数错误)
vms vm poweroff <id>
# Confirmation required. Re-run with --yes to continue.
# 退出码 4(状态冲突)
vms vm pause <id>
# cannot pause a virtual machine: VM must be running (current status: shutdown)
# 退出码 9(执行错误)
vms vm get <id>
# vm check configure error: vdisk check - vm not exist: key not found (code_num=2001, vm check configure error)
# 退出码 6(连接错误)
vms vm list --socket /tmp/nope.sock
# failed to connect to VMs daemon (socket /tmp/nope.sock): dial unix /tmp/nope.sock: connect: no such file or directory
Gebruiksscenario's
Dagelijks beheer
# 查看所有虚拟机状态
vms vm list
# 查看某台虚拟机的配置与运行状态
vms vm get <id>
# 查看虚拟机的操作日志
vms vm logs <id> --limit 20
# 开机、关机与重启
vms vm poweron <id>
vms vm poweroff <id> --yes
vms vm reboot <id>
Batchverwerking met scripts
# 批量启动所有已关机的虚拟机
vms vm list --json | jq -r '.[] | select(.status == "shutdown") | .guest_id' | while read -r id; do
vms vm poweron "$id"
done
# 批量关闭所有运行中的虚拟机
vms vm list --json | jq -r '.[] | select(.status == "running") | .guest_id' | while read -r id; do
vms vm poweroff "$id" --yes
done
# 存储空间容量检查,超过 80% 时输出告警
vms collectd storageinfo --json | jq -r '.storage[] | select(.percent_used > 80) | .name'
Back-up en inspectie
# 关机后为虚拟机创建快照
vms vm poweroff <id> --yes
vms vm snapshot consistency <id>
vms vm snapshot create <id> --body '{"description":"weekly-backup"}'
# 查看快照列表与详情
vms vm snapshot list <id>
vms vm snapshot config <id> <snapshot_name>
# 导出虚拟机为 OVA 文件,用于异地备份
vms vm export --body '{"guest_id":"<id>","target_ova_path":"/Volume1/backup/my-vm.ova"}'
Controles vóór verwijdering
# 删除存储空间前,先确认是否有虚拟机正在运行、是否存在数据
vms repo check-running <repo_id>
vms repo whether-exist-data --body '{"repo_id":"<repo_id>"}'
# 删除映像前,先确认有哪些虚拟机在使用
vms image list-vms --image-id <image_id>
# 删除网络前,先确认接入的虚拟机
vms network list-vnics <network_id>
Aanroepen met AI-tools
# AI 工具可通过命令行调用 vms 命令
# 例如:获取虚拟机与宿主机状态供 AI 分析
vms vm list --json
vms collectd hostinfo --json
# AI 可解析 JSON 输出并作出决策
vms vm list-resource --json
Interne ontwikkeling en systeemintegratie
# 开发人员可通过 CLI 封装内部运维工具
# 示例:封装虚拟机健康检查函数
check_vm_health() {
vms collectd vminfo --json | jq -r '.vms[] | select(.status != "running") | .name'
}
# 将 CLI 集成到内部监控平台
vms collectd storageinfo --json | curl -X POST https://monitor.example.com/api/report -d @-
Veelgestelde vragen
V: Moet de CLI apart worden geïnstalleerd?
Nee. De CLI wordt samen met de VMs-toepassing geïnstalleerd; nadat de toepassing is ingeschakeld, hoeft u alleen de opdracht vms uit te voeren om deze te gebruiken.
V: Moet de CLI via SSH worden gebruikt?
Nee. De CLI kan via elke opdrachtregelterminal worden aangeroepen, waaronder lokale terminals, externe SSH, scripts, AI-tools, enz.
V: Kan de CLI virtuele machines op andere apparaten beheren?
Nee. De CLI communiceert via een lokale unix socket met de VMs-service en wordt alleen gebruikt om virtuele machines op de lokale machine te beheren.
V: Waarom vragen sommige opdrachten om bevestiging en andere niet?
Bewerkingen zoals het verwijderen van een virtuele machine, een netwerk, een image of een opslagruimte, en het uitschakelen (poweroff, force-poweroff), beïnvloeden gegevens of services en vereisen daarom standaard bevestiging; opdrachten voor inschakelen, opnieuw opstarten, pauzeren, hervatten en query's hebben deze beperking niet.
V: Hoe bevestig ik gevaarlijke bewerkingen in niet-interactieve modus?
Alle gevaarlijke bewerkingen moeten de parameter --yes toevoegen, anders geeft de opdracht een fout en wordt deze afgesloten (exitcode 1).
V: Hoe bepaal ik in een script of een opdracht met succes is uitgevoerd?
Bepaal dit aan de hand van de exitcode: 0 betekent succes en een waarde anders dan 0 betekent mislukking. U kunt ook de uitvoer van --json parseren.
V: Waarom is de lijst die door --json wordt uitgevoerd een object?
De JSON-uitvoer van sommige opdrachten is als een object per ID georganiseerd, met een veld totalCount, wat handig is om direct op ID op te halen.
Meer hulp
Elke opdracht ondersteunt --help om het gedetailleerde gebruik te bekijken:
vms --help
vms vm --help
vms vm poweroff --help
vms network create --help