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