Subject: [OPSAWG] draft-asai-vmm-mib-00

From: Hirochika Asai <[email-masked]>
Date: Mon, 30 Jul 2012 17:03:11 +0900

Hi all,

I'm Hirochika Asai, an implementer of the SNMP agent for hypervisors
and virtual machines.
# posted on July 12, 2012

We have submitted an I-D related to our yet another hypervisor MIB.
Please review the following URL for the I-D:
http://www.ietf.org/internet-drafts/draft-asai-vmm-mib-00.txt

I had sent the URL to the MIB definition and our implementation with
libvirt to the mailing list before, but I think you prefer I-D to
personal web pages or repository.  Therefore, we've submitted it
though it's after cut-off and during this IETF meeting.

This I-D include the opinions as an implementer and operator of
hypervisors.  The main differences from
<draft-schoenw-opsawg-vm-mib-01> and our opinions are summarized
as follows:

1. vifIndex
We define vifIndex that is different from the pointers to ifIndex
of IF-MIB and recommended to starting from 1.  This is because is
shall be changed on re-initialization of virtual machines.  So, we
think vmIfIndex is not resilient to the re-initialization and it is
not good as the index.  Moreover, the order of the underlying
interface is not guaranteed to match the order at the virtual
machine.  For example, the order mismatches when vnic1 and vnic2 of
the virtual machine can be assigned to tap101(ifIndex=201) and
tap100(ifIndex=200), respectively.

2. vstorageEntry
We defined the storage information in vstorageEntry but it does not
include a pointer to hrStorageIndex of HOST-RESOURCES-MIB.  This is
because virtual machine's storage is not "host resource" but it is
allocated from host (hypervisor) resource, so we think it is not
appropriate to appear in hrStorageTable.
Open issue: Is it better to define "STORAGE-MIB" that can be commonly
used to all devices (not limited to host resources) like IF-MIB?

3. vcpuTable and vcpuAffinityTable
From the viewpoint of the operation of hypervisors and virtual
machines, the utilization of each virtual CPU and the information on
virtual CPU affinity are much informative to optimize CPU pining.

We are also deploying our implementation to our cloud.  If you are
interested in it, one of the authors attending this IETF can show
you our use and deployment.

Thank you,
Hirochika

-- 
Hirochika Asai <[email-masked]>, The University of Tokyo

---

From: Hirochika Asai <[email-masked]>
Date: Tue, 31 Jul 2012 14:15:45 +0900

Hi all,

I want to demonstrate a practical use of VMM-MIB and our SNMP agent.
The following URL is one of use cases of our VMM-MIB using cacti.
This monitors and shows hypervisors and virtual machines statistics
from our SNMP agent deployed to a private cloud platform.

http://www2.hongo.wide.ad.jp/cacti/
User Name: ietf
Password: 84vancouver
(This account will be valid until the end of IETF 84.)

Thank you,
Hirochika

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Tue, 31 Jul 2012 08:25:57 +0200

> <draft-schoenw-opsawg-vm-mib-01> and our opinions are summarized

Your MIB module still does not compile. Most of the issues seem
fixable. I am appending the output of smilint -s -l4 ./VMM-MIB:

./VMM-MIB:23: [2] invalid format specification `8X-4X-4X-4X-12X'
./VMM-MIB:76: [3] MODULE-IDENTITY clause must be the first declaration in a module
./VMM-MIB:93: [3] revision for last update is missing
./VMM-MIB:281: [2] SMIv2 base type `Counter64' must be imported from SNMPv2-SMI
./VMM-MIB:336: [1] syntax error, unexpected '{', expecting STATUS
./VMM-MIB:342: [1] syntax error, unexpected MAX_ACCESS
./VMM-MIB:352: [1] syntax error, unexpected '{', expecting STATUS
./VMM-MIB:365: [1] syntax error, unexpected MAX_ACCESS
./VMM-MIB:381: [2] SMIv2 base type `Counter64' must be imported from SNMPv2-SMI
./VMM-MIB:449: [1] syntax error, unexpected '{', expecting STATUS
./VMM-MIB:454: [1] syntax error, unexpected MAX_ACCESS
./VMM-MIB:464: [1] syntax error, unexpected '{', expecting STATUS
./VMM-MIB:469: [1] syntax error, unexpected MAX_ACCESS
./VMM-MIB:511: [2] SMIv2 base type `Counter64' must be imported from SNMPv2-SMI
./VMM-MIB:525: [2] SMIv2 base type `Counter64' must be imported from SNMPv2-SMI
./VMM-MIB:556: [2] SMIv2 base type `Counter64' must be imported from SNMPv2-SMI
./VMM-MIB:571: [1] syntax error, unexpected '{', expecting STATUS
./VMM-MIB:576: [1] syntax error, unexpected MAX_ACCESS
./VMM-MIB:585: [2] SMIv2 base type `Counter64' must be imported from SNMPv2-SMI
./VMM-MIB:666: [1] syntax error, unexpected '{', expecting STATUS
./VMM-MIB:673: [1] syntax error, unexpected MAX_ACCESS
./VMM-MIB:833: [2] macro `MODULE-COMPLIANCE' has not been imported from module `SNMPv2-CONF'
./VMM-MIB:842: [2] macro `NOTIFICATION-GROUP' has not been imported from module `SNMPv2-CONF'
./VMM-MIB:856: [2] macro `NOTIFICATION-TYPE' has not been imported from module `SNMPv2-SMI'
./VMM-MIB:866: [1] syntax error, unexpected END, expecting COLON_COLON_EQUAL
 
> tap100(ifIndex=200), respectively.

Not sure I understand this. I guess it boils down to the question
whether the MIB is written from the viewpoint of the virtual machines
or from the viewpoint of the hypervisor or host system.
 
> used to all devices (not limited to host resources) like IF-MIB?

Again, the question is the viewpoint here. If you report a size, is it
the storage size as seem by the hypervisor or the virtual machine? For
sparse files or compressed images, there will be a difference.

> you our use and deployment.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1, 28759 Bremen, Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>