idnits 2.17.1 draft-ietf-opsawg-vmm-mib-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 310 has weird spacing: '...nString vmH...' == Line 311 has weird spacing: '...nString vmH...' == Line 315 has weird spacing: '...meTicks vmTab...' == Line 318 has weird spacing: '...neIndex vmInd...' == Line 385 has weird spacing: '...ineList vmAf...' -- The document date (November 10, 2014) is 3454 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'RFC4122' is defined on line 2281, but no explicit reference was found in the text Summary: 0 errors (**), 0 flaws (~~), 7 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 OPSAWG H. Asai 3 Internet-Draft Univ. of Tokyo 4 Intended status: Standards Track M. MacFaden 5 Expires: May 14, 2015 VMware Inc. 6 J. Schoenwaelder 7 Jacobs University 8 K. Shima 9 IIJ Innovation Institute Inc. 10 T. Tsou 11 Huawei Technologies (USA) 12 November 10, 2014 14 Management Information Base for Virtual Machines Controlled by a 15 Hypervisor 16 draft-ietf-opsawg-vmm-mib-02 18 Abstract 20 This document defines a portion of the Management Information Base 21 (MIB) for use with network management protocols in the Internet 22 community. In particular, this specifies objects for managing 23 virtual machines controlled by a hypervisor (a.k.a. virtual machine 24 monitor). 26 Status of this Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at http://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on May 14, 2015. 43 Copyright Notice 45 Copyright (c) 2014 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (http://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 61 2. The Internet-Standard Management Framework . . . . . . . . . . 4 62 3. Overview and Objectives . . . . . . . . . . . . . . . . . . . 5 63 4. Structure of the VM-MIB Module . . . . . . . . . . . . . . . . 7 64 5. Relationship to Other MIB Modules . . . . . . . . . . . . . . 12 65 6. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 13 66 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 49 67 8. Security Considerations . . . . . . . . . . . . . . . . . . . 50 68 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 51 69 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 52 70 10.1. Normative References . . . . . . . . . . . . . . . . . . 52 71 10.2. Informative References . . . . . . . . . . . . . . . . . 53 72 Appendix A. State Transition Table . . . . . . . . . . . . . . . 54 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 56 75 1. Introduction 77 This document defines a portion of the Management Information Base 78 (MIB) for use with network management protocols in the Internet 79 community. In particular, this specifies objects for managing 80 virtual machines controlled by a hypervisor (a.k.a. virtual machine 81 monitor). A hypervisor controls multiple virtual machines on a 82 single physical machine by allocating resources to each virtual 83 machine using virtualization technologies. Therefore, this MIB 84 module contains information on virtual machines and their resources 85 controlled by a hypervisor as well as hypervisor's hardware and 86 software information. 88 The design of this MIB module has been derived from enterprise 89 specific MIB modules, namely a MIB module for managing guests of the 90 Xen hypervisor, a MIB module for managing virtual machines controlled 91 by the VMware hypervisor, and a MIB module using the libvirt 92 programming interface to access different hypervisors. However, this 93 MIB module attempts to generalize the managed objects to support 94 other implementations of hypervisors. 96 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 97 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 98 document are to be interpreted as described in RFC 2119 [RFC2119]. 100 2. The Internet-Standard Management Framework 102 For a detailed overview of the documents that describe the current 103 Internet-Standard Management Framework, please refer to section 7 of 104 RFC 3410 [RFC3410]. Managed objects are accessed via a virtual 105 information store, termed the Management Information Base or MIB. 106 MIB objects are generally accessed through the Simple Network 107 Management Protocol (SNMP). Objects in the MIB are defined using the 108 mechanisms defined in the Structure of Management Information (SMI). 109 This memo specifies a MIB module that is compliant to the SMIv2, 110 which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 111 [RFC2579] and STD 58, RFC 2580 [RFC2580]. 113 3. Overview and Objectives 115 This document defines a portion of MIB for the management of virtual 116 machines controlled by a hypervisor. This MIB module consists of the 117 managed objects related to system and software information of a 118 hypervisor, the list of virtual machines controlled by the 119 hypervisor, and information of virtual resources allocated to virtual 120 machines by the hypervisor. This document specifies four specific 121 types of virtual resources that are common to many hypervisor 122 implementations; processors (CPUs), memory, network interfaces 123 (NICs), and storage devices. These managed objects are independent 124 of the families of hypervisors or operating systems running on 125 virtual machines. 127 +------------------------------------------------------------------+ 128 | +-------------------------------------------------+ | 129 | | Virtual machine | | 130 | | | | 131 | | +---------+ +---------+ +---------+ +---------+ | ....... | 132 | | | Virtual | | Virtual | | Virtual | | Virtual | | | 133 | +-| CPU |-| memory |-| storage |-| NIC |-+ | 134 | +---------+ +---------+ +---------+ +---------+ | 135 | Virtual resources | 136 | ^ | 137 | | Allocation using virtualization technologies | 138 | | | 139 | +-- Physical resources ._____. | 140 | +--------+ .--------. / \ +--^--+ | 141 +- - - - - - - | | - /________/| - *\_______/* - | | - -+ 142 | Hypervisor | CPU | | Memory |/ | Storage | | NIC | | 143 | +--------+ +--------+ \_______/ +-----+ | 144 | +-----------------------+ | 145 | || MIB objects || | 146 | +-----------------------+ | 147 +------------------------------------------------------------------+ 149 A hypervisor allocates virtual resources such as virtual CPUs, 150 virtual memory, virtual storage devices, and virtual network 151 interfaces to virtual machines from physical resources. 153 Figure 1: An example of a virtualization environment 155 On the common implementations of hypervisors, a hypervisor allocates 156 virtual resources from physical resources; virtual CPUs, virtual 157 memory, virtual storage devices, and virtual network interfaces to 158 virtual machines as shown in Figure 1. Since the virtual resources 159 allocated to virtual machines are managed by the hypervisor, the MIB 160 objects are managed at a hypervisor. In case that the objects are 161 accessed through the SNMP, an SNMP agent is launched at the 162 hypervisor to provide access to the objects. 164 The objects are managed from the viewpoint of the operators of 165 hypervisors, but not the operators of virtual machines; i.e., the 166 objects do not take into account the actual resource utilization on 167 each virtual machine but the resource allocation from the physical 168 resources. For example, vmNetworkIfIndex indicates the virtual 169 interface associated with an interface of a virtual machine at the 170 hypervisor, and consequently, the `in' and `out' directions denote 171 `from a virtual machine to the hypervisor' and `from the hypervisor 172 to a virtual machine', respectively. Moreover, 173 vmStorageAllocatedSize denotes the size allocated by the hypervisor, 174 but not the size actually used by the operating system on the virtual 175 machine. This means that vmStorageDefinedSize and 176 vmStorageAllocatedSize do not take different values when the 177 vmStorageSourceType is `block' or `raw'. 179 The objectives of this document are the followings: 1) This document 180 defines the MIB objects common to many hypervisors for the management 181 of virtual machines controlled by a hypervisor. 2) This document 182 clarifies the relationship between other MIB modules for managing 183 host computers and network devices. 185 4. Structure of the VM-MIB Module 187 The MIB module is organized into a group of scalars and tables. The 188 scalars below `vmHypervisor' provide basic information about the 189 hypervisor. The `vmTable' lists the virtual machines (guests) that 190 are known to the hypervisor. The `vmCpuTable' provides the mapping 191 table of virtual CPUs to virtual machines, including CPU time used by 192 each virtual CPU. The 'vmCpuAffinityTable' provides the affinity of 193 each virtual CPU to a physical CPU. The `vmStorageTable' provides 194 the list of virtual storage devices and their mapping to virtual 195 machines. In case that an entry in the `vmStorageTable' has a 196 corresponding parent physical storage device managed in 197 `vmStorageTable' of HOST-RESOURCES-MIB [RFC2790], the entry contains 198 a pointer `vmStorageParent' to the physical storage device. The 199 `vmNetworkTable' provides the list of virtual network interfaces and 200 their mapping to virtual machines. Each entry in the 201 `vmNetworkTable' also provides a pointer `vmNetworkIfIndex' to the 202 corresponding entry in the `ifTable' of IF-MIB [RFC2863]. In case 203 that an entry in the `vmNetworkTable' has a corresponding parent 204 physical network interface managed in the `ifTable' of IF-MIB, the 205 entry contains a pointer `vmNetworkParent' to the physical network 206 interface. 208 !: Notification 209 +-------------+ + - - - - - - + 210 | finite | | transient | 211 | vmOperState | | vmOperState | 212 +-------------+ + - - - - - - + 214 ================================================================ 216 +--------------+ + - - - - - - - + +-------------+ 217 | suspended |<--| suspending | | paused | 218 | !vmSuspended | | !vmSuspending | | !vmPaused | 219 +--------------+ + - - - - - - - + +-------------+ 220 | ^ ^ 221 | | | 222 v | | 223 + - - - - - - + +-------------+<----------+ + - - - - - - -+ 224 | resuming |-->| running |<-------------->| migrating | 225 | !vmResuming | | !vmRunning | | !vmMigrating | 226 + - - - - - - + +-------------+ + - - - - - - -+ 227 | ^ ^ 228 | | | 229 | +-------------------+ | 230 | | | 231 v v v 232 + - - - - - - - - + +-------------+ 233 | shuttingdown |--------->| shutdown | 234 | !vmShuttingdown | | !vmShutdown | 235 + - - - - - - - - + +-------------+ 236 ^ | 237 | v !vmDeleted 238 + - - - - - -+ +------------+ + - - - - - - + (Deleted from 239 | blocked | | crashed | | preparing | vmTable) 240 | !vmBlocked | | !vmCrashed | | | 241 + - - - - - -+ +------------+ + - - - - - - + 243 The state transition of a virtual machine 245 Figure 2: State transition of a virtual machine 247 The `vmAdminState' and `vmOperState' textual conventions define an 248 administrative state and an operational state model for virtual 249 machines. Events causing transitions between major operational 250 states will cause the generation of notifications. Per virtual 251 machine (per-VM) notifications (vmRunning, vmShutdown, vmPaused, 252 vmSuspended, vmCrashed, vmDeleted) are generated if 253 vmPerVMNotificationsEnabled is true(1). Bulk notifications 254 (vmBulkRunning, vmBulkShutdown, vmBulkPaused, vmBulkSuspended, 255 vmBulkCrashed, vmBulkDeleted) are generated if 256 vmBulkNotificationsEnabled is true(1). The transition of 257 `vmOperState' by the write access to `vmAdminState' and the 258 notifications generated by the operational state changes are 259 summarized in Figure 2. Note that the notifications shown in this 260 figure are per-VM notifications. In the case of Bulk notifications, 261 the prefix `vm' is replaced with 'vmBulk'. 263 The bulk notification mechanism is designed to reduce the number of 264 notifications that are trapped by an SNMP manager. This is because 265 the number of virtual machines managed by a bunch of hypervisors in a 266 datacenter possibly becomes several thousands or more, and 267 consequently, many notifications could be trapped if these virtual 268 machines frequently change their administrative state. The per-VM 269 notifications carry more detailed information, but the scalability 270 shall be a problem. An implementation shall support both, either of, 271 or none of per-VM notifications and bulk notifications. The 272 notification filtering mechanism described in section 6 of RFC 3413 273 [RFC3413] is used by the management applications to control the 274 notifications. 276 The MIB module provides a few writable objects that can be used to 277 make non-persistent changes, e.g., changing the memory allocation or 278 the CPU allocation. It is not the goal of this MIB module to provide 279 a configuration interface for virtual machines since other protocols 280 and data modeling languages are more suitable for this task. 282 The OID tree structure of the MIB module is shown below. 284 --vmMIB (1.3.6.1.2.1.yyy) 285 +--vmNotifications(0) 286 | +--vmRunning(1) [vmName, vmUUID, vmOperState] 287 | +--vmShuttingdown(2) [vmName, vmUUID, vmOperState] 288 | +--vmShutdown(3) [vmName, vmUUID, vmOperState] 289 | +--vmPaused(4) [vmName, vmUUID, vmOperState] 290 | +--vmSuspending(5) [vmName, vmUUID, vmOperState] 291 | +--vmSuspended(6) [vmName, vmUUID, vmOperState] 292 | +--vmResuming(7) [vmName, vmUUID, vmOperState] 293 | +--vmMigrating(8) [vmName, vmUUID, vmOperState] 294 | +--vmCrashed(9) [vmName, vmUUID, vmOperState] 295 | +--vmBlocked(10) [vmName, vmUUID, vmOperState] 296 | +--vmDeleted(11) [vmName, vmUUID, vmOperState, vmPersistent] 297 | +--vmBulkRunning(12) [vmAffectedVMs] 298 | +--vmBulkShutdown(13) [vmAffectedVMs] 299 | +--vmBulkShuttingdown(14) [vmAffectedVMs] 300 | +--vmBulkPaused(15) [vmAffectedVMs] 301 | +--vmBulkSuspending(16) [vmAffectedVMs] 302 | +--vmBulkSuspended(17) [vmAffectedVMs] 303 | +--vmBulkResuming(18) [vmName, vmUUID, vmOperState] 304 | +--vmBulkMigrating(19) [vmAffectedVMs] 305 | +--vmBulkCrashed(20) [vmAffectedVMs] 306 | +--vmBulkBlocked(21) [vmAffectedVMs] 307 | +--vmBulkDeleted(22) [vmAffectedVMs] 308 +--vmObjects(1) 309 | +--vmHypervisor(1) 310 | | +-- r-n SnmpAdminString vmHvSoftware(1) 311 | | +-- r-n SnmpAdminString vmHvVersion(2) 312 | | +-- r-n OBJECT IDENTIFIER vmHvObjectID(3) 313 | | +-- r-n TimeTicks vmHvUpTime(4) 314 | +-- r-n Integer32 vmNumber(2) 315 | +-- r-n TimeTicks vmTableLastChange(3) 316 | +--vmTable(4) 317 | | +--vmEntry(1) [vmIndex] 318 | | +-- --- VirtualMachineIndex vmIndex(1) 319 | | +-- r-n SnmpAdminString vmName(2) 320 | | +-- r-n UUIDorZero vmUUID(3) 321 | | +-- r-n SnmpAdminString vmOSType(4) 322 | | +-- r-n VirtualMachineAdminState 323 | | | vmAdminState(5) 324 | | +-- r-n VirtualMachineOperState 325 | | | vmOperState(6) 326 | | +-- r-n VirtualMachineAutoStart 327 | | | vmAutoStart(7) 328 | | +-- r-n VirtualMachinePersistent 329 | | | vmPersistent(8) 330 | | +-- r-n Integer32 vmCurCpuNumber(9) 331 | | +-- r-n Integer32 vmMinCpuNumber(10) 332 | | +-- r-n Integer32 vmMaxCpuNumber(11) 333 | | +-- r-n Integer32 vmMemUnit(12) 334 | | +-- r-n Integer32 vmCurMem(13) 335 | | +-- r-n Integer32 vmMinMem(14) 336 | | +-- r-n Integer32 vmMaxMem(15) 337 | | +-- r-n TimeTicks vmUpTime(16) 338 | | +-- r-n Counter64 vmCpuTime(17) 339 | +--vmCpuTable(5) 340 | | +--vmCpuEntry(1) [vmIndex, vmCpuIndex] 341 | | +-- --- VirtualMachineCpuIndex 342 | | | vmCpuIndex(1) 343 | | +-- r-n Counter64 vmCpuCoreTime(2) 344 | +--vmCpuAffinityTable(6) 345 | | +--vmCpuAffinityEntry(1) [vmIndex, 346 | | | vmCpuIndex, 347 | | | vmCpuPhysIndex] 348 | | +-- --- Integer32 vmCpuPhysIndex(1) 349 | | +-- r-n Integer32 vmCpuAffinity(2) 350 | +--vmStorageTable(7) 351 | | +--vmStorageEntry(1) [vmStorageVmIndex, vmStorageIndex] 352 | | +-- --- VirtualMachineIndexOrZero 353 | | | vmStorageVmIndex(1) 354 | | +-- --- VirtualMachineStorageIndex 355 | | | vmStorageIndex(2) 356 | | +-- r-n Integer32 vmStorageParent(3) 357 | | +-- r-n VirtualMachineStorageSourceType 358 | | | vmStorageSourceType(4) 359 | | +-- r-n SnmpAdminString vmStorageSourceTypeString(5) 360 | | +-- r-n SnmpAdminString vmStorageResourceID(6) 361 | | +-- r-n VirtualMachineStorageAccess 362 | | | vmStorageAccess(7) 363 | | +-- r-n VirtualMachineStorageMediaType 364 | | | vmStorageMediaType(8) 365 | | +-- r-n SnmpAdminString vmStorageMediaTypeString(9) 366 | | +-- r-n Integer32 vmStorageSizeUnit(10) 367 | | +-- r-n Integer32 vmStorageDefinedSize(11) 368 | | +-- r-n Integer32 vmStorageAllocatedSize(12) 369 | | +-- r-n Counter64 vmStorageReadIOs(13) 370 | | +-- r-n Counter64 vmStorageWriteIOs(14) 371 | | +-- r-n Counter64 vmStorageReadOctets(15) 372 | | +-- r-n Counter64 vmStorageWriteOctets(16) 373 | | +-- r-n Counter64 vmStorageReadLatency(17) 374 | | +-- r-n Counter64 vmStorageWriteLatency(18) 375 | +--vmNetworkTable(8) 376 | | +--vmNetworkEntry(1) [vmIndex, vmNetworkIndex] 377 | | +-- --- VirtualMachineNetworkIndex 378 | | | vmNetworkIndex(1) 379 | | +-- r-n InterfaceIndexOrZero vmNetworkIfIndex(2) 380 | | +-- r-n InterfaceIndexOrZero vmNetworkParent(3) 381 | | +-- r-n SnmpAdminString vmNetworkModel(4) 382 | | +-- r-n PhysAddress vmNetworkPhysAddress(5) 383 | +-- rwn TruthValue vmPerVMNotificationsEnabled(9) 384 | +-- rwn TruthValue vmBulkNotificationsEnabled(10) 385 | +-- --n VirtualMachineList vmAffectedVMs(11) 386 +--vmConformance(2) 387 +--vmCompliances(1) 388 | +--vmFullCompliances(1) 389 | +--vmReadOnlyCompliances(2) 390 +--vmGroups(2) 391 +--vmHypervisorGroup(1) 392 +--vmVirtualMachineGroup(2) 393 +--vmCpuGroup(3) 394 +--vmCpuAffinityGroup(4) 395 +--vmStorageGroup(5) 396 +--vmNetworkGroup(6) 397 +--vmPerVMNotificationOptionalGroup(7) 398 +--vmBulkNotificationsVariablesGroup(8) 399 +--vmBulkNotificationOptionalGroup(9) 401 5. Relationship to Other MIB Modules 403 HOST-RESOURCES-MIB [RFC2790] defines the MIB objects for managing 404 host systems. Hypervisors shall implement HOST-RESOURCES-MIB. On 405 systems implementing HOST-RESOURCES-MIB, the objects of HOST- 406 RESOURCES-MIB indicate resources of a hypervisor. Some objects of 407 HOST-RESOURCES-MIB shall also be used to indicate physical resources 408 through indexes. On systems implementing HOST-RESOURCES-MIB, the 409 `vmCpuPhysIndex' points to the processor's `hrDeviceIndex' in the 410 `hrProcessorTable'. The `vmStorageParent' also points to the storage 411 device's `hrStorageIndex' in the `hrStorageTable'. 413 HOST-RESOURCES-MIB shall be implemented on systems running on virtual 414 machines. It enables to manage the objects related to the resources 415 of virtual machines from the viewpoint of virtual machine operators. 416 However, from the viewpoint of hypervisor operators, it cannot obtain 417 the list of virtual machines controlled by a hypervisor and the 418 relationship between physical and virtual resources. This document 419 defines the objects of these information. 421 IF-MIB [RFC2863] defines the MIB objects for managing network 422 interfaces. Both physical and virtual network interfaces are 423 required to be contained in the `ifTable' of IF-MIB. The virtual 424 network interfaces in the `ifTable' of IF-MIB are pointed from the 425 `vmNetworkTable' defined in this document through a pointer 426 `vmNetworkIfIndex'. In case that an entry in the `vmNetworkTable' 427 has a corresponding parent physical network interface managed in the 428 `ifTable' of IF-MIB, the entry contains a pointer `vmNetworkParent' 429 to the physical network interface. 431 The objects related to virtual switches are not also included in the 432 MIB module defined in this document though virtual switches shall be 433 placed on a hypervisor. This is because the virtual network 434 interfaces are the lowest abstraction of network resources allocated 435 to a virtual machine. Instead of including the objects related to 436 virtual switches, for example, IEEE8021-BRIDGE-MIB 437 [IEEE8021-BRIDGE-MIB] and IEEE8021-Q-BRIDGE-MIB 438 [IEEE8021-Q-BRIDGE-MIB] could be used. 440 The other objects related to virtual machines such as management IP 441 addresses of a virtual machine are not included in this MIB module 442 because this MIB module defines the objects common to general 443 hypervisors but they are specific to some hypervisors. They may be 444 included in the entLogicalTable of ENTITY-MIB [RFC6933]. 446 6. Definitions 448 VM-MIB DEFINITIONS ::= BEGIN 450 IMPORTS 451 MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, TimeTicks, 452 Counter64, Integer32, mib-2 453 FROM SNMPv2-SMI 454 OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP 455 FROM SNMPv2-CONF 456 TEXTUAL-CONVENTION, PhysAddress, TruthValue 457 FROM SNMPv2-TC 458 SnmpAdminString 459 FROM SNMP-FRAMEWORK-MIB 460 UUIDorZero 461 FROM UUID-TC-MIB 462 InterfaceIndexOrZero 463 FROM IF-MIB; 465 vmMIB MODULE-IDENTITY 466 LAST-UPDATED "201410260000Z" -- 26 October 2014 467 ORGANIZATION "IETF Operations and Management Area Working Group" 468 CONTACT-INFO 469 " 470 WG E-mail: opsawg@ietf.org 471 Mailing list subscription info: 472 https://www.ietf.org/mailman/listinfo/opsawg 474 Hirochika Asai 475 The University of Tokyo 476 7-3-1 Hongo 477 Bunkyo-ku, Tokyo 113-8656 478 JP 479 Phone: +81 3 5841 6748 480 Email: panda@hongo.wide.ad.jp 482 Michael MacFaden 483 VMware Inc. 484 Email: mrm@vmware.com 486 Juergen Schoenwaelder 487 Jacobs University 488 Campus Ring 1 489 Bremen 28759 490 Germany 491 Email: j.schoenwaelder@jacobs-university.de 493 Keiichi Shima 494 IIJ Innovation Institute Inc. 495 3-13 Kanda-Nishikicho 496 Chiyoda-ku, Tokyo 101-0054 497 JP 498 Email: keiichi@iijlab.net 500 Tina Tsou 501 Huawei Technologies (USA) 502 2330 Central Expressway 503 Santa Clara CA 95050 504 USA 505 Email: tina.tsou.zouting@huawei.com 506 " 508 DESCRIPTION 509 "This MIB module is for use in managing a hypervisor and 510 virtual machines controlled by the hypervisor. The OID 511 `yyy' is temporary one, and it must be assigned by IANA 512 when this becomes an official document. 514 Copyright (c) 2014 IETF Trust and the persons identified 515 as authors of the code. All rights reserved. 517 Redistribution and use in source and binary forms, with 518 or without modification, is permitted pursuant to, and 519 subject to the license terms contained in, the 520 Simplified BSD License set forth in Section 4.c of the 521 IETF Trust's Legal Provisions Relating to IETF Documents 522 (http://trustee.ietf.org/license-info)." 524 REVISION "201410260000Z" -- 26 October 2014 525 DESCRIPTION 526 "The original version of this MIB, published as 527 RFCXXXX." 528 ::= { mib-2 yyy } 530 vmNotifications OBJECT IDENTIFIER ::= { vmMIB 0 } 531 vmObjects OBJECT IDENTIFIER ::= { vmMIB 1 } 532 vmConformance OBJECT IDENTIFIER ::= { vmMIB 2 } 534 -- Textual conversion definitions 535 -- 536 VirtualMachineIndex ::= TEXTUAL-CONVENTION 537 DISPLAY-HINT "d" 538 STATUS current 539 DESCRIPTION 540 "A unique value, greater than zero, identifying a 541 virtual machine. The value for each virtual machine 542 must remain constant at least from one re-initialization 543 of the hypervisor to the next re-initialization." 544 SYNTAX Integer32 (1..2147483647) 546 VirtualMachineIndexOrZero ::= TEXTUAL-CONVENTION 547 DISPLAY-HINT "d" 548 STATUS current 549 DESCRIPTION 550 "This textual convention is an extension of the 551 VirtualMachineIndex convention. This extension permits 552 the additional value of zero. The meaning of the value 553 zero is object-specific and must therefore be defined as 554 part of the description of any object which uses this 555 syntax. Examples of the usage of zero might include 556 situations where a virtual machine is unknown, or when 557 none or all virtual machines need to be referenced." 558 SYNTAX Integer32 (0..2147483647) 560 VirtualMachineAdminState ::= TEXTUAL-CONVENTION 561 STATUS current 562 DESCRIPTION 563 "The administrative state of a virtual machine: 565 running(1) The administrative state of the virtual 566 machine indicating the virtual machine 567 is currently online or should be brought 568 online. 570 suspended(2) The administrative state of the virtual 571 machine where its memory and CPU execution 572 state has been saved to persistent store 573 and will be restored at next running(1). 575 paused(3) The administrative state indicating the 576 virtual machine is resident in memory but 577 is no longer scheduled to execute by the 578 hypervisor. 580 shutdown(4) The administrative state of the virtual 581 machine indicating the virtual machine 582 is currently offline or should be taken 583 shutting down. 585 destroy(5) The administrative state of the virtual 586 machine indicating the virtual machine 587 should be forcibly shutdown. After the 588 destroy operation, the administrative 589 state should be automatically changed to 590 shutdown(4)." 591 SYNTAX INTEGER { 592 running(1), 593 suspended(2), 594 paused(3), 595 shutdown(4), 596 destroy(5) 597 } 599 VirtualMachineOperState ::= TEXTUAL-CONVENTION 600 STATUS current 601 DESCRIPTION 602 "The operational state of a virtual machine: 604 unknown(1) The operational state of the virtual 605 machine is unknown, e.g., because the 606 implementation failed to obtain the state 607 from the hypervisor. 609 other(2) The operational state of the virtual 610 machine indicating that an operational 611 state is obtained from the hypervisor but 612 it is not a state defined in this MIB 613 module. 615 preparing(3) The operational state of the virtual 616 machine indicating the virtual machine is 617 currently in the process of preparation, 618 e.g., allocating and initializing virtual 619 storage after creating (defining) virtual 620 machine. 622 running(4) The operational state of the virtual 623 machine indicating the virtual machine is 624 currently executed but it is not in the 625 process of preparing(3), suspending(6), 626 resuming(8), migrating(10), and 627 shuttingdown(11). 629 blocked(5) The operational state of the virtual 630 machine indicating the execution of the 631 virtual machine is currently blocked, 632 e.g., waiting for some action of the 633 hypervisor to finish. This is a 634 transient state from/to other states. 636 suspending(6) The operational state of the virtual 637 machine indicating the virtual machine is 638 currently in the process of suspending 639 to save its memory and CPU execution 640 state to persistent store. This is a 641 transient state from running(4) to 642 suspended(7). 644 suspended(7) The operational state of the virtual 645 machine indicating the virtual machine is 646 currently suspended, which means the 647 memory and CPU execution state of the 648 virtual machine are saved to persistent 649 store. During this state, the virtual 650 machine is not scheduled to execute by 651 the hypervisor. 653 resuming(8) The operational state of the virtual 654 machine indicating the virtual machine is 655 currently in the process of resuming 656 to restore its memory and CPU execution 657 state from persistent store. This is a 658 transient state from suspended(7) to 659 running(4). 661 paused(9) The operational state of the virtual 662 machine indicating the virtual machine is 663 resident in memory but no longer 664 scheduled to execute by the hypervisor. 666 migrating(10) The operational state of the virtual 667 machine indicating the virtual machine is 668 currently in the process of migration 669 from/to another hypervisor. 671 shuttingdown(11) 672 The operational state of the virtual 673 machine indicating the virtual machine is 674 currently in the process of shutting 675 down. This is a transient state from 676 running(4) to shutdown(12). 678 shutdown(12) The operational state of the virtual 679 machine indicating the virtual machine is 680 down, and CPU execution is no longer 681 scheduled by the hypervisor and its 682 memory is not resident in the hypervisor. 684 crashed(13) The operational state of the virtual 685 machine indicating the virtual machine 686 has crashed." 687 SYNTAX INTEGER { 688 unknown(1), 689 other(2), 690 preparing(3), 691 running(4), 692 blocked(5), 693 suspending(6), 694 suspended(7), 695 resuming(8), 696 paused(9), 697 migrating(10), 698 shuttingdown(11), 699 shutdown(12), 700 crashed(13) 701 } 703 VirtualMachineAutoStart ::= TEXTUAL-CONVENTION 704 STATUS current 705 DESCRIPTION 706 "The autostart configuration of a virtual machine: 708 unknown(1) The autostart configuration is unknown, 709 e.g., because the implementation failed 710 to obtain the autostart configuration 711 from the hypervisor. 713 enabled(2) The autostart configuration of the 714 virtual machine is enabled. The virtual 715 machine should be automatically brought 716 online at the next re-initialization of 717 the hypervisor. 719 disabled(3) The autostart configuration of the 720 virtual machine is disabled. The virtual 721 machine should not be automatically 722 brought online at the next 723 re-initialization of the hypervisor." 724 SYNTAX INTEGER { 725 unknown(1), 726 enabled(2), 727 disabled(3) 728 } 730 VirtualMachinePersistent ::= TEXTUAL-CONVENTION 731 STATUS current 732 DESCRIPTION 733 "This value indicates whether a virtual machine has a 734 persistent configuration which means the virtual machine 735 will still exist after shutting down: 737 unknown(1) The persistent configuration is unknown, 738 e.g., because the implementation failed 739 to obtain the persistent configuration 740 from the hypervisor. (read-only) 742 persistent(2) The virtual machine is persistent, i.e., 743 the virtual machine will exist after its 744 shutting down. 746 transient(3) The virtual machine is transient, i.e., 747 the virtual machine will not exist after 748 its shutting down." 749 SYNTAX INTEGER { 750 unknown(1), 751 persistent(2), 752 transient(3) 753 } 755 VirtualMachineCpuIndex ::= TEXTUAL-CONVENTION 756 DISPLAY-HINT "d" 757 STATUS current 758 DESCRIPTION 759 "A unique value for each virtual machine, greater than 760 zero, identifying a virtual CPU assigned to a virtual 761 machine. The value for each virtual CPU must remain 762 constant at least from one re-initialization of the 763 hypervisor to the next re-initialization." 764 SYNTAX Integer32 (1..2147483647) 766 VirtualMachineStorageIndex ::= TEXTUAL-CONVENTION 767 DISPLAY-HINT "d" 768 STATUS current 769 DESCRIPTION 770 "A unique value for each virtual machine, greater than 771 zero, identifying a virtual storage device allocated to 772 a virtual machine. The value for each virtual storage 773 device must remain constant at least from one 774 re-initialization of the hypervisor to the next 775 re-initialization." 776 SYNTAX Integer32 (1..2147483647) 778 VirtualMachineStorageSourceType ::= TEXTUAL-CONVENTION 779 STATUS current 780 DESCRIPTION 781 "The source type of a virtual storage device: 783 unknown(1) The source type is unknown, e.g., because 784 the implementation failed to obtain the 785 media type from the hypervisor. 787 other(2) The source type is other than those 788 defined in this conversion. 790 block(3) The source type is a block device. 792 raw(4) The source type is a raw-formatted file. 794 sparse(5) The source type is a sparse file. 796 network(6) The source type is a network device." 797 SYNTAX INTEGER { 798 unknown(1), 799 other(2), 800 block(3), 801 raw(4), 802 sparse(5), 803 network(6) 804 } 806 VirtualMachineStorageAccess ::= TEXTUAL-CONVENTION 807 STATUS current 808 DESCRIPTION 809 "The access permission of a virtual storage: 811 readwrite(1) The virtual storage is a read-write 812 device. 814 readonly(2) The virtual storage is a read-only 815 device." 816 SYNTAX INTEGER { 817 readwrite(1), 818 readonly(2) 819 } 821 VirtualMachineStorageMediaType ::= TEXTUAL-CONVENTION 822 STATUS current 823 DESCRIPTION 824 "The media type of a virtual storage device: 826 unknown(1) The media type is unknown, e.g., because 827 the implementation failed to obtain the 828 media type from the hypervisor. 830 other(2) The media type is other than those 831 defined in this conversion. 833 hardDisk(3) The media type is hard disk. 835 opticalDisk(4) The media type is optical disk." 836 SYNTAX INTEGER { 837 other(1), 838 unknown(2), 839 hardDisk(3), 840 opticalDisk(4) 841 } 843 VirtualMachineNetworkIndex ::= TEXTUAL-CONVENTION 844 DISPLAY-HINT "d" 845 STATUS current 846 DESCRIPTION 847 "A unique value for each virtual machine, greater than 848 zero, identifying a virtual network interface allocated 849 to the virtual machine. The value for each virtual 850 network interface must remain constant at least from one 851 re-initialization of the hypervisor to the next 852 re-initialization." 853 SYNTAX Integer32 (1..2147483647) 855 VirtualMachineList ::= TEXTUAL-CONVENTION 856 DISPLAY-HINT "1x" 857 STATUS current 858 DESCRIPTION 859 "Each octet within this value specifies a set of eight 860 virtual machine vmIndex, with the first octet specifying 861 virtual machine 1 through 8, the second octet specifying 862 virtual machine 9 through 16, etc. Within each octet, 863 the most significant bit represents the lowest numbered 864 vmIndex, and the least significant bit represents the 865 highest numbered vmIndex. Thus, each virtual machine of 866 the host is represented by a single bit within the value 867 of this object. If that bit has a value of '1', then 868 that virtual machine is included in the set of virtual 869 machines; the virtual machine is not included if its bit 870 has a value of '0'." 871 SYNTAX OCTET STRING 873 -- The hypervisor group 874 -- 875 -- A collection of objects common to all hypervisors. 877 -- 878 vmHypervisor OBJECT IDENTIFIER ::= { vmObjects 1 } 880 vmHvSoftware OBJECT-TYPE 881 SYNTAX SnmpAdminString (SIZE (0..255)) 882 MAX-ACCESS read-only 883 STATUS current 884 DESCRIPTION 885 "A textual description of the hypervisor software. This 886 value should not include its version, and it should be 887 included in `vmHvVersion'." 888 ::= { vmHypervisor 1 } 890 vmHvVersion OBJECT-TYPE 891 SYNTAX SnmpAdminString (SIZE (0..255)) 892 MAX-ACCESS read-only 893 STATUS current 894 DESCRIPTION 895 "A textual description of the version of the hypervisor 896 software." 897 ::= { vmHypervisor 2 } 899 vmHvObjectID OBJECT-TYPE 900 SYNTAX OBJECT IDENTIFIER 901 MAX-ACCESS read-only 902 STATUS current 903 DESCRIPTION 904 "The vendor's authoritative identification of the 905 hypervisor software contained in the entity. This value 906 is allocated within the SMI enterprises 907 subtree (1.3.6.1.4.1). Note that this is different from 908 sysObjectID in the SNMPv2-MIB [RFC3418] because 909 sysObjectID is not the identification of the hypervisor 910 software but the device, firmware, or management 911 operating system." 912 ::= { vmHypervisor 3 } 914 vmHvUpTime OBJECT-TYPE 915 SYNTAX TimeTicks 916 MAX-ACCESS read-only 917 STATUS current 918 DESCRIPTION 919 "The time (in centi-seconds) since the hypervisor was 920 last re-initialized. Note that this is different from 921 sysUpTime in the SNMPv2-MIB [RFC3418] and hrSystemUptime 922 in the HOST-RESOURCES-MIB [RFC2790] because sysUpTime is 923 the uptime of the network management portion of the 924 system, and hrSystemUptime is the uptime of the 925 management operating system but not the hypervisor 926 software." 927 ::= { vmHypervisor 4 } 929 -- The virtual machine information 930 -- 931 -- A collection of objects common to all virtual machines. 932 -- 933 vmNumber OBJECT-TYPE 934 SYNTAX Integer32 (0..2147483647) 935 MAX-ACCESS read-only 936 STATUS current 937 DESCRIPTION 938 "The number of virtual machines (regardless of their 939 current state) present on this hypervisor." 940 ::= { vmObjects 2 } 942 vmTableLastChange OBJECT-TYPE 943 SYNTAX TimeTicks 944 MAX-ACCESS read-only 945 STATUS current 946 DESCRIPTION 947 "The value of vmHvUpTime at the time of the last creation 948 or deletion of an entry in the vmTable." 949 ::= { vmObjects 3 } 951 vmTable OBJECT-TYPE 952 SYNTAX SEQUENCE OF VmEntry 953 MAX-ACCESS not-accessible 954 STATUS current 955 DESCRIPTION 956 "A list of virtual machine entries. The number of 957 entries is given by the value of vmNumber." 958 ::= { vmObjects 4 } 960 vmEntry OBJECT-TYPE 961 SYNTAX VmEntry 962 MAX-ACCESS not-accessible 963 STATUS current 964 DESCRIPTION 965 "An entry containing management information applicable 966 to a particular virtual machine." 967 INDEX { vmIndex } 968 ::= { vmTable 1 } 970 VmEntry ::= 971 SEQUENCE { 972 vmIndex VirtualMachineIndex, 973 vmName SnmpAdminString, 974 vmUUID UUIDorZero, 975 vmOSType SnmpAdminString, 976 vmAdminState VirtualMachineAdminState, 977 vmOperState VirtualMachineOperState, 978 vmAutoStart VirtualMachineAutoStart, 979 vmPersistent VirtualMachinePersistent, 980 vmCurCpuNumber Integer32, 981 vmMinCpuNumber Integer32, 982 vmMaxCpuNumber Integer32, 983 vmMemUnit Integer32, 984 vmCurMem Integer32, 985 vmMinMem Integer32, 986 vmMaxMem Integer32, 987 vmUpTime TimeTicks, 988 vmCpuTime Counter64 989 } 991 vmIndex OBJECT-TYPE 992 SYNTAX VirtualMachineIndex 993 MAX-ACCESS not-accessible 994 STATUS current 995 DESCRIPTION 996 "A unique value, greater than zero, identifying the 997 virtual machine. The value assigned to a given virtual 998 machine may not persist across re-initialization of the 999 hypervisor. A command generator must use the vmUUID to 1000 identify a given virtual machine of interest." 1001 ::= { vmEntry 1 } 1003 vmName OBJECT-TYPE 1004 SYNTAX SnmpAdminString (SIZE (0..255)) 1005 MAX-ACCESS read-only 1006 STATUS current 1007 DESCRIPTION 1008 "A textual name of the virtual machine." 1009 ::= { vmEntry 2 } 1011 vmUUID OBJECT-TYPE 1012 SYNTAX UUIDorZero 1013 MAX-ACCESS read-only 1014 STATUS current 1015 DESCRIPTION 1016 "The virtual machine's 128-bit UUID or the zero-length 1017 string when a UUID is not available. The UUID if set 1018 must uniquely identify a virtual machine from all other 1019 virtual machines in an administrative region. A 1020 zero-length octet string is returned if no UUID 1021 information is known." 1022 ::= { vmEntry 3 } 1024 vmOSType OBJECT-TYPE 1025 SYNTAX SnmpAdminString (SIZE (0..255)) 1026 MAX-ACCESS read-only 1027 STATUS current 1028 DESCRIPTION 1029 "A textual description containing operating system 1030 information installed on the virtual machine. This 1031 value corresponds to the operating system the hypervisor 1032 assumes to be running when the virtual machine is 1033 started. This may differ from the actual operating 1034 system in case the virtual machine boots into a 1035 different operating system." 1036 ::= { vmEntry 4 } 1038 vmAdminState OBJECT-TYPE 1039 SYNTAX VirtualMachineAdminState 1040 MAX-ACCESS read-only 1041 STATUS current 1042 DESCRIPTION 1043 "The administrative power state of the virtual machine." 1044 ::= { vmEntry 5 } 1046 vmOperState OBJECT-TYPE 1047 SYNTAX VirtualMachineOperState 1048 MAX-ACCESS read-only 1049 STATUS current 1050 DESCRIPTION 1051 "The operational state of the virtual machine." 1052 ::= { vmEntry 6 } 1054 vmAutoStart OBJECT-TYPE 1055 SYNTAX VirtualMachineAutoStart 1056 MAX-ACCESS read-only 1057 STATUS current 1058 DESCRIPTION 1059 "The autostart configuration of the virtual machine. If 1060 this value is enable(2), the virtual machine 1061 automatically starts at the next initialization of the 1062 hypervisor." 1063 ::= { vmEntry 7 } 1065 vmPersistent OBJECT-TYPE 1066 SYNTAX VirtualMachinePersistent 1067 MAX-ACCESS read-only 1068 STATUS current 1069 DESCRIPTION 1070 "This value indicates whether the virtual machine has a 1071 persistent configuration which means the virtual machine 1072 will still exist after its shutdown." 1073 ::= { vmEntry 8 } 1075 vmCurCpuNumber OBJECT-TYPE 1076 SYNTAX Integer32 (0..2147483647) 1077 MAX-ACCESS read-only 1078 STATUS current 1079 DESCRIPTION 1080 "The number of virtual CPUs currently assigned to the 1081 virtual machine." 1082 ::= { vmEntry 9 } 1084 vmMinCpuNumber OBJECT-TYPE 1085 SYNTAX Integer32 (-1|0..2147483647) 1086 MAX-ACCESS read-only 1087 STATUS current 1088 DESCRIPTION 1089 "The minimum number of virtual CPUs that are assigned to 1090 the virtual machine when it is in a power-on state. The 1091 value -1 indicates that there is no hard boundary for 1092 the minimum number of virtual CPUs." 1093 ::= { vmEntry 10 } 1095 vmMaxCpuNumber OBJECT-TYPE 1096 SYNTAX Integer32 (-1|0..2147483647) 1097 MAX-ACCESS read-only 1098 STATUS current 1099 DESCRIPTION 1100 "The maximum number of virtual CPUs that are assigned to 1101 the virtual machine when it is in a power-on state. The 1102 value -1 indicates that there is no limit." 1103 ::= { vmEntry 11 } 1105 vmMemUnit OBJECT-TYPE 1106 SYNTAX Integer32 (1..2147483647) 1107 MAX-ACCESS read-only 1108 STATUS current 1109 DESCRIPTION 1110 "The multiplication unit for vmCurMem, vmMinMem, and 1111 vmMaxMem. For example, when this value is 1024, the 1112 memory size unit for vmCurMem, vmMinMem, and vmMaxMem is 1113 KiB." 1114 ::= { vmEntry 12 } 1116 vmCurMem OBJECT-TYPE 1117 SYNTAX Integer32 (0..2147483647) 1118 MAX-ACCESS read-only 1119 STATUS current 1120 DESCRIPTION 1121 "The current memory size currently allocated to the 1122 virtual memory module in the unit designated by 1123 vmMemUnit." 1124 ::= { vmEntry 13 } 1126 vmMinMem OBJECT-TYPE 1127 SYNTAX Integer32 (-1|0..2147483647) 1128 MAX-ACCESS read-only 1129 STATUS current 1130 DESCRIPTION 1131 "The minimum memory size defined to the virtual machine 1132 in the unit designated by vmMemUnit. The value -1 1133 indicates that there is no hard boundary for the minimum 1134 memory size." 1135 ::= { vmEntry 14 } 1137 vmMaxMem OBJECT-TYPE 1138 SYNTAX Integer32 (-1|0..2147483647) 1139 MAX-ACCESS read-only 1140 STATUS current 1141 DESCRIPTION 1142 "The maximum memory size defined to the virtual machine 1143 in the unit designated by vmMemUnit. The value -1 1144 indicates that there is no limit." 1145 ::= { vmEntry 15 } 1147 vmUpTime OBJECT-TYPE 1148 SYNTAX TimeTicks 1149 MAX-ACCESS read-only 1150 STATUS current 1151 DESCRIPTION 1152 "The time (in centi-seconds) since the administrative 1153 state of the virtual machine was last changed from 1154 shutdown(4) to running(1)." 1155 ::= { vmEntry 16 } 1157 vmCpuTime OBJECT-TYPE 1158 SYNTAX Counter64 1159 UNITS "microsecond" 1160 MAX-ACCESS read-only 1161 STATUS current 1162 DESCRIPTION 1163 "The total CPU time used in microsecond. If the number 1164 of virtual CPUs is larger than 1, vmCpuTime may exceed 1165 real time. 1167 Discontinuities in the value of this counter can occur 1168 at re-initialization of the hypervisor, and 1169 administrative state (vmAdminState) changes of the 1170 virtual machine." 1171 ::= { vmEntry 17 } 1173 -- The virtual CPU on each virtual machines 1174 vmCpuTable OBJECT-TYPE 1175 SYNTAX SEQUENCE OF VmCpuEntry 1176 MAX-ACCESS not-accessible 1177 STATUS current 1178 DESCRIPTION 1179 "The table of virtual CPUs provided by the hypervisor." 1180 ::= { vmObjects 5 } 1182 vmCpuEntry OBJECT-TYPE 1183 SYNTAX VmCpuEntry 1184 MAX-ACCESS not-accessible 1185 STATUS current 1186 DESCRIPTION 1187 "An entry for one virtual processor assigned to a 1188 virtual machine." 1189 INDEX { vmIndex, vmCpuIndex } 1190 ::= { vmCpuTable 1 } 1192 VmCpuEntry ::= 1193 SEQUENCE { 1194 vmCpuIndex VirtualMachineCpuIndex, 1195 vmCpuCoreTime Counter64 1196 } 1198 vmCpuIndex OBJECT-TYPE 1199 SYNTAX VirtualMachineCpuIndex 1200 MAX-ACCESS not-accessible 1201 STATUS current 1202 DESCRIPTION 1203 "A unique value identifying a virtual CPU assigned to 1204 the virtual machine." 1205 ::= { vmCpuEntry 1 } 1207 vmCpuCoreTime OBJECT-TYPE 1208 SYNTAX Counter64 1209 UNITS "microsecond" 1210 MAX-ACCESS read-only 1211 STATUS current 1212 DESCRIPTION 1213 "The total CPU time used by this virtual CPU in 1214 microsecond. 1216 Discontinuities in the value of this counter can occur 1217 at re-initialization of the hypervisor, and 1218 administrative state (vmAdminState) changes of the 1219 virtual machine." 1220 ::= { vmCpuEntry 2 } 1222 -- The virtual CPU affinity on each virtual machines 1223 vmCpuAffinityTable OBJECT-TYPE 1224 SYNTAX SEQUENCE OF VmCpuAffinityEntry 1225 MAX-ACCESS not-accessible 1226 STATUS current 1227 DESCRIPTION 1228 "A list of CPU affinity entries of a virtual CPU." 1229 ::= { vmObjects 6 } 1231 vmCpuAffinityEntry OBJECT-TYPE 1232 SYNTAX VmCpuAffinityEntry 1233 MAX-ACCESS not-accessible 1234 STATUS current 1235 DESCRIPTION 1236 "An entry containing CPU affinity associated with a 1237 particular virtual machine." 1238 INDEX { vmIndex, vmCpuIndex, vmCpuPhysIndex } 1239 ::= { vmCpuAffinityTable 1 } 1241 VmCpuAffinityEntry ::= 1242 SEQUENCE { 1243 vmCpuPhysIndex Integer32, 1244 vmCpuAffinity Integer32 1245 } 1247 vmCpuPhysIndex OBJECT-TYPE 1248 SYNTAX Integer32 (1..2147483647) 1249 MAX-ACCESS not-accessible 1250 STATUS current 1251 DESCRIPTION 1252 "A value identifying a physical CPU on the hypervisor. 1253 On systems implementing the HOST-RESOURCES-MIB, the 1254 value must be the same value that is used as the index 1255 in the hrProcessorTable (hrDeviceIndex)." 1256 ::= { vmCpuAffinityEntry 2 } 1258 vmCpuAffinity OBJECT-TYPE 1259 SYNTAX INTEGER { 1260 unknown(0), -- unknown 1261 enable(1), -- enabled 1262 disable(2) -- disabled 1263 } 1264 MAX-ACCESS read-only 1265 STATUS current 1266 DESCRIPTION 1267 "The CPU affinity of this virtual CPU to the physical 1268 CPU represented by `vmCpuPhysIndex'." 1269 ::= { vmCpuAffinityEntry 3 } 1271 -- The virtual storage devices on each virtual machine. This 1272 -- document defines some overlapped objects with hrStorage in 1273 -- HOST-RESOURCES-MIB [RFC2790], because virtual resources shall be 1274 -- allocated from the hypervisor's resources, which is the `host 1275 -- resources' 1276 vmStorageTable OBJECT-TYPE 1277 SYNTAX SEQUENCE OF VmStorageEntry 1278 MAX-ACCESS not-accessible 1279 STATUS current 1280 DESCRIPTION 1281 "The conceptual table of virtual storage devices 1282 attached to the virtual machine." 1283 ::= { vmObjects 7 } 1285 vmStorageEntry OBJECT-TYPE 1286 SYNTAX VmStorageEntry 1287 MAX-ACCESS not-accessible 1288 STATUS current 1289 DESCRIPTION 1290 "An entry for one virtual storage device attached to the 1291 virtual machine." 1292 INDEX { vmStorageVmIndex, vmStorageIndex } 1293 ::= { vmStorageTable 1 } 1295 VmStorageEntry ::= 1296 SEQUENCE { 1297 vmStorageVmIndex VirtualMachineIndexOrZero, 1298 vmStorageIndex VirtualMachineStorageIndex, 1299 vmStorageParent Integer32, 1300 vmStorageSourceType VirtualMachineStorageSourceType, 1301 vmStorageSourceTypeString 1302 SnmpAdminString, 1303 vmStorageResourceID SnmpAdminString, 1304 vmStorageAccess VirtualMachineStorageAccess, 1305 vmStorageMediaType VirtualMachineStorageMediaType, 1306 vmStorageMediaTypeString 1307 SnmpAdminString, 1308 vmStorageSizeUnit Integer32, 1309 vmStorageDefinedSize Integer32, 1310 vmStorageAllocatedSize Integer32, 1311 vmStorageReadIOs Counter64, 1312 vmStorageWriteIOs Counter64, 1313 vmStorageReadOctets Counter64, 1314 vmStorageWriteOctets Counter64, 1315 vmStorageReadLatency Counter64, 1316 vmStorageWriteLatency Counter64 1317 } 1319 vmStorageVmIndex OBJECT-TYPE 1320 SYNTAX VirtualMachineIndexOrZero 1321 MAX-ACCESS not-accessible 1322 STATUS current 1323 DESCRIPTION 1324 "This value identifies the virtual machine (guest) this 1325 storage device has been allocated to. The value zero 1326 indicates that the storage device is currently not 1327 allocated to any virtual machines." 1328 ::= { vmStorageEntry 1 } 1330 vmStorageIndex OBJECT-TYPE 1331 SYNTAX VirtualMachineStorageIndex 1332 MAX-ACCESS not-accessible 1333 STATUS current 1334 DESCRIPTION 1335 "A unique value identifying a virtual storage device 1336 allocated to the virtual machine." 1337 ::= { vmStorageEntry 2 } 1339 vmStorageParent OBJECT-TYPE 1340 SYNTAX Integer32 (0..2147483647) 1341 MAX-ACCESS read-only 1342 STATUS current 1343 DESCRIPTION 1344 "The value of hrStorageIndex which is the parent (i.e., 1345 physical) device of this virtual device on systems 1346 implementing the HOST-RESOURCES-MIB. The value zero 1347 denotes this virtual device is not any child represented 1348 in the hrStorageTable." 1349 ::= { vmStorageEntry 3 } 1351 vmStorageSourceType OBJECT-TYPE 1352 SYNTAX VirtualMachineStorageSourceType 1353 MAX-ACCESS read-only 1354 STATUS current 1355 DESCRIPTION 1356 "The source type of the virtual storage device." 1357 ::= { vmStorageEntry 4 } 1359 vmStorageSourceTypeString OBJECT-TYPE 1360 SYNTAX SnmpAdminString (SIZE (0..255)) 1361 MAX-ACCESS read-only 1362 STATUS current 1363 DESCRIPTION 1364 "A (detailed) textual string of the source type of the 1365 virtual storage device. For example, this represents 1366 the specific format name of the sparse file." 1367 ::= { vmStorageEntry 5 } 1369 vmStorageResourceID OBJECT-TYPE 1370 SYNTAX SnmpAdminString (SIZE (0..255)) 1371 MAX-ACCESS read-only 1372 STATUS current 1373 DESCRIPTION 1374 "A textual string that represents the resource 1375 identifier of the virtual storage. For example, this 1376 contains the path to the disk image file that 1377 corresponds to the virtual storage." 1378 ::= { vmStorageEntry 6 } 1380 vmStorageAccess OBJECT-TYPE 1381 SYNTAX VirtualMachineStorageAccess 1382 MAX-ACCESS read-only 1383 STATUS current 1384 DESCRIPTION 1385 "The access permission of the virtual storage device." 1386 ::= { vmStorageEntry 7 } 1388 vmStorageMediaType OBJECT-TYPE 1389 SYNTAX VirtualMachineStorageMediaType 1390 MAX-ACCESS read-only 1391 STATUS current 1392 DESCRIPTION 1393 "The media type of the virtual storage device." 1394 ::= { vmStorageEntry 8 } 1396 vmStorageMediaTypeString OBJECT-TYPE 1397 SYNTAX SnmpAdminString (SIZE (0..255)) 1398 MAX-ACCESS read-only 1399 STATUS current 1400 DESCRIPTION 1401 "A (detailed) textual string of the virtual storage 1402 media. For example, this represents the specific driver 1403 name of the emulated media such as `IDE' and `SCSI'." 1404 ::= { vmStorageEntry 9 } 1406 vmStorageSizeUnit OBJECT-TYPE 1407 SYNTAX Integer32 (1..2147483647) 1408 MAX-ACCESS read-only 1409 STATUS current 1410 DESCRIPTION 1411 "The multiplication unit for vmStorageDefinedSize and 1412 vmStorageAllocatedSize. For example, when this value is 1413 1048576, the storage size unit for vmStorageDefinedSize 1414 and vmStorageAllocatedSize is MiB." 1415 ::= { vmStorageEntry 10 } 1417 vmStorageDefinedSize OBJECT-TYPE 1418 SYNTAX Integer32 (-1|0..2147483647) 1419 MAX-ACCESS read-only 1420 STATUS current 1421 DESCRIPTION 1422 "The defined virtual storage size defined in the unit 1423 designated by vmStorageSizeUnit. If this information is 1424 not available, this value shall be -1." 1425 ::= { vmStorageEntry 11 } 1427 vmStorageAllocatedSize OBJECT-TYPE 1428 SYNTAX Integer32 (-1|0..2147483647) 1429 MAX-ACCESS read-only 1430 STATUS current 1431 DESCRIPTION 1432 "The storage size allocated to the virtual storage from 1433 a physical storage in the unit designated by 1434 vmStorageSizeUnit. When the virtual storage is block 1435 device or raw file, this value and vmStorageDefinedSize 1436 are supposed to equal. This value MUST NOT be different 1437 from vmStorageDefinedSize when vmStorageSourceType is 1438 `block' or `raw'. If this information is not available, 1439 this value shall be -1." 1440 ::= { vmStorageEntry 12 } 1442 vmStorageReadIOs OBJECT-TYPE 1443 SYNTAX Counter64 1444 MAX-ACCESS read-only 1445 STATUS current 1446 DESCRIPTION 1447 "The number of read I/O requests. 1449 Discontinuities in the value of this counter can occur 1450 at re-initialization of the hypervisor, and 1451 administrative state (vmAdminState) changes of the 1452 virtual machine." 1453 ::= { vmStorageEntry 13 } 1455 vmStorageWriteIOs OBJECT-TYPE 1456 SYNTAX Counter64 1457 MAX-ACCESS read-only 1458 STATUS current 1459 DESCRIPTION 1460 "The number of write I/O requests. 1462 Discontinuities in the value of this counter can occur 1463 at re-initialization of the hypervisor, and 1464 administrative state (vmAdminState) changes of the 1465 virtual machine." 1466 ::= { vmStorageEntry 14 } 1468 vmStorageReadOctets OBJECT-TYPE 1469 SYNTAX Counter64 1470 MAX-ACCESS read-only 1471 STATUS current 1472 DESCRIPTION 1473 "The total number of bytes read from this device. 1475 Discontinuities in the value of this counter can occur 1476 at re-initialization of the hypervisor, and 1477 administrative state (vmAdminState) changes of the 1478 virtual machine." 1479 ::= { vmStorageEntry 15 } 1481 vmStorageWriteOctets OBJECT-TYPE 1482 SYNTAX Counter64 1483 MAX-ACCESS read-only 1484 STATUS current 1485 DESCRIPTION 1486 "The total number of bytes written to this device. 1488 Discontinuities in the value of this counter can occur 1489 at re-initialization of the hypervisor, and 1490 administrative state (vmAdminState) changes of the 1491 virtual machine." 1492 ::= { vmStorageEntry 16 } 1494 vmStorageReadLatency OBJECT-TYPE 1495 SYNTAX Counter64 1496 MAX-ACCESS read-only 1497 STATUS current 1498 DESCRIPTION 1499 "The total number of microseconds read requests have 1500 been queued for this device. 1501 This would typically be implemented by storing the high 1502 precision system time stamp of when the request is 1503 received from the virtual machine with the request, the 1504 difference between this initial timestamp and the time 1505 at which the requested operation has completed should be 1506 converted to microseconds and accumulated. 1507 Discontinuities in the value of this counter can occur at 1508 re-initialization of the hypervisor, and administrative 1509 state (vmAdminState) changes of the virtual machine." 1510 ::= { vmStorageEntry 17 } 1512 vmStorageWriteLatency OBJECT-TYPE 1513 SYNTAX Counter64 1514 MAX-ACCESS read-only 1515 STATUS current 1516 DESCRIPTION 1517 "The total number of microseconds write requests have 1518 been queued for this device. 1519 This would typically be implemented by storing the high 1520 precision system time stamp of when the request is 1521 received from the virtual machine with the request, the 1522 difference between this initial timestamp and the time 1523 at which the requested operation has completed should be 1524 converted to microseconds and accumulated. 1525 Discontinuities in the value of this counter can occur 1526 at re-initialization of the hypervisor, and 1527 administrative state (vmAdminState) changes of the 1528 virtual machine." 1529 ::= { vmStorageEntry 18 } 1531 -- The virtual network interfaces on each virtual machine. 1532 vmNetworkTable OBJECT-TYPE 1533 SYNTAX SEQUENCE OF VmNetworkEntry 1534 MAX-ACCESS not-accessible 1535 STATUS current 1536 DESCRIPTION 1537 "The conceptual table of virtual network interfaces 1538 attached to the virtual machine." 1539 ::= { vmObjects 8 } 1541 vmNetworkEntry OBJECT-TYPE 1542 SYNTAX VmNetworkEntry 1543 MAX-ACCESS not-accessible 1544 STATUS current 1545 DESCRIPTION 1546 "An entry for one virtual network interfaces attached to 1547 the virtual machine." 1548 INDEX { vmIndex, vmNetworkIndex } 1549 ::= { vmNetworkTable 1 } 1551 VmNetworkEntry ::= 1552 SEQUENCE { 1553 vmNetworkIndex VirtualMachineNetworkIndex, 1554 vmNetworkIfIndex InterfaceIndexOrZero, 1555 vmNetworkParent InterfaceIndexOrZero, 1556 vmNetworkModel SnmpAdminString, 1557 vmNetworkPhysAddress PhysAddress 1558 } 1560 vmNetworkIndex OBJECT-TYPE 1561 SYNTAX VirtualMachineNetworkIndex 1562 MAX-ACCESS not-accessible 1563 STATUS current 1564 DESCRIPTION 1565 "A unique value identifying a virtual network interface 1566 allocated to the virtual machine." 1567 ::= { vmNetworkEntry 1 } 1569 vmNetworkIfIndex OBJECT-TYPE 1570 SYNTAX InterfaceIndexOrZero 1571 MAX-ACCESS read-only 1572 STATUS current 1573 DESCRIPTION 1574 "The value of ifIndex which corresponds to this virtual 1575 network interface. If this device is not represented in 1576 the ifTable, then this value shall be zero." 1577 ::= { vmNetworkEntry 2 } 1579 vmNetworkParent OBJECT-TYPE 1580 SYNTAX InterfaceIndexOrZero 1581 MAX-ACCESS read-only 1582 STATUS current 1583 DESCRIPTION 1584 "The value of ifIndex which corresponds to the parent 1585 (i.e., physical) device of this virtual device on. The 1586 value zero denotes this virtual device is not any child 1587 represented in the ifTable." 1588 ::= { vmNetworkEntry 3 } 1590 vmNetworkModel OBJECT-TYPE 1591 SYNTAX SnmpAdminString (SIZE (0..255)) 1592 MAX-ACCESS read-only 1593 STATUS current 1594 DESCRIPTION 1595 "A textual string containing the (emulated) model of 1596 virtual network interface. For example, this value is 1597 `virtio' when the emulation driver model is virtio." 1598 ::= { vmNetworkEntry 4 } 1600 vmNetworkPhysAddress OBJECT-TYPE 1601 SYNTAX PhysAddress 1602 MAX-ACCESS read-only 1603 STATUS current 1604 DESCRIPTION 1605 "The MAC address of the virtual network interface." 1606 ::= { vmNetworkEntry 5 } 1608 -- Notification definitions: 1610 vmPerVMNotificationsEnabled OBJECT-TYPE 1611 SYNTAX TruthValue 1612 MAX-ACCESS read-write 1613 STATUS current 1614 DESCRIPTION 1615 "Indicates if notification generator will send 1616 notifications per virtual machine. Changes to this 1617 object MUST NOT persist across re-initialization of 1618 the management system, e.g., SNMP agent." 1619 ::= { vmObjects 9 } 1621 vmBulkNotificationsEnabled OBJECT-TYPE 1622 SYNTAX TruthValue 1623 MAX-ACCESS read-write 1624 STATUS current 1625 DESCRIPTION 1626 "Indicates if notification generator will send 1627 notifications per set of virtual machines. Changes to 1628 this object MUST NOT persist across re-initialization of 1629 the management system, e.g., SNMP agent." 1630 ::= { vmObjects 10 } 1632 vmAffectedVMs OBJECT-TYPE 1633 SYNTAX VirtualMachineList 1634 MAX-ACCESS accessible-for-notify 1635 STATUS current 1636 DESCRIPTION 1637 "A complete list of virtual machines whose state has 1638 changed. This object is the only object sent with bulk 1639 notifications." 1641 ::= { vmObjects 11 } 1643 vmRunning NOTIFICATION-TYPE 1644 OBJECTS { 1645 vmName, 1646 vmUUID, 1647 vmOperState 1648 } 1649 STATUS current 1650 DESCRIPTION 1651 "This notification is generated when the operational 1652 state of a virtual machine has been changed to 1653 running(4) from some other state. The other state is 1654 indicated by the included value of vmOperState." 1655 ::= { vmNotifications 1 } 1657 vmShutdown NOTIFICATION-TYPE 1658 OBJECTS { 1659 vmName, 1660 vmUUID, 1661 vmOperState 1662 } 1663 STATUS current 1664 DESCRIPTION 1665 "This notification is generated when the operational 1666 state of a virtual machine has been changed to 1667 shutdown(12) from some other state. The other state is 1668 indicated by the included value of vmOperState." 1669 ::= { vmNotifications 2 } 1671 vmShuttingdown NOTIFICATION-TYPE 1672 OBJECTS { 1673 vmName, 1674 vmUUID, 1675 vmOperState 1676 } 1677 STATUS current 1678 DESCRIPTION 1679 "This notification is generated when the operational 1680 state of a virtual machine has been changed to 1681 shuttingdown(11) from some other state. The other state 1682 is indicated by the included value of vmOperState." 1683 ::= { vmNotifications 3 } 1685 vmPaused NOTIFICATION-TYPE 1686 OBJECTS { 1687 vmName, 1688 vmUUID, 1689 vmOperState 1690 } 1691 STATUS current 1692 DESCRIPTION 1693 "This notification is generated when the operational 1694 state of a virtual machine has been changed to 1695 paused(9) from some other state. The other state is 1696 indicated by the included value of vmOperState." 1697 ::= { vmNotifications 4 } 1699 vmSuspending NOTIFICATION-TYPE 1700 OBJECTS { 1701 vmName, 1702 vmUUID, 1703 vmOperState 1704 } 1705 STATUS current 1706 DESCRIPTION 1707 "This notification is generated when the operational 1708 state of a virtual machine has been changed to 1709 suspending(6) from some other state. The other state is 1710 indicated by the included value of vmOperState." 1711 ::= { vmNotifications 5 } 1713 vmSuspended NOTIFICATION-TYPE 1714 OBJECTS { 1715 vmName, 1716 vmUUID, 1717 vmOperState 1718 } 1719 STATUS current 1720 DESCRIPTION 1721 "This notification is generated when the operational 1722 state of a virtual machine has been changed to 1723 suspended(7) from some other state. The other state is 1724 indicated by the included value of vmOperState." 1725 ::= { vmNotifications 6 } 1727 vmResuming NOTIFICATION-TYPE 1728 OBJECTS { 1729 vmName, 1730 vmUUID, 1731 vmOperState 1732 } 1733 STATUS current 1734 DESCRIPTION 1735 "This notification is generated when the operational 1736 state of a virtual machine has been changed to 1737 resuming(8) from some other state. The other state is 1738 indicated by the included value of vmOperState." 1739 ::= { vmNotifications 7 } 1741 vmMigrating NOTIFICATION-TYPE 1742 OBJECTS { 1743 vmName, 1744 vmUUID, 1745 vmOperState 1746 } 1747 STATUS current 1748 DESCRIPTION 1749 "This notification is generated when the operational 1750 state of a virtual machine has been changed to 1751 migrating(10) from some other state. The other state is 1752 indicated by the included value of vmOperState." 1753 ::= { vmNotifications 8 } 1755 vmCrashed NOTIFICATION-TYPE 1756 OBJECTS { 1757 vmName, 1758 vmUUID, 1759 vmOperState 1760 } 1761 STATUS current 1762 DESCRIPTION 1763 "This notification is generated when a virtual machine 1764 has been crashed. The previos state of the virtual 1765 machine is indicated by the included value of 1766 vmOperState." 1767 ::= { vmNotifications 9 } 1769 vmBlocked NOTIFICATION-TYPE 1770 OBJECTS { 1771 vmName, 1772 vmUUID, 1773 vmOperState 1774 } 1775 STATUS current 1776 DESCRIPTION 1777 "This notification is generated when the operational 1778 state of a virtual machine has been changed to 1779 blocked(5). The previos state of the virtual machine is 1780 indicated by the included value of vmOperState." 1781 ::= { vmNotifications 10 } 1783 vmDeleted NOTIFICATION-TYPE 1784 OBJECTS { 1785 vmName, 1786 vmUUID, 1787 vmOperState, 1788 vmPersistent 1789 } 1790 STATUS current 1791 DESCRIPTION 1792 "This notification is generated when a virtual machine 1793 has been deleted. The prior state of the virtual 1794 machine is indicated by the included value of 1795 vmOperState." 1796 ::= { vmNotifications 11 } 1798 vmBulkRunning NOTIFICATION-TYPE 1799 OBJECTS { 1800 vmAffectedVMs 1801 } 1802 STATUS current 1803 DESCRIPTION 1804 "This notification is generated when the operational 1805 state of one or more virtual machine has been changed to 1806 running(4) from a all prior states except for 1807 running(4). Management stations are encouraged to 1808 subsequently poll the subset of virtual machines of 1809 interest for vmOperState." 1810 ::= { vmNotifications 12 } 1812 vmBulkShuttingdown NOTIFICATION-TYPE 1813 OBJECTS { 1814 vmAffectedVMs 1815 } 1816 STATUS current 1817 DESCRIPTION 1818 "This notification is generated when the operational 1819 state of one or more virtual machine has been changed to 1820 shuttingdown(11) from a state other than 1821 shuttingdown(11). Management stations are encouraged to 1822 subsequently poll the subset of virtual machines of 1823 interest for vmOperState." 1824 ::= { vmNotifications 13 } 1826 vmBulkShutdown NOTIFICATION-TYPE 1827 OBJECTS { 1828 vmAffectedVMs 1829 } 1830 STATUS current 1831 DESCRIPTION 1832 "This notification is generated when the operational 1833 state of one or more virtual machine has been changed to 1834 shutdown(12) from a state other than shutdown(12). 1835 Management stations are encouraged to subsequently poll 1836 the subset of virtual machines of interest for 1837 vmOperState." 1838 ::= { vmNotifications 14 } 1840 vmBulkPaused NOTIFICATION-TYPE 1841 OBJECTS { 1842 vmAffectedVMs 1843 } 1844 STATUS current 1845 DESCRIPTION 1846 "This notification is generated when the operational 1847 state of one or more virtual machines have been changed 1848 to paused(9) from a state other than paused(9). 1849 Management stations are encouraged to subsequently poll 1850 the subset of virtual machines of interest for 1851 vmOperState." 1852 ::= { vmNotifications 15 } 1854 vmBulkSuspending NOTIFICATION-TYPE 1855 OBJECTS { 1856 vmAffectedVMs 1857 } 1858 STATUS current 1859 DESCRIPTION 1860 "This notification is generated when the operational 1861 state of one or more virtual machines have been changed 1862 to suspending(6) from a state other than suspending(6). 1863 Management stations are encouraged to subsequently poll 1864 the subset of virtual machines of interest for 1865 vmOperState." 1866 ::= { vmNotifications 16 } 1868 vmBulkSuspended NOTIFICATION-TYPE 1869 OBJECTS { 1870 vmAffectedVMs 1871 } 1872 STATUS current 1873 DESCRIPTION 1874 "This notification is generated when the operational 1875 state of one or more virtual machines have been changed 1876 to suspended(7) from a state other than suspended(7). 1877 Management stations are encouraged to subsequently poll 1878 the subset of virtual machines of interest for 1879 vmOperState." 1881 ::= { vmNotifications 17 } 1883 vmBulkResuming NOTIFICATION-TYPE 1884 OBJECTS { 1885 vmAffectedVMs 1886 } 1887 STATUS current 1888 DESCRIPTION 1889 "This notification is generated when the operational 1890 state of one or more virtual machines have been changed 1891 to resuming(8) from a state other than resuming(8). 1892 Management stations are encouraged to subsequently poll 1893 the subset of virtual machines of interest for 1894 vmOperState." 1895 ::= { vmNotifications 18 } 1897 vmBulkMigrating NOTIFICATION-TYPE 1898 OBJECTS { 1899 vmAffectedVMs 1900 } 1901 STATUS current 1902 DESCRIPTION 1903 "This notification is generated when the operational 1904 state of one or more virtual machines have been changed 1905 to migrating(10) from a state other than migrating(10). 1906 Management stations are encouraged to subsequently poll 1907 the subset of virtual machines of interest for 1908 vmOperState." 1909 ::= { vmNotifications 19 } 1911 vmBulkCrashed NOTIFICATION-TYPE 1912 OBJECTS { 1913 vmAffectedVMs 1914 } 1915 STATUS current 1916 DESCRIPTION 1917 "This notification is generated when one or more virtual 1918 machines have been crashed. Management stations are 1919 encouraged to subsequently poll the subset of virtual 1920 machines of interest for vmOperState." 1921 ::= { vmNotifications 20 } 1923 vmBulkBlocked NOTIFICATION-TYPE 1924 OBJECTS { 1925 vmAffectedVMs 1926 } 1927 STATUS current 1928 DESCRIPTION 1929 "This notification is generated when the operational 1930 state of one or more virtual machines have been changed 1931 to blocked(5) from a state other than blocked(5). 1932 Management stations are encouraged to subsequently poll 1933 the subset of virtual machines of interest for 1934 vmOperState." 1935 ::= { vmNotifications 21 } 1937 vmBulkDeleted NOTIFICATION-TYPE 1938 OBJECTS { 1939 vmAffectedVMs 1940 } 1941 STATUS current 1942 DESCRIPTION 1943 "This notification is generated when one or more virtual 1944 machines have been deleted. Management stations are 1945 encouraged to subsequently poll the subset of virtual 1946 machines of interest for vmOperState." 1947 ::= { vmNotifications 22 } 1949 -- Compliance definitions: 1950 vmCompliances OBJECT IDENTIFIER ::= { vmConformance 1 } 1951 vmGroups OBJECT IDENTIFIER ::= { vmConformance 2 } 1953 vmFullCompliances MODULE-COMPLIANCE 1954 STATUS current 1955 DESCRIPTION 1956 "Compliance statement for implementations supporting 1957 read/write access, according to the object definitions." 1958 MODULE -- this module 1959 MANDATORY-GROUPS { 1960 vmHypervisorGroup, 1961 vmVirtualMachineGroup, 1962 vmCpuGroup, 1963 vmCpuAffinityGroup, 1964 vmStorageGroup, 1965 vmNetworkGroup 1966 } 1967 GROUP vmPerVMNotificationOptionalGroup 1968 DESCRIPTION 1969 "Support for per-VM notifications is optional. If not 1970 implemented then vmPerVMNotificationsEnabled must report 1971 false(2)." 1972 GROUP vmBulkNotificationsVariablesGroup 1973 DESCRIPTION 1974 "Necessary only if vmPerVMNotificationOptionalGroup is 1975 implemented." 1976 GROUP vmBulkNotificationOptionalGroup 1977 DESCRIPTION 1978 "Support for bulk notifications is optional. If not 1979 implemented then vmBulkNotificationsEnabled must report 1980 false(2)." 1982 ::= { vmCompliances 1 } 1984 vmReadOnlyCompliances MODULE-COMPLIANCE 1985 STATUS current 1986 DESCRIPTION 1987 "Compliance statement for implementations supporting 1988 only readonly access." 1989 MODULE -- this module 1990 MANDATORY-GROUPS { 1991 vmHypervisorGroup, 1992 vmVirtualMachineGroup, 1993 vmCpuGroup, 1994 vmCpuAffinityGroup, 1995 vmStorageGroup, 1996 vmNetworkGroup 1997 } 1999 OBJECT vmPerVMNotificationsEnabled 2000 MIN-ACCESS read-only 2001 DESCRIPTION 2002 "Write access is not required." 2004 OBJECT vmBulkNotificationsEnabled 2005 MIN-ACCESS read-only 2006 DESCRIPTION 2007 "Write access is not required." 2008 ::= { vmCompliances 2 } 2010 vmHypervisorGroup OBJECT-GROUP 2011 OBJECTS { 2012 vmHvSoftware, 2013 vmHvVersion, 2014 vmHvObjectID, 2015 vmHvUpTime, 2016 vmNumber, 2017 vmTableLastChange, 2018 vmPerVMNotificationsEnabled, 2019 vmBulkNotificationsEnabled 2020 } 2021 STATUS current 2022 DESCRIPTION 2023 "A collection of objects providing insight into the 2024 hypervisor itself." 2026 ::= { vmGroups 1 } 2028 vmVirtualMachineGroup OBJECT-GROUP 2029 OBJECTS { 2030 -- vmIndex 2031 vmName, 2032 vmUUID, 2033 vmOSType, 2034 vmAdminState, 2035 vmOperState, 2036 vmAutoStart, 2037 vmPersistent, 2038 vmCurCpuNumber, 2039 vmMinCpuNumber, 2040 vmMaxCpuNumber, 2041 vmMemUnit, 2042 vmCurMem, 2043 vmMinMem, 2044 vmMaxMem, 2045 vmUpTime, 2046 vmCpuTime 2047 } 2048 STATUS current 2049 DESCRIPTION 2050 "A collection of objects providing insight into the 2051 virtual machines) controlled by a hypervisor." 2052 ::= { vmGroups 2 } 2054 vmCpuGroup OBJECT-GROUP 2055 OBJECTS { 2056 -- vmCpuIndex, 2057 vmCpuCoreTime 2058 } 2059 STATUS current 2060 DESCRIPTION 2061 "A collection of objects providing insight into the 2062 virtual machines) controlled by a hypervisor." 2063 ::= { vmGroups 3 } 2065 vmCpuAffinityGroup OBJECT-GROUP 2066 OBJECTS { 2067 -- vmCpuPhysIndex, 2068 vmCpuAffinity 2069 } 2070 STATUS current 2071 DESCRIPTION 2072 "A collection of objects providing insight into the 2073 virtual machines) controlled by a hypervisor." 2075 ::= { vmGroups 4 } 2077 vmStorageGroup OBJECT-GROUP 2078 OBJECTS { 2079 -- vmStorageVmIndex, 2080 -- vmStorageIndex, 2081 vmStorageParent, 2082 vmStorageSourceType, 2083 vmStorageSourceTypeString, 2084 vmStorageResourceID, 2085 vmStorageAccess, 2086 vmStorageMediaType, 2087 vmStorageMediaTypeString, 2088 vmStorageSizeUnit, 2089 vmStorageDefinedSize, 2090 vmStorageAllocatedSize, 2091 vmStorageReadIOs, 2092 vmStorageWriteIOs, 2093 vmStorageReadOctets, 2094 vmStorageWriteOctets, 2095 vmStorageReadLatency, 2096 vmStorageWriteLatency 2097 } 2098 STATUS current 2099 DESCRIPTION 2100 "A collection of objects providing insight into the 2101 virtual storage devices controlled by a hypervisor." 2102 ::= { vmGroups 5 } 2104 vmNetworkGroup OBJECT-GROUP 2105 OBJECTS { 2106 -- vmNetworkIndex, 2107 vmNetworkIfIndex, 2108 vmNetworkParent, 2109 vmNetworkModel, 2110 vmNetworkPhysAddress 2111 } 2112 STATUS current 2113 DESCRIPTION 2114 "A collection of objects providing insight into the 2115 virtual network interfaces controlled by a hypervisor." 2116 ::= { vmGroups 6 } 2118 vmPerVMNotificationOptionalGroup NOTIFICATION-GROUP 2119 NOTIFICATIONS { 2120 vmRunning, 2121 vmShuttingdown, 2122 vmShutdown, 2123 vmPaused, 2124 vmSuspending, 2125 vmSuspended, 2126 vmResuming, 2127 vmMigrating, 2128 vmCrashed, 2129 vmBlocked, 2130 vmDeleted 2131 } 2132 STATUS current 2133 DESCRIPTION 2134 "A collection of notifications for per-VM notification 2135 of changes to virtual machine state (vmOperState) as 2136 reported by a hypervisor." 2137 ::= { vmGroups 7 } 2139 vmBulkNotificationsVariablesGroup OBJECT-GROUP 2140 OBJECTS { 2141 vmAffectedVMs 2142 } 2143 STATUS current 2144 DESCRIPTION 2145 "The variables used in vmBulkNotificationOptionalGroup 2146 virtual network interfaces controlled by a hypervisor." 2147 ::= { vmGroups 8 } 2149 vmBulkNotificationOptionalGroup NOTIFICATION-GROUP 2150 NOTIFICATIONS { 2151 vmBulkRunning, 2152 vmBulkShuttingdown, 2153 vmBulkShutdown, 2154 vmBulkPaused, 2155 vmBulkSuspending, 2156 vmBulkSuspended, 2157 vmBulkResuming, 2158 vmBulkMigrating, 2159 vmBulkCrashed, 2160 vmBulkBlocked, 2161 vmBulkDeleted 2162 } 2163 STATUS current 2164 DESCRIPTION 2165 "A collection of notifications for bulk notification of 2166 changes to virtual machine state (vmOperState) as 2167 reported by a given hypervisor." 2168 ::= { vmGroups 9 } 2170 END 2172 7. IANA Considerations 2174 The MIB module in this document uses the following IANA-assigned 2175 OBJECT IDENTIFIER values recorded in the SMI Numbers registry: 2177 Descriptor OBJECT IDENTIFIER value 2178 ---------- ----------------------- 2180 vmMIB { mib-2 TBD } 2182 8. Security Considerations 2184 There are two objects defined in this MIB, 2185 vmPerVMNotificationsEnabled and vmBulkNotificationsEnabled, that have 2186 a MAX-ACCESS clause of read-write. Such objects may be considered 2187 sensitive or vulnerable in some network environments. The support 2188 for SET operations in a non-secure environment without proper 2189 protection can have a negative effect on the management system. It 2190 is recommended that attention be given to these objects in scenarios 2191 that DO NOT use SNMPv3 strong security, i.e. authentication and 2192 encryption. When SNMPv3 strong security is not used, these objects 2193 should have access of read-only, not read-write. 2195 There are a number of managed objects in this MIB that may contain 2196 sensitive information. The objects in the vmHvSoftware and 2197 vmHvVersion list information about the hypervisor's software and 2198 version. Some may wish not to disclose to others which software they 2199 are running. Further, an inventory of the running software and 2200 versions may be helpful to an attacker who hopes to exploit software 2201 bugs in certain applications. Moreover, the objects in the vmTable, 2202 vmCpuTable, vmCpuAffinityTable, vmStorageTable and vmNetworkTable 2203 list information about the virtual machines and their virtual 2204 resource allocation. Some may wish not to disclose to others how 2205 many and what virtual machines they are operating. 2207 It is thus important to control even GET access to these objects and 2208 possibly to even encrypt the values of these object when sending them 2209 over the network via SNMP. Not all versions of SNMP provide features 2210 for such a secure environment. 2212 SNMPv1 by itself is not a secure environment. Even if the network 2213 itself is secure (for example by using IPsec), even then, there is no 2214 control as to who on the secure network is allowed to access and GET/ 2215 SET (read/change/create/delete) the objects in this MIB. 2217 It is recommended that the implementers consider the security 2218 features as provided by the SNMPv3 framework. Specifically, the use 2219 of the User-based Security Model [RFC3414] and the View-based Access 2220 Control Model [RFC3415] is recommended. 2222 It is then a customer/user responsibility to ensure that the SNMP 2223 entity giving access to an instance of this MIB, is properly 2224 configured to give access to the objects only to those principals 2225 (users) that have legitimate rights to indeed GET or SET (change/ 2226 create/delete) them. 2228 9. Acknowledgements 2230 The authors like to thank Joe Marcus Clarke, Randy Presuhn, David 2231 Black, Joel Jaeggli, Tom Petch, Andy Bierman, C. M. Heard, and Ian 2232 West for providing helpful comments during the development of this 2233 specification. 2235 Juergen Schoenwaelder was partly funded by Flamingo, a Network of 2236 Excellence project (ICT-318488) supported by the European Commission 2237 under its Seventh Framework Programme. 2239 10. References 2241 10.1. Normative References 2243 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2244 Requirement Levels", BCP 14, RFC 2119, March 1997. 2246 [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. 2247 Schoenwaelder, Ed., "Structure of Management Information 2248 Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. 2250 [RFC2579] McCloghrie, K., Ed., Perkins, D., Ed., and J. 2251 Schoenwaelder, Ed., "Textual Conventions for SMIv2", 2252 STD 58, RFC 2579, April 1999. 2254 [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, 2255 "Conformance Statements for SMIv2", STD 58, RFC 2580, 2256 April 1999. 2258 [RFC2790] Waldbusser, S. and P. Grillo, "Host Resources MIB", 2259 RFC 2790, March 2000. 2261 [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group 2262 MIB", RFC 2863, June 2000. 2264 [RFC3413] Levi, D., Meyer, P., and B. Stewart, "Simple Network 2265 Management Protocol (SNMP) Applications", STD 62, 2266 RFC 3413, December 2002. 2268 [RFC3414] Blumenthal, U. and B. Wijnen, "User-based Security Model 2269 (USM) for version 3 of the Simple Network Management 2270 Protocol (SNMPv3)", STD 62, RFC 3414, December 2002. 2272 [RFC3415] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based 2273 Access Control Model (VACM) for the Simple Network 2274 Management Protocol (SNMP)", STD 62, RFC 3415, 2275 December 2002. 2277 [RFC3418] Presuhn, R., "Management Information Base (MIB) for the 2278 Simple Network Management Protocol (SNMP)", STD 62, 2279 RFC 3418, December 2002. 2281 [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally 2282 Unique IDentifier (UUID) URN Namespace", RFC 4122, 2283 July 2005. 2285 [RFC6933] Bierman, A., Romascanu, D., Quittek, J., and M. 2286 Chandramouli, "Entity MIB (Version 4)", RFC 6933, 2287 May 2013. 2289 10.2. Informative References 2291 [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, 2292 "Introduction and Applicability Statements for Internet- 2293 Standard Management Framework", RFC 3410, December 2002. 2295 [IEEE8021-BRIDGE-MIB] 2296 IEEE, "IEEE8021-BRIDGE-MIB", . 2299 [IEEE8021-Q-BRIDGE-MIB] 2300 IEEE, "IEEE8021-BRIDGE-MIB", . 2304 Appendix A. State Transition Table 2306 +--------------+----------------+--------------+--------------------+ 2307 | State | Change to | Next state | Notification | 2308 | | vmAdminState | | | 2309 | | at the | | | 2310 | | hypervisor or | | | 2311 | | (Event) | | | 2312 +--------------+----------------+--------------+--------------------+ 2313 | suspended | running | resuming | vmResuming | | 2314 | | | | vmBulkResuming | 2315 | | | | | 2316 | suspending | (suspend | suspended | vmSuspended | | 2317 | | operation | | vmBulkSuspended | 2318 | | completed) | | | 2319 | | | | | 2320 | running | suspended | suspending | vmSuspending | | 2321 | | | | vmBulkSuspending | 2322 | | | | | 2323 | | shutdown | shuttingdown | vmShuttingdown | | 2324 | | | | vmBulkShuttingdown | 2325 | | | | | 2326 | | destroy | shutdown | vmShutdown | | 2327 | | | | vmBulkShutdown | 2328 | | | | | 2329 | | (migration to | migrating | vmMigrating | | 2330 | | other | | vmBulkMingrating | 2331 | | hypervisor | | | 2332 | | initiated) | | | 2333 | | | | | 2334 | resuming | (resume | running | vmRunning | | 2335 | | opeartion | | vmBulkRunning | 2336 | | completed) | | | 2337 | | | | | 2338 | paused | running | running | vmRunning | | 2339 | | | | vmBulkRunning | 2340 | | | | | 2341 | shuttingdown | (shutdown | shutdown | vmShutdown | | 2342 | | operation | | vmBulkShutdown | 2343 | | completed) | | | 2344 | | | | | 2345 | shutdown | running | running | vmRunning | | 2346 | | | | vmBulkRunning | 2347 | | | | | 2348 | | (if this state | migrating | vmMigrating | | 2349 | | entry is | | vmBulkMigrating | 2350 | | created by a | | | 2351 | | migration | | | 2352 | | operation (*) | | | 2353 | | | | | 2354 | | (deletion | (no state) | vmDeleted | | 2355 | | operation | | vmBulkDeleted | 2356 | | completed) | | | 2357 | | | | | 2358 | migrating | (migration | running | vmRunning | | 2359 | | from other | | vmBulkRunning | 2360 | | hypervisor | | | 2361 | | completed) | | | 2362 | | | | | 2363 | | (migration to | shutdown | vmShutdown | | 2364 | | other | | vmBulkShutdown | 2365 | | hypervisor | | | 2366 | | completed) | | | 2367 | | | | | 2368 | preparing | (preparation | shutdown | vmShutdown | | 2369 | | completed) | | vmBulkShutdown | 2370 | | | | | 2371 | blocked | (blocking | (previous | - | 2372 | | operation | state) | | 2373 | | completed) | | | 2374 | | | | | 2375 | crashed | - | - | - | 2376 | | | | | 2377 | (any) | (blocking | blocked | vmBlocked | | 2378 | | operation | | vmBulkBlocked | 2379 | | initiated) | | | 2380 | | | | | 2381 | | (crashed) | crashed | vmCrashed | | 2382 | | | | vmBulkCrashed | 2383 | | | | | 2384 | (no state) | (preparation | preparing | - | 2385 | | initiated) | | | 2386 | | | | | 2387 | | (migrate from | shutdown (*) | vmShutdown | | 2388 | | other | | vmBulkShutdown | 2389 | | hypervisor | | | 2390 | | initiated) | | | 2391 +--------------+----------------+--------------+--------------------+ 2393 State transition table for vmOperState 2395 Authors' Addresses 2397 Hirochika Asai 2398 The University of Tokyo 2399 7-3-1 Hongo 2400 Bunkyo-ku, Tokyo 113-8656 2401 JP 2403 Phone: +81 3 5841 6748 2404 Email: panda@hongo.wide.ad.jp 2406 Michael MacFaden 2407 VMware Inc. 2409 Email: mrm@vmware.com 2411 Juergen Schoenwaelder 2412 Jacobs University 2413 Campus Ring 1 2414 Bremen 28759 2415 Germany 2417 Email: j.schoenwaelder@jacobs-university.de 2419 Keiichi Shima 2420 IIJ Innovation Institute Inc. 2421 2-10-2 Fujimi 2422 Chiyoda-ku, Tokyo 102-0071 2423 JP 2425 Email: keiichi@iijlab.net 2427 Tina Tsou 2428 Huawei Technologies (USA) 2429 2330 Central Expressway 2430 Santa Clara CA 95050 2431 USA 2433 Email: tina.tsou.zouting@huawei.com 2434 Yuji Sekiya 2435 The University of Tokyo 2436 2-11-16 Yayoi 2437 Bunkyo-ku, Tokyo 113-8658 2438 JP 2440 Email: sekiya@wide.ad.jp 2442 Cathy Zhou 2443 Huawei Technologies 2444 Bantian, Longgang District 2445 Shenzhen 518129 2446 P.R. China 2448 Email: cathyzhou@huawei.com 2450 Hiroshi Esaki 2451 The University of Tokyo 2452 7-3-1 Hongo 2453 Bunkyo-ku, Tokyo 113-8656 2454 JP 2456 Phone: +81 3 5841 6748 2457 Email: hiroshi@wide.ad.jp