idnits 2.17.1 draft-ietf-opsawg-vmm-mib-01.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 381 has weird spacing: '...ineList vmAf...' -- The document date (July 4, 2014) is 3581 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 2202, 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: January 5, 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 July 4, 2014 14 Management Information Base for Virtual Machines Controlled by a 15 Hypervisor 16 draft-ietf-opsawg-vmm-mib-01 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 January 5, 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 . . . . . . . . . . . . . . . . . . . . . 48 67 8. Security Considerations . . . . . . . . . . . . . . . . . . . 49 68 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 50 69 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 51 70 10.1. Normative References . . . . . . . . . . . . . . . . . . 51 71 10.2. Informative References . . . . . . . . . . . . . . . . . 52 72 Appendix A. State Transition Table . . . . . . . . . . . . . . . 53 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 55 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 | +--vmNetworkTable(8) 372 | | +--vmNetworkEntry(1) [vmIndex, vmNetworkIndex] 373 | | +-- --- VirtualMachineNetworkIndex 374 | | | vmNetworkIndex(1) 375 | | +-- r-n InterfaceIndexOrZero vmNetworkIfIndex(2) 376 | | +-- r-n InterfaceIndexOrZero vmNetworkParent(3) 377 | | +-- r-n SnmpAdminString vmNetworkModel(4) 378 | | +-- r-n PhysAddress vmNetworkPhysAddress(5) 379 | +-- rwn TruthValue vmPerVMNotificationsEnabled(9) 380 | +-- rwn TruthValue vmBulkNotificationsEnabled(10) 381 | +-- --n VirtualMachineList vmAffectedVMs(11) 382 +--vmConformance(2) 383 +--vmCompliances(1) 384 | +--vmFullCompliances(1) 385 | +--vmReadOnlyCompliances(2) 386 +--vmGroups(2) 387 +--vmHypervisorGroup(1) 388 +--vmVirtualMachineGroup(2) 389 +--vmCpuGroup(3) 390 +--vmCpuAffinityGroup(4) 391 +--vmStorageGroup(5) 392 +--vmNetworkGroup(6) 393 +--vmPerVMNotificationOptionalGroup(7) 394 +--vmBulkNotificationsVariablesGroup(8) 395 +--vmBulkNotificationOptionalGroup(9) 397 5. Relationship to Other MIB Modules 399 HOST-RESOURCES-MIB [RFC2790] defines the MIB objects for managing 400 host systems. Hypervisors shall implement HOST-RESOURCES-MIB. On 401 systems implementing HOST-RESOURCES-MIB, the objects of HOST- 402 RESOURCES-MIB indicate resources of a hypervisor. Some objects of 403 HOST-RESOURCES-MIB shall also be used to indicate physical resources 404 through indexes. On systems implementing HOST-RESOURCES-MIB, the 405 `vmCpuPhysIndex' points to the processor's `hrDeviceIndex' in the 406 `hrProcessorTable'. The `vmStorageParent' also points to the storage 407 device's `hrStorageIndex' in the `hrStorageTable'. 409 HOST-RESOURCES-MIB shall be implemented on systems running on virtual 410 machines. It enables to manage the objects related to the resources 411 of virtual machines from the viewpoint of virtual machine operators. 412 However, from the viewpoint of hypervisor operators, it cannot obtain 413 the list of virtual machines controlled by a hypervisor and the 414 relationship between physical and virtual resources. This document 415 defines the objects of these information. 417 IF-MIB [RFC2863] defines the MIB objects for managing network 418 interfaces. Both physical and virtual network interfaces are 419 required to be contained in the `ifTable' of IF-MIB. The virtual 420 network interfaces in the `ifTable' of IF-MIB are pointed from the 421 `vmNetworkTable' defined in this document through a pointer 422 `vmNetworkIfIndex'. In case that an entry in the `vmNetworkTable' 423 has a corresponding parent physical network interface managed in the 424 `ifTable' of IF-MIB, the entry contains a pointer `vmNetworkParent' 425 to the physical network interface. 427 The objects related to virtual switches are not also included in the 428 MIB module defined in this document though virtual switches shall be 429 placed on a hypervisor. This is because the virtual network 430 interfaces are the lowest abstraction of network resources allocated 431 to a virtual machine. Instead of including the objects related to 432 virtual switches, for example, IEEE8021-BRIDGE-MIB 433 [IEEE8021-BRIDGE-MIB] and IEEE8021-Q-BRIDGE-MIB 434 [IEEE8021-Q-BRIDGE-MIB] could be used. 436 The other objects related to virtual machines such as management IP 437 addresses of a virtual machine are not included in this MIB module 438 because this MIB module defines the objects common to general 439 hypervisors but they are specific to some hypervisors. They may be 440 included in the entLogicalTable of ENTITY-MIB [RFC6933]. 442 6. Definitions 444 VM-MIB DEFINITIONS ::= BEGIN 446 IMPORTS 447 MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, TimeTicks, 448 Counter64, Integer32, mib-2 449 FROM SNMPv2-SMI 450 OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP 451 FROM SNMPv2-CONF 452 TEXTUAL-CONVENTION, PhysAddress, TruthValue 453 FROM SNMPv2-TC 454 SnmpAdminString 455 FROM SNMP-FRAMEWORK-MIB 456 UUIDorZero 457 FROM UUID-TC-MIB 458 InterfaceIndexOrZero 459 FROM IF-MIB; 461 vmMIB MODULE-IDENTITY 462 LAST-UPDATED "201407040000Z" -- 4 July 2014 463 ORGANIZATION "IETF Operations and Management Area Working Group" 464 CONTACT-INFO 465 " 466 WG E-mail: opsawg@ietf.org 467 Mailing list subscription info: 468 https://www.ietf.org/mailman/listinfo/opsawg 470 Hirochika Asai 471 The University of Tokyo 472 7-3-1 Hongo 473 Bunkyo-ku, Tokyo 113-8656 474 JP 475 Phone: +81 3 5841 6748 476 Email: panda@hongo.wide.ad.jp 478 Michael MacFaden 479 VMware Inc. 480 Email: mrm@vmware.com 482 Juergen Schoenwaelder 483 Jacobs University 484 Campus Ring 1 485 Bremen 28759 486 Germany 487 Email: j.schoenwaelder@jacobs-university.de 489 Keiichi Shima 490 IIJ Innovation Institute Inc. 491 3-13 Kanda-Nishikicho 492 Chiyoda-ku, Tokyo 101-0054 493 JP 494 Email: keiichi@iijlab.net 496 Tina Tsou 497 Huawei Technologies (USA) 498 2330 Central Expressway 499 Santa Clara CA 95050 500 USA 501 Email: tina.tsou.zouting@huawei.com 502 " 504 DESCRIPTION 505 "This MIB module is for use in managing a hypervisor and 506 virtual machines controlled by the hypervisor. The OID 507 `yyy' is temporary one, and it must be assigned by IANA 508 when this becomes an official document. 510 Copyright (c) 2014 IETF Trust and the persons identified 511 as authors of the code. All rights reserved. 513 Redistribution and use in source and binary forms, with 514 or without modification, is permitted pursuant to, and 515 subject to the license terms contained in, the 516 Simplified BSD License set forth in Section 4.c of the 517 IETF Trust's Legal Provisions Relating to IETF Documents 518 (http://trustee.ietf.org/license-info)." 520 REVISION "201407040000Z" -- 4 July 2014 521 DESCRIPTION 522 "The original version of this MIB, published as 523 RFCXXXX." 524 ::= { mib-2 yyy } 526 vmNotifications OBJECT IDENTIFIER ::= { vmMIB 0 } 527 vmObjects OBJECT IDENTIFIER ::= { vmMIB 1 } 528 vmConformance OBJECT IDENTIFIER ::= { vmMIB 2 } 530 -- Textual conversion definitions 531 -- 532 VirtualMachineIndex ::= TEXTUAL-CONVENTION 533 DISPLAY-HINT "d" 534 STATUS current 535 DESCRIPTION 536 "A unique value, greater than zero, identifying a 537 virtual machine. The value for each virtual machine 538 must remain constant at least from one re-initialization 539 of the hypervisor to the next re-initialization." 540 SYNTAX Integer32 (1..2147483647) 542 VirtualMachineIndexOrZero ::= TEXTUAL-CONVENTION 543 DISPLAY-HINT "d" 544 STATUS current 545 DESCRIPTION 546 "This textual convention is an extension of the 547 VirtualMachineIndex convention. This extension permits 548 the additional value of zero. The meaning of the value 549 zero is object-specific and must therefore be defined as 550 part of the description of any object which uses this 551 syntax. Examples of the usage of zero might include 552 situations where a virtual machine is unknown, or when 553 none or all virtual machines need to be referenced." 554 SYNTAX Integer32 (0..2147483647) 556 VirtualMachineAdminState ::= TEXTUAL-CONVENTION 557 STATUS current 558 DESCRIPTION 559 "The administrative state of a virtual machine: 561 running(1) The administrative state of the virtual 562 machine indicating the virtual machine 563 is currently online or should be brought 564 online. 566 suspended(2) The administrative state of the virtual 567 machine where its memory and CPU execution 568 state has been saved to persistent store 569 and will be restored at next running(1). 571 paused(3) The administrative state indicating the 572 virtual machine is resident in memory but 573 is no longer scheduled to execute by the 574 hypervisor. 576 shutdown(4) The administrative state of the virtual 577 machine indicating the virtual machine 578 is currently offline or should be taken 579 shutting down. 581 destroy(5) The administrative state of the virtual 582 machine indicating the virtual machine 583 should be forcibly shutdown. After the 584 destroy operation, the administrative 585 state should be automatically changed to 586 shutdown(4)." 587 SYNTAX INTEGER { 588 running(1), 589 suspended(2), 590 paused(3), 591 shutdown(4), 592 destroy(5) 593 } 595 VirtualMachineOperState ::= TEXTUAL-CONVENTION 596 STATUS current 597 DESCRIPTION 598 "The operational state of a virtual machine: 600 unknown(1) The operational state of the virtual 601 machine is unknown, e.g., because the 602 implementation failed to obtain the state 603 from the hypervisor. 605 other(2) The operational state of the virtual 606 machine indicating that an operational 607 state is obtained from the hypervisor but 608 it is not a state defined in this MIB 609 module. 611 preparing(3) The operational state of the virtual 612 machine indicating the virtual machine is 613 currently in the process of preparation, 614 e.g., allocating and initializing virtual 615 storage after creating (defining) virtual 616 machine. 618 running(4) The operational state of the virtual 619 machine indicating the virtual machine is 620 currently executed but it is not in the 621 process of preparing(3), suspending(6), 622 resuming(8), migrating(10), and 623 shuttingdown(11). 625 blocked(5) The operational state of the virtual 626 machine indicating the execution of the 627 virtual machine is currently blocked, 628 e.g., waiting for some action of the 629 hypervisor to finish. This is a 630 transient state from/to other states. 632 suspending(6) The operational state of the virtual 633 machine indicating the virtual machine is 634 currently in the process of suspending 635 to save its memory and CPU execution 636 state to persistent store. This is a 637 transient state from running(4) to 638 suspended(7). 640 suspended(7) The operational state of the virtual 641 machine indicating the virtual machine is 642 currently suspended, which means the 643 memory and CPU execution state of the 644 virtual machine are saved to persistent 645 store. During this state, the virtual 646 machine is not scheduled to execute by 647 the hypervisor. 649 resuming(8) The operational state of the virtual 650 machine indicating the virtual machine is 651 currently in the process of resuming 652 to restore its memory and CPU execution 653 state from persistent store. This is a 654 transient state from suspended(7) to 655 running(4). 657 paused(9) The operational state of the virtual 658 machine indicating the virtual machine is 659 resident in memory but no longer 660 scheduled to execute by the hypervisor. 662 migrating(10) The operational state of the virtual 663 machine indicating the virtual machine is 664 currently in the process of migration 665 from/to another hypervisor. 667 shuttingdown(11) 668 The operational state of the virtual 669 machine indicating the virtual machine is 670 currently in the process of shutting 671 down. This is a transient state from 672 running(4) to shutdown(12). 674 shutdown(12) The operational state of the virtual 675 machine indicating the virtual machine is 676 down, and CPU execution is no longer 677 scheduled by the hypervisor and its 678 memory is not resident in the hypervisor. 680 crashed(13) The operational state of the virtual 681 machine indicating the virtual machine 682 has crashed." 683 SYNTAX INTEGER { 684 unknown(1), 685 other(2), 686 preparing(3), 687 running(4), 688 blocked(5), 689 suspending(6), 690 suspended(7), 691 resuming(8), 692 paused(9), 693 migrating(10), 694 shuttingdown(11), 695 shutdown(12), 696 crashed(13) 697 } 699 VirtualMachineAutoStart ::= TEXTUAL-CONVENTION 700 STATUS current 701 DESCRIPTION 702 "The autostart configuration of a virtual machine: 704 unknown(1) The autostart configuration is unknown, 705 e.g., because the implementation failed 706 to obtain the autostart configuration 707 from the hypervisor. 709 enabled(2) The autostart configuration of the 710 virtual machine is enabled. The virtual 711 machine should be automatically brought 712 online at the next re-initialization of 713 the hypervisor. 715 disabled(3) The autostart configuration of the 716 virtual machine is disabled. The virtual 717 machine should not be automatically 718 brought online at the next 719 re-initialization of the hypervisor." 720 SYNTAX INTEGER { 721 unknown(1), 722 enabled(2), 723 disabled(3) 724 } 726 VirtualMachinePersistent ::= TEXTUAL-CONVENTION 727 STATUS current 728 DESCRIPTION 729 "This value indicates whether a virtual machine has a 730 persistent configuration which means the virtual machine 731 will still exist after shutting down: 733 unknown(1) The persistent configuration is unknown, 734 e.g., because the implementation failed 735 to obtain the persistent configuration 736 from the hypervisor. (read-only) 738 persistent(2) The virtual machine is persistent, i.e., 739 the virtual machine will exist after its 740 shutting down. 742 transient(3) The virtual machine is transient, i.e., 743 the virtual machine will not exist after 744 its shutting down." 745 SYNTAX INTEGER { 746 unknown(1), 747 persistent(2), 748 transient(3) 749 } 751 VirtualMachineCpuIndex ::= TEXTUAL-CONVENTION 752 DISPLAY-HINT "d" 753 STATUS current 754 DESCRIPTION 755 "A unique value for each virtual machine, greater than 756 zero, identifying a virtual CPU assigned to a virtual 757 machine. The value for each virtual CPU must remain 758 constant at least from one re-initialization of the 759 hypervisor to the next re-initialization." 760 SYNTAX Integer32 (1..2147483647) 762 VirtualMachineStorageIndex ::= TEXTUAL-CONVENTION 763 DISPLAY-HINT "d" 764 STATUS current 765 DESCRIPTION 766 "A unique value for each virtual machine, greater than 767 zero, identifying a virtual storage device allocated to 768 a virtual machine. The value for each virtual storage 769 device must remain constant at least from one 770 re-initialization of the hypervisor to the next 771 re-initialization." 772 SYNTAX Integer32 (1..2147483647) 774 VirtualMachineStorageSourceType ::= TEXTUAL-CONVENTION 775 STATUS current 776 DESCRIPTION 777 "The source type of a virtual storage device: 779 unknown(1) The source type is unknown, e.g., because 780 the implementation failed to obtain the 781 media type from the hypervisor. 783 other(2) The source type is other than those 784 defined in this conversion. 786 block(3) The source type is a block device. 788 raw(4) The source type is a raw-formatted file. 790 sparse(5) The source type is a sparse file. 792 network(6) The source type is a network device." 793 SYNTAX INTEGER { 794 unknown(1), 795 other(2), 796 block(3), 797 raw(4), 798 sparse(5), 799 network(6) 800 } 802 VirtualMachineStorageAccess ::= TEXTUAL-CONVENTION 803 STATUS current 804 DESCRIPTION 805 "The access permission of a virtual storage: 807 readwrite(1) The virtual storage is a read-write 808 device. 810 readonly(2) The virtual storage is a read-only 811 device." 812 SYNTAX INTEGER { 813 readwrite(1), 814 readonly(2) 815 } 817 VirtualMachineStorageMediaType ::= TEXTUAL-CONVENTION 818 STATUS current 819 DESCRIPTION 820 "The media type of a virtual storage device: 822 unknown(1) The media type is unknown, e.g., because 823 the implementation failed to obtain the 824 media type from the hypervisor. 826 other(2) The media type is other than those 827 defined in this conversion. 829 hardDisk(3) The media type is hard disk. 831 opticalDisk(4) The media type is optical disk." 832 SYNTAX INTEGER { 833 other(1), 834 unknown(2), 835 hardDisk(3), 836 opticalDisk(4) 837 } 839 VirtualMachineNetworkIndex ::= TEXTUAL-CONVENTION 840 DISPLAY-HINT "d" 841 STATUS current 842 DESCRIPTION 843 "A unique value for each virtual machine, greater than 844 zero, identifying a virtual network interface allocated 845 to the virtual machine. The value for each virtual 846 network interface must remain constant at least from one 847 re-initialization of the hypervisor to the next 848 re-initialization." 849 SYNTAX Integer32 (1..2147483647) 851 VirtualMachineList ::= TEXTUAL-CONVENTION 852 DISPLAY-HINT "1x" 853 STATUS current 854 DESCRIPTION 855 "Each octet within this value specifies a set of eight 856 virtual machine vmIndex, with the first octet specifying 857 virtual machine 1 through 8, the second octet specifying 858 virtual machine 9 through 16, etc. Within each octet, 859 the most significant bit represents the lowest numbered 860 vmIndex, and the least significant bit represents the 861 highest numbered vmIndex. Thus, each virtual machine of 862 the host is represented by a single bit within the value 863 of this object. If that bit has a value of '1', then 864 that virtual machine is included in the set of virtual 865 machines; the virtual machine is not included if its bit 866 has a value of '0'." 867 SYNTAX OCTET STRING 869 -- The hypervisor group 870 -- 871 -- A collection of objects common to all hypervisors. 873 -- 874 vmHypervisor OBJECT IDENTIFIER ::= { vmObjects 1 } 876 vmHvSoftware OBJECT-TYPE 877 SYNTAX SnmpAdminString (SIZE (0..255)) 878 MAX-ACCESS read-only 879 STATUS current 880 DESCRIPTION 881 "A textual description of the hypervisor software. This 882 value should not include its version, and it should be 883 included in `vmHvVersion'." 884 ::= { vmHypervisor 1 } 886 vmHvVersion OBJECT-TYPE 887 SYNTAX SnmpAdminString (SIZE (0..255)) 888 MAX-ACCESS read-only 889 STATUS current 890 DESCRIPTION 891 "A textual description of the version of the hypervisor 892 software." 893 ::= { vmHypervisor 2 } 895 vmHvObjectID OBJECT-TYPE 896 SYNTAX OBJECT IDENTIFIER 897 MAX-ACCESS read-only 898 STATUS current 899 DESCRIPTION 900 "The vendor's authoritative identification of the 901 hypervisor software contained in the entity. This value 902 is allocated within the SMI enterprises 903 subtree (1.3.6.1.4.1). Note that this is different from 904 sysObjectID in the SNMPv2-MIB [RFC3418] because 905 sysObjectID is not the identification of the hypervisor 906 software but the device, firmware, or management 907 operating system." 908 ::= { vmHypervisor 3 } 910 vmHvUpTime OBJECT-TYPE 911 SYNTAX TimeTicks 912 MAX-ACCESS read-only 913 STATUS current 914 DESCRIPTION 915 "The time (in centi-seconds) since the hypervisor was 916 last re-initialized. Note that this is different from 917 sysUpTime in the SNMPv2-MIB [RFC3418] and hrSystemUptime 918 in the HOST-RESOURCES-MIB [RFC2790] because sysUpTime is 919 the uptime of the network management portion of the 920 system, and hrSystemUptime is the uptime of the 921 management operating system but not the hypervisor 922 software." 923 ::= { vmHypervisor 4 } 925 -- The virtual machine information 926 -- 927 -- A collection of objects common to all virtual machines. 928 -- 929 vmNumber OBJECT-TYPE 930 SYNTAX Integer32 (0..2147483647) 931 MAX-ACCESS read-only 932 STATUS current 933 DESCRIPTION 934 "The number of virtual machines (regardless of their 935 current state) present on this hypervisor." 936 ::= { vmObjects 2 } 938 vmTableLastChange OBJECT-TYPE 939 SYNTAX TimeTicks 940 MAX-ACCESS read-only 941 STATUS current 942 DESCRIPTION 943 "The value of vmHvUpTime at the time of the last creation 944 or deletion of an entry in the vmTable." 945 ::= { vmObjects 3 } 947 vmTable OBJECT-TYPE 948 SYNTAX SEQUENCE OF VmEntry 949 MAX-ACCESS not-accessible 950 STATUS current 951 DESCRIPTION 952 "A list of virtual machine entries. The number of 953 entries is given by the value of vmNumber." 954 ::= { vmObjects 4 } 956 vmEntry OBJECT-TYPE 957 SYNTAX VmEntry 958 MAX-ACCESS not-accessible 959 STATUS current 960 DESCRIPTION 961 "An entry containing management information applicable 962 to a particular virtual machine." 963 INDEX { vmIndex } 964 ::= { vmTable 1 } 966 VmEntry ::= 967 SEQUENCE { 968 vmIndex VirtualMachineIndex, 969 vmName SnmpAdminString, 970 vmUUID UUIDorZero, 971 vmOSType SnmpAdminString, 972 vmAdminState VirtualMachineAdminState, 973 vmOperState VirtualMachineOperState, 974 vmAutoStart VirtualMachineAutoStart, 975 vmPersistent VirtualMachinePersistent, 976 vmCurCpuNumber Integer32, 977 vmMinCpuNumber Integer32, 978 vmMaxCpuNumber Integer32, 979 vmMemUnit Integer32, 980 vmCurMem Integer32, 981 vmMinMem Integer32, 982 vmMaxMem Integer32, 983 vmUpTime TimeTicks, 984 vmCpuTime Counter64 985 } 987 vmIndex OBJECT-TYPE 988 SYNTAX VirtualMachineIndex 989 MAX-ACCESS not-accessible 990 STATUS current 991 DESCRIPTION 992 "A unique value, greater than zero, identifying the 993 virtual machine. The value assigned to a given virtual 994 machine may not persist across re-initialization of the 995 hypervisor. A command generator must use the vmUUID to 996 identify a given virtual machine of interest." 997 ::= { vmEntry 1 } 999 vmName OBJECT-TYPE 1000 SYNTAX SnmpAdminString (SIZE (0..255)) 1001 MAX-ACCESS read-only 1002 STATUS current 1003 DESCRIPTION 1004 "A textual name of the virtual machine." 1005 ::= { vmEntry 2 } 1007 vmUUID OBJECT-TYPE 1008 SYNTAX UUIDorZero 1009 MAX-ACCESS read-only 1010 STATUS current 1011 DESCRIPTION 1012 "The virtual machine's 128-bit UUID or the zero-length 1013 string when a UUID is not available. The UUID if set 1014 must uniquely identify a virtual machine from all other 1015 virtual machines in an administrative region. A 1016 zero-length octet string is returned if no UUID 1017 information is known." 1018 ::= { vmEntry 3 } 1020 vmOSType OBJECT-TYPE 1021 SYNTAX SnmpAdminString (SIZE (0..255)) 1022 MAX-ACCESS read-only 1023 STATUS current 1024 DESCRIPTION 1025 "A textual description containing operating system 1026 information installed on the virtual machine. This 1027 value corresponds to the operating system the hypervisor 1028 assumes to be running when the virtual machine is 1029 started. This may differ from the actual operating 1030 system in case the virtual machine boots into a 1031 different operating system." 1032 ::= { vmEntry 4 } 1034 vmAdminState OBJECT-TYPE 1035 SYNTAX VirtualMachineAdminState 1036 MAX-ACCESS read-only 1037 STATUS current 1038 DESCRIPTION 1039 "The administrative power state of the virtual machine." 1040 ::= { vmEntry 5 } 1042 vmOperState OBJECT-TYPE 1043 SYNTAX VirtualMachineOperState 1044 MAX-ACCESS read-only 1045 STATUS current 1046 DESCRIPTION 1047 "The operational state of the virtual machine." 1048 ::= { vmEntry 6 } 1050 vmAutoStart OBJECT-TYPE 1051 SYNTAX VirtualMachineAutoStart 1052 MAX-ACCESS read-only 1053 STATUS current 1054 DESCRIPTION 1055 "The autostart configuration of the virtual machine. If 1056 this value is enable(2), the virtual machine 1057 automatically starts at the next initialization of the 1058 hypervisor." 1059 ::= { vmEntry 7 } 1061 vmPersistent OBJECT-TYPE 1062 SYNTAX VirtualMachinePersistent 1063 MAX-ACCESS read-only 1064 STATUS current 1065 DESCRIPTION 1066 "This value indicates whether the virtual machine has a 1067 persistent configuration which means the virtual machine 1068 will still exist after its shutdown." 1069 ::= { vmEntry 8 } 1071 vmCurCpuNumber OBJECT-TYPE 1072 SYNTAX Integer32 (0..2147483647) 1073 MAX-ACCESS read-only 1074 STATUS current 1075 DESCRIPTION 1076 "The number of virtual CPUs currently assigned to the 1077 virtual machine." 1078 ::= { vmEntry 9 } 1080 vmMinCpuNumber OBJECT-TYPE 1081 SYNTAX Integer32 (-1|0..2147483647) 1082 MAX-ACCESS read-only 1083 STATUS current 1084 DESCRIPTION 1085 "The minimum number of virtual CPUs that are assigned to 1086 the virtual machine when it is in a power-on state. The 1087 value -1 indicates that there is no hard boundary for 1088 the minimum number of virtual CPUs." 1089 ::= { vmEntry 10 } 1091 vmMaxCpuNumber OBJECT-TYPE 1092 SYNTAX Integer32 (-1|0..2147483647) 1093 MAX-ACCESS read-only 1094 STATUS current 1095 DESCRIPTION 1096 "The maximum number of virtual CPUs that are assigned to 1097 the virtual machine when it is in a power-on state. The 1098 value -1 indicates that there is no limit." 1099 ::= { vmEntry 11 } 1101 vmMemUnit OBJECT-TYPE 1102 SYNTAX Integer32 (1..2147483647) 1103 MAX-ACCESS read-only 1104 STATUS current 1105 DESCRIPTION 1106 "The multiplication unit for vmCurMem, vmMinMem, and 1107 vmMaxMem. For example, when this value is 1024, the 1108 memory size unit for vmCurMem, vmMinMem, and vmMaxMem is 1109 KiB." 1110 ::= { vmEntry 12 } 1112 vmCurMem OBJECT-TYPE 1113 SYNTAX Integer32 (0..2147483647) 1114 MAX-ACCESS read-only 1115 STATUS current 1116 DESCRIPTION 1117 "The current memory size currently allocated to the 1118 virtual memory module in the unit designated by 1119 vmMemUnit." 1120 ::= { vmEntry 13 } 1122 vmMinMem OBJECT-TYPE 1123 SYNTAX Integer32 (-1|0..2147483647) 1124 MAX-ACCESS read-only 1125 STATUS current 1126 DESCRIPTION 1127 "The minimum memory size defined to the virtual machine 1128 in the unit designated by vmMemUnit. The value -1 1129 indicates that there is no hard boundary for the minimum 1130 memory size." 1131 ::= { vmEntry 14 } 1133 vmMaxMem OBJECT-TYPE 1134 SYNTAX Integer32 (-1|0..2147483647) 1135 MAX-ACCESS read-only 1136 STATUS current 1137 DESCRIPTION 1138 "The maximum memory size defined to the virtual machine 1139 in the unit designated by vmMemUnit. The value -1 1140 indicates that there is no limit." 1141 ::= { vmEntry 15 } 1143 vmUpTime OBJECT-TYPE 1144 SYNTAX TimeTicks 1145 MAX-ACCESS read-only 1146 STATUS current 1147 DESCRIPTION 1148 "The time (in centi-seconds) since the administrative 1149 state of the virtual machine was last changed from 1150 shutdown(4) to running(1)." 1151 ::= { vmEntry 16 } 1153 vmCpuTime OBJECT-TYPE 1154 SYNTAX Counter64 1155 UNITS "microsecond" 1156 MAX-ACCESS read-only 1157 STATUS current 1158 DESCRIPTION 1159 "The total CPU time used in microsecond. If the number 1160 of virtual CPUs is larger than 1, vmCpuTime may exceed 1161 real time. 1163 Discontinuities in the value of this counter can occur 1164 at re-initialization of the hypervisor, and 1165 administrative state (vmAdminState) changes of the 1166 virtual machine." 1167 ::= { vmEntry 17 } 1169 -- The virtual CPU on each virtual machines 1170 vmCpuTable OBJECT-TYPE 1171 SYNTAX SEQUENCE OF VmCpuEntry 1172 MAX-ACCESS not-accessible 1173 STATUS current 1174 DESCRIPTION 1175 "The table of virtual CPUs provided by the hypervisor." 1176 ::= { vmObjects 5 } 1178 vmCpuEntry OBJECT-TYPE 1179 SYNTAX VmCpuEntry 1180 MAX-ACCESS not-accessible 1181 STATUS current 1182 DESCRIPTION 1183 "An entry for one virtual processor assigned to a 1184 virtual machine." 1185 INDEX { vmIndex, vmCpuIndex } 1186 ::= { vmCpuTable 1 } 1188 VmCpuEntry ::= 1189 SEQUENCE { 1190 vmCpuIndex VirtualMachineCpuIndex, 1191 vmCpuCoreTime Counter64 1192 } 1194 vmCpuIndex OBJECT-TYPE 1195 SYNTAX VirtualMachineCpuIndex 1196 MAX-ACCESS not-accessible 1197 STATUS current 1198 DESCRIPTION 1199 "A unique value identifying a virtual CPU assigned to 1200 the virtual machine." 1201 ::= { vmCpuEntry 1 } 1203 vmCpuCoreTime OBJECT-TYPE 1204 SYNTAX Counter64 1205 UNITS "microsecond" 1206 MAX-ACCESS read-only 1207 STATUS current 1208 DESCRIPTION 1209 "The total CPU time used by this virtual CPU in 1210 microsecond. 1212 Discontinuities in the value of this counter can occur 1213 at re-initialization of the hypervisor, and 1214 administrative state (vmAdminState) changes of the 1215 virtual machine." 1216 ::= { vmCpuEntry 2 } 1218 -- The virtual CPU affinity on each virtual machines 1219 vmCpuAffinityTable OBJECT-TYPE 1220 SYNTAX SEQUENCE OF VmCpuAffinityEntry 1221 MAX-ACCESS not-accessible 1222 STATUS current 1223 DESCRIPTION 1224 "A list of CPU affinity entries of a virtual CPU." 1225 ::= { vmObjects 6 } 1227 vmCpuAffinityEntry OBJECT-TYPE 1228 SYNTAX VmCpuAffinityEntry 1229 MAX-ACCESS not-accessible 1230 STATUS current 1231 DESCRIPTION 1232 "An entry containing CPU affinity associated with a 1233 particular virtual machine." 1234 INDEX { vmIndex, vmCpuIndex, vmCpuPhysIndex } 1235 ::= { vmCpuAffinityTable 1 } 1237 VmCpuAffinityEntry ::= 1238 SEQUENCE { 1239 vmCpuPhysIndex Integer32, 1240 vmCpuAffinity Integer32 1241 } 1243 vmCpuPhysIndex OBJECT-TYPE 1244 SYNTAX Integer32 (1..2147483647) 1245 MAX-ACCESS not-accessible 1246 STATUS current 1247 DESCRIPTION 1248 "A value identifying a physical CPU on the hypervisor. 1249 On systems implementing the HOST-RESOURCES-MIB, the 1250 value must be the same value that is used as the index 1251 in the hrProcessorTable (hrDeviceIndex)." 1252 ::= { vmCpuAffinityEntry 2 } 1254 vmCpuAffinity OBJECT-TYPE 1255 SYNTAX INTEGER { 1256 unknown(0), -- unknown 1257 enable(1), -- enabled 1258 disable(2) -- disabled 1259 } 1260 MAX-ACCESS read-only 1261 STATUS current 1262 DESCRIPTION 1263 "The CPU affinity of this virtual CPU to the physical 1264 CPU represented by `vmCpuPhysIndex'." 1265 ::= { vmCpuAffinityEntry 3 } 1267 -- The virtual storage devices on each virtual machine. This 1268 -- document defines some overlapped objects with hrStorage in 1269 -- HOST-RESOURCES-MIB [RFC2790], because virtual resources shall be 1270 -- allocated from the hypervisor's resources, which is the `host 1271 -- resources' 1272 vmStorageTable OBJECT-TYPE 1273 SYNTAX SEQUENCE OF VmStorageEntry 1274 MAX-ACCESS not-accessible 1275 STATUS current 1276 DESCRIPTION 1277 "The conceptual table of virtual storage devices 1278 attached to the virtual machine." 1279 ::= { vmObjects 7 } 1281 vmStorageEntry OBJECT-TYPE 1282 SYNTAX VmStorageEntry 1283 MAX-ACCESS not-accessible 1284 STATUS current 1285 DESCRIPTION 1286 "An entry for one virtual storage device attached to the 1287 virtual machine." 1288 INDEX { vmStorageVmIndex, vmStorageIndex } 1289 ::= { vmStorageTable 1 } 1291 VmStorageEntry ::= 1292 SEQUENCE { 1293 vmStorageVmIndex VirtualMachineIndexOrZero, 1294 vmStorageIndex VirtualMachineStorageIndex, 1295 vmStorageParent Integer32, 1296 vmStorageSourceType VirtualMachineStorageSourceType, 1297 vmStorageSourceTypeString 1298 SnmpAdminString, 1299 vmStorageResourceID SnmpAdminString, 1300 vmStorageAccess VirtualMachineStorageAccess, 1301 vmStorageMediaType VirtualMachineStorageMediaType, 1302 vmStorageMediaTypeString 1303 SnmpAdminString, 1304 vmStorageSizeUnit Integer32, 1305 vmStorageDefinedSize Integer32, 1306 vmStorageAllocatedSize Integer32, 1307 vmStorageReadIOs Counter64, 1308 vmStorageWriteIOs Counter64 1309 } 1311 vmStorageVmIndex OBJECT-TYPE 1312 SYNTAX VirtualMachineIndexOrZero 1313 MAX-ACCESS not-accessible 1314 STATUS current 1315 DESCRIPTION 1316 "This value identifies the virtual machine (guest) this 1317 storage device has been allocated to. The value zero 1318 indicates that the storage device is currently not 1319 allocated to any virtual machines." 1320 ::= { vmStorageEntry 1 } 1322 vmStorageIndex OBJECT-TYPE 1323 SYNTAX VirtualMachineStorageIndex 1324 MAX-ACCESS not-accessible 1325 STATUS current 1326 DESCRIPTION 1327 "A unique value identifying a virtual storage device 1328 allocated to the virtual machine." 1329 ::= { vmStorageEntry 2 } 1331 vmStorageParent OBJECT-TYPE 1332 SYNTAX Integer32 (0..2147483647) 1333 MAX-ACCESS read-only 1334 STATUS current 1335 DESCRIPTION 1336 "The value of hrStorageIndex which is the parent (i.e., 1337 physical) device of this virtual device on systems 1338 implementing the HOST-RESOURCES-MIB. The value zero 1339 denotes this virtual device is not any child represented 1340 in the hrStorageTable." 1341 ::= { vmStorageEntry 3 } 1343 vmStorageSourceType OBJECT-TYPE 1344 SYNTAX VirtualMachineStorageSourceType 1345 MAX-ACCESS read-only 1346 STATUS current 1347 DESCRIPTION 1348 "The source type of the virtual storage device." 1349 ::= { vmStorageEntry 4 } 1351 vmStorageSourceTypeString OBJECT-TYPE 1352 SYNTAX SnmpAdminString (SIZE (0..255)) 1353 MAX-ACCESS read-only 1354 STATUS current 1355 DESCRIPTION 1356 "A (detailed) textual string of the source type of the 1357 virtual storage device. For example, this represents 1358 the specific format name of the sparse file." 1359 ::= { vmStorageEntry 5 } 1361 vmStorageResourceID OBJECT-TYPE 1362 SYNTAX SnmpAdminString (SIZE (0..255)) 1363 MAX-ACCESS read-only 1364 STATUS current 1365 DESCRIPTION 1366 "A textual string that represents the resource 1367 identifier of the virtual storage. For example, this 1368 contains the path to the disk image file that 1369 corresponds to the virtual storage." 1370 ::= { vmStorageEntry 6 } 1372 vmStorageAccess OBJECT-TYPE 1373 SYNTAX VirtualMachineStorageAccess 1374 MAX-ACCESS read-only 1375 STATUS current 1376 DESCRIPTION 1377 "The access permission of the virtual storage device." 1378 ::= { vmStorageEntry 7 } 1380 vmStorageMediaType OBJECT-TYPE 1381 SYNTAX VirtualMachineStorageMediaType 1382 MAX-ACCESS read-only 1383 STATUS current 1384 DESCRIPTION 1385 "The media type of the virtual storage device." 1386 ::= { vmStorageEntry 8 } 1388 vmStorageMediaTypeString OBJECT-TYPE 1389 SYNTAX SnmpAdminString (SIZE (0..255)) 1390 MAX-ACCESS read-only 1391 STATUS current 1392 DESCRIPTION 1393 "A (detailed) textual string of the virtual storage 1394 media. For example, this represents the specific driver 1395 name of the emulated media such as `IDE' and `SCSI'." 1396 ::= { vmStorageEntry 9 } 1398 vmStorageSizeUnit OBJECT-TYPE 1399 SYNTAX Integer32 (1..2147483647) 1400 MAX-ACCESS read-only 1401 STATUS current 1402 DESCRIPTION 1403 "The multiplication unit for vmStorageDefinedSize and 1404 vmStorageAllocatedSize. For example, when this value is 1405 1048576, the storage size unit for vmStorageDefinedSize 1406 and vmStorageAllocatedSize is MiB." 1407 ::= { vmStorageEntry 10 } 1409 vmStorageDefinedSize OBJECT-TYPE 1410 SYNTAX Integer32 (-1|0..2147483647) 1411 MAX-ACCESS read-only 1412 STATUS current 1413 DESCRIPTION 1414 "The defined virtual storage size defined in the unit 1415 designated by vmStorageSizeUnit. If this information is 1416 not available, this value shall be -1." 1417 ::= { vmStorageEntry 11 } 1419 vmStorageAllocatedSize OBJECT-TYPE 1420 SYNTAX Integer32 (-1|0..2147483647) 1421 MAX-ACCESS read-only 1422 STATUS current 1423 DESCRIPTION 1424 "The storage size allocated to the virtual storage from 1425 a physical storage in the unit designated by 1426 vmStorageSizeUnit. When the virtual storage is block 1427 device or raw file, this value and vmStorageDefinedSize 1428 are supposed to equal. This value MUST NOT be different 1429 from vmStorageDefinedSize when vmStorageSourceType is 1430 `block' or `raw'. If this information is not available, 1431 this value shall be -1." 1432 ::= { vmStorageEntry 12 } 1434 vmStorageReadIOs OBJECT-TYPE 1435 SYNTAX Counter64 1436 MAX-ACCESS read-only 1437 STATUS current 1438 DESCRIPTION 1439 "The number of read I/O requests. 1441 Discontinuities in the value of this counter can occur 1442 at re-initialization of the hypervisor, and 1443 administrative state (vmAdminState) changes of the 1444 virtual machine." 1445 ::= { vmStorageEntry 13 } 1447 vmStorageWriteIOs OBJECT-TYPE 1448 SYNTAX Counter64 1449 MAX-ACCESS read-only 1450 STATUS current 1451 DESCRIPTION 1452 "The number of write I/O requests. 1454 Discontinuities in the value of this counter can occur 1455 at re-initialization of the hypervisor, and 1456 administrative state (vmAdminState) changes of the 1457 virtual machine." 1458 ::= { vmStorageEntry 14 } 1460 -- The virtual network interfaces on each virtual machine. 1461 vmNetworkTable OBJECT-TYPE 1462 SYNTAX SEQUENCE OF VmNetworkEntry 1463 MAX-ACCESS not-accessible 1464 STATUS current 1465 DESCRIPTION 1466 "The conceptual table of virtual network interfaces 1467 attached to the virtual machine." 1468 ::= { vmObjects 8 } 1470 vmNetworkEntry OBJECT-TYPE 1471 SYNTAX VmNetworkEntry 1472 MAX-ACCESS not-accessible 1473 STATUS current 1474 DESCRIPTION 1475 "An entry for one virtual network interfaces attached to 1476 the virtual machine." 1477 INDEX { vmIndex, vmNetworkIndex } 1478 ::= { vmNetworkTable 1 } 1480 VmNetworkEntry ::= 1481 SEQUENCE { 1482 vmNetworkIndex VirtualMachineNetworkIndex, 1483 vmNetworkIfIndex InterfaceIndexOrZero, 1484 vmNetworkParent InterfaceIndexOrZero, 1485 vmNetworkModel SnmpAdminString, 1486 vmNetworkPhysAddress PhysAddress 1487 } 1489 vmNetworkIndex OBJECT-TYPE 1490 SYNTAX VirtualMachineNetworkIndex 1491 MAX-ACCESS not-accessible 1492 STATUS current 1493 DESCRIPTION 1494 "A unique value identifying a virtual network interface 1495 allocated to the virtual machine." 1496 ::= { vmNetworkEntry 1 } 1498 vmNetworkIfIndex OBJECT-TYPE 1499 SYNTAX InterfaceIndexOrZero 1500 MAX-ACCESS read-only 1501 STATUS current 1502 DESCRIPTION 1503 "The value of ifIndex which corresponds to this virtual 1504 network interface. If this device is not represented in 1505 the ifTable, then this value shall be zero." 1506 ::= { vmNetworkEntry 2 } 1508 vmNetworkParent OBJECT-TYPE 1509 SYNTAX InterfaceIndexOrZero 1510 MAX-ACCESS read-only 1511 STATUS current 1512 DESCRIPTION 1513 "The value of ifIndex which corresponds to the parent 1514 (i.e., physical) device of this virtual device on. The 1515 value zero denotes this virtual device is not any child 1516 represented in the ifTable." 1517 ::= { vmNetworkEntry 3 } 1519 vmNetworkModel OBJECT-TYPE 1520 SYNTAX SnmpAdminString (SIZE (0..255)) 1521 MAX-ACCESS read-only 1522 STATUS current 1523 DESCRIPTION 1524 "A textual string containing the (emulated) model of 1525 virtual network interface. For example, this value is 1526 `virtio' when the emulation driver model is virtio." 1527 ::= { vmNetworkEntry 4 } 1529 vmNetworkPhysAddress OBJECT-TYPE 1530 SYNTAX PhysAddress 1531 MAX-ACCESS read-only 1532 STATUS current 1533 DESCRIPTION 1534 "The MAC address of the virtual network interface." 1535 ::= { vmNetworkEntry 5 } 1537 -- Notification definitions: 1539 vmPerVMNotificationsEnabled OBJECT-TYPE 1540 SYNTAX TruthValue 1541 MAX-ACCESS read-write 1542 STATUS current 1543 DESCRIPTION 1544 "Indicates if notification generator will send 1545 notifications per virtual machine. Changes to this 1546 object MUST NOT persist across re-initialization of 1547 the management system, e.g., SNMP agent." 1548 ::= { vmObjects 9 } 1550 vmBulkNotificationsEnabled OBJECT-TYPE 1551 SYNTAX TruthValue 1552 MAX-ACCESS read-write 1553 STATUS current 1554 DESCRIPTION 1555 "Indicates if notification generator will send 1556 notifications per set of virtual machines. Changes to 1557 this object MUST NOT persist across re-initialization of 1558 the management system, e.g., SNMP agent." 1559 ::= { vmObjects 10 } 1561 vmAffectedVMs OBJECT-TYPE 1562 SYNTAX VirtualMachineList 1563 MAX-ACCESS accessible-for-notify 1564 STATUS current 1565 DESCRIPTION 1566 "A complete list of virtual machines whose state has 1567 changed. This object is the only object sent with bulk 1568 notifications." 1569 ::= { vmObjects 11 } 1571 vmRunning NOTIFICATION-TYPE 1572 OBJECTS { 1573 vmName, 1574 vmUUID, 1575 vmOperState 1576 } 1577 STATUS current 1578 DESCRIPTION 1579 "This notification is generated when the operational 1580 state of a virtual machine has been changed to 1581 running(4) from some other state. The other state is 1582 indicated by the included value of vmOperState." 1583 ::= { vmNotifications 1 } 1585 vmShutdown NOTIFICATION-TYPE 1586 OBJECTS { 1587 vmName, 1588 vmUUID, 1589 vmOperState 1591 } 1592 STATUS current 1593 DESCRIPTION 1594 "This notification is generated when the operational 1595 state of a virtual machine has been changed to 1596 shutdown(12) from some other state. The other state is 1597 indicated by the included value of vmOperState." 1598 ::= { vmNotifications 2 } 1600 vmShuttingdown NOTIFICATION-TYPE 1601 OBJECTS { 1602 vmName, 1603 vmUUID, 1604 vmOperState 1605 } 1606 STATUS current 1607 DESCRIPTION 1608 "This notification is generated when the operational 1609 state of a virtual machine has been changed to 1610 shuttingdown(11) from some other state. The other state 1611 is indicated by the included value of vmOperState." 1612 ::= { vmNotifications 3 } 1614 vmPaused NOTIFICATION-TYPE 1615 OBJECTS { 1616 vmName, 1617 vmUUID, 1618 vmOperState 1619 } 1620 STATUS current 1621 DESCRIPTION 1622 "This notification is generated when the operational 1623 state of a virtual machine has been changed to 1624 paused(9) from some other state. The other state is 1625 indicated by the included value of vmOperState." 1626 ::= { vmNotifications 4 } 1628 vmSuspending NOTIFICATION-TYPE 1629 OBJECTS { 1630 vmName, 1631 vmUUID, 1632 vmOperState 1633 } 1634 STATUS current 1635 DESCRIPTION 1636 "This notification is generated when the operational 1637 state of a virtual machine has been changed to 1638 suspending(6) from some other state. The other state is 1639 indicated by the included value of vmOperState." 1640 ::= { vmNotifications 5 } 1642 vmSuspended NOTIFICATION-TYPE 1643 OBJECTS { 1644 vmName, 1645 vmUUID, 1646 vmOperState 1647 } 1648 STATUS current 1649 DESCRIPTION 1650 "This notification is generated when the operational 1651 state of a virtual machine has been changed to 1652 suspended(7) from some other state. The other state is 1653 indicated by the included value of vmOperState." 1654 ::= { vmNotifications 6 } 1656 vmResuming NOTIFICATION-TYPE 1657 OBJECTS { 1658 vmName, 1659 vmUUID, 1660 vmOperState 1661 } 1662 STATUS current 1663 DESCRIPTION 1664 "This notification is generated when the operational 1665 state of a virtual machine has been changed to 1666 resuming(8) from some other state. The other state is 1667 indicated by the included value of vmOperState." 1668 ::= { vmNotifications 7 } 1670 vmMigrating NOTIFICATION-TYPE 1671 OBJECTS { 1672 vmName, 1673 vmUUID, 1674 vmOperState 1675 } 1676 STATUS current 1677 DESCRIPTION 1678 "This notification is generated when the operational 1679 state of a virtual machine has been changed to 1680 migrating(10) from some other state. The other state is 1681 indicated by the included value of vmOperState." 1682 ::= { vmNotifications 8 } 1684 vmCrashed NOTIFICATION-TYPE 1685 OBJECTS { 1686 vmName, 1687 vmUUID, 1688 vmOperState 1689 } 1690 STATUS current 1691 DESCRIPTION 1692 "This notification is generated when a virtual machine 1693 has been crashed. The previos state of the virtual 1694 machine is indicated by the included value of 1695 vmOperState." 1696 ::= { vmNotifications 9 } 1698 vmBlocked NOTIFICATION-TYPE 1699 OBJECTS { 1700 vmName, 1701 vmUUID, 1702 vmOperState 1703 } 1704 STATUS current 1705 DESCRIPTION 1706 "This notification is generated when the operational 1707 state of a virtual machine has been changed to 1708 blocked(5). The previos state of the virtual machine is 1709 indicated by the included value of vmOperState." 1710 ::= { vmNotifications 10 } 1712 vmDeleted NOTIFICATION-TYPE 1713 OBJECTS { 1714 vmName, 1715 vmUUID, 1716 vmOperState, 1717 vmPersistent 1718 } 1719 STATUS current 1720 DESCRIPTION 1721 "This notification is generated when a virtual machine 1722 has been deleted. The prior state of the virtual 1723 machine is indicated by the included value of 1724 vmOperState." 1725 ::= { vmNotifications 11 } 1727 vmBulkRunning NOTIFICATION-TYPE 1728 OBJECTS { 1729 vmAffectedVMs 1730 } 1731 STATUS current 1732 DESCRIPTION 1733 "This notification is generated when the operational 1734 state of one or more virtual machine has been changed to 1735 running(4) from a all prior states except for 1736 running(4). Management stations are encouraged to 1737 subsequently poll the subset of virtual machines of 1738 interest for vmOperState." 1739 ::= { vmNotifications 12 } 1741 vmBulkShuttingdown NOTIFICATION-TYPE 1742 OBJECTS { 1743 vmAffectedVMs 1744 } 1745 STATUS current 1746 DESCRIPTION 1747 "This notification is generated when the operational 1748 state of one or more virtual machine has been changed to 1749 shuttingdown(11) from a state other than 1750 shuttingdown(11). Management stations are encouraged to 1751 subsequently poll the subset of virtual machines of 1752 interest for vmOperState." 1753 ::= { vmNotifications 13 } 1755 vmBulkShutdown NOTIFICATION-TYPE 1756 OBJECTS { 1757 vmAffectedVMs 1758 } 1759 STATUS current 1760 DESCRIPTION 1761 "This notification is generated when the operational 1762 state of one or more virtual machine has been changed to 1763 shutdown(12) from a state other than shutdown(12). 1764 Management stations are encouraged to subsequently poll 1765 the subset of virtual machines of interest for 1766 vmOperState." 1767 ::= { vmNotifications 14 } 1769 vmBulkPaused NOTIFICATION-TYPE 1770 OBJECTS { 1771 vmAffectedVMs 1772 } 1773 STATUS current 1774 DESCRIPTION 1775 "This notification is generated when the operational 1776 state of one or more virtual machines have been changed 1777 to paused(9) from a state other than paused(9). 1778 Management stations are encouraged to subsequently poll 1779 the subset of virtual machines of interest for 1780 vmOperState." 1781 ::= { vmNotifications 15 } 1783 vmBulkSuspending NOTIFICATION-TYPE 1784 OBJECTS { 1785 vmAffectedVMs 1786 } 1787 STATUS current 1788 DESCRIPTION 1789 "This notification is generated when the operational 1790 state of one or more virtual machines have been changed 1791 to suspending(6) from a state other than suspending(6). 1792 Management stations are encouraged to subsequently poll 1793 the subset of virtual machines of interest for 1794 vmOperState." 1795 ::= { vmNotifications 16 } 1797 vmBulkSuspended NOTIFICATION-TYPE 1798 OBJECTS { 1799 vmAffectedVMs 1800 } 1801 STATUS current 1802 DESCRIPTION 1803 "This notification is generated when the operational 1804 state of one or more virtual machines have been changed 1805 to suspended(7) from a state other than suspended(7). 1806 Management stations are encouraged to subsequently poll 1807 the subset of virtual machines of interest for 1808 vmOperState." 1809 ::= { vmNotifications 17 } 1811 vmBulkResuming NOTIFICATION-TYPE 1812 OBJECTS { 1813 vmAffectedVMs 1814 } 1815 STATUS current 1816 DESCRIPTION 1817 "This notification is generated when the operational 1818 state of one or more virtual machines have been changed 1819 to resuming(8) from a state other than resuming(8). 1820 Management stations are encouraged to subsequently poll 1821 the subset of virtual machines of interest for 1822 vmOperState." 1823 ::= { vmNotifications 18 } 1825 vmBulkMigrating NOTIFICATION-TYPE 1826 OBJECTS { 1827 vmAffectedVMs 1828 } 1829 STATUS current 1830 DESCRIPTION 1831 "This notification is generated when the operational 1832 state of one or more virtual machines have been changed 1833 to migrating(10) from a state other than migrating(10). 1834 Management stations are encouraged to subsequently poll 1835 the subset of virtual machines of interest for 1836 vmOperState." 1837 ::= { vmNotifications 19 } 1839 vmBulkCrashed NOTIFICATION-TYPE 1840 OBJECTS { 1841 vmAffectedVMs 1842 } 1843 STATUS current 1844 DESCRIPTION 1845 "This notification is generated when one or more virtual 1846 machines have been crashed. Management stations are 1847 encouraged to subsequently poll the subset of virtual 1848 machines of interest for vmOperState." 1849 ::= { vmNotifications 20 } 1851 vmBulkBlocked NOTIFICATION-TYPE 1852 OBJECTS { 1853 vmAffectedVMs 1854 } 1855 STATUS current 1856 DESCRIPTION 1857 "This notification is generated when the operational 1858 state of one or more virtual machines have been changed 1859 to blocked(5) from a state other than blocked(5). 1860 Management stations are encouraged to subsequently poll 1861 the subset of virtual machines of interest for 1862 vmOperState." 1863 ::= { vmNotifications 21 } 1865 vmBulkDeleted NOTIFICATION-TYPE 1866 OBJECTS { 1867 vmAffectedVMs 1868 } 1869 STATUS current 1870 DESCRIPTION 1871 "This notification is generated when one or more virtual 1872 machines have been deleted. Management stations are 1873 encouraged to subsequently poll the subset of virtual 1874 machines of interest for vmOperState." 1875 ::= { vmNotifications 22 } 1877 -- Compliance definitions: 1878 vmCompliances OBJECT IDENTIFIER ::= { vmConformance 1 } 1879 vmGroups OBJECT IDENTIFIER ::= { vmConformance 2 } 1881 vmFullCompliances MODULE-COMPLIANCE 1882 STATUS current 1883 DESCRIPTION 1884 "Compliance statement for implementations supporting 1885 read/write access, according to the object definitions." 1886 MODULE -- this module 1887 MANDATORY-GROUPS { 1888 vmHypervisorGroup, 1889 vmVirtualMachineGroup, 1890 vmCpuGroup, 1891 vmCpuAffinityGroup, 1892 vmStorageGroup, 1893 vmNetworkGroup 1894 } 1895 GROUP vmPerVMNotificationOptionalGroup 1896 DESCRIPTION 1897 "Support for per-VM notifications is optional. If not 1898 implemented then vmPerVMNotificationsEnabled must report 1899 false(2)." 1900 GROUP vmBulkNotificationsVariablesGroup 1901 DESCRIPTION 1902 "Necessary only if vmPerVMNotificationOptionalGroup is 1903 implemented." 1904 GROUP vmBulkNotificationOptionalGroup 1905 DESCRIPTION 1906 "Support for bulk notifications is optional. If not 1907 implemented then vmBulkNotificationsEnabled must report 1908 false(2)." 1910 ::= { vmCompliances 1 } 1912 vmReadOnlyCompliances MODULE-COMPLIANCE 1913 STATUS current 1914 DESCRIPTION 1915 "Compliance statement for implementations supporting 1916 only readonly access." 1917 MODULE -- this module 1918 MANDATORY-GROUPS { 1919 vmHypervisorGroup, 1920 vmVirtualMachineGroup, 1921 vmCpuGroup, 1922 vmCpuAffinityGroup, 1923 vmStorageGroup, 1924 vmNetworkGroup 1925 } 1926 OBJECT vmPerVMNotificationsEnabled 1927 MIN-ACCESS read-only 1928 DESCRIPTION 1929 "Write access is not required." 1931 OBJECT vmBulkNotificationsEnabled 1932 MIN-ACCESS read-only 1933 DESCRIPTION 1934 "Write access is not required." 1935 ::= { vmCompliances 2 } 1937 vmHypervisorGroup OBJECT-GROUP 1938 OBJECTS { 1939 vmHvSoftware, 1940 vmHvVersion, 1941 vmHvObjectID, 1942 vmHvUpTime, 1943 vmNumber, 1944 vmTableLastChange, 1945 vmPerVMNotificationsEnabled, 1946 vmBulkNotificationsEnabled 1947 } 1948 STATUS current 1949 DESCRIPTION 1950 "A collection of objects providing insight into the 1951 hypervisor itself." 1952 ::= { vmGroups 1 } 1954 vmVirtualMachineGroup OBJECT-GROUP 1955 OBJECTS { 1956 -- vmIndex 1957 vmName, 1958 vmUUID, 1959 vmOSType, 1960 vmAdminState, 1961 vmOperState, 1962 vmAutoStart, 1963 vmPersistent, 1964 vmCurCpuNumber, 1965 vmMinCpuNumber, 1966 vmMaxCpuNumber, 1967 vmMemUnit, 1968 vmCurMem, 1969 vmMinMem, 1970 vmMaxMem, 1971 vmUpTime, 1972 vmCpuTime 1973 } 1974 STATUS current 1975 DESCRIPTION 1976 "A collection of objects providing insight into the 1977 virtual machines) controlled by a hypervisor." 1978 ::= { vmGroups 2 } 1980 vmCpuGroup OBJECT-GROUP 1981 OBJECTS { 1982 -- vmCpuIndex, 1983 vmCpuCoreTime 1984 } 1985 STATUS current 1986 DESCRIPTION 1987 "A collection of objects providing insight into the 1988 virtual machines) controlled by a hypervisor." 1989 ::= { vmGroups 3 } 1991 vmCpuAffinityGroup OBJECT-GROUP 1992 OBJECTS { 1993 -- vmCpuPhysIndex, 1994 vmCpuAffinity 1995 } 1996 STATUS current 1997 DESCRIPTION 1998 "A collection of objects providing insight into the 1999 virtual machines) controlled by a hypervisor." 2000 ::= { vmGroups 4 } 2002 vmStorageGroup OBJECT-GROUP 2003 OBJECTS { 2004 -- vmStorageVmIndex, 2005 -- vmStorageIndex, 2006 vmStorageParent, 2007 vmStorageSourceType, 2008 vmStorageSourceTypeString, 2009 vmStorageResourceID, 2010 vmStorageAccess, 2011 vmStorageMediaType, 2012 vmStorageMediaTypeString, 2013 vmStorageSizeUnit, 2014 vmStorageDefinedSize, 2015 vmStorageAllocatedSize, 2016 vmStorageReadIOs, 2017 vmStorageWriteIOs 2018 } 2019 STATUS current 2020 DESCRIPTION 2021 "A collection of objects providing insight into the 2022 virtual storage devices controlled by a hypervisor." 2023 ::= { vmGroups 5 } 2025 vmNetworkGroup OBJECT-GROUP 2026 OBJECTS { 2027 -- vmNetworkIndex, 2028 vmNetworkIfIndex, 2029 vmNetworkParent, 2030 vmNetworkModel, 2031 vmNetworkPhysAddress 2032 } 2033 STATUS current 2034 DESCRIPTION 2035 "A collection of objects providing insight into the 2036 virtual network interfaces controlled by a hypervisor." 2037 ::= { vmGroups 6 } 2039 vmPerVMNotificationOptionalGroup NOTIFICATION-GROUP 2040 NOTIFICATIONS { 2041 vmRunning, 2042 vmShuttingdown, 2043 vmShutdown, 2044 vmPaused, 2045 vmSuspending, 2046 vmSuspended, 2047 vmResuming, 2048 vmMigrating, 2049 vmCrashed, 2050 vmBlocked, 2051 vmDeleted 2052 } 2053 STATUS current 2054 DESCRIPTION 2055 "A collection of notifications for per-VM notification 2056 of changes to virtual machine state (vmOperState) as 2057 reported by a hypervisor." 2058 ::= { vmGroups 7 } 2060 vmBulkNotificationsVariablesGroup OBJECT-GROUP 2061 OBJECTS { 2062 vmAffectedVMs 2063 } 2064 STATUS current 2065 DESCRIPTION 2066 "The variables used in vmBulkNotificationOptionalGroup 2067 virtual network interfaces controlled by a hypervisor." 2068 ::= { vmGroups 8 } 2070 vmBulkNotificationOptionalGroup NOTIFICATION-GROUP 2071 NOTIFICATIONS { 2072 vmBulkRunning, 2073 vmBulkShuttingdown, 2074 vmBulkShutdown, 2075 vmBulkPaused, 2076 vmBulkSuspending, 2077 vmBulkSuspended, 2078 vmBulkResuming, 2079 vmBulkMigrating, 2080 vmBulkCrashed, 2081 vmBulkBlocked, 2082 vmBulkDeleted 2083 } 2084 STATUS current 2085 DESCRIPTION 2086 "A collection of notifications for bulk notification of 2087 changes to virtual machine state (vmOperState) as 2088 reported by a given hypervisor." 2089 ::= { vmGroups 9 } 2091 END 2093 7. IANA Considerations 2095 The MIB module in this document uses the following IANA-assigned 2096 OBJECT IDENTIFIER values recorded in the SMI Numbers registry: 2098 Descriptor OBJECT IDENTIFIER value 2099 ---------- ----------------------- 2101 vmMIB { mib-2 TBD } 2103 8. Security Considerations 2105 There are two objects defined in this MIB, 2106 vmPerVMNotificationsEnabled and vmBulkNotificationsEnabled, that have 2107 a MAX-ACCESS clause of read-write. Such objects may be considered 2108 sensitive or vulnerable in some network environments. The support 2109 for SET operations in a non-secure environment without proper 2110 protection can have a negative effect on the management system. It 2111 is recommended that attention be given to these objects in scenarios 2112 that DO NOT use SNMPv3 strong security, i.e. authentication and 2113 encryption. When SNMPv3 strong security is not used, these objects 2114 should have access of read-only, not read-write. 2116 There are a number of managed objects in this MIB that may contain 2117 sensitive information. The objects in the vmHvSoftware and 2118 vmHvVersion list information about the hypervisor's software and 2119 version. Some may wish not to disclose to others which software they 2120 are running. Further, an inventory of the running software and 2121 versions may be helpful to an attacker who hopes to exploit software 2122 bugs in certain applications. Moreover, the objects in the vmTable, 2123 vmCpuTable, vmCpuAffinityTable, vmStorageTable and vmNetworkTable 2124 list information about the virtual machines and their virtual 2125 resource allocation. Some may wish not to disclose to others how 2126 many and what virtual machines they are operating. 2128 It is thus important to control even GET access to these objects and 2129 possibly to even encrypt the values of these object when sending them 2130 over the network via SNMP. Not all versions of SNMP provide features 2131 for such a secure environment. 2133 SNMPv1 by itself is not a secure environment. Even if the network 2134 itself is secure (for example by using IPsec), even then, there is no 2135 control as to who on the secure network is allowed to access and GET/ 2136 SET (read/change/create/delete) the objects in this MIB. 2138 It is recommended that the implementers consider the security 2139 features as provided by the SNMPv3 framework. Specifically, the use 2140 of the User-based Security Model [RFC3414] and the View-based Access 2141 Control Model [RFC3415] is recommended. 2143 It is then a customer/user responsibility to ensure that the SNMP 2144 entity giving access to an instance of this MIB, is properly 2145 configured to give access to the objects only to those principals 2146 (users) that have legitimate rights to indeed GET or SET (change/ 2147 create/delete) them. 2149 9. Acknowledgements 2151 The authors like to thank Joe Marcus Clarke, Randy Presuhn, David 2152 Black, Joel Jaeggli, Tom Petch, Andy Bierman, and C. M. Heard for 2153 providing helpful comments during the development of this 2154 specification. 2156 Juergen Schoenwaelder was partly funded by Flamingo, a Network of 2157 Excellence project (ICT-318488) supported by the European Commission 2158 under its Seventh Framework Programme. 2160 10. References 2162 10.1. Normative References 2164 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2165 Requirement Levels", BCP 14, RFC 2119, March 1997. 2167 [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. 2168 Schoenwaelder, Ed., "Structure of Management Information 2169 Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. 2171 [RFC2579] McCloghrie, K., Ed., Perkins, D., Ed., and J. 2172 Schoenwaelder, Ed., "Textual Conventions for SMIv2", 2173 STD 58, RFC 2579, April 1999. 2175 [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, 2176 "Conformance Statements for SMIv2", STD 58, RFC 2580, 2177 April 1999. 2179 [RFC2790] Waldbusser, S. and P. Grillo, "Host Resources MIB", 2180 RFC 2790, March 2000. 2182 [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group 2183 MIB", RFC 2863, June 2000. 2185 [RFC3413] Levi, D., Meyer, P., and B. Stewart, "Simple Network 2186 Management Protocol (SNMP) Applications", STD 62, 2187 RFC 3413, December 2002. 2189 [RFC3414] Blumenthal, U. and B. Wijnen, "User-based Security Model 2190 (USM) for version 3 of the Simple Network Management 2191 Protocol (SNMPv3)", STD 62, RFC 3414, December 2002. 2193 [RFC3415] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based 2194 Access Control Model (VACM) for the Simple Network 2195 Management Protocol (SNMP)", STD 62, RFC 3415, 2196 December 2002. 2198 [RFC3418] Presuhn, R., "Management Information Base (MIB) for the 2199 Simple Network Management Protocol (SNMP)", STD 62, 2200 RFC 3418, December 2002. 2202 [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally 2203 Unique IDentifier (UUID) URN Namespace", RFC 4122, 2204 July 2005. 2206 [RFC6933] Bierman, A., Romascanu, D., Quittek, J., and M. 2207 Chandramouli, "Entity MIB (Version 4)", RFC 6933, 2208 May 2013. 2210 10.2. Informative References 2212 [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, 2213 "Introduction and Applicability Statements for Internet- 2214 Standard Management Framework", RFC 3410, December 2002. 2216 [IEEE8021-BRIDGE-MIB] 2217 IEEE, "IEEE8021-BRIDGE-MIB", . 2220 [IEEE8021-Q-BRIDGE-MIB] 2221 IEEE, "IEEE8021-BRIDGE-MIB", . 2225 Appendix A. State Transition Table 2227 +--------------+----------------+--------------+--------------------+ 2228 | State | Change to | Next state | Notification | 2229 | | vmAdminState | | | 2230 | | at the | | | 2231 | | hypervisor or | | | 2232 | | (Event) | | | 2233 +--------------+----------------+--------------+--------------------+ 2234 | suspended | running | resuming | vmResuming | | 2235 | | | | vmBulkResuming | 2236 | | | | | 2237 | suspending | (suspend | suspended | vmSuspended | | 2238 | | operation | | vmBulkSuspended | 2239 | | completed) | | | 2240 | | | | | 2241 | running | suspended | suspending | vmSuspending | | 2242 | | | | vmBulkSuspending | 2243 | | | | | 2244 | | shutdown | shuttingdown | vmShuttingdown | | 2245 | | | | vmBulkShuttingdown | 2246 | | | | | 2247 | | destroy | shutdown | vmShutdown | | 2248 | | | | vmBulkShutdown | 2249 | | | | | 2250 | | (migration to | migrating | vmMigrating | | 2251 | | other | | vmBulkMingrating | 2252 | | hypervisor | | | 2253 | | initiated) | | | 2254 | | | | | 2255 | resuming | (resume | running | vmRunning | | 2256 | | opeartion | | vmBulkRunning | 2257 | | completed) | | | 2258 | | | | | 2259 | paused | running | running | vmRunning | | 2260 | | | | vmBulkRunning | 2261 | | | | | 2262 | shuttingdown | (shutdown | shutdown | vmShutdown | | 2263 | | operation | | vmBulkShutdown | 2264 | | completed) | | | 2265 | | | | | 2266 | shutdown | running | running | vmRunning | | 2267 | | | | vmBulkRunning | 2268 | | | | | 2269 | | (if this state | migrating | vmMigrating | | 2270 | | entry is | | vmBulkMigrating | 2271 | | created by a | | | 2272 | | migration | | | 2273 | | operation (*) | | | 2274 | | | | | 2275 | | (deletion | (no state) | vmDeleted | | 2276 | | operation | | vmBulkDeleted | 2277 | | completed) | | | 2278 | | | | | 2279 | migrating | (migration | running | vmRunning | | 2280 | | from other | | vmBulkRunning | 2281 | | hypervisor | | | 2282 | | completed) | | | 2283 | | | | | 2284 | | (migration to | shutdown | vmShutdown | | 2285 | | other | | vmBulkShutdown | 2286 | | hypervisor | | | 2287 | | completed) | | | 2288 | | | | | 2289 | preparing | (preparation | shutdown | vmShutdown | | 2290 | | completed) | | vmBulkShutdown | 2291 | | | | | 2292 | blocked | (blocking | (previous | - | 2293 | | operation | state) | | 2294 | | completed) | | | 2295 | | | | | 2296 | crashed | - | - | - | 2297 | | | | | 2298 | (any) | (blocking | blocked | vmBlocked | | 2299 | | operation | | vmBulkBlocked | 2300 | | initiated) | | | 2301 | | | | | 2302 | | (crashed) | crashed | vmCrashed | | 2303 | | | | vmBulkCrashed | 2304 | | | | | 2305 | (no state) | (preparation | preparing | - | 2306 | | initiated) | | | 2307 | | | | | 2308 | | (migrate from | shutdown (*) | vmShutdown | | 2309 | | other | | vmBulkShutdown | 2310 | | hypervisor | | | 2311 | | initiated) | | | 2312 +--------------+----------------+--------------+--------------------+ 2314 State transition table for vmOperState 2316 Authors' Addresses 2318 Hirochika Asai 2319 The University of Tokyo 2320 7-3-1 Hongo 2321 Bunkyo-ku, Tokyo 113-8656 2322 JP 2324 Phone: +81 3 5841 6748 2325 Email: panda@hongo.wide.ad.jp 2327 Michael MacFaden 2328 VMware Inc. 2330 Email: mrm@vmware.com 2332 Juergen Schoenwaelder 2333 Jacobs University 2334 Campus Ring 1 2335 Bremen 28759 2336 Germany 2338 Email: j.schoenwaelder@jacobs-university.de 2340 Keiichi Shima 2341 IIJ Innovation Institute Inc. 2342 3-13 Kanda-Nishikicho 2343 Chiyoda-ku, Tokyo 101-0054 2344 JP 2346 Email: keiichi@iijlab.net 2348 Tina Tsou 2349 Huawei Technologies (USA) 2350 2330 Central Expressway 2351 Santa Clara CA 95050 2352 USA 2354 Email: tina.tsou.zouting@huawei.com 2355 Yuji Sekiya 2356 The University of Tokyo 2357 2-11-16 Yayoi 2358 Bunkyo-ku, Tokyo 113-8658 2359 JP 2361 Email: sekiya@wide.ad.jp 2363 Cathy Zhou 2364 Huawei Technologies 2365 Bantian, Longgang District 2366 Shenzhen 518129 2367 P.R. China 2369 Email: cathyzhou@huawei.com 2371 Hiroshi Esaki 2372 The University of Tokyo 2373 7-3-1 Hongo 2374 Bunkyo-ku, Tokyo 113-8656 2375 JP 2377 Phone: +81 3 5841 6748 2378 Email: hiroshi@wide.ad.jp