2 -- Copyright (c) 2013 Mikolaj Golub <trociny@FreeBSD.org>
3 -- All rights reserved.
5 -- Redistribution and use in source and binary forms, with or without
6 -- modification, are permitted provided that the following conditions
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.
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
29 BEGEMOT-HAST-MIB DEFINITIONS ::= BEGIN
32 MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
35 TEXTUAL-CONVENTION, RowStatus
37 InterfaceIndex, ifIndex
42 begemotHast MODULE-IDENTITY
43 LAST-UPDATED "201304130000Z"
44 ORGANIZATION "FreeBSD"
48 Postal: Bluhera 27v 11
54 E-Mail: trociny@FreeBSD.org"
56 "The Begemot MIB for managing HAST."
57 REVISION "201304130000Z"
60 REVISION "201307010000Z"
62 "Added hastResourceWorkerPid."
63 REVISION "201312290000Z"
65 "Added hastResourceLocalQueue, hastResourceSendQueue,
66 hastResourceRecvQueue, hastResourceDoneQueue,
67 hastResourceIdleQueue."
70 begemotHastObjects OBJECT IDENTIFIER ::= { begemotHast 1 }
72 -- ---------------------------------------------------------- --
73 -- Configuration parameters
74 -- ---------------------------------------------------------- --
76 hastConfig OBJECT IDENTIFIER ::= { begemotHastObjects 1 }
78 hastConfigFile OBJECT-TYPE
83 "HAST configuration file location."
86 -- ---------------------------------------------------------- --
88 -- ---------------------------------------------------------- --
89 hastResourceTable OBJECT-TYPE
90 SYNTAX SEQUENCE OF HastResourceEntry
91 MAX-ACCESS not-accessible
94 "A table containing information about all HAST resources."
95 ::= { begemotHastObjects 2 }
97 hastResourceEntry OBJECT-TYPE
98 SYNTAX HastResourceEntry
99 MAX-ACCESS not-accessible
102 "Table entry that describes one HAST resource."
103 INDEX { hastResourceIndex }
104 ::= { hastResourceTable 1 }
106 HastResourceEntry ::= SEQUENCE {
107 hastResourceIndex Integer32,
108 hastResourceName OCTET STRING,
109 hastResourceRole INTEGER,
110 hastResourceProvName OCTET STRING,
111 hastResourceLocalPath OCTET STRING,
112 hastResourceExtentSize Integer32,
113 hastResourceKeepDirty Integer32,
114 hastResourceRemoteAddr OCTET STRING,
115 hastResourceSourceAddr OCTET STRING,
116 hastResourceReplication INTEGER,
117 hastResourceStatus INTEGER,
118 hastResourceDirty Counter64,
119 hastResourceReads Counter64,
120 hastResourceWrites Counter64,
121 hastResourceDeletes Counter64,
122 hastResourceFlushes Counter64,
123 hastResourceActivemapUpdates Counter64,
124 hastResourceReadErrors Counter64,
125 hastResourceWriteErrors Counter64,
126 hastResourceDeleteErrors Counter64,
127 hastResourceFlushErrors Counter64,
128 hastResourceWorkerPid INTEGER,
129 hastResourceLocalQueue UNSIGNED32,
130 hastResourceSendQueue UNSIGNED32,
131 hastResourceRecvQueue UNSIGNED32,
132 hastResourceDoneQueue UNSIGNED32,
133 hastResourceIdleQueue UNSIGNED32
136 hastResourceIndex OBJECT-TYPE
142 ::= { hastResourceEntry 1 }
144 hastResourceName OBJECT-TYPE
150 ::= { hastResourceEntry 2 }
152 hastResourceRole OBJECT-TYPE
153 SYNTAX INTEGER { undef(0), init(1), primary(2), secondary(3) }
154 MAX-ACCESS read-write
158 ::= { hastResourceEntry 3 }
160 hastResourceProvName OBJECT-TYPE
165 "Resource GEOM provider name that appears as /dev/hast/<name>."
166 ::= { hastResourceEntry 4 }
168 hastResourceLocalPath OBJECT-TYPE
173 "Path to the local component which is used as a backend
174 provider for the resource."
175 ::= { hastResourceEntry 5 }
177 hastResourceExtentSize OBJECT-TYPE
182 "Size of an extent. Extent is a block which is
183 used for synchronization. hastd(8) maintains a
184 map of dirty extents and extent is the smallest
185 region that can be marked as dirty. If any part
186 of an extent is modified, entire extent will be
187 synchronized when nodes connect."
188 ::= { hastResourceEntry 6 }
190 hastResourceKeepDirty OBJECT-TYPE
195 "Maximum number of dirty extents to keep dirty all
196 the time. Most recently used extents are kept
197 dirty to reduce number of metadata updates."
198 ::= { hastResourceEntry 7 }
200 hastResourceRemoteAddr OBJECT-TYPE
205 "Address of the remote hastd(8) daemon for the resource."
206 ::= { hastResourceEntry 8 }
208 hastResourceSourceAddr OBJECT-TYPE
213 "Local address the resource is bound to."
214 ::= { hastResourceEntry 9 }
216 hastResourceReplication OBJECT-TYPE
217 SYNTAX INTEGER { fullsync(0), memsync(1), async(2) }
221 "Resource replication mode."
222 ::= { hastResourceEntry 10 }
224 hastResourceStatus OBJECT-TYPE
225 SYNTAX INTEGER { complete(0), degraded(1) }
229 "Resource replication status."
230 ::= { hastResourceEntry 11 }
232 hastResourceDirty OBJECT-TYPE
237 "Current number of dirty extents for the resource."
238 ::= { hastResourceEntry 12 }
240 hastResourceReads OBJECT-TYPE
245 "Count of resource local read operations."
246 ::= { hastResourceEntry 13 }
248 hastResourceWrites OBJECT-TYPE
253 "Count of resource local write operations."
254 ::= { hastResourceEntry 14 }
256 hastResourceDeletes OBJECT-TYPE
261 "Count of resource local delete operations."
262 ::= { hastResourceEntry 15 }
264 hastResourceFlushes OBJECT-TYPE
269 "Count of resource local flush operations."
270 ::= { hastResourceEntry 16 }
272 hastResourceActivemapUpdates OBJECT-TYPE
277 "Count of resource local activemap updates."
278 ::= { hastResourceEntry 17 }
280 hastResourceReadErrors OBJECT-TYPE
285 "Count of resource local read operations that failed."
286 ::= { hastResourceEntry 18 }
288 hastResourceWriteErrors OBJECT-TYPE
293 "Count of resource local write operations that failed."
294 ::= { hastResourceEntry 19 }
296 hastResourceDeleteErrors OBJECT-TYPE
301 "Count of resource local delete operations that failed."
302 ::= { hastResourceEntry 20 }
304 hastResourceFlushErrors OBJECT-TYPE
309 "Count of resource local flush operations that failed."
310 ::= { hastResourceEntry 21 }
312 hastResourceWorkerPid OBJECT-TYPE
318 ::= { hastResourceEntry 22 }
320 hastResourceLocalQueue OBJECT-TYPE
325 "Number of outstanding I/O requests to the local component."
326 ::= { hastResourceEntry 23 }
328 hastResourceSendQueue OBJECT-TYPE
333 "Number of outstanding I/O requests to send to the remote
335 ::= { hastResourceEntry 24 }
337 hastResourceRecvQueue OBJECT-TYPE
342 "Number of outstanding I/O requests waiting for response
343 from the remote component."
344 ::= { hastResourceEntry 25 }
346 hastResourceDoneQueue OBJECT-TYPE
351 "Number of processed I/O requests to return to the kernel."
352 ::= { hastResourceEntry 26 }
354 hastResourceIdleQueue OBJECT-TYPE
359 "Number of request objects in the free bucket."
360 ::= { hastResourceEntry 27 }