1-- 2-- Copyright (c) 2013 Mikolaj Golub <trociny@FreeBSD.org> 3-- All rights reserved. 4-- 5-- Redistribution and use in source and binary forms, with or without 6-- modification, are permitted provided that the following conditions 7-- are met: 8-- 1. Redistributions of source code must retain the above copyright 9-- notice, this list of conditions and the following disclaimer. 10-- 2. Redistributions in binary form must reproduce the above copyright 11-- notice, this list of conditions and the following disclaimer in the 12-- documentation and/or other materials provided with the distribution. 13-- 14-- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 15-- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17-- ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 18-- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22-- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23-- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24-- SUCH DAMAGE. 25-- 26 27BEGEMOT-HAST-MIB DEFINITIONS ::= BEGIN 28 29IMPORTS 30 MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, 31 Counter64, Integer32 32 FROM SNMPv2-SMI 33 TEXTUAL-CONVENTION, RowStatus 34 FROM SNMPv2-TC 35 InterfaceIndex, ifIndex 36 FROM IF-MIB 37 begemot 38 FROM BEGEMOT-MIB; 39 40begemotHast MODULE-IDENTITY 41 LAST-UPDATED "201304130000Z" 42 ORGANIZATION "FreeBSD" 43 CONTACT-INFO 44 " Mikolaj Golub 45 46 Postal: Bluhera 27v 11 47 61146 Kharkiv 48 Ukraine 49 50 Fax: N/A 51 52 E-Mail: trociny@FreeBSD.org" 53 DESCRIPTION 54 "The Begemot MIB for managing HAST." 55 REVISION "201304130000Z" 56 DESCRIPTION 57 "Initial revision." 58 REVISION "201307010000Z" 59 DESCRIPTION 60 "Added hastResourceWorkerPid." 61 REVISION "201312290000Z" 62 DESCRIPTION 63 "Added hastResourceLocalQueue, hastResourceSendQueue, 64 hastResourceRecvQueue, hastResourceDoneQueue, 65 hastResourceIdleQueue." 66 ::= { begemot 220 } 67 68begemotHastObjects OBJECT IDENTIFIER ::= { begemotHast 1 } 69 70-- ---------------------------------------------------------- -- 71-- Configuration parameters 72-- ---------------------------------------------------------- -- 73 74hastConfig OBJECT IDENTIFIER ::= { begemotHastObjects 1 } 75 76hastConfigFile OBJECT-TYPE 77 SYNTAX OCTET STRING 78 MAX-ACCESS read-only 79 STATUS current 80 DESCRIPTION 81 "HAST configuration file location." 82 ::= { hastConfig 1 } 83 84-- ---------------------------------------------------------- -- 85-- Resource Table 86-- ---------------------------------------------------------- -- 87hastResourceTable OBJECT-TYPE 88 SYNTAX SEQUENCE OF HastResourceEntry 89 MAX-ACCESS not-accessible 90 STATUS current 91 DESCRIPTION 92 "A table containing information about all HAST resources." 93 ::= { begemotHastObjects 2 } 94 95hastResourceEntry OBJECT-TYPE 96 SYNTAX HastResourceEntry 97 MAX-ACCESS not-accessible 98 STATUS current 99 DESCRIPTION 100 "Table entry that describes one HAST resource." 101 INDEX { hastResourceIndex } 102 ::= { hastResourceTable 1 } 103 104HastResourceEntry ::= SEQUENCE { 105 hastResourceIndex Integer32, 106 hastResourceName OCTET STRING, 107 hastResourceRole INTEGER, 108 hastResourceProvName OCTET STRING, 109 hastResourceLocalPath OCTET STRING, 110 hastResourceExtentSize Integer32, 111 hastResourceKeepDirty Integer32, 112 hastResourceRemoteAddr OCTET STRING, 113 hastResourceSourceAddr OCTET STRING, 114 hastResourceReplication INTEGER, 115 hastResourceStatus INTEGER, 116 hastResourceDirty Counter64, 117 hastResourceReads Counter64, 118 hastResourceWrites Counter64, 119 hastResourceDeletes Counter64, 120 hastResourceFlushes Counter64, 121 hastResourceActivemapUpdates Counter64, 122 hastResourceReadErrors Counter64, 123 hastResourceWriteErrors Counter64, 124 hastResourceDeleteErrors Counter64, 125 hastResourceFlushErrors Counter64, 126 hastResourceWorkerPid INTEGER, 127 hastResourceLocalQueue UNSIGNED32, 128 hastResourceSendQueue UNSIGNED32, 129 hastResourceRecvQueue UNSIGNED32, 130 hastResourceDoneQueue UNSIGNED32, 131 hastResourceIdleQueue UNSIGNED32 132} 133 134hastResourceIndex OBJECT-TYPE 135 SYNTAX Integer32 136 MAX-ACCESS read-only 137 STATUS current 138 DESCRIPTION 139 "Resource index." 140 ::= { hastResourceEntry 1 } 141 142hastResourceName OBJECT-TYPE 143 SYNTAX OCTET STRING 144 MAX-ACCESS read-only 145 STATUS current 146 DESCRIPTION 147 "Resource name." 148 ::= { hastResourceEntry 2 } 149 150hastResourceRole OBJECT-TYPE 151 SYNTAX INTEGER { undef(0), init(1), primary(2), secondary(3) } 152 MAX-ACCESS read-write 153 STATUS current 154 DESCRIPTION 155 "Resource role." 156 ::= { hastResourceEntry 3 } 157 158hastResourceProvName OBJECT-TYPE 159 SYNTAX OCTET STRING 160 MAX-ACCESS read-only 161 STATUS current 162 DESCRIPTION 163 "Resource GEOM provider name that appears as /dev/hast/<name>." 164 ::= { hastResourceEntry 4 } 165 166hastResourceLocalPath OBJECT-TYPE 167 SYNTAX OCTET STRING 168 MAX-ACCESS read-only 169 STATUS current 170 DESCRIPTION 171 "Path to the local component which is used as a backend 172 provider for the resource." 173 ::= { hastResourceEntry 5 } 174 175hastResourceExtentSize OBJECT-TYPE 176 SYNTAX Integer32 177 MAX-ACCESS read-only 178 STATUS current 179 DESCRIPTION 180 "Size of an extent. Extent is a block which is 181 used for synchronization. hastd(8) maintains a 182 map of dirty extents and extent is the smallest 183 region that can be marked as dirty. If any part 184 of an extent is modified, entire extent will be 185 synchronized when nodes connect." 186 ::= { hastResourceEntry 6 } 187 188hastResourceKeepDirty OBJECT-TYPE 189 SYNTAX Integer32 190 MAX-ACCESS read-only 191 STATUS current 192 DESCRIPTION 193 "Maximum number of dirty extents to keep dirty all 194 the time. Most recently used extents are kept 195 dirty to reduce number of metadata updates." 196 ::= { hastResourceEntry 7 } 197 198hastResourceRemoteAddr OBJECT-TYPE 199 SYNTAX OCTET STRING 200 MAX-ACCESS read-only 201 STATUS current 202 DESCRIPTION 203 "Address of the remote hastd(8) daemon for the resource." 204 ::= { hastResourceEntry 8 } 205 206hastResourceSourceAddr OBJECT-TYPE 207 SYNTAX OCTET STRING 208 MAX-ACCESS read-only 209 STATUS current 210 DESCRIPTION 211 "Local address the resource is bound to." 212 ::= { hastResourceEntry 9 } 213 214hastResourceReplication OBJECT-TYPE 215 SYNTAX INTEGER { fullsync(0), memsync(1), async(2) } 216 MAX-ACCESS read-only 217 STATUS current 218 DESCRIPTION 219 "Resource replication mode." 220 ::= { hastResourceEntry 10 } 221 222hastResourceStatus OBJECT-TYPE 223 SYNTAX INTEGER { complete(0), degraded(1) } 224 MAX-ACCESS read-only 225 STATUS current 226 DESCRIPTION 227 "Resource replication status." 228 ::= { hastResourceEntry 11 } 229 230hastResourceDirty OBJECT-TYPE 231 SYNTAX Counter64 232 MAX-ACCESS read-only 233 STATUS current 234 DESCRIPTION 235 "Current number of dirty extents for the resource." 236 ::= { hastResourceEntry 12 } 237 238hastResourceReads OBJECT-TYPE 239 SYNTAX Counter64 240 MAX-ACCESS read-only 241 STATUS current 242 DESCRIPTION 243 "Count of resource local read operations." 244 ::= { hastResourceEntry 13 } 245 246hastResourceWrites OBJECT-TYPE 247 SYNTAX Counter64 248 MAX-ACCESS read-only 249 STATUS current 250 DESCRIPTION 251 "Count of resource local write operations." 252 ::= { hastResourceEntry 14 } 253 254hastResourceDeletes OBJECT-TYPE 255 SYNTAX Counter64 256 MAX-ACCESS read-only 257 STATUS current 258 DESCRIPTION 259 "Count of resource local delete operations." 260 ::= { hastResourceEntry 15 } 261 262hastResourceFlushes OBJECT-TYPE 263 SYNTAX Counter64 264 MAX-ACCESS read-only 265 STATUS current 266 DESCRIPTION 267 "Count of resource local flush operations." 268 ::= { hastResourceEntry 16 } 269 270hastResourceActivemapUpdates OBJECT-TYPE 271 SYNTAX Counter64 272 MAX-ACCESS read-only 273 STATUS current 274 DESCRIPTION 275 "Count of resource local activemap updates." 276 ::= { hastResourceEntry 17 } 277 278hastResourceReadErrors OBJECT-TYPE 279 SYNTAX Counter64 280 MAX-ACCESS read-only 281 STATUS current 282 DESCRIPTION 283 "Count of resource local read operations that failed." 284 ::= { hastResourceEntry 18 } 285 286hastResourceWriteErrors OBJECT-TYPE 287 SYNTAX Counter64 288 MAX-ACCESS read-only 289 STATUS current 290 DESCRIPTION 291 "Count of resource local write operations that failed." 292 ::= { hastResourceEntry 19 } 293 294hastResourceDeleteErrors OBJECT-TYPE 295 SYNTAX Counter64 296 MAX-ACCESS read-only 297 STATUS current 298 DESCRIPTION 299 "Count of resource local delete operations that failed." 300 ::= { hastResourceEntry 20 } 301 302hastResourceFlushErrors OBJECT-TYPE 303 SYNTAX Counter64 304 MAX-ACCESS read-only 305 STATUS current 306 DESCRIPTION 307 "Count of resource local flush operations that failed." 308 ::= { hastResourceEntry 21 } 309 310hastResourceWorkerPid OBJECT-TYPE 311 SYNTAX INTEGER 312 MAX-ACCESS read-only 313 STATUS current 314 DESCRIPTION 315 "Worker process ID." 316 ::= { hastResourceEntry 22 } 317 318hastResourceLocalQueue OBJECT-TYPE 319 SYNTAX UNSIGNED32 320 MAX-ACCESS read-only 321 STATUS current 322 DESCRIPTION 323 "Number of outstanding I/O requests to the local component." 324 ::= { hastResourceEntry 23 } 325 326hastResourceSendQueue OBJECT-TYPE 327 SYNTAX UNSIGNED32 328 MAX-ACCESS read-only 329 STATUS current 330 DESCRIPTION 331 "Number of outstanding I/O requests to send to the remote 332 component." 333 ::= { hastResourceEntry 24 } 334 335hastResourceRecvQueue OBJECT-TYPE 336 SYNTAX UNSIGNED32 337 MAX-ACCESS read-only 338 STATUS current 339 DESCRIPTION 340 "Number of outstanding I/O requests waiting for response 341 from the remote component." 342 ::= { hastResourceEntry 25 } 343 344hastResourceDoneQueue OBJECT-TYPE 345 SYNTAX UNSIGNED32 346 MAX-ACCESS read-only 347 STATUS current 348 DESCRIPTION 349 "Number of processed I/O requests to return to the kernel." 350 ::= { hastResourceEntry 26 } 351 352hastResourceIdleQueue OBJECT-TYPE 353 SYNTAX UNSIGNED32 354 MAX-ACCESS read-only 355 STATUS current 356 DESCRIPTION 357 "Number of request objects in the free bucket." 358 ::= { hastResourceEntry 27 } 359 360END 361