idnits 2.17.1 draft-ietf-opsawg-vmm-mib-00.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 (February 10, 2014) is 3721 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 2256, 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: August 14, 2014 VMware Inc. 6 J. Schoenwaelder 7 Jacobs University 8 K. Shima 9 IIJ Innovation Institute Inc. 10 T. Tsou 11 Huawei Technologies (USA) 12 February 10, 2014 14 Management Information Base for Virtual Machines Controlled by a 15 Hypervisor 16 draft-ietf-opsawg-vmm-mib-00 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 August 14, 2014. 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 . . . . . . . . . . . . . . . . . . . . . . . 52 69 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 53 70 10.1. Normative References . . . . . . . . . . . . . . . . . . 53 71 10.2. Informative References . . . . . . . . . . . . . . . . . 54 72 Appendix A. State Transition Table . . . . . . . . . . . . . . . 55 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 57 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 by the 120 hypervisor to virtual machines. This document specifies four 121 specific types of virtual resources that are common to many 122 hypervisors; processors (CPUs), memory, network interfaces (NICs), 123 and storage devices. The objects are independent of the hypervisors 124 or operating systems running on virtual machines. 126 +------------------------------------------------------------------+ 127 | +-------------------------------------------------+ | 128 | | Virtual machine | | 129 | | | | 130 | | +---------+ +---------+ +---------+ +---------+ | ....... | 131 | | | Virtual | | Virtual | | Virtual | | Virtual | | | 132 | +-| CPU |-| memory |-| storage |-| NIC |-+ | 133 | +---------+ +---------+ +---------+ +---------+ | 134 | Virtual resources | 135 | ^ | 136 | | Allocation using virtualization technologies | 137 | | | 138 | +-- Physical resources ._____. | 139 | +--------+ .--------. / \ +--^--+ | 140 +- - - - - - - | | - /________/| - *\_______/* - | | - -+ 141 | Hypervisor | CPU | | Memory |/ | Storage | | NIC | | 142 | +--------+ +--------+ \_______/ +-----+ | 143 | +-----------------------+ | 144 | || MIB objects || | 145 | +-----------------------+ | 146 +------------------------------------------------------------------+ 148 A hypervisor allocates virtual resources such as virtual CPUs, 149 virtual memory, virtual storage devices, and virtual network 150 interfaces to virtual machines from physical resources. 152 Figure 1: An example of a virtualization environment 154 On the common implementations of hypervisors, a hypervisor allocates 155 virtual resources from physical resources; virtual CPUs, virtual 156 memory, virtual storage devices, and virtual network interfaces to 157 virtual machines as shown in Figure 1. Since the virtual resources 158 allocated to virtual machines are managed by the hypervisor, the MIB 159 objects are managed at a hypervisor. If the objects are accessed 160 through the SNMP, an SNMP agent is launched at the hypervisor to 161 provide access to the objects. 163 The objects are managed from the viewpoint of the operators of 164 hypervisors, but not the operators of virtual machines; i.e., the 165 objects do not take into account the actual resource utilization on 166 each virtual machine but the resource allocation from the physical 167 resources. For example, vmNetworkIfIndex indicates the virtual 168 interface associated with an interface of a virtual machine at the 169 hypervisor, and consequently, the `in' and `out' directions denote 170 `from a virtual machine to the hypervisor' and `from the hypervisor 171 to a virtual machine', respectively. Moreover, 172 vmStorageAllocatedSize denotes the size allocated by the hypervisor, 173 but not the size actually used by the operating system on the virtual 174 machine. This means that vmStorageDefinedSize and 175 vmStorageAllocatedSize do not take different values when the 176 vmStorageSourceType is `block' or `raw'. 178 The objectives of this document are the followings: 1) This document 179 defines the MIB objects common to many hypervisors for the management 180 of virtual machines controlled by a hypervisor. 2) This document 181 clarifies the relationship between other MIB modules for managing 182 host computers and network devices. 184 4. Structure of the VM-MIB Module 186 The MIB module is organized into a group of scalars and tables. The 187 scalars below `hypervisor' provide basic information about the 188 hypervisor. The `vmTable' lists the virtual machines (guests) that 189 are known to the hypervisor. The `vmCpuTable' provides the mapping 190 table of virtual CPUs to virtual machines, including CPU time used by 191 each virtual CPU. The 'vmCpuAffinityTable' provides the affinity of 192 each virtual CPU to a physical CPU. The `vmStorageTable' provides 193 the list of virtual storage devices and their mapping to virtual 194 machines. In case that an entry in the `vmStorageTable' has a 195 corresponding parent physical storage device managed in 196 `vmStorageTable' of HOST-RESOURCES-MIB [RFC2790], the entry contains 197 a pointer `vmStorageParent' to the physical storage device. The 198 `vmNetworkTable' provides the list of virtual network interfaces and 199 their mapping to virtual machines. Each entry in the 200 `vmNetworkTable' also provides a pointer `vmNetworkIfIndex' to the 201 corresponding entry in the `ifTable' of IF-MIB [RFC2863]. In case 202 that an entry in the `vmNetworkTable' has a corresponding parent 203 physical network interface managed in `ifTable' of IF-MIB, the entry 204 contains a pointer `vmNetworkParent' to the physical network 205 interface. 207 *: `vmAdminState' write access 208 !: Notification 209 +-------------+ + - - - - - - + 210 | finite | | transient | 211 | vmOperState | | vmOperState | 212 +-------------+ + - - - - - - + 214 ================================================================ 216 +--------------+ + - - - - - - - + +-------------+ 217 | suspended |<--| suspending | | paused | 218 | !vmSuspended | | !vmSuspending | | !vmPaused | 219 +--------------+ + - - - - - - - + +-------------+ 220 | ^ *suspended ^ *paused 221 | | | 222 v *running | *running | 223 + - - - - - - + +-------------+<----------+ + - - - - - - -+ 224 | resuming |-->| running |<-------------->| migrating | 225 | !vmResuming | | !vmRunning | | !vmMigrating | 226 + - - - - - - + +-------------+ + - - - - - - -+ 227 | ^ *running ^ 228 | | | 229 | +-------------------+ | 230 | | | 231 v *shutdown *destroy 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 | | +-- rwn 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 | | +-- rwn Integer32 vmCurCpuNumber(9) 331 | | +-- rwn Integer32 vmMinCpuNumber(10) 332 | | +-- rwn Integer32 vmMaxCpuNumber(11) 333 | | +-- r-n Integer32 vmMemUnit(12) 334 | | +-- rwn Integer32 vmCurMem(13) 335 | | +-- rwn Integer32 vmMinMem(14) 336 | | +-- rwn 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 | | +-- rwn 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 and IEEE8021-Q- 433 BRIDGE-MIB could be used. 435 The other objects related to virtual machines such as management IP 436 addresses of a virtual machine are not included in this MIB module 437 because this MIB module defines the objects common to general 438 hypervisors but they are specific to some hypervisors. They may be 439 included in the entLogicalTable of ENTITY-MIB [RFC6933]. 441 6. Definitions 443 VM-MIB DEFINITIONS ::= BEGIN 445 IMPORTS 446 MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, TimeTicks, 447 Counter64, Integer32, mib-2 448 FROM SNMPv2-SMI 449 OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP 450 FROM SNMPv2-CONF 451 TEXTUAL-CONVENTION, PhysAddress, TruthValue 452 FROM SNMPv2-TC 453 SnmpAdminString 454 FROM SNMP-FRAMEWORK-MIB 455 UUIDorZero 456 FROM UUID-TC-MIB 457 InterfaceIndexOrZero 458 FROM IF-MIB; 460 vmMIB MODULE-IDENTITY 461 LAST-UPDATED "201402080000Z" -- 8 February 2014 462 ORGANIZATION "IETF Operations and Management Area Working Group" 463 CONTACT-INFO 464 " 465 WG E-mail: opsawg@ietf.org 466 Mailing list subscription info: 467 https://www.ietf.org/mailman/listinfo/opsawg 469 Hirochika Asai 470 The University of Tokyo 471 7-3-1 Hongo 472 Bunkyo-ku, Tokyo 113-8656 473 JP 474 Phone: +81 3 5841 6748 475 Email: panda@hongo.wide.ad.jp 477 Michael MacFaden 478 VMware Inc. 479 Email: mrm@vmware.com 481 Juergen Schoenwaelder 482 Jacobs University 483 Campus Ring 1 484 Bremen 28759 485 Germany 486 Email: j.schoenwaelder@jacobs-university.de 488 Keiichi Shima 489 IIJ Innovation Institute Inc. 490 3-13 Kanda-Nishikicho 491 Chiyoda-ku, Tokyo 101-0054 492 JP 493 Email: keiichi@iijlab.net 495 Tina Tsou 496 Huawei Technologies (USA) 497 2330 Central Expressway 498 Santa Clara CA 95050 499 USA 500 Email: tina.tsou.zouting@huawei.com 501 " 503 DESCRIPTION 504 "This MIB module is for use in managing a hypervisor and 505 virtual machines controlled by the hypervisor. The OID 506 `yyy' is temporary one, and it must be assigned by IANA 507 when this becomes an official document. 509 Copyright (c) 2014 IETF Trust and the persons identified 510 as authors of the code. All rights reserved. 512 Redistribution and use in source and binary forms, with 513 or without modification, is permitted pursuant to, and 514 subject to the license terms contained in, the 515 Simplified BSD License set forth in Section 4.c of the 516 IETF Trust's Legal Provisions Relating to IETF Documents 517 (http://trustee.ietf.org/license-info)." 519 REVISION "201402080000Z" -- 8 February 2014 520 DESCRIPTION 521 "The original version of this MIB, published as 522 RFCXXXX." 523 ::= { mib-2 yyy } 525 vmNotifications OBJECT IDENTIFIER ::= { vmMIB 0 } 526 vmObjects OBJECT IDENTIFIER ::= { vmMIB 1 } 527 vmConformance OBJECT IDENTIFIER ::= { vmMIB 2 } 529 -- Textual conversion definitions 530 -- 531 VirtualMachineIndex ::= TEXTUAL-CONVENTION 532 DISPLAY-HINT "d" 533 STATUS current 534 DESCRIPTION 535 "A unique value, greater than zero, identifying a 536 virtual machine. The value for each virtual machine 537 must remain constant at least from one re-initialization 538 of the hypervisor to the next re-initialization." 539 SYNTAX Integer32 (1..2147483647) 541 VirtualMachineIndexOrZero ::= TEXTUAL-CONVENTION 542 DISPLAY-HINT "d" 543 STATUS current 544 DESCRIPTION 545 "This textual convention is an extension of the 546 VirtualMachineIndex convention. This extension permits 547 the additional value of zero. The meaning of the value 548 zero is object-specific and must therefore be defined as 549 part of the description of any object which uses this 550 syntax. Examples of the usage of zero might include 551 situations where a virtual machine is unknown, or when 552 none or all virtual machines need to be referenced." 553 SYNTAX Integer32 (0..2147483647) 555 VirtualMachineAdminState ::= TEXTUAL-CONVENTION 556 STATUS current 557 DESCRIPTION 558 "The administrative state of a virtual machine: 560 running(1) The administrative state of the virtual 561 machine indicating the virtual machine 562 is currently online or should be brought 563 online. 565 suspended(2) The administrative state of the virtual 566 machine where its memory and CPU execution 567 state has been saved to persistent store 568 and will be restored at next running(1). 570 paused(3) The administrative state indicating the 571 virtual machine is resident in memory but 572 is no longer scheduled to execute by the 573 hypervisor. 575 shutdown(4) The administrative state of the virtual 576 machine indicating the virtual machine 577 is currently offline or should be taken 578 shutting down. 580 destroy(5) The administrative state of the virtual 581 machine indicating the virtual machine 582 should be forcibly shutdown. After the 583 destroy operation, the administrative 584 state should be automatically changed to 585 shutdown(4)." 586 SYNTAX INTEGER { 587 running(1), 588 suspended(2), 589 paused(3), 590 shutdown(4), 591 destroy(5) 592 } 594 VirtualMachineOperState ::= TEXTUAL-CONVENTION 595 STATUS current 596 DESCRIPTION 597 "The operational state of a virtual machine: 599 unknown(1) The operational state of the virtual 600 machine is unknown, e.g., because the 601 implementation failed to obtain the state 602 from the hypervisor. 604 other(2) The operational state of the virtual 605 machine indicating that an operational 606 state is obtained from the hypervisor but 607 it is not a state defined in this MIB 608 module. 610 preparing(3) The operational state of the virtual 611 machine indicating the virtual machine is 612 currently in the process of preparation, 613 e.g., allocating and initializing virtual 614 storage after creating (defining) virtual 615 machine. 617 running(4) The operational state of the virtual 618 machine indicating the virtual machine is 619 currently executed but it is not in the 620 process of preparing(3), suspending(6), 621 resuming(8), migrating(10), and 622 shuttingdown(11). 624 blocked(5) The operational state of the virtual 625 machine indicating the execution of the 626 virtual machine is currently blocked, 627 e.g., waiting for some action of the 628 hypervisor to finish. This is a 629 transient state from/to other states. 631 suspending(6) The operational state of the virtual 632 machine indicating the virtual machine is 633 currently in the process of suspending 634 to save its memory and CPU execution 635 state to persistent store. This is a 636 transient state from running(4) to 637 suspended(7). 639 suspended(7) The operational state of the virtual 640 machine indicating the virtual machine is 641 currently suspended, which means the 642 memory and CPU execution state of the 643 virtual machine are saved to persistent 644 store. During this state, the virtual 645 machine is not scheduled to execute by 646 the hypervisor. 648 resuming(8) The operational state of the virtual 649 machine indicating the virtual machine is 650 currently in the process of resuming 651 to restore its memory and CPU execution 652 state from persistent store. This is a 653 transient state from suspended(7) to 654 running(4). 656 paused(9) The operational state of the virtual 657 machine indicating the virtual machine is 658 resident in memory but no longer 659 scheduled to execute by the hypervisor. 661 migrating(10) The operational state of the virtual 662 machine indicating the virtual machine is 663 currently in the process of migration 664 from/to another hypervisor. 666 shuttingdown(11) 667 The operational state of the virtual 668 machine indicating the virtual machine is 669 currently in the process of shutting 670 down. This is a transient state from 671 running(4) to shutdown(12). 673 shutdown(12) The operational state of the virtual 674 machine indicating the virtual machine is 675 down, and CPU execution is no longer 676 scheduled by the hypervisor and its 677 memory is not resident in the hypervisor. 679 crashed(13) The operational state of the virtual 680 machine indicating the virtual machine 681 has crashed." 682 SYNTAX INTEGER { 683 unknown(1), 684 other(2), 685 preparing(3), 686 running(4), 687 blocked(5), 688 suspending(6), 689 suspended(7), 690 resuming(8), 691 paused(9), 692 migrating(10), 693 shuttingdown(11), 694 shutdown(12), 695 crashed(13) 696 } 698 VirtualMachineAutoStart ::= TEXTUAL-CONVENTION 699 STATUS current 700 DESCRIPTION 701 "The autostart configuration of a virtual machine: 703 unknown(1) The autostart configuration is unknown, 704 e.g., because the implementation failed 705 to obtain the autostart configuration 706 from the hypervisor. 708 enabled(2) The autostart configuration of the 709 virtual machine is enabled. The virtual 710 machine should be automatically brought 711 online at the next re-initialization of 712 the hypervisor. 714 disabled(3) The autostart configuration of the 715 virtual machine is disabled. The virtual 716 machine should not be automatically 717 brought online at the next 718 re-initialization of the hypervisor." 719 SYNTAX INTEGER { 720 unknown(1), 721 enabled(2), 722 disabled(3) 723 } 725 VirtualMachinePersistent ::= TEXTUAL-CONVENTION 726 STATUS current 727 DESCRIPTION 728 "This value indicates whether a virtual machine has a 729 persistent configuration which means the virtual machine 730 will still exist after shutting down: 732 unknown(1) The persistent configuration is unknown, 733 e.g., because the implementation failed 734 to obtain the persistent configuration 735 from the hypervisor. (read-only) 737 persistent(2) The virtual machine is persistent, i.e., 738 the virtual machine will exist after its 739 shutting down. 741 transient(3) The virtual machine is transient, i.e., 742 the virtual machine will not exist after 743 its shutting down." 744 SYNTAX INTEGER { 745 unknown(1), 746 persistent(2), 747 transient(3) 748 } 750 VirtualMachineCpuIndex ::= TEXTUAL-CONVENTION 751 DISPLAY-HINT "d" 752 STATUS current 753 DESCRIPTION 754 "A unique value for each virtual machine, greater than 755 zero, identifying a virtual CPU assigned to a virtual 756 machine. The value for each virtual CPU must remain 757 constant at least from one re-initialization of the 758 hypervisor to the next re-initialization." 759 SYNTAX Integer32 (1..2147483647) 761 VirtualMachineStorageIndex ::= TEXTUAL-CONVENTION 762 DISPLAY-HINT "d" 763 STATUS current 764 DESCRIPTION 765 "A unique value for each virtual machine, greater than 766 zero, identifying a virtual storage device allocated to 767 a virtual machine. The value for each virtual storage 768 device must remain constant at least from one 769 re-initialization of the hypervisor to the next 770 re-initialization." 771 SYNTAX Integer32 (1..2147483647) 773 VirtualMachineStorageSourceType ::= TEXTUAL-CONVENTION 774 STATUS current 775 DESCRIPTION 776 "The source type of a virtual storage device: 778 unknown(1) The source type is unknown, e.g., because 779 the implementation failed to obtain the 780 media type from the hypervisor. 782 other(2) The source type is other than those 783 defined in this conversion. 785 block(3) The source type is a block device. 787 raw(4) The source type is a raw-formatted file. 789 sparse(5) The source type is a sparse file. 791 network(6) The source type is a network device." 792 SYNTAX INTEGER { 793 unknown(1), 794 other(2), 795 block(3), 796 raw(4), 797 sparse(5), 798 network(6) 799 } 801 VirtualMachineStorageAccess ::= TEXTUAL-CONVENTION 802 STATUS current 803 DESCRIPTION 804 "The access permission of a virtual storage: 806 readwrite(1) The virtual storage is a read-write 807 device. 809 readonly(2) The virtual storage is a read-only 810 device." 811 SYNTAX INTEGER { 812 readwrite(1), 813 readonly(2) 814 } 816 VirtualMachineStorageMediaType ::= TEXTUAL-CONVENTION 817 STATUS current 818 DESCRIPTION 819 "The media type of a virtual storage device: 821 unknown(1) The media type is unknown, e.g., because 822 the implementation failed to obtain the 823 media type from the hypervisor. 825 other(2) The media type is other than those 826 defined in this conversion. 828 hardDisk(3) The media type is hard disk. 830 opticalDisk(4) The media type is optical disk." 831 SYNTAX INTEGER { 832 other(1), 833 unknown(2), 834 hardDisk(3), 835 opticalDisk(4) 836 } 838 VirtualMachineNetworkIndex ::= TEXTUAL-CONVENTION 839 DISPLAY-HINT "d" 840 STATUS current 841 DESCRIPTION 842 "A unique value for each virtual machine, greater than 843 zero, identifying a virtual network interface allocated 844 to the virtual machine. The value for each virtual 845 network interface must remain constant at least from one 846 re-initialization of the hypervisor to the next 847 re-initialization." 848 SYNTAX Integer32 (1..2147483647) 850 VirtualMachineList ::= TEXTUAL-CONVENTION 851 DISPLAY-HINT "1x" 852 STATUS current 853 DESCRIPTION 854 "Each octet within this value specifies a set of eight 855 virtual machine vmIndex, with the first octet specifying 856 virtual machine 1 through 8, the second octet specifying 857 virtual machine 9 through 16, etc. Within each octet, 858 the most significant bit represents the lowest numbered 859 vmIndex, and the least significant bit represents the 860 highest numbered vmIndex. Thus, each virtual machine of 861 the host is represented by a single bit within the value 862 of this object. If that bit has a value of '1', then 863 that virtual machine is included in the set of virtual 864 machines; the virtual machine is not included if its bit 865 has a value of '0'." 866 SYNTAX OCTET STRING 868 -- The hypervisor group 869 -- 870 -- A collection of objects common to all hypervisors. 872 -- 873 vmHypervisor OBJECT IDENTIFIER ::= { vmObjects 1 } 875 vmHvSoftware OBJECT-TYPE 876 SYNTAX SnmpAdminString (SIZE (0..255)) 877 MAX-ACCESS read-only 878 STATUS current 879 DESCRIPTION 880 "A textual description of the hypervisor software. This 881 value should not include its version, and it should be 882 included in `vmHvVersion'." 883 ::= { vmHypervisor 1 } 885 vmHvVersion OBJECT-TYPE 886 SYNTAX SnmpAdminString (SIZE (0..255)) 887 MAX-ACCESS read-only 888 STATUS current 889 DESCRIPTION 890 "A textual description of the version of the hypervisor 891 software." 892 ::= { vmHypervisor 2 } 894 vmHvObjectID OBJECT-TYPE 895 SYNTAX OBJECT IDENTIFIER 896 MAX-ACCESS read-only 897 STATUS current 898 DESCRIPTION 899 "The vendor's authoritative identification of the 900 hypervisor software contained in the entity. This value 901 is allocated within the SMI enterprises 902 subtree (1.3.6.1.4.1). Note that this is different from 903 sysObjectID in the SNMPv2-MIB [RFC3418] because 904 sysObjectID is not the identification of the hypervisor 905 software but the device, firmware, or management 906 operating system." 907 ::= { vmHypervisor 3 } 909 vmHvUpTime OBJECT-TYPE 910 SYNTAX TimeTicks 911 MAX-ACCESS read-only 912 STATUS current 913 DESCRIPTION 914 "The time (in centi-seconds) since the hypervisor was 915 last re-initialized. Note that this is different from 916 sysUpTime in the SNMPv2-MIB [RFC3418] and hrSystemUptime 917 in the HOST-RESOURCES-MIB [RFC2790] because sysUpTime is 918 the uptime of the network management portion of the 919 system, and hrSystemUptime is the uptime of the 920 management operating system but not the hypervisor 921 software." 922 ::= { vmHypervisor 4 } 924 -- The virtual machine information 925 -- 926 -- A collection of objects common to all virtual machines. 927 -- 928 vmNumber OBJECT-TYPE 929 SYNTAX Integer32 (0..2147483647) 930 MAX-ACCESS read-only 931 STATUS current 932 DESCRIPTION 933 "The number of virtual machines (regardless of their 934 current state) present on this hypervisor." 935 ::= { vmObjects 2 } 937 vmTableLastChange OBJECT-TYPE 938 SYNTAX TimeTicks 939 MAX-ACCESS read-only 940 STATUS current 941 DESCRIPTION 942 "The value of vmHvUpTime at the time of the last creation 943 or deletion of an entry in the vmTable." 944 ::= { vmObjects 3 } 946 vmTable OBJECT-TYPE 947 SYNTAX SEQUENCE OF VmEntry 948 MAX-ACCESS not-accessible 949 STATUS current 950 DESCRIPTION 951 "A list of virtual machine entries. The number of 952 entries is given by the value of vmNumber." 953 ::= { vmObjects 4 } 955 vmEntry OBJECT-TYPE 956 SYNTAX VmEntry 957 MAX-ACCESS not-accessible 958 STATUS current 959 DESCRIPTION 960 "An entry containing management information applicable 961 to a particular virtual machine." 962 INDEX { vmIndex } 963 ::= { vmTable 1 } 965 VmEntry ::= 966 SEQUENCE { 967 vmIndex VirtualMachineIndex, 968 vmName SnmpAdminString, 969 vmUUID UUIDorZero, 970 vmOSType SnmpAdminString, 971 vmAdminState VirtualMachineAdminState, 972 vmOperState VirtualMachineOperState, 973 vmAutoStart VirtualMachineAutoStart, 974 vmPersistent VirtualMachinePersistent, 975 vmCurCpuNumber Integer32, 976 vmMinCpuNumber Integer32, 977 vmMaxCpuNumber Integer32, 978 vmMemUnit Integer32, 979 vmCurMem Integer32, 980 vmMinMem Integer32, 981 vmMaxMem Integer32, 982 vmUpTime TimeTicks, 983 vmCpuTime Counter64 984 } 986 vmIndex OBJECT-TYPE 987 SYNTAX VirtualMachineIndex 988 MAX-ACCESS not-accessible 989 STATUS current 990 DESCRIPTION 991 "A unique value, greater than zero, identifying the 992 virtual machine. The value assigned to a given virtual 993 machine may not persist across re-initialization of the 994 hypervisor. A command generator must use the vmUUID to 995 identify a given virtual machine of interest." 996 ::= { vmEntry 1 } 998 vmName OBJECT-TYPE 999 SYNTAX SnmpAdminString (SIZE (0..255)) 1000 MAX-ACCESS read-only 1001 STATUS current 1002 DESCRIPTION 1003 "A textual name of the virtual machine." 1004 ::= { vmEntry 2 } 1006 vmUUID OBJECT-TYPE 1007 SYNTAX UUIDorZero 1008 MAX-ACCESS read-only 1009 STATUS current 1010 DESCRIPTION 1011 "The virtual machine's 128-bit UUID or the zero-length 1012 string when a UUID is not available. The UUID if set 1013 must uniquely identify a virtual machine from all other 1014 virtual machines in an administrative region. A 1015 zero-length octet string is returned if no UUID 1016 information is known." 1017 ::= { vmEntry 3 } 1019 vmOSType OBJECT-TYPE 1020 SYNTAX SnmpAdminString (SIZE (0..255)) 1021 MAX-ACCESS read-only 1022 STATUS current 1023 DESCRIPTION 1024 "A textual description containing operating system 1025 information installed on the virtual machine. This 1026 value corresponds to the operating system the hypervisor 1027 assumes to be running when the virtual machine is 1028 started. This may differ from the actual operating 1029 system in case the virtual machine boots into a 1030 different operating system." 1031 ::= { vmEntry 4 } 1033 vmAdminState OBJECT-TYPE 1034 SYNTAX VirtualMachineAdminState 1035 MAX-ACCESS read-write 1036 STATUS current 1037 DESCRIPTION 1038 "The administrative power state of the virtual machine. 1039 Note that a virtual machine is supposed to be resumed 1040 when vmAdminState of the virtual machine is changed from 1041 suspended(2) or paused(3) to running(1)." 1042 ::= { vmEntry 5 } 1044 vmOperState OBJECT-TYPE 1045 SYNTAX VirtualMachineOperState 1046 MAX-ACCESS read-only 1047 STATUS current 1048 DESCRIPTION 1049 "The operational state of the virtual machine." 1050 ::= { vmEntry 6 } 1052 vmAutoStart OBJECT-TYPE 1053 SYNTAX VirtualMachineAutoStart 1054 MAX-ACCESS read-only 1055 STATUS current 1056 DESCRIPTION 1057 "The autostart configuration of the virtual machine. If 1058 this value is enable(2), the virtual machine 1059 automatically starts at the next initialization of the 1060 hypervisor." 1061 ::= { vmEntry 7 } 1063 vmPersistent OBJECT-TYPE 1064 SYNTAX VirtualMachinePersistent 1065 MAX-ACCESS read-only 1066 STATUS current 1067 DESCRIPTION 1068 "This value indicates whether the virtual machine has a 1069 persistent configuration which means the virtual machine 1070 will still exist after its shutdown." 1071 ::= { vmEntry 8 } 1073 vmCurCpuNumber OBJECT-TYPE 1074 SYNTAX Integer32 (0..2147483647) 1075 MAX-ACCESS read-write 1076 STATUS current 1077 DESCRIPTION 1078 "The number of virtual CPUs currently assigned to the 1079 virtual machine. Changes to this object MUST NOT 1080 persist across re-initialization of the hypervisor." 1081 ::= { vmEntry 9 } 1083 vmMinCpuNumber OBJECT-TYPE 1084 SYNTAX Integer32 (-1|0..2147483647) 1085 MAX-ACCESS read-write 1086 STATUS current 1087 DESCRIPTION 1088 "The minimum number of virtual CPUs that are assigned to 1089 the virtual machine when it is in a power-on state. The 1090 value -1 indicates that there is no hard boundary for 1091 the minimum number of virtual CPUs. Changes to this 1092 object MUST NOT persist across re-initialization of the 1093 hypervisor." 1094 ::= { vmEntry 10 } 1096 vmMaxCpuNumber OBJECT-TYPE 1097 SYNTAX Integer32 (-1|0..2147483647) 1098 MAX-ACCESS read-write 1099 STATUS current 1100 DESCRIPTION 1101 "The maximum number of virtual CPUs that are assigned to 1102 the virtual machine when it is in a power-on state. The 1103 value -1 indicates that there is no limit. Changes to 1104 this object MUST NOT persist across re-initialization of 1105 the hypervisor." 1106 ::= { vmEntry 11 } 1108 vmMemUnit OBJECT-TYPE 1109 SYNTAX Integer32 (1..2147483647) 1110 MAX-ACCESS read-only 1111 STATUS current 1112 DESCRIPTION 1113 "The multiplication unit for vmCurMem, vmMinMem, and 1114 vmMaxMem. For example, when this value is 1024, the 1115 memory size unit for vmCurMem, vmMinMem, and vmMaxMem is 1116 KiB." 1117 ::= { vmEntry 12 } 1119 vmCurMem OBJECT-TYPE 1120 SYNTAX Integer32 (0..2147483647) 1121 MAX-ACCESS read-write 1122 STATUS current 1123 DESCRIPTION 1124 "The current memory size currently allocated to the 1125 virtual memory module in the unit designated by 1126 vmMemUnit. Changes to this object MUST NOT persist 1127 across re-initialization of the hypervisor." 1128 ::= { vmEntry 13 } 1130 vmMinMem OBJECT-TYPE 1131 SYNTAX Integer32 (-1|0..2147483647) 1132 MAX-ACCESS read-write 1133 STATUS current 1134 DESCRIPTION 1135 "The minimum memory size defined to the virtual machine 1136 in the unit designated by vmMemUnit. The value -1 1137 indicates that there is no hard boundary for the minimum 1138 memory size. Changes to this object MUST NOT persist 1139 across re-initialization of the hypervisor." 1140 ::= { vmEntry 14 } 1142 vmMaxMem OBJECT-TYPE 1143 SYNTAX Integer32 (-1|0..2147483647) 1144 MAX-ACCESS read-write 1145 STATUS current 1146 DESCRIPTION 1147 "The maximum memory size defined to the virtual machine 1148 in the unit designated by vmMemUnit. The value -1 1149 indicates that there is no limit. Changes to this 1150 object MUST NOT persist across re-initialization of the 1151 hypervisor." 1152 ::= { vmEntry 15 } 1154 vmUpTime OBJECT-TYPE 1155 SYNTAX TimeTicks 1156 MAX-ACCESS read-only 1157 STATUS current 1158 DESCRIPTION 1159 "The time (in centi-seconds) since the administrative 1160 state of the virtual machine was last changed from 1161 shutdown(4) to running(1)." 1162 ::= { vmEntry 16 } 1164 vmCpuTime OBJECT-TYPE 1165 SYNTAX Counter64 1166 UNITS "microsecond" 1167 MAX-ACCESS read-only 1168 STATUS current 1169 DESCRIPTION 1170 "The total CPU time used in microsecond. If the number 1171 of virtual CPUs is larger than 1, vmCpuTime may exceed 1172 real time. 1174 Discontinuities in the value of this counter can occur 1175 at re-initialization of the hypervisor, and 1176 administrative state (vmAdminState) changes of the 1177 virtual machine." 1178 ::= { vmEntry 17 } 1180 -- The virtual CPU on each virtual machines 1181 vmCpuTable OBJECT-TYPE 1182 SYNTAX SEQUENCE OF VmCpuEntry 1183 MAX-ACCESS not-accessible 1184 STATUS current 1185 DESCRIPTION 1186 "The table of virtual CPUs provided by the hypervisor." 1187 ::= { vmObjects 5 } 1189 vmCpuEntry OBJECT-TYPE 1190 SYNTAX VmCpuEntry 1191 MAX-ACCESS not-accessible 1192 STATUS current 1193 DESCRIPTION 1194 "An entry for one virtual processor assigned to a 1195 virtual machine." 1196 INDEX { vmIndex, vmCpuIndex } 1197 ::= { vmCpuTable 1 } 1199 VmCpuEntry ::= 1200 SEQUENCE { 1201 vmCpuIndex VirtualMachineCpuIndex, 1202 vmCpuCoreTime Counter64 1203 } 1205 vmCpuIndex OBJECT-TYPE 1206 SYNTAX VirtualMachineCpuIndex 1207 MAX-ACCESS not-accessible 1208 STATUS current 1209 DESCRIPTION 1210 "A unique value identifying a virtual CPU assigned to 1211 the virtual machine." 1212 ::= { vmCpuEntry 1 } 1214 vmCpuCoreTime OBJECT-TYPE 1215 SYNTAX Counter64 1216 UNITS "microsecond" 1217 MAX-ACCESS read-only 1218 STATUS current 1219 DESCRIPTION 1220 "The total CPU time used by this virtual CPU in 1221 microsecond. 1223 Discontinuities in the value of this counter can occur 1224 at re-initialization of the hypervisor, and 1225 administrative state (vmAdminState) changes of the 1226 virtual machine." 1227 ::= { vmCpuEntry 2 } 1229 -- The virtual CPU affinity on each virtual machines 1230 vmCpuAffinityTable OBJECT-TYPE 1231 SYNTAX SEQUENCE OF VmCpuAffinityEntry 1232 MAX-ACCESS not-accessible 1233 STATUS current 1234 DESCRIPTION 1235 "A list of CPU affinity entries of a virtual CPU." 1236 ::= { vmObjects 6 } 1238 vmCpuAffinityEntry OBJECT-TYPE 1239 SYNTAX VmCpuAffinityEntry 1240 MAX-ACCESS not-accessible 1241 STATUS current 1242 DESCRIPTION 1243 "An entry containing CPU affinity associated with a 1244 particular virtual machine." 1245 INDEX { vmIndex, vmCpuIndex, vmCpuPhysIndex } 1246 ::= { vmCpuAffinityTable 1 } 1248 VmCpuAffinityEntry ::= 1249 SEQUENCE { 1250 vmCpuPhysIndex Integer32, 1251 vmCpuAffinity Integer32 1252 } 1254 vmCpuPhysIndex OBJECT-TYPE 1255 SYNTAX Integer32 (1..2147483647) 1256 MAX-ACCESS not-accessible 1257 STATUS current 1258 DESCRIPTION 1259 "A value identifying a physical CPU on the hypervisor. 1260 On systems implementing the HOST-RESOURCES-MIB, the 1261 value must be the same value that is used as the index 1262 in the hrProcessorTable (hrDeviceIndex)." 1263 ::= { vmCpuAffinityEntry 2 } 1265 vmCpuAffinity OBJECT-TYPE 1266 SYNTAX INTEGER { 1267 unknown(0), -- unknown 1268 enable(1), -- enabled 1269 disable(2) -- disabled 1270 } 1271 MAX-ACCESS read-write 1272 STATUS current 1273 DESCRIPTION 1274 "The CPU affinity of this virtual CPU to the physical 1275 CPU represented by `vmCpuPhysIndex'." 1276 ::= { vmCpuAffinityEntry 3 } 1278 -- The virtual storage devices on each virtual machine. This 1279 -- document defines some overlapped objects with hrStorage in 1280 -- HOST-RESOURCES-MIB [RFC2790], because virtual resources shall be 1281 -- allocated from the hypervisor's resources, which is the `host 1282 -- resources' 1283 vmStorageTable OBJECT-TYPE 1284 SYNTAX SEQUENCE OF VmStorageEntry 1285 MAX-ACCESS not-accessible 1286 STATUS current 1287 DESCRIPTION 1288 "The conceptual table of virtual storage devices 1289 attached to the virtual machine." 1290 ::= { vmObjects 7 } 1292 vmStorageEntry OBJECT-TYPE 1293 SYNTAX VmStorageEntry 1294 MAX-ACCESS not-accessible 1295 STATUS current 1296 DESCRIPTION 1297 "An entry for one virtual storage device attached to the 1298 virtual machine." 1299 INDEX { vmStorageVmIndex, vmStorageIndex } 1300 ::= { vmStorageTable 1 } 1302 VmStorageEntry ::= 1303 SEQUENCE { 1304 vmStorageVmIndex VirtualMachineIndexOrZero, 1305 vmStorageIndex VirtualMachineStorageIndex, 1306 vmStorageParent Integer32, 1307 vmStorageSourceType VirtualMachineStorageSourceType, 1308 vmStorageSourceTypeString 1309 SnmpAdminString, 1310 vmStorageResourceID SnmpAdminString, 1311 vmStorageAccess VirtualMachineStorageAccess, 1312 vmStorageMediaType VirtualMachineStorageMediaType, 1313 vmStorageMediaTypeString 1314 SnmpAdminString, 1315 vmStorageSizeUnit Integer32, 1316 vmStorageDefinedSize Integer32, 1317 vmStorageAllocatedSize Integer32, 1318 vmStorageReadIOs Counter64, 1319 vmStorageWriteIOs Counter64 1320 } 1322 vmStorageVmIndex OBJECT-TYPE 1323 SYNTAX VirtualMachineIndexOrZero 1324 MAX-ACCESS not-accessible 1325 STATUS current 1326 DESCRIPTION 1327 "This value identifies the virtual machine (guest) this 1328 storage device has been allocated to. The value zero 1329 indicates that the storage device is currently not 1330 allocated to any virtual machines." 1331 ::= { vmStorageEntry 1 } 1333 vmStorageIndex OBJECT-TYPE 1334 SYNTAX VirtualMachineStorageIndex 1335 MAX-ACCESS not-accessible 1336 STATUS current 1337 DESCRIPTION 1338 "A unique value identifying a virtual storage device 1339 allocated to the virtual machine." 1340 ::= { vmStorageEntry 2 } 1342 vmStorageParent OBJECT-TYPE 1343 SYNTAX Integer32 (0..2147483647) 1344 MAX-ACCESS read-only 1345 STATUS current 1346 DESCRIPTION 1347 "The value of hrStorageIndex which is the parent (i.e., 1348 physical) device of this virtual device on systems 1349 implementing the HOST-RESOURCES-MIB. The value zero 1350 denotes this virtual device is not any child represented 1351 in the hrStorageTable." 1352 ::= { vmStorageEntry 3 } 1354 vmStorageSourceType OBJECT-TYPE 1355 SYNTAX VirtualMachineStorageSourceType 1356 MAX-ACCESS read-only 1357 STATUS current 1358 DESCRIPTION 1359 "The source type of the virtual storage device." 1360 ::= { vmStorageEntry 4 } 1362 vmStorageSourceTypeString OBJECT-TYPE 1363 SYNTAX SnmpAdminString (SIZE (0..255)) 1364 MAX-ACCESS read-only 1365 STATUS current 1366 DESCRIPTION 1367 "A (detailed) textual string of the source type of the 1368 virtual storage device. For example, this represents 1369 the specific format name of the sparse file." 1370 ::= { vmStorageEntry 5 } 1372 vmStorageResourceID OBJECT-TYPE 1373 SYNTAX SnmpAdminString (SIZE (0..255)) 1374 MAX-ACCESS read-only 1375 STATUS current 1376 DESCRIPTION 1377 "A textual string that represents the resource 1378 identifier of the virtual storage. For example, this 1379 contains the path to the disk image file that 1380 corresponds to the virtual storage." 1381 ::= { vmStorageEntry 6 } 1383 vmStorageAccess OBJECT-TYPE 1384 SYNTAX VirtualMachineStorageAccess 1385 MAX-ACCESS read-only 1386 STATUS current 1387 DESCRIPTION 1388 "The access permission of the virtual storage device." 1389 ::= { vmStorageEntry 7 } 1391 vmStorageMediaType OBJECT-TYPE 1392 SYNTAX VirtualMachineStorageMediaType 1393 MAX-ACCESS read-only 1394 STATUS current 1395 DESCRIPTION 1396 "The media type of the virtual storage device." 1397 ::= { vmStorageEntry 8 } 1399 vmStorageMediaTypeString OBJECT-TYPE 1400 SYNTAX SnmpAdminString (SIZE (0..255)) 1401 MAX-ACCESS read-only 1402 STATUS current 1403 DESCRIPTION 1404 "A (detailed) textual string of the virtual storage 1405 media. For example, this represents the specific driver 1406 name of the emulated media such as `IDE' and `SCSI'." 1407 ::= { vmStorageEntry 9 } 1409 vmStorageSizeUnit OBJECT-TYPE 1410 SYNTAX Integer32 (1..2147483647) 1411 MAX-ACCESS read-only 1412 STATUS current 1413 DESCRIPTION 1414 "The multiplication unit for vmStorageDefinedSize and 1415 vmStorageAllocatedSize. For example, when this value is 1416 1048576, the storage size unit for vmStorageDefinedSize 1417 and vmStorageAllocatedSize is MiB." 1418 ::= { vmStorageEntry 10 } 1420 vmStorageDefinedSize OBJECT-TYPE 1421 SYNTAX Integer32 (-1|0..2147483647) 1422 MAX-ACCESS read-only 1423 STATUS current 1424 DESCRIPTION 1425 "The defined virtual storage size defined in the unit 1426 designated by vmStorageSizeUnit. If this information is 1427 not available, this value shall be -1." 1428 ::= { vmStorageEntry 11 } 1430 vmStorageAllocatedSize OBJECT-TYPE 1431 SYNTAX Integer32 (-1|0..2147483647) 1432 MAX-ACCESS read-only 1433 STATUS current 1434 DESCRIPTION 1435 "The storage size allocated to the virtual storage from 1436 a physical storage in the unit designated by 1437 vmStorageSizeUnit. When the virtual storage is block 1438 device or raw file, this value and vmStorageDefinedSize 1439 are supposed to equal. This value MUST NOT be different 1440 from vmStorageDefinedSize when vmStorageSourceType is 1441 `block' or `raw'. If this information is not available, 1442 this value shall be -1." 1443 ::= { vmStorageEntry 12 } 1445 vmStorageReadIOs OBJECT-TYPE 1446 SYNTAX Counter64 1447 MAX-ACCESS read-only 1448 STATUS current 1449 DESCRIPTION 1450 "The number of read I/O requests. 1452 Discontinuities in the value of this counter can occur 1453 at re-initialization of the hypervisor, and 1454 administrative state (vmAdminState) changes of the 1455 virtual machine." 1456 ::= { vmStorageEntry 13 } 1458 vmStorageWriteIOs OBJECT-TYPE 1459 SYNTAX Counter64 1460 MAX-ACCESS read-only 1461 STATUS current 1462 DESCRIPTION 1463 "The number of write I/O requests. 1465 Discontinuities in the value of this counter can occur 1466 at re-initialization of the hypervisor, and 1467 administrative state (vmAdminState) changes of the 1468 virtual machine." 1469 ::= { vmStorageEntry 14 } 1471 -- The virtual network interfaces on each virtual machine. 1472 vmNetworkTable OBJECT-TYPE 1473 SYNTAX SEQUENCE OF VmNetworkEntry 1474 MAX-ACCESS not-accessible 1475 STATUS current 1476 DESCRIPTION 1477 "The conceptual table of virtual network interfaces 1478 attached to the virtual machine." 1479 ::= { vmObjects 8 } 1481 vmNetworkEntry OBJECT-TYPE 1482 SYNTAX VmNetworkEntry 1483 MAX-ACCESS not-accessible 1484 STATUS current 1485 DESCRIPTION 1486 "An entry for one virtual network interfaces attached to 1487 the virtual machine." 1488 INDEX { vmIndex, vmNetworkIndex } 1489 ::= { vmNetworkTable 1 } 1491 VmNetworkEntry ::= 1492 SEQUENCE { 1493 vmNetworkIndex VirtualMachineNetworkIndex, 1494 vmNetworkIfIndex InterfaceIndexOrZero, 1495 vmNetworkParent InterfaceIndexOrZero, 1496 vmNetworkModel SnmpAdminString, 1497 vmNetworkPhysAddress PhysAddress 1498 } 1500 vmNetworkIndex OBJECT-TYPE 1501 SYNTAX VirtualMachineNetworkIndex 1502 MAX-ACCESS not-accessible 1503 STATUS current 1504 DESCRIPTION 1505 "A unique value identifying a virtual network interface 1506 allocated to the virtual machine." 1507 ::= { vmNetworkEntry 1 } 1509 vmNetworkIfIndex OBJECT-TYPE 1510 SYNTAX InterfaceIndexOrZero 1511 MAX-ACCESS read-only 1512 STATUS current 1513 DESCRIPTION 1514 "The value of ifIndex which corresponds to this virtual 1515 network interface. If this device is not represented in 1516 the ifTable, then this value shall be zero." 1517 ::= { vmNetworkEntry 2 } 1519 vmNetworkParent OBJECT-TYPE 1520 SYNTAX InterfaceIndexOrZero 1521 MAX-ACCESS read-only 1522 STATUS current 1523 DESCRIPTION 1524 "The value of ifIndex which corresponds to the parent 1525 (i.e., physical) device of this virtual device on. The 1526 value zero denotes this virtual device is not any child 1527 represented in the ifTable." 1528 ::= { vmNetworkEntry 3 } 1530 vmNetworkModel OBJECT-TYPE 1531 SYNTAX SnmpAdminString (SIZE (0..255)) 1532 MAX-ACCESS read-only 1533 STATUS current 1534 DESCRIPTION 1535 "A textual string containing the (emulated) model of 1536 virtual network interface. For example, this value is 1537 `virtio' when the emulation driver model is virtio." 1538 ::= { vmNetworkEntry 4 } 1540 vmNetworkPhysAddress OBJECT-TYPE 1541 SYNTAX PhysAddress 1542 MAX-ACCESS read-only 1543 STATUS current 1544 DESCRIPTION 1545 "The MAC address of the virtual network interface." 1546 ::= { vmNetworkEntry 5 } 1548 -- Notification definitions: 1550 vmPerVMNotificationsEnabled 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 virtual machine." 1557 ::= { vmObjects 9 } 1559 vmBulkNotificationsEnabled OBJECT-TYPE 1560 SYNTAX TruthValue 1561 MAX-ACCESS read-write 1562 STATUS current 1563 DESCRIPTION 1564 "Indicates if notification generator will send 1565 notifications per set of virtual machines." 1566 ::= { vmObjects 10 } 1568 vmAffectedVMs OBJECT-TYPE 1569 SYNTAX VirtualMachineList 1570 MAX-ACCESS accessible-for-notify 1571 STATUS current 1572 DESCRIPTION 1573 "A complete list of virtual machines whose state has 1574 changed. This object is the only object sent with bulk 1575 notifications." 1576 ::= { vmObjects 11 } 1578 vmRunning NOTIFICATION-TYPE 1579 OBJECTS { 1580 vmName, 1581 vmUUID, 1582 vmOperState 1583 } 1584 STATUS current 1585 DESCRIPTION 1586 "This notification is generated when the operational 1587 state of a virtual machine has been changed to 1588 running(4) from some other state. The other state is 1589 indicated by the included value of vmOperState." 1591 ::= { vmNotifications 1 } 1593 vmShutdown NOTIFICATION-TYPE 1594 OBJECTS { 1595 vmName, 1596 vmUUID, 1597 vmOperState 1598 } 1599 STATUS current 1600 DESCRIPTION 1601 "This notification is generated when the operational 1602 state of a virtual machine has been changed to 1603 shutdown(12) from some other state. The other state is 1604 indicated by the included value of vmOperState." 1605 ::= { vmNotifications 2 } 1607 vmShuttingdown NOTIFICATION-TYPE 1608 OBJECTS { 1609 vmName, 1610 vmUUID, 1611 vmOperState 1612 } 1613 STATUS current 1614 DESCRIPTION 1615 "This notification is generated when the operational 1616 state of a virtual machine has been changed to 1617 shuttingdown(11) from some other state. The other state 1618 is indicated by the included value of vmOperState." 1619 ::= { vmNotifications 3 } 1621 vmPaused NOTIFICATION-TYPE 1622 OBJECTS { 1623 vmName, 1624 vmUUID, 1625 vmOperState 1626 } 1627 STATUS current 1628 DESCRIPTION 1629 "This notification is generated when the operational 1630 state of a virtual machine has been changed to 1631 paused(9) from some other state. The other state is 1632 indicated by the included value of vmOperState." 1633 ::= { vmNotifications 4 } 1635 vmSuspending NOTIFICATION-TYPE 1636 OBJECTS { 1637 vmName, 1638 vmUUID, 1639 vmOperState 1640 } 1641 STATUS current 1642 DESCRIPTION 1643 "This notification is generated when the operational 1644 state of a virtual machine has been changed to 1645 suspending(6) from some other state. The other state is 1646 indicated by the included value of vmOperState." 1647 ::= { vmNotifications 5 } 1649 vmSuspended NOTIFICATION-TYPE 1650 OBJECTS { 1651 vmName, 1652 vmUUID, 1653 vmOperState 1654 } 1655 STATUS current 1656 DESCRIPTION 1657 "This notification is generated when the operational 1658 state of a virtual machine has been changed to 1659 suspended(7) from some other state. The other state is 1660 indicated by the included value of vmOperState." 1661 ::= { vmNotifications 6 } 1663 vmResuming NOTIFICATION-TYPE 1664 OBJECTS { 1665 vmName, 1666 vmUUID, 1667 vmOperState 1668 } 1669 STATUS current 1670 DESCRIPTION 1671 "This notification is generated when the operational 1672 state of a virtual machine has been changed to 1673 resuming(8) from some other state. The other state is 1674 indicated by the included value of vmOperState." 1675 ::= { vmNotifications 7 } 1677 vmMigrating NOTIFICATION-TYPE 1678 OBJECTS { 1679 vmName, 1680 vmUUID, 1681 vmOperState 1682 } 1683 STATUS current 1684 DESCRIPTION 1685 "This notification is generated when the operational 1686 state of a virtual machine has been changed to 1687 migrating(10) from some other state. The other state is 1688 indicated by the included value of vmOperState." 1689 ::= { vmNotifications 8 } 1691 vmCrashed NOTIFICATION-TYPE 1692 OBJECTS { 1693 vmName, 1694 vmUUID, 1695 vmOperState 1696 } 1697 STATUS current 1698 DESCRIPTION 1699 "This notification is generated when a virtual machine 1700 has been crashed. The previos state of the virtual 1701 machine is indicated by the included value of 1702 vmOperState." 1703 ::= { vmNotifications 9 } 1705 vmBlocked NOTIFICATION-TYPE 1706 OBJECTS { 1707 vmName, 1708 vmUUID, 1709 vmOperState 1710 } 1711 STATUS current 1712 DESCRIPTION 1713 "This notification is generated when the operational 1714 state of a virtual machine has been changed to 1715 blocked(5). The previos state of the virtual machine is 1716 indicated by the included value of vmOperState." 1717 ::= { vmNotifications 10 } 1719 vmDeleted NOTIFICATION-TYPE 1720 OBJECTS { 1721 vmName, 1722 vmUUID, 1723 vmOperState, 1724 vmPersistent 1725 } 1726 STATUS current 1727 DESCRIPTION 1728 "This notification is generated when a virtual machine 1729 has been deleted. The prior state of the virtual 1730 machine is indicated by the included value of 1731 vmOperState." 1732 ::= { vmNotifications 11 } 1734 vmBulkRunning NOTIFICATION-TYPE 1735 OBJECTS { 1736 vmAffectedVMs 1737 } 1738 STATUS current 1739 DESCRIPTION 1740 "This notification is generated when the operational 1741 state of one or more virtual machine has been changed to 1742 running(4) from a all prior states except for 1743 running(4). Management stations are encouraged to 1744 subsequently poll the subset of virtual machines of 1745 interest for vmOperState." 1746 ::= { vmNotifications 12 } 1748 vmBulkShuttingdown NOTIFICATION-TYPE 1749 OBJECTS { 1750 vmAffectedVMs 1751 } 1752 STATUS current 1753 DESCRIPTION 1754 "This notification is generated when the operational 1755 state of one or more virtual machine has been changed to 1756 shuttingdown(11) from a state other than 1757 shuttingdown(11). Management stations are encouraged to 1758 subsequently poll the subset of virtual machines of 1759 interest for vmOperState." 1760 ::= { vmNotifications 13 } 1762 vmBulkShutdown NOTIFICATION-TYPE 1763 OBJECTS { 1764 vmAffectedVMs 1765 } 1766 STATUS current 1767 DESCRIPTION 1768 "This notification is generated when the operational 1769 state of one or more virtual machine has been changed to 1770 shutdown(12) from a state other than shutdown(12). 1771 Management stations are encouraged to subsequently poll 1772 the subset of virtual machines of interest for 1773 vmOperState." 1774 ::= { vmNotifications 14 } 1776 vmBulkPaused NOTIFICATION-TYPE 1777 OBJECTS { 1778 vmAffectedVMs 1779 } 1780 STATUS current 1781 DESCRIPTION 1782 "This notification is generated when the operational 1783 state of one or more virtual machines have been changed 1784 to paused(9) from a state other than paused(9). 1785 Management stations are encouraged to subsequently poll 1786 the subset of virtual machines of interest for 1787 vmOperState." 1788 ::= { vmNotifications 15 } 1790 vmBulkSuspending NOTIFICATION-TYPE 1791 OBJECTS { 1792 vmAffectedVMs 1793 } 1794 STATUS current 1795 DESCRIPTION 1796 "This notification is generated when the operational 1797 state of one or more virtual machines have been changed 1798 to suspending(6) from a state other than suspending(6). 1799 Management stations are encouraged to subsequently poll 1800 the subset of virtual machines of interest for 1801 vmOperState." 1802 ::= { vmNotifications 16 } 1804 vmBulkSuspended NOTIFICATION-TYPE 1805 OBJECTS { 1806 vmAffectedVMs 1807 } 1808 STATUS current 1809 DESCRIPTION 1810 "This notification is generated when the operational 1811 state of one or more virtual machines have been changed 1812 to suspended(7) from a state other than suspended(7). 1813 Management stations are encouraged to subsequently poll 1814 the subset of virtual machines of interest for 1815 vmOperState." 1816 ::= { vmNotifications 17 } 1818 vmBulkResuming NOTIFICATION-TYPE 1819 OBJECTS { 1820 vmAffectedVMs 1821 } 1822 STATUS current 1823 DESCRIPTION 1824 "This notification is generated when the operational 1825 state of one or more virtual machines have been changed 1826 to resuming(8) from a state other than resuming(8). 1827 Management stations are encouraged to subsequently poll 1828 the subset of virtual machines of interest for 1829 vmOperState." 1831 ::= { vmNotifications 18 } 1833 vmBulkMigrating NOTIFICATION-TYPE 1834 OBJECTS { 1835 vmAffectedVMs 1836 } 1837 STATUS current 1838 DESCRIPTION 1839 "This notification is generated when the operational 1840 state of one or more virtual machines have been changed 1841 to migrating(10) from a state other than migrating(10). 1842 Management stations are encouraged to subsequently poll 1843 the subset of virtual machines of interest for 1844 vmOperState." 1845 ::= { vmNotifications 19 } 1847 vmBulkCrashed NOTIFICATION-TYPE 1848 OBJECTS { 1849 vmAffectedVMs 1850 } 1851 STATUS current 1852 DESCRIPTION 1853 "This notification is generated when one or more virtual 1854 machines have been crashed. Management stations are 1855 encouraged to subsequently poll the subset of virtual 1856 machines of interest for vmOperState." 1857 ::= { vmNotifications 20 } 1859 vmBulkBlocked NOTIFICATION-TYPE 1860 OBJECTS { 1861 vmAffectedVMs 1862 } 1863 STATUS current 1864 DESCRIPTION 1865 "This notification is generated when the operational 1866 state of one or more virtual machines have been changed 1867 to blocked(5) from a state other than blocked(5). 1868 Management stations are encouraged to subsequently poll 1869 the subset of virtual machines of interest for 1870 vmOperState." 1871 ::= { vmNotifications 21 } 1873 vmBulkDeleted NOTIFICATION-TYPE 1874 OBJECTS { 1875 vmAffectedVMs 1876 } 1877 STATUS current 1878 DESCRIPTION 1879 "This notification is generated when one or more virtual 1880 machines have been deleted. Management stations are 1881 encouraged to subsequently poll the subset of virtual 1882 machines of interest for vmOperState." 1883 ::= { vmNotifications 22 } 1885 -- Compliance definitions: 1886 vmCompliances OBJECT IDENTIFIER ::= { vmConformance 1 } 1887 vmGroups OBJECT IDENTIFIER ::= { vmConformance 2 } 1889 vmFullCompliances MODULE-COMPLIANCE 1890 STATUS current 1891 DESCRIPTION 1892 "Compliance statement for implementations supporting 1893 read/write access, according to the object definitions." 1894 MODULE -- this module 1895 MANDATORY-GROUPS { 1896 vmHypervisorGroup, 1897 vmVirtualMachineGroup, 1898 vmCpuGroup, 1899 vmCpuAffinityGroup, 1900 vmStorageGroup, 1901 vmNetworkGroup 1902 } 1903 GROUP vmPerVMNotificationOptionalGroup 1904 DESCRIPTION 1905 "Support for per-VM notifications is optional. If not 1906 implemented then vmPerVMNotificationsEnabled must report 1907 false(2)." 1908 GROUP vmBulkNotificationsVariablesGroup 1909 DESCRIPTION 1910 "Necessary only if vmPerVMNotificationOptionalGroup is 1911 implemented." 1912 GROUP vmBulkNotificationOptionalGroup 1913 DESCRIPTION 1914 "Support for bulk notifications is optional. If not 1915 implemented then vmBulkNotificationsEnabled must report 1916 false(2)." 1918 ::= { vmCompliances 1 } 1920 vmReadOnlyCompliances MODULE-COMPLIANCE 1921 STATUS current 1922 DESCRIPTION 1923 "Compliance statement for implementations supporting 1924 only readonly access." 1925 MODULE -- this module 1926 MANDATORY-GROUPS { 1927 vmHypervisorGroup, 1928 vmVirtualMachineGroup, 1929 vmCpuGroup, 1930 vmCpuAffinityGroup, 1931 vmStorageGroup, 1932 vmNetworkGroup 1933 } 1935 OBJECT vmAdminState 1936 MIN-ACCESS read-only 1937 DESCRIPTION 1938 "Write access is not required." 1940 OBJECT vmCurCpuNumber 1941 MIN-ACCESS read-only 1942 DESCRIPTION 1943 "Write access is not required." 1945 OBJECT vmMinCpuNumber 1946 MIN-ACCESS read-only 1947 DESCRIPTION 1948 "Write access is not required." 1950 OBJECT vmMaxCpuNumber 1951 MIN-ACCESS read-only 1952 DESCRIPTION 1953 "Write access is not required." 1955 OBJECT vmCurMem 1956 MIN-ACCESS read-only 1957 DESCRIPTION 1958 "Write access is not required." 1960 OBJECT vmMinMem 1961 MIN-ACCESS read-only 1962 DESCRIPTION 1963 "Write access is not required." 1965 OBJECT vmMaxMem 1966 MIN-ACCESS read-only 1967 DESCRIPTION 1968 "Write access is not required." 1970 OBJECT vmCpuAffinity 1971 MIN-ACCESS read-only 1972 DESCRIPTION 1973 "Write access is not required." 1975 OBJECT vmPerVMNotificationsEnabled 1976 MIN-ACCESS read-only 1977 DESCRIPTION 1978 "Write access is not required." 1980 OBJECT vmBulkNotificationsEnabled 1981 MIN-ACCESS read-only 1982 DESCRIPTION 1983 "Write access is not required." 1984 ::= { vmCompliances 2 } 1986 vmHypervisorGroup OBJECT-GROUP 1987 OBJECTS { 1988 vmHvSoftware, 1989 vmHvVersion, 1990 vmHvObjectID, 1991 vmHvUpTime, 1992 vmNumber, 1993 vmTableLastChange, 1994 vmPerVMNotificationsEnabled, 1995 vmBulkNotificationsEnabled 1996 } 1997 STATUS current 1998 DESCRIPTION 1999 "A collection of objects providing insight into the 2000 hypervisor itself." 2001 ::= { vmGroups 1 } 2003 vmVirtualMachineGroup OBJECT-GROUP 2004 OBJECTS { 2005 -- vmIndex 2006 vmName, 2007 vmUUID, 2008 vmOSType, 2009 vmAdminState, 2010 vmOperState, 2011 vmAutoStart, 2012 vmPersistent, 2013 vmCurCpuNumber, 2014 vmMinCpuNumber, 2015 vmMaxCpuNumber, 2016 vmMemUnit, 2017 vmCurMem, 2018 vmMinMem, 2019 vmMaxMem, 2020 vmUpTime, 2021 vmCpuTime 2022 } 2023 STATUS current 2024 DESCRIPTION 2025 "A collection of objects providing insight into the 2026 virtual machines) controlled by a hypervisor." 2027 ::= { vmGroups 2 } 2029 vmCpuGroup OBJECT-GROUP 2030 OBJECTS { 2031 -- vmCpuIndex, 2032 vmCpuCoreTime 2033 } 2034 STATUS current 2035 DESCRIPTION 2036 "A collection of objects providing insight into the 2037 virtual machines) controlled by a hypervisor." 2038 ::= { vmGroups 3 } 2040 vmCpuAffinityGroup OBJECT-GROUP 2041 OBJECTS { 2042 -- vmCpuPhysIndex, 2043 vmCpuAffinity 2044 } 2045 STATUS current 2046 DESCRIPTION 2047 "A collection of objects providing insight into the 2048 virtual machines) controlled by a hypervisor." 2049 ::= { vmGroups 4 } 2051 vmStorageGroup OBJECT-GROUP 2052 OBJECTS { 2053 -- vmStorageVmIndex, 2054 -- vmStorageIndex, 2055 vmStorageParent, 2056 vmStorageSourceType, 2057 vmStorageSourceTypeString, 2058 vmStorageResourceID, 2059 vmStorageAccess, 2060 vmStorageMediaType, 2061 vmStorageMediaTypeString, 2062 vmStorageSizeUnit, 2063 vmStorageDefinedSize, 2064 vmStorageAllocatedSize, 2065 vmStorageReadIOs, 2066 vmStorageWriteIOs 2067 } 2068 STATUS current 2069 DESCRIPTION 2070 "A collection of objects providing insight into the 2071 virtual storage devices controlled by a hypervisor." 2072 ::= { vmGroups 5 } 2074 vmNetworkGroup OBJECT-GROUP 2075 OBJECTS { 2076 -- vmNetworkIndex, 2077 vmNetworkIfIndex, 2078 vmNetworkParent, 2079 vmNetworkModel, 2080 vmNetworkPhysAddress 2081 } 2082 STATUS current 2083 DESCRIPTION 2084 "A collection of objects providing insight into the 2085 virtual network interfaces controlled by a hypervisor." 2086 ::= { vmGroups 6 } 2088 vmPerVMNotificationOptionalGroup NOTIFICATION-GROUP 2089 NOTIFICATIONS { 2090 vmRunning, 2091 vmShuttingdown, 2092 vmShutdown, 2093 vmPaused, 2094 vmSuspending, 2095 vmSuspended, 2096 vmResuming, 2097 vmMigrating, 2098 vmCrashed, 2099 vmBlocked, 2100 vmDeleted 2101 } 2102 STATUS current 2103 DESCRIPTION 2104 "A collection of notifications for per-VM notification 2105 of changes to virtual machine state (vmOperState) as 2106 reported by a hypervisor." 2107 ::= { vmGroups 7 } 2109 vmBulkNotificationsVariablesGroup OBJECT-GROUP 2110 OBJECTS { 2111 vmAffectedVMs 2112 } 2113 STATUS current 2114 DESCRIPTION 2115 "The variables used in vmBulkNotificationOptionalGroup 2116 virtual network interfaces controlled by a hypervisor." 2117 ::= { vmGroups 8 } 2119 vmBulkNotificationOptionalGroup NOTIFICATION-GROUP 2120 NOTIFICATIONS { 2121 vmBulkRunning, 2122 vmBulkShuttingdown, 2123 vmBulkShutdown, 2124 vmBulkPaused, 2125 vmBulkSuspending, 2126 vmBulkSuspended, 2127 vmBulkResuming, 2128 vmBulkMigrating, 2129 vmBulkCrashed, 2130 vmBulkBlocked, 2131 vmBulkDeleted 2132 } 2133 STATUS current 2134 DESCRIPTION 2135 "A collection of notifications for bulk notification of 2136 changes to virtual machine state (vmOperState) as 2137 reported by a given hypervisor." 2138 ::= { vmGroups 9 } 2140 END 2142 7. IANA Considerations 2144 The MIB module in this document uses the following IANA-assigned 2145 OBJECT IDENTIFIER values recorded in the SMI Numbers registry: 2147 Descriptor OBJECT IDENTIFIER value 2148 ---------- ----------------------- 2150 vmMIB { mib-2 TBD } 2152 8. Security Considerations 2154 There are a number of management objects defined in this MIB that 2155 have a MAX-ACCESS clause of read-write and/or read-create. Such 2156 objects may be considered sensitive or vulnerable in some network 2157 environments. The support for SET operations in a non-secure 2158 environment without proper protection can have a negative effect on 2159 hypervisor and virtual machine operations. 2161 There are a number of managed objects in this MIB that may contain 2162 sensitive information. The objects in the vmHvSoftware and 2163 vmHvVersion list information about the hypervisor's software and 2164 version. Some may wish not to disclose to others which software they 2165 are running. Further, an inventory of the running software and 2166 versions may be helpful to an attacker who hopes to exploit software 2167 bugs in certain applications. Moreover, the objects in the vmTable, 2168 vmCpuTable, vmCpuAffinityTable, vmStorageTable and vmNetworkTable 2169 list information about the virtual machines and their virtual 2170 resource allocation. Some may wish not to disclose to others how 2171 many and what virtual machines they are operating. 2173 It is thus important to control even GET access to these objects and 2174 possibly to even encrypt the values of these object when sending them 2175 over the network via SNMP. Not all versions of SNMP provide features 2176 for such a secure environment. 2178 It is recommended that attention be specifically given to 2179 implementing the MAX-ACCESS clause in a number of objects, including 2180 vmAdminState, vmMinCpuNumber, vmMaxCpuNumber, vmMinMem, vmMaxMem, and 2181 vmCpuAffinity in scenarios that DO NOT use SNMPv3 strong security 2182 (i.e. authentication and encryption). Extreme caution must be used 2183 to minimize the risk of cascading security vulnerabilities when 2184 SNMPv3 strong security is not used. When SNMPv3 strong security is 2185 not used, these objects should have access of read-only, not read- 2186 create. 2188 SNMPv1 by itself is not a secure environment. Even if the network 2189 itself is secure (for example by using IPsec), even then, there is no 2190 control as to who on the secure network is allowed to access and GET/ 2191 SET (read/change/create/delete) the objects in this MIB. 2193 It is recommended that the implementers consider the security 2194 features as provided by the SNMPv3 framework. Specifically, the use 2195 of the User-based Security Model [RFC3414] and the View-based Access 2196 Control Model [RFC3415] is recommended. 2198 It is then a customer/user responsibility to ensure that the SNMP 2199 entity giving access to an instance of this MIB, is properly 2200 configured to give access to the objects only to those principals 2201 (users) that have legitimate rights to indeed GET or SET (change/ 2202 create/delete) them. 2204 9. Acknowledgements 2206 The authors like to thank Joe Marcus Clarke, Randy Presuhn, and David 2207 Black for providing helpful comments during the development of this 2208 specification. 2210 Juergen Schoenwaelder was partly funded by Flamingo, a Network of 2211 Excellence project (ICT-318488) supported by the European Commission 2212 under its Seventh Framework Programme. 2214 10. References 2216 10.1. Normative References 2218 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2219 Requirement Levels", BCP 14, RFC 2119, March 1997. 2221 [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. 2222 Schoenwaelder, Ed., "Structure of Management Information 2223 Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. 2225 [RFC2579] McCloghrie, K., Ed., Perkins, D., Ed., and J. 2226 Schoenwaelder, Ed., "Textual Conventions for SMIv2", 2227 STD 58, RFC 2579, April 1999. 2229 [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, 2230 "Conformance Statements for SMIv2", STD 58, RFC 2580, 2231 April 1999. 2233 [RFC2790] Waldbusser, S. and P. Grillo, "Host Resources MIB", 2234 RFC 2790, March 2000. 2236 [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group 2237 MIB", RFC 2863, June 2000. 2239 [RFC3413] Levi, D., Meyer, P., and B. Stewart, "Simple Network 2240 Management Protocol (SNMP) Applications", STD 62, 2241 RFC 3413, December 2002. 2243 [RFC3414] Blumenthal, U. and B. Wijnen, "User-based Security Model 2244 (USM) for version 3 of the Simple Network Management 2245 Protocol (SNMPv3)", STD 62, RFC 3414, December 2002. 2247 [RFC3415] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based 2248 Access Control Model (VACM) for the Simple Network 2249 Management Protocol (SNMP)", STD 62, RFC 3415, 2250 December 2002. 2252 [RFC3418] Presuhn, R., "Management Information Base (MIB) for the 2253 Simple Network Management Protocol (SNMP)", STD 62, 2254 RFC 3418, December 2002. 2256 [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally 2257 Unique IDentifier (UUID) URN Namespace", RFC 4122, 2258 July 2005. 2260 [RFC6933] Bierman, A., Romascanu, D., Quittek, J., and M. 2261 Chandramouli, "Entity MIB (Version 4)", RFC 6933, 2262 May 2013. 2264 10.2. Informative References 2266 [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, 2267 "Introduction and Applicability Statements for Internet- 2268 Standard Management Framework", RFC 3410, December 2002. 2270 Appendix A. State Transition Table 2272 +--------------+----------------+--------------+--------------------+ 2273 | State | Action or | Next state | Notification | 2274 | | (Event) | | | 2275 +--------------+----------------+--------------+--------------------+ 2276 | suspended | running | resuming | vmResuming | | 2277 | | | | vmBulkResuming | 2278 | | | | | 2279 | suspending | (suspend | suspended | vmSuspended | | 2280 | | operation | | vmBulkSuspended | 2281 | | completed) | | | 2282 | | | | | 2283 | running | suspended | suspending | vmSuspending | | 2284 | | | | vmBulkSuspending | 2285 | | | | | 2286 | | shutdown | shuttingdown | vmShuttingdown | | 2287 | | | | vmBulkShuttingdown | 2288 | | | | | 2289 | | destroy | shutdown | vmShutdown | | 2290 | | | | vmBulkShutdown | 2291 | | | | | 2292 | | (migration to | migrating | vmMigrating | | 2293 | | other | | vmBulkMingrating | 2294 | | hypervisor | | | 2295 | | initiated) | | | 2296 | | | | | 2297 | resuming | (resume | running | vmRunning | | 2298 | | opeartion | | vmBulkRunning | 2299 | | completed) | | | 2300 | | | | | 2301 | paused | running | running | vmRunning | | 2302 | | | | vmBulkRunning | 2303 | | | | | 2304 | shuttingdown | (shutdown | shutdown | vmShutdown | | 2305 | | operation | | vmBulkShutdown | 2306 | | completed) | | | 2307 | | | | | 2308 | shutdown | running | running | vmRunning | | 2309 | | | | vmBulkRunning | 2310 | | | | | 2311 | | (if this state | migrating | vmMigrating | | 2312 | | entry is | | vmBulkMigrating | 2313 | | created by a | | | 2314 | | migration | | | 2315 | | operation (*) | | | 2316 | | | | | 2317 | | (deletion | (no state) | vmDeleted | | 2318 | | operation | | vmBulkDeleted | 2319 | | completed) | | | 2320 | | | | | 2321 | migrating | (migration | running | vmRunning | | 2322 | | from other | | vmBulkRunning | 2323 | | hypervisor | | | 2324 | | completed) | | | 2325 | | | | | 2326 | | (migration to | shutdown | vmShutdown | | 2327 | | other | | vmBulkShutdown | 2328 | | hypervisor | | | 2329 | | completed) | | | 2330 | | | | | 2331 | preparing | (preparation | shutdown | vmShutdown | | 2332 | | completed) | | vmBulkShutdown | 2333 | | | | | 2334 | blocked | (blocking | (previous | - | 2335 | | operation | state) | | 2336 | | completed) | | | 2337 | | | | | 2338 | crashed | - | - | - | 2339 | | | | | 2340 | (any) | (blocking | blocked | vmBlocked | | 2341 | | operation | | vmBulkBlocked | 2342 | | initiated) | | | 2343 | | | | | 2344 | | (crashed) | crashed | vmCrashed | | 2345 | | | | vmBulkCrashed | 2346 | | | | | 2347 | (no state) | (preparation | preparing | - | 2348 | | initiated) | | | 2349 | | | | | 2350 | | (migrate from | shutdown (*) | vmShutdown | | 2351 | | other | | vmBulkShutdown | 2352 | | hypervisor | | | 2353 | | initiated) | | | 2354 +--------------+----------------+--------------+--------------------+ 2356 State transition table 2358 Authors' Addresses 2360 Hirochika Asai 2361 The University of Tokyo 2362 7-3-1 Hongo 2363 Bunkyo-ku, Tokyo 113-8656 2364 JP 2366 Phone: +81 3 5841 6748 2367 Email: panda@hongo.wide.ad.jp 2369 Michael MacFaden 2370 VMware Inc. 2372 Email: mrm@vmware.com 2374 Juergen Schoenwaelder 2375 Jacobs University 2376 Campus Ring 1 2377 Bremen 28759 2378 Germany 2380 Email: j.schoenwaelder@jacobs-university.de 2382 Yuji Sekiya 2383 The University of Tokyo 2384 2-11-16 Yayoi 2385 Bunkyo-ku, Tokyo 113-8658 2386 JP 2388 Email: sekiya@wide.ad.jp 2390 Keiichi Shima 2391 IIJ Innovation Institute Inc. 2392 3-13 Kanda-Nishikicho 2393 Chiyoda-ku, Tokyo 101-0054 2394 JP 2396 Email: keiichi@iijlab.net 2397 Tina Tsou 2398 Huawei Technologies (USA) 2399 2330 Central Expressway 2400 Santa Clara CA 95050 2401 USA 2403 Email: tina.tsou.zouting@huawei.com 2405 Cathy Zhou 2406 Huawei Technologies 2407 Bantian, Longgang District 2408 Shenzhen 518129 2409 P.R. China 2411 Email: cathyzhou@huawei.com 2413 Hiroshi Esaki 2414 The University of Tokyo 2415 7-3-1 Hongo 2416 Bunkyo-ku, Tokyo 113-8656 2417 JP 2419 Phone: +81 3 5841 6748 2420 Email: hiroshi@wide.ad.jp