Skip to content

5rwm Assignment

Jan. 21, 1964 Filed April 18, 1960 G. D. RoBB DIE SPOTTING PRESS 10 Sheets-Sheet 2 Jan. 21, 1964 G. D. ROBB 3,118,407

DIE SPOTTING PRESS Filed April 18, 1960 lO Sheets-Sheet 3 1N VEN TOR. @fa/Pff Q /Do DIE SPOTTING PRESS l0 Sheets-Sheet 4 Filed April 18, 1960 Jan. 21, 1964 G. D. ROBB DIE SPOTTING PRESS l0 Sheets-Sheet 5 Filed April 18. 1960 5 RWM/W2 m0 N mf f WQ f m 0 f w www w if |l Zw) inw I E O ma m 7 wir //m\ #W J z ..\//7/f/.///V I /f/ f A H I ||.|l|||.|||.||" Hl VLH I. Im 4 l -l l n- I 9 ||u||| MI ll w n l lWHIIII 0. Mw HHl U|l Mw W Mam 4 @a Y. o0 F a@ Q M LLI/,.0 w

Jan. 21, 1.964 G. D. ROBE 3,118,407

DIE SPOTTING PRESS Filed April 18, 19601 l 10 Sheets-Sheet 6 Jan. 21, 1964 G. D. RoBB 3,118,407

DIE SPOTTING PRESS Filed April 1s, 1960 1o sheets-sheet 7 266 264 INVENToR.

@16a/rf a /ro F" .if

y kimlfya 10 sheets-sheet s Jan. 21, 1964 G. D. ROBB DIE sPoTTING PRESS Filed Abril 1s, 1960 Jan. 2l, 1964 G. D. RoBB 3,118,407

DIE sPoTTING PRESS Filed April 18, 1960 10 Sheets-Sheet 9 Jan. 21, 1964 G. D. ROBB 3,118,407

DIE sPoTTING PRESS Filed April 18, 1960 10 Sheets-Sheet l0 IN VEN TOR. @fo/Paf 0 /Pa A fr0/PAM X5.

United States Patent O 3,118,407 DE SPTIING PRESS George D. Robb, Birmingham, Mich., assigner to Federal Engineering Company, Detroit, Mich., a corporation of Michigan Filed Apr. 18, 196i), Ser. No. 23,005 Claims. (Cl. 113-33) This invention relates to presses and, in particular, to die spotting presses for use in mating the opposing halves of a die set without tying up production presses for such alterations and adjustments.

One object of this invention is to provide a die spotting press having self-acting means associated with the platen thereof for automatically accurately and continuously maintaining the die-supporting surface of the platen accurately parallel with the opposing die-supporting surface of the bolster onv the press bed, so that the upper and lower die halves spotted in the spotting press to accurately mate with one another there will also accurately mate with one another subsequently when mounted in the production press, without the need for the subsequent parallel machining previously required.

Another object is to provide a die spotting press of the foregoing character wherein the press platen is forcibly held in accurate parallelism with the press bolster during the entire range of its ascent and descent by heavy duty self-equalizing levelling gearing within close tolerances and requiring no external adjustment.

Another object is to provide a die spotting press, as set forth in the preceding objects, wherein the levelling gears are disposed at the four corners of the press in engagement with four precision racks mounted upon the press frame and interconnected by mechanism which prevents the platen from deviating from parallelism with the bolster at any point in its stroke.

Another object is to provide a die spotting press having platen stops extending upward from the bottom portion of the press frame where they support only their own weight, and simultaneously adjustable to move upward or downward, in contrast with prior stops wherein the stops were mounted upon the upper portion of the press and had to support not only their own weight but also the entire weight of the platen and the die half attached to it for spotting.

Another object is to provide a die spotting press of the foregoing character wherein the platen is raised by means of hydraulic cylinders mounted on and extending upward from the bottom part of the press independently of the die-supporting bolster, so as to avoid distorting the bolster during operation.

Another object is to provide a die spotting press wherein the operating apparatus including the hydraulic pump and its driving motor are mounted in a detachable press head or crown which may easily be removed as a package unit for repair or maintenance of such apparatus.

Another object is to provide a die spotting press wherein the press head is provided with automatic platen latches which enhance safety of operation by automatically holding the platen in its raised position and preventing its unintended descent in the event of a power failure, yet which latches are automatically released by means responsive to the intended lowering of the platen.

Another object is to provide a die spotting press where in its construction for the most part is capable of utilizing standard parts available on the open market, for example, standard gibs, ways, toothed racks, gears, shafts and bearings, and not requiring the specially-built parts of prior spotting presses yet achieving equal or superior accuracy of operation.

Another object is to provide a die spotting press of the foregoing character wherein the press frame is in the form BIAQI Patented Jan. 2i, 1964 of a weldment which replaces expensive and heavy castings previously used and which is of specially-reinforced construction to give the requisite strength and freedom from distortion without excessive weight, and which at the same time provides a hollow structure which also serves as a housing for hydraulic and electrical equipment and their connections with ready accessibility thereof.

Another object is to provide a die spotting press of the foregoing character with precision platen-position-indicating means enabling the operator to tell at a glance the exact distance between the platen and bolster and thus the extent of the opening between the die halves at any point during the stroke of the platen.

Another object is to provide a slightly modified die spotting press wherein the press bed includes a die-supporting bolster in the form of a slide which is movable into and out of the press frame on hardened and ground ways by power-operated mechanism which insures return of the bolster to its exact original location.

Another object is to provide a die spotting press having a die positioning device operated by the motion of the press platen or hauling a die onto the press bed, thereby greatly facilitating the handling of heavy dies and eliminating the need for a movable carriage on the press bed.

Other objects and advantages of the invention will become apparent during the course of the following description of the accompanying drawings, wherein:

FIGURE l is a front elevation of a die spotting press, according to one form of the invention, partly in vertical section along the lines 1*-1 in FIGURES 2 and 5, showing the platen in its lowered position against its stops;

FIGURE 2 is a horizontal section through the platen, taken along the line 2 2 in FIGURE l, showing the equalizing mechanism for automatically maintaining the platen in parallelism with the bolster;

FIGURE 3 is a vertical section through one of the press uprights, taken along the line 3-3 in FIGURE l;

FIGURE 4 is a vertical section taken along the line 4 4 in FIGURE 1;

FIGURE 5 is a top plan view, partly in horizontal section, of the press shown in FIGURE l;

FIGURE 6 is an enlarged fragmentary horizontal section of the portion of the press in the lower right-hand corner of FIGURE 2;

FIGURE 7 is a fragmentary vertical section taken along the line '7 7 in FIGURE 6;

FIGURE 8 is a fragmentary vertical section taken along the line 8 8 in FIGURE 6;

I FIGURE 9 isan enlarged fragmentary horizontal section comprising substantially the lower left-hand corner of FIGURE 2 showing the platen-position-indicating mechanism;

FIGURE l0 is a vertical section, partly in front elevation, taken along the line Ih-Ii) in FIGURE 9;

FIGURE ll is an enlarged fragmentary horizontal section taken along the line Ii--ll in FIGURE 1, showing details of the platen stop-operating mechanism;

FIGURE l2 is a vertical section taken along the line IIE-12 in FIGURES 2 and 11;

FIGURE 13 is an enlarged fragmentary vertical section taken along the line 13-13 in FIGURE 3, showing one of the platen safety latches;

FIGURE 14 is a top plan view looking along the line iti- 14 in FIGURE 13;

FIGURE l5 is a khorizontal section taken along the line 15-15 in FIGURE 13;

FIGURE 16 is a fragmentary vertical section through the lower portion of a slightly modified spotting press having an extensible bolster, taken along the line 16-I6 in FIGURE 17;

FIGURE 17 is a vertical section taken along the line E 17-17 in FIGURE 16, with the partly-extended position of the bolster shown in dotted lines;

FIGURE 18 is a fragmentary side elevation, partly in section, of a press bed and platen equipped with a die positioning device, according to one form of the invention; and

FIGURE 19 is an enlarged fragmentary vertical section taken along the broken line 9-19 in FIGURE IS.

Hi'therto, die spotting presses have been provided for holding the cooperating die halves of a large die set, such as tre used for producing large stampings like automobile fenders and body parts, while they are being worked upon for slight but precise removals of stock in order to cause them to accurately mate while leaving the necessary clearance for the thickness of the sheet metal from which the stamping is to be made by the die set. The use of a die Spotting press for this purpose avoids the necessity of tying up the regular production press in which the die set is eventually to be used, and the spotting press can be made of lighter and far less expensive construction than the production press because tie spotting press needs strength and power enough merely to carry the load of its own parts and the die halves without the additional strength power necessary to perform the sheet metal stamping operation. At the same time, however, the die spotting press must be of suiliciently rigid construction to avoid any deflection during the operation of mating the die halves, and its platen should accurately move in the same relationship to the bolster or plate on the press bed carrying the lower die half, as the platen and bolster on which the die halves are mounted in the production press.

Prior to the present invention, die spotting presses have been of very expensive construction which required them to be sold at very high prices, because they were constructed with special frame castings and specially built racks, gears, gibs and ways as well as with specially machined stops depending from the upper portion of the press and required to support not only their own weight but also the weights of the spotting press platen and upper die half attached thereto. In such prior die spotting presses, moreover, the platen could not be maintained accurately in continuous parallelism with the bolster as the platen moved toward and away from the bolster, with the result that the upper and lower die halves of the die set required additional parallel machining before they could safely be used in the production press without clashing or otherwise operating in an unsatisfactory or inaccurate manner. In such prior spotting presses, furthermore, the platen, if hydraulically moved, was constantly in danger of descending in the event of a power failure, with consequent hazard to the operator. Finally, in such prior die supporting presses, the hydraulic and mechanical equipment was mounted in inaccessible locations in the press, and had to be worked upon while mounted in the press without the possibility of removal as a package unit.

The present invention provides an improved die spotting press in which the above-mentioned disadvantages of prior spotting presses are eliminated. The present press eliminates these disadvantages and accomplishes the above objects by the construction described in detail in the following specification and illustrated in the accompanying drawings.

General Construction mzzl Arrangement Referring to the drawings in detail, FIGURES 1 to 5 inclusive show an improved die spotting press, ge. erally designated 20, according to one form of the present invention, the details of which are additionally shown in FIGURES 6 to l5 inclusive and a slight modification with an extensible bolster in FIGURES i6 and 17. The die spotting press 20 consists generally of a frame 2.2 including a press bed 2d carrying a bolster 26, uprights rising from the bed 2d, a press head or crown 3Q mounted on the upper ends of the uprights 2S, and a platen 32 mounted on the uprights 28 and movable upward and downward toward and away from the bed 24 and bolster 25 by double-acing reciprocatory hydraulic motors while maintained accurately in parallelism with the bolster 26 by means of an automatic platen levelling device 36 shown more particularly in FIGURE 2. At the same time, the position of the platen 32 and the extent of the opening between the platen 32 and thc bolster 26 is instantly and continuously shown by a platen position indicating device, generally designated 38, shown more particularly in FIGURES 9 and l0. The platen 32 is held in its raised position and prevented from accidentally descending, in the event of a power failure, by an automatic platen safety lntching device, generally dcsignated di), and shown more particularly in FIGURES 13, i4 and l5. A stop arrangement, ge crally designated d2, engages and holds the platen 3?, at any rcsired and precise distance above the bolster 26 so as to accurately regulate the height of the opening therebetween, and is shown in general in FIGURE 3 and in detail in FIGURES l1 and l2. A motor-driven hydraulic power unit 44 is mounted on and within the press head 30.

Press Frame Construction The bed 24, as also the remainder of thc press frame 22, is in the form of a hollow box-orm weldmcnt (FIG- URES l and 3) having an open-centered bottom plate Sti to which are welded upstanding front and rear walls 52, end walls 54 and crossing reinforcing partition plates 56 and S3, all welded at their upper edges to a top plate 60 upon which the plateshaped bolster 26 rests. The opposite ends of the bolster 26 are inset from the opposite ends of the bed top plate 68 (FIGURE l) and the bolster 60 is provided with a precisely-machined flat upper surface 6l containing spaced T-slots 62 for the reception of T-bolts (not Shown) by which the lower die half M (FIGURE 4) is secured to the bolster 26.

The hollow box-shaped uprights or press frame side members 28 rise from the opposite ends of the bed top plate 60 in the spa es thereon provided by the insetting of the opposite ends of the bolster 26 and have lower and upper end plates 63 and 65 respectively (FIGURE 3) grooved to receive keys 64 half entering into the correspondingly-grooved adjacent portions of the bed 24 and head 3G respectively (FIGURE l). Each upright or side member 28 consists of a channel-shaped member 66 (FIGURE 2) having horizontal shallow U-shaped reinforcing plates 63 disposed at vertically-spaced locations in their upper half lengths (FIGURE l), the reinforcing plate 63 being thus cut away (FIGURE 2) and shorter than the channel member 66 to provide clearance for the hydraulic piston rods, stop rods and other mechanisms described below, as well as for hydraulic piping and electric wiring which is conventional and beyond thc scope of the present invention.

The press head or crown 30 is an open-topped boxform weldrnent having a bottom plate 70 (FIGURES l and i3) beneath the opposite ends of which are supporting plates 72 which in turn rest upon and are grooved so as to be key-cd to the top plates 63 of the frame uprights 23 by t le keys 64 in the manner described below. 'lising from the bottom plate 70 of the head 30 is a rectangular open-topped enclosure 74 with side plates 76 and end plates 7S (FIGURE 5) welded to one another. The side plates 76 are interconnected by horizontal angle cross members S9 welded thereto and have rounded upper corners between which the upper portions SZ of the end plates 73 extend into overlapping relationship with the cross members 3i). The motondriven hydraulic power unit dfi is mounted upon the bottoni p ate 75l, as described in more detail below.

Platen und Raising and Lowering Mechanism Construction Welded or otherwise secured to and mounted between the channel-shaped side members 66 of the press frame upright 2S and the vertically-spaced horizontal reinforcing plates 68 thereof are vertical supporting bars or ways 34 (FIGURES 2 and 6). The ways 84 have bevelled and grooved outer faces 4S6 receiving v'wear plates S3 bolted thereto and engaged by correspondingly-bevelled plate-shaped vgibs 99. The latter are slotted as at 92 (FIGURE 6) to receive threaded fasteners 94, such as so-called Allen screws threaded into the end portions 96 of parallel vertical side plates 93 form-ing the front and rear side of the platen 32. The platen side plates 98 are interconnected by opposite end plates 100 and an intermediate reinforcing plate 102 welded thereto, the open-topped box-shaped weldment construction thus formed being welded at :its lower edges to the platen bottom plate or die attachment plate 104. The platen bottom plate 16e has a precisely-machined ilat lower surface 16S with parallel T-slots 106 for receiving T-bolts (not shown) by which the `upper half E of the die set D (FIG- URE 4) is secured to the platen 32 and depends therefrom. The platen end plates 11MB are spaced inwardly or inset from the outer edges of the end portions 96 (FIGURE 6) to accommodate the platen-actuating mechanism described below.

Welded or otherwise secured to the platen side plates 93 are bars .1113 (FIGURES 1, 2 and 6) which are bored and threaded to receive stop screws 116 which engage the inner edges of the gibs 9i? (FIGURE 6) so as to locate the latter accurately in their adjusted positions in which they are held by the tightening of the bolts 94 in the elongated slots 92. The stop screws 111i `are locked in their adjusted positions by lock nuts 112 threaded thereon.

Bolted or other-wise secured to the opposite end plates 1611 of fthe platen 32 at approximately the midportio-ns thereof `are cross head angle brackets 114 (FIGURES 1, 2, 3 and 6), the approximately triangular upper portions of which are bored at their outer ends to receive the threaded upper ends 116 of piston rods 113, the lower ends of which carry piston heads 121i (FIGURE 1) reoiprocable in hydraulic cylinders 122 or the hydraulic motors 34. The upper cylinder heads 124 of the hydraulic cylinders 122 are bored for ythe passage of the piston rods 11S and provided with suitable lconventional packingr (not shown) for the preventing of leakage of hydraulic Iluid. The lower cylinder heads 126 of the hydraulic cylinders 122 (FIGURES l, 11 and 12) are hanged and bolted to the press bed top plate 6l? by bolts 130 passing through spacing collars -128 mounted in enlarged holes in the bottom plates 63 of the press frame uprights 28. Tie rods in the form of elongated bolts 132 interconnect and tie together the cylinder heads 124 and 126. Frorn FIGURE 3 it will be seen that the bottom plates 63 of the press frame uprights 23 rest directly upon the press bed top plate 61B adjacent the ends of the bolster` 26 without the danger of fdefleoting or deforming the latter during operation.

It will be understood that the cylinder heads 124 and 126 of the hydraulic -cylinders 122 are provided with suitable service ports and hydraulic piping (not shown) connecting the opposite ends of the hydraulic motors 34 to the hydraulic pump 134- (FIGURE 5) of the hydraulic power unit 44, mounted in the press head 36. The hydraulic pump 134 (FIGURE 3) is bolted or otherwise secured to the upper step of a stepped supporting structure 136, the lower step or which carries an electric driving motor 138 coupled as at 140' to the hydraulic pump 134. The stepped supporting structure -136 rests upon and is secured to the bottom plate '70.

Mounted on the bottom plate 70 of the press head or crown 3@ is la hydraulic iluid tank or reservoir 142 adapted to contain hydraulic fluid for the pump 134 and 4drained. by la petcock 144 (FIGURE 1). IThe hydraulic circuit for actuating the hydraulic motors 34 is conven- `tional and contains components shown in FIGURE 5 and in the upper portion of FIGURE 1, such as an oil filter 146, a relief valve 143, an electromagnetically operated `four-way valve 156, a hydraulic fluid gauge 152, a cutout box 154, a limit switch 156, and a headed limit switch actuating pin 133 projecting downwardly through :the bottom plate 713 for enga-gement by the platen 32 at the top of its stroke in order lto move the four-way valve `151i to its neutral position and halt the platen 32. Mounted on the lower part of the front of the right-hand press frame upright 23 (FIGURE 1) are further components of .the electro-hydraulic system located within reach of the operator. These include a ow control valve which enables Athe operator to control hydraulically the downward speed of the platen 32 by controlling the output of the pump 134, a six-button push button press control sw-itoh station 162, a manually-operable remote relief valve 164, and a hydraulic fluid pressure gauge 166. The illustra-tion and description of the electrohydraulic circuit has been omitted from the drawings and speciiica- Vtion because it is beyond the scope of the present invention and, if included, would add considerably to the specification and drawings in both length and complication. It will be evident `)from a consideration of FIGURES 1 and 3 that `supplying oil or other hydraulic fluid under pressure from the pump 134 to the lower ends or lower `cylinder heads l126 of the reciprocatory hydraulic motors 3d and exhausting of huid from the upper heads 12d by suitable operation of the four-way valve 1511 causes the piston heads 126 and piston rods 113 to rise, carrying with lthem the platen 32, and that reversal of this ilow of hydraulic iluid will cause the platen 32 to descend, as Adescribed more fully below in the description of the operation of the invention.

Automatic Platen Levelling Device Construction The automatic platen-levelling device 36 for maintaining the bottom surface 1115 of the platen 32 continually parallel to the top surface 61 of the bolster 26 throughout its stroke is controlled by four toothed racks 168 (FIGURES 6 and 7) bolted to the four ways 34, which are rabbetted as at 170 to receive them. Meshing with each pair of racks 163 is a corresponding pair of pinions 172 (FIGURE 2) keyed o'r otherwise drivingly connected to an end shaft 174 journaled in bearing brackets or shaft hangers 176 bolted to the pads 178 (FIGURE 6) which in turn are welded to the platen end plates lill). Keyed or otherwise drivingly secured to each platen end shaft 174 at its midportion is a miter gear or bevel gear 180 which meshes with a corresponding miter or bevel gear 132. The miter gears 182 are keyed or otherwise drivingly secured to tlie opposite ends of a motion-transmitting shaft 134i rotatably mounted in bearing brackets 186 spaced at intervals throughout the Width of the platen 32 and secured to the upper edges of parallel plates 188 which in turn are interconnected by an elongated plate 19d extending from end to end 101i of the platen 32 and welded or otherwise secured thereto (FIGURES 1 and 4). As a consequence of this mechanism 36, the four corners of the platen 32 are kept constantly and drivingly interconnected to the fixed racks 163 and to each other so that the bottom plate 104 cannot get out of parallelism with the bolster 26 when once adjusted in parallelism therewith, as explained below in connection with the operation of the invention.

Platen Position Indicator Construction The platen position indicating device 38 (FIGURES 2, 9 and 10) shows the instantaneous position of the platen 32 and consequently the extent of the vertical opening at any given instant between the platen bottom plate 104 and the bolster 26 between the upper limit or daylight move the hooked lower end 304 beneath the keeper roller 299. Thus, 4the safety latch hooks 306 are always in their safety latching positions except when the operator desires a downward movement of the platen 32.

Modified Automatic Ploten-LeveIli/ig Device Construction The modilied .die-spotting press, generally designated 330, shown in IFIGURES 16 and 17, differs .from the diespotting press 20 of FIGURES l to 15 inclusive principally by providing a somewhat -Inodied `automatic platen-levelling device, generally designated 332, and also by providing a hydraulically-extensible bolster arrang ment, generally idesignated 334. The latter is subsequently ldescribed below. In FIGURES 16 and 17, the adjustable stop rod arrangement of the dieaspotting press has been omitted to simplify the showing, and to avoid obscuring other details of the mechanism. The diespotting press of FIGURES 16 and 17 also has a platen raising and lowering arrangement suliiciently similar to that of the press Ztl of FIGURES l to inclusive to bear the same reference numerals and to require no duplication of the previous description.

The modified press 33t) has a bed, generally designoted 336, of built-up construction described in more detail below, and hollow yuprights 338 rising therefrom and of construction similar to the uprights 28 of the die spotting press 2@ described above. Bolted or otherwise secured to the uprights 338 with their teeth facing one another lare four toothed racks 34@ guided by gibs and ways (not shown) similar to those shown in FIGURE 2. On the uprights 333 is mounted a platen 342 of generally similar construction to the platen 32 and similarly having a T-slotted bottom plate 344, front and rear plates 346, end plates 34S and central partitions 350, -with `an inermediate partition 35.7; exten-ding between the end walls 34S and auxiliary transverse partitions 354 disposed parallel to and slightly inward from the end walls 343 in spaced relationship and carrying spaced parallel stepped bearing blocks 356 and 35S extending from the side walls 346 to the intermediate partition 352 (FIGURE 17) and welded or otherwise secured thereto. This construction is similar at both ends of the platen 342, only one end thereof being shown in FIGURE 17. The stepped bearing blocks 356 and 358 at each end of the platen 342 are of similar construction but have steps descending in opposite directions, hence may be referred to as of righthand and lett-hand arrangement.

The bearing blocks 356 and 35g are each bored to receive outer lower bearing sleeves 360 and inner upper bearing sleeves 362 (FlGURE 17) for receiving outer lower parallel cross shafts 364 `and upper inner stub shafts 365. Keyed or otherwise drivingly secured to the parallel cross shafts 364 are outer pinions 36S which on one side mesh ywith the teeth of the racks 34) md on the opposite side mesh with idler pinions 37? which are rotatably mounted upon the stub shafts 356 in intermeshing engagement with one another (FIGURE 17). As a consequence of this construction, the router pinions drivingly connected to the outer shaft 364 and meshing with the four racks 340 at the four corners of the platen 342 prevent ysidewise tilting of the platen 342 and their interconnection by the intenneshing idler pinions 37@ locks them in synchronism so as to prevent forward and rearward tiling of the platen 342 as the platen 342 is raised and lowered by the reciprocatory hydraulic motors 34, in the manner described briefly above in connection with the construction of the die spotting press Ztl and more particularly described in connection with the operation of both of the `die spotting presses 2t) and 33t?. The toothed ratchet bars 372 (FIGURE 16) mounted on the channel side member reinforcing plate 68 are for a platen safety-locking purpose not connected with the present invention and consequently require no further description.

Modified Extensible Bolster Arrangcn'zent The modilied extensible bolster arrangement 334, as before, provides a -slotted plate-shaped bolster 374 similar in construction to the bolster 36 of the die spotting press 2th of FIGURE 1 Iand similarly has its opposite ends inset from the frame side members or uprights 338 (FIGURE 16). rIlle bed 336, however, has spaced top plates 376 instead of a single continuous top plate 6i), with the space between them occupied by a relatively movable bolster supporting top plate 37.3 forming the top of -a rreciprocable bolster carriage, generally designated 389. In order to reciprocably support the bolster carriage 38) upon the bed 336, the latter is provided with slightly inclined approximately horizontal parallel channel members 332 welded or otherwise sect red to web plates 334, 336 and 338 (PGURE 16) extending from the top plates 376 at their inner edges to the bottom plate 3% of the bed 336. Disposed between the lower and intermediate web plates 383 and 386 is a horizontal platform plate 392, for ysupporting parallel reciprocatory hydraulic motors, generally designated 394 and described in more detail below. Extending between and welded to the web plates 388, platform plate 392 and bed bottom plate 390 is a vertical reinforcing plate 395.

Bolted or otherwise secured to each of the inclined channels 332 is a spacer or filler plate 396 engaging the upper and lower parallel way bars 398 and 4% respectively. The way bars 3% and 46@ are preferably of hardened and ground steel. Mounted in the space between the upper and lower way bars 393 and 4m) and slidably engaging these members is a gib block or slide block 4612 which is bolted or otherwise secured to a slightly inclined carriage side plate 404. This construction is duplicated at the opposite sides of the bolster carriage 33h, but the intermediate portion of the press 330l adjacent its right-hand side (FIGURE 1-6) has been omitted to enable showing the construction on a larger scale than would other-wise be possible.

The inclined side plates 4c4 of the bolster carriage 380 (FlGURE 16) are welded at their upper edges to the top plate 378 and at their lower edges to outer horizontal intermediate plates 406 for attachment of the hydraulic motors 394 (only one of which is shown). The inner edges of the intermediate plates 4% are welded to outermost partition or reinforcing plates 468 and reinforced by triangular gusset plates 41?. At their lower edges both the outer partition plates 4%8 and the gusset plates 410 are welded or otherwise secured to the carriage bottom plate 412, the central portion of which is reinforced by a central vertical partition plate 434- similarly welded at top and bottom to the carriage top plate 37S and bottom plate 4l?, the latter of which is centrally grooved to receive a wear plate 416 bolted thereto. The wear plate 416 is similarly grooved to receive a coacting wear plate or bearing plate 418 similarly bolted or otherwise secured to the platform plate 392. It will be understood that the bars 398 and 49u, the gib blocks `492 and wear plates 41.6 and 418 are of hardened steel or with bronze components for eilicient low-friction sliding engagement, and that suitable conventional lubricating means (not shown) is provided tor them. Limit switches 42th' (only one of which is shown) are mounted on the intermediate webs 386 (FIGURE 16) for operative engagement by cam elements carried by the bolster carriage 33@ to control the extent to which the carriage 33t? will move on its advancement and retraction stroke.

Each of the parallel reciprocatory hydraulic motors 394 (only one of which is shown) for reciprocating the bolster carriage 68@- and bolster 334 consists of cylinder heads 424 and 426 (FIGURE 17) bolted or otherwise secured to the platform plate 392 and closing the opposite ends of a cylinder 42S in which a hydraulic plunger 430` is reciprocably mounted. The hydraulic plunger 430 has a rod 432 extending outward through the cylinder head 426,

which is suitably supplied with conventional packing means for preventing leakage or hydraulic fluid around the rod 432. The free or outer end o' the rod 432 is threaded into a bracket 434 depending from and bolted or otherwise secured to the outer horizontal intermediate plates 495 (FGURE 16) and secured in position by lock nuts 435. The cylinder heads i2-l and 426 are provided with service ports (not shown) for supplying and withdra ying hydraulic iiuid from the opposite ends of the cylinders 423 in order to reciprocate the plunger 430, and these in turn are connected by hydraulic piping, generally designated 33, to the remainder of the hydraulic circuit by way of a suitable four-way valve for alternately supplying hydraulic pressure iluid from the hydraulic pump 134 (FEGURES 3 and 5) to the opposite ends of the hydraulic cylinders for advancing and retracting the bolster carriage 383 and bolster 334, as described below in the description of the operation of the invention.

The operations of the individual components of the die spotting press 2) have been described in detail above in connection with their constructions. Accordingly, it is believed suticient to describe here the general operation ol; the die spotting press Ztl without repeating specic details thereof already described above.

Operation Prior to the operation of the die spotting press 2t) shown in FiGURES 1 to l5 inclusive, the die halves F and M to be spotted are secured to the platen bottom plate 104 and bolster 26 by means of T-bolts or other fasteners. The arrangement shown in dotted lines in FIGURE 4 places the female die half F above the male die half M, but such arrangement can be and often is reversed. In FIGURE 4, the die half F is shown as telescopcd with tie die half M, rather than bolted to the platen 32, which is in its raised position in FIGURE 4. The screw stop shafts 236 are then moved upward or downward by rotating the hand wheel 230 until their upper ends 234 are disposed at the correct level for engagement by the lower ends 232 of the stop rods 230 depending from the platen 32. This spaces the dies F and M apart from one another the desired distance for properly accommodating the sheet metal which is to be stamped by them into a workpiece. The operator then starts the motor 13S by depressing the proper button in the push-button station 162, whereupon the pump 134 starts delivering pressure lluid to the hydraulic circuit.

To cause the platen 32 to descend, the operator then depresscs the switch button controlling the action of the tour-way valve 159 to shirt the latter by its solenoids to supply pressure iluid to the upper cylinder heads 124 of the hydraulic motors 4 and at the same time to withdraw duid from the lower cylinder head 126 thereof. This action causes the pistons 12@ and piston rods 118 to descend within the cylinders 122, thereby causing the platen 32 and the die half secured to its bottom plate 104 to descend toward the die half mounted on the bolster 26.

When the platen 32 has descended to the desired level, as when the lower ends 232 of the stop rods 230 engage he upper ends 23doi the stop screw shafts 236, the operator depresses a further switch button of the push button station 152 to shift the four-way valve 15% to its neutral position and to halt further descent of the platen or. Meanwhile, if there appears to be an actual or possible interfeenee 1etween the die halves F and M, the operator reverses the four-way valve 150 by depressing the proper switch button of the push button station 162, thereby causing pressure fluid to enter the lower ends of the cylinders 132 and to be exhausted from the upper ends thereof, thereby raising the piston rods 118 and platen 32 and die half connected thereto.

When the upper die half has been raised a sufficient distance for the keeper rods 2% of the latch keepers 296 to reach and push aside tie curved lower end portions 394. of the lower arms 312 of the latch evers 366,

,tiener the latter rst swing outward and then swing beneath the keeper rollers 390 on the keeper rods 296 because of pushing action imparted to the latch levers 306 by the solenoid armatures 31S (FIGURE 13) due to the concomitant energization of the solenoid 320. This action hooks the keepers 29) and the platen 32 connected thereto in their raised positions. Immediately thereafter the platen 32 engages and moves upward the limit switch actuating pin 158 (FIGURE 1), actuating the limit switch 156 to shift the four-way valve 15() to its neutral position and halt the upward travel of the platen 32.

The workman or other operator having the of spotting the die halves F and M of the die set D carefully removes excessive stock from either or both ol the die halves by means of a outing tool or a grinding tool, as is most desirable, preferably using a colored indicating coating such as Prussian Blue to indicate the locations where stoel; is to be removed. The foregoing operation of causing the die halves to approach and recede from one another so that the portion not properly mating will scrape ott the colored indicating coating, indicates to the operator the necessity of the further use of the stock-removing tool to remove the superlluous stock interfering with the accurate interlitting of the die halves.

Meanwhile, it a power failure occurs and the motor 133 becomes dc-energized while the platen 32 is in its fully-raised position, the solenoids 320 become de-energized, permitting the latch hooks 396 to swing inward under the iniiuence of gravity so that their hooked lower ends 394 intercept the keeper rollers 3G@ on the keepers 2% and retain the platen 32 and die half attached thereto in their raised positions.

While the platen 32 is ascending or descending, the automatic platen levelling device 36 (FIGURE 2) automatically prevents any of the side or corners of the platen 32 from descending faster than the other sides or corners because of the stationary racks 16S and the interconnecting of the pinions 172 by the end shafts 174, the miter gears 189 and 182 and the motion-transmitting shaft 184. At the same time, the position or height o the platen bottom plate 104 above the bolster 26 is accurately indicated by the platen position indicator 210, the distance being indicated by the numerals appearing in the windows 212 and 214 thereof (FIGURE 10).

The operation of the modified spotting press 330 of FIGURES 16 and 17 is generally similar to that of the spotting press 20 described above, with the exception olf the fact that the automatic levelling of the platen 342 is accomplished in a different manner by the stationary' racks 340 engaging the outer pinions 368 which in turn engage the inner pinions 370, those also engaging one another while the parallel shafts 364 interconnecting the gear train at the opposite ends ot' the platen 342 prevent relative movement therebetween. The extensible bolster 334 of the press 339 also adds to the convenience, accessibility and efficiency of the latter enabling the lower die halt to be moved out from beneath the upper die hall or back beneath the upper die half by supplying pressure iluid to one end ot' the hydraulic motors 3M while exhausting hydraulic lluid from the opposite ends thereof. The bolster carriage 35% moves into an clitended position shown in partially complete stroke by the dotted lines in the lower right-hand corner of FIG- URE 17. The limit switches 42) control the halting or the carriage 380 at the opposite ends of its strolte by controlling the shifting of the conventional solenoidactuated four-way valve (not shown) controlling the hydraulic motors 394.

Another feature of construction of both of the spotting pres es 29 and 333 ot the v)resent invention is that the present construction utilizes standard parts which are available on the open market, for example, standard gears, racks, shafts, bearings, gibs and ways, and d es not require the specialliv-constructed and cons-:fluently erttremcly expensive parts previously required in prior die spotting presses. Moreover, the present invention provides a readily-detachable crown or press head 3) (FlG- URES 1, 3 and 5) which houses the hydraulic pump 134, driving motor 138 and the associated components of the hydraulic and electric circuit shown in FIGURES 1 and 5. As a consequence of this present construction, the press head or crown 30 can be quickly and easily removed, together with the mechanical, hydraulic and electrical components carried thereby, as a package unit for quick and easy repairs or replacements because of the ready accessibility of these components thus provided.

Platen-Operated Die Positioning Device The platen-operated die positioning device, generally designated 44), shown in FIGURES 18 and 19 is used with the die spotting press 2t) shown in FIGURES l to l5 inclusive, hence reference is made thereto for details of the press Ztl. For purposes of simplification of showing, the press Ztl of FlGURES 18 and 19 is illustrated only as regards the press bed 24, bolster 26 and verticallyreciprocable platen 32. As before, the bolster 26 and platen 32 have T-slots 62 and 106 respectively (FIG- URES 1 and 18) and facing surfaces 61 and 1115 respectively. The die D to be hauled aboard the press bolster 26 is provided with one or more horizontal threaded holes 442 in a side thereof for the reception or the correspondingly threaded shank of one or more hooks 444 locked in position by a lock nut 446 threaded on the shank of each hook 444.

The die-positioning device 440 includes upper and lower pulley units, generally designated 448 and 450 respectively, and a die hauling cable unit 452 operated by cooperating pulley units 448 and 450. The lower pulley unit 450 is provided with an elongated lower bracket 454 in the form of a bar of T-shaped cross-section snugly but removably iitting the T-slots 62. Bolted as at 462 to the opposite sides of the lower bracket 454 at a location behind the rearward edge of the bolster 26 are upstanding parallel plates 464 (FIGURE 19) which are drilled in alignment at 466 to receive an axle bolt 458, the shank of which is threaded to receive a retaining nut. Mounted on the axle bolt 4655 between the plates 464 is a bushing 472 which not only serves as a spacer between the plates 464 but also rotatably receives a bearing sleeve upon which a grooved lower pulley 476 is rotatably mounted. The outer end of the bracket 454 overhangs the rearward edge of the bolster 26 in a cantilever manner and is provided with a substantially vertical hole 478 which serves as an anchorage for the enlargement or other' anchor 4S@ on the lower end of a cable 432 forming the principal part of the cable assembly 45t). The opposite end of the cable 432 is provided with a loop 484 which passes over the hook 444 and is secured to the adjacent portion of the cable 482 by a conventional cable coupling 486. Where the die D already has an upstanding projection, such as a bolt, the loop 434 is passed over it, and the addition of the hook 444 becomes unnecessary.

The upper pulley 448 is of similar construction to the lower pulley unit 450 except that the cable anchorage 478 is unnecessary and is accordingly omitted. Otherwise, the parts are substantially identical, hence are designated with the same reference numers, except that the grooved pulley of the upper pulley 44S is separately designated 490 in order to distinguish it from the lower pulley 476 in describing the operation. As shown in FIGURE 1S, the lower end of the cable 432 is anchored in the hole 478 in the lower pulley bracket 454 by means of the enlargement 430 or other cable anchoring means, and passes upward over the upper pulley 490 (FIG- URE 18), then downward around the lower pulley 476 and thence horizontally to its loop 484 by which it is secured to the hook 444. It will be understood that in the case of exceptionally heavy dies, two or more of the die positioning devices 444i may be used, whereas with dies of the weights commonly encountered a single die positioning device 440 will ordinarily be found sutlicient.

ln the operation of the die positioning device 440- (FIGURE `18), let it be assumed that the platen 32 has been lowered to its lowest convenient position and the cable 432 of the cable unit 452 has been anchored at 489 and trained around the upper and lower pulleys 49d and 476, looped over the hook 444 and coupled as at 486. To haul the die D aboard the press 2t), the operator supplies power to the platen 32 in the manner described above to cause the platen 32 to move upward, carrying with it the upper pulley unit `448. The consequent heavy travel of the upper pulley 49d pulls upward on the cable 432 which, by the cooperating action of the lower pulley y476, causes the cable loop 4S4 and die D to be drawn toward the lower pulley 476 with a horizontal travel which is twice the vertical travel of the platen 32, due to the double pulley arrangement.

Meanwhile, the operator by any suitable means, such as by a crowbar, raises the leading edge of the die D until it is above the edge of the bolster 26 and enters freely upon the upper surface 61 of the press bolster 26. The upward motion of the platen 20 thus causes a horizontal motion of the cable loop `434 so as to haul the die Dl along the upper surface 61 of the press bolster 26. When the die D has reached the desired position upon the press bolster 26, the operator halts the upward motion of the press platen 32, and uncouples the cable loop 484, 486 by removing it from the hook l444, thus disconnecting the die D from the die-positioning cable unit 452. The lower and upper pulley units 45t? and 448 may then be removed, if they are in the way of subsequent operations, by sliding their brackets 454 out of their respective T- slots 62 and 105. Die spotting operations can then be carried out in the usual manner known to those skilled in the die-making art. During operation, the pull of the cable 432 upon the pulleys y476 and 4941 perpendicular to their respective brackets 454 causes the brackets 454 to be yfirmly wedged in their respective T-slots 166 and 62, and no slippage occurs.

What I claim is:

1. A. die spotting press for precisely mating interiitting die halves, said press comprising a generally vertical press frame structure, a press platen mounted in said frame structure for vertical reciprocation relatively thereto, a rack statinarily mounted vertically in said frame structure, a pinion located upon said platen and meshing with said rack, a dimensioned platen position indicator mounted on said platen, and substantially slipless motion-transmitting mechanism drivingly connecting said pinion to said indicator.

2. A die spotting press, according to claim l, wherein said mechanism includes a shaft drivingly connected to said pinion and toothed means drivingly connecting said shaft' to said indicator.

3. A die spotting press, according to claim 2, wherein said toothed means includes a driving sprocket on said shaft, a driven sprocket on said indicator, and a sprocket chain drivingly interconnecting said driving and driven sprockets.

4. ln an electric-motor-operated press, a generally vertical frame structure, a press platen mounted in said frame struct-ure for vertical reciprocation, a latch mounted on said frame structure and movable into and out of latching engagement with said platen in the raised position of said platen, an electromagnetic latch operating device electrically connected in circuit with the electric operating motor of the press and responsive to the electric energization of the motor for withdrawing said latch from latching engagement with said platen, and means connected to said latch and responsive to de-energization of said latch operating device for moving said latch into latching engagement with said platen.

5. An electric-motor-operated press, according to claim 4, wherein said means includes a counterweighted portion connected to said latch and responsive to the force of gravity for moving said hitch into laching engagement 2,217,172 Laussuqc Oct. 8, 1940 with said platen in response to de-encrgization of said 2,284,569 Gasner May 26, 1942 Mich-operating device. 2,305,610 Ernst Dec. 22, 1942 2,073,576 Green Mar. 2, 1954 References Ce-d in the file of this patent 5 2,572,335 Emst Man 23I 1954 UNHED STATES PATENTS 2,231,885 Bannon May 5, 1959 l G07 ,M7 Parish Sent 5 19H 2,889,507 Kennedy c1211 June 2, 1959 1 ^1 1 1 Y 7C f ,7- n C? n 1,443,176 Gabriel 12111.23, 1923 "122253 Gchofef A15 15 Prius CCL 2 31VU1 J0 anen et a Ct' -2 1,496,274 Lgndin June 3, 1924 10 FORHGN PATENTS 1,327,553 BYCCH @CL 13, 1931 347,257 France 11m.; g5) 1939 1,990,050 Emst Maf 71 19%3 375,339 France 111m 15, 1942 2,102 84 Glasner Dec. 2l, 1957

Linux containers, as a lighter virtualization alternative to virtual machines, are gaining momentum. The High Performance Computing (HPC) community is eyeing Linux containers with interest, hoping that they can provide the isolation and configurability of Virtual Machines, but without the performance penalties.

In this article, I will show a simple example of libvirt-based container configuration in which I assign the container one of the ultra-low latency (usNIC) enabled Ethernet interfaces available in the host. This allows bare-metal performance of HPC applications, but within the confines of a Linux container.

Before we jump into the specific libvirt configuration details, let’s first quickly review the following points:

  1. What “container” means in the context of this article.
  2. What limitations exist making it impossible to rely solely on (the available) namespaces to assign host devices to containers and guarantee some kind of isolation.
  3. What tools can be used to bridge the above-mentioned gaps.

Introduction to Linux Containers

Fun fact: there is no formal definition of a Linux “container.” Most people identify a Linux container with keywords like LXC, libvirt, Docker, namespaces, cgroups, etc.

Some of those keywords identify user space tools used to configure and manage some form of containers (LXC, libvirt, and Docker). Others identify some of the building blocks used to define a container (namespaces and cgroups).

Even in the Linux kernel, there is no definition of a “container.”

However, the kernel does provide a number of features that can be combined to define what many people call a “container.” None of these features are mandatory, and depending on what level of sharing or isolation you need between containers — or between the host and containers — the definition/configuration of a “container” will (or will not) make use of certain features.

In the context of this article, I will focus on assignment of usNIC enabled devices in libvirt-based LXC containers. For simplicity, I will ignore all security-related aspects.

Network namespaces, PCI, and filesystems

Given the relationship between devices and the filesystem, I will focus on filesystem related aspects and ignore the other commonly configured parts of a container, such as CPU, generic devices, etc.

Assigning containers their own view of the filesystem, with different degrees of sharing between host filesystem and container filesystem, is already possible and easy to achieve (see

mount

documentation for namespaces). However, what is still not possible is to partition or virtualize (i.e., make namespace-aware) certain parts of the filesystem.

Filesystem elements such as the virtual filesystems commonly mounted in

/proc

,

/sys

, and

/dev

are examples that fall into that category. These special filesystems provide a lot of information and configuration knobs that you may not want to share between the host and all containers, or between containers.

Also, a number of device drivers place special files in

/dev

that user space can use to interact with the devices via the device driver.

Even though network interfaces do not normally need to add anything to

/dev/

(i.e., there is no

/dev/enp7s0f0

), usNIC enabled Ethernet interfaces have entries in

/dev

because the Libfabric and Verbs libraries require to access those entries.

Sidenote: For more information on why modern Linux distribution do not use interface names like

ethX

any more, and how names like

enp7s0f0

are derived, see this document.

The tools you use to manage containers may assign a new network namespace to each container you create by default, or may need you to explicitly ask for that. Libvirt, as explained here, does that automatically when you assign a host network interface to the container. Specifically: when you create a new network namespace, you have the option of moving into the container any of the network interfaces (e.g.,

enp7s0f0

) available in the host.

You can do this by hand using the

ip link

command, or you can have that assignment taken care for you by one of the container management tools. Later we will see how libvirt does that for us.

Once you have moved a network interface into a container, that network device will be only visible and usable inside that container.

Figure 1: (a) host with no containers (b) container that has been assigned a new network namespace which shares all network interfaces with the host (c) container that has been assigned a new network namespace and one of the host network interfaces (no longer visible in the host)

However, the Ethernet adapter also has an identity as a PCI device. As such, it appears in

/sys

and can be seen via commands like

lspci

from any network namespace — not only from the one where the associated network device (

enp7s0f0

) lives.

This gap derives from the fact that the Ethernet device is hooked to both the PCI layer and the networking layer, but only the latter has been assigned a namespace.

Figure 2: (a) host with no containers (b) container that has been assigned a new network namespace which can not access any of the host network interfaces (c) container that has been assigned a new network namespace and one of the host network interfaces.

Tools you can use to assign devices to containers

You can classify containers based on different criteria, such as based on what they will be used to run inside. At the two extremes, you have these options:

  • Application container
  • Distribution container

In the first case, you only need to populate the container filesystem with what is strictly needed to run a given application. Most likely, not much more than a set of libraries. Other parts of the filesystem may be shared with the host (including the virtual filesystems), or may not be needed at all.

In the second case, you want to assign the container a full filesystem and have less (if any) sharing with the host filesystem, including the special entries like

/proc

,

/sys

,

/dev

, etc.

Even though full distribution container support is still not considered “ready for prime time” due to the limitations imposed by a few special filesystems as discussed above, there are a number of generic tools available that can be used to provide some kind of device/resource assignments and isolation between containers:

  • Security infrastructures like selinux and apparmor
  • Bind mounts
  • Cgroup device controller (via device whitelists)
  • Etc.

You can check LXD for an example of project whose goal is to add whatever is missing in order make containers as isolated as virtual machines in terms of resource usage/access.

In section “Example of libvirt LXC container configuration” we will see a simple example of how you can tell libvirt to use bind mounts and cgroup device controllers to assign a usNIC enabled Ethernet interface to a container.

Support for bind mounts has been available for long time (see

man mount

for the details).

cgroup device controller support may already be enabled on your distro by default. But if not, you can enable it with this kernel configuration option:

  • General setup
    • Control Group support
      • Device controller for cgroups

You can find some documentation about this feature in the kernel file Documentation/cgroups/devices.txt. We will not configure it manually as described in that document; instead, we will tell libvirt to do that for us.

Loading the required kernel modules and understanding the role of key filesystem entries

For a detailed description of how to deploy usNIC you can refer to the usNIC deployment guide (available at cisco.com). Keep in mind that:

  1. The installation of the kernel modules is only needed in the host (not the container).
  2. In the container filesystem, you only need to install the user space libraries and packages.

The only missing point, which is the focus of this article, is to make sure certain files created by step 1) will be visible and usable inside the container’s filesystem.

Normally, users do not need to have a detailed knowledge of what files are created by the kernel modules and used by the user space libraries. In our case, however, we do need to have some knowledge about these files in order to properly populate the container filesystem.

Before I show you the libvirt XML configuration, let’s first discuss the role of three key file/directories we will need to tell libvirt about.

Once you have created a “Virtual NIC” (vNIC) on the Cisco UCS Virtual Interface Card (VIC) and enabled the usNIC feature in it (per the Cisco documentation cited above), you will see the following three filesystem entries in the host:

  1. /dev/infiniband/uverbsX

    This is a character device used by the user space library to configure a usNIC enabled network interface.

  2. /sys/class/infiniband/usnic_X/

    This is a directory used by the usNIC kernel driver to export a number of configuration parameters. For example, the

    iface

    file in this directory tells you with which network interface (visible with

    ifconfig

    ) this usNIC entry is associated to.

  3. /sys/class/infiniband_verbs/uverbsX/

    Among the data exported here by the Linux Verbs API, you may find useful these two files:

    • dev

      This is the

      major:minor

      device ID which will match with what you will see in

      /dev/infiniband/uverbsX

      . You can refer back to this information when/if you want to check if libvirt configures the cgroup device whitelist properly (see example, below).

    • ibdev

      This is the associated usnic_X entry in

      /sys/class/infiniband/usnic_X/

Note that:

  • The

    /sys/class/infiniband/usnic_X/

    directory will be populated when you load the usNIC kernel driver module (i.e.,

    usnic_verbs.ko

    ).

  • The

    /dev/infiniband/

    and

    /sys/class/infiniband_verbs/

    directories also will be populated when you load the usNIC kernel driver module.

In order to find the mapping between one of the network interfaces visible with ifconfig and the associated

uverbsX

entry in

/dev/infiniband

, you can either use the files in

/sys

described above, or use the

usd_devinfo

command that comes with the

usnic-utils

package.

Example of libvirt LXC container configuration

Libvirt describes the configuration of containers (as well as virtual machines) with an XML file. Here is a link to detailed documentation of all libvirt’s XML options. In the context of this article, I recommend reading the following sections of that documentation:

  • Filesystem mounts
  • Device nodes
  • Filesystem isolation
  • Device access

Let’s start with a simple container configuration and add the delta needed to assign one usNIC enabled host Ethernet interface to the container. This example shows how to create a container on a Cisco UCS C240-M3 rack server running Centos 7.

Here is a stripped-down version of the container XML; I have removed the details that are not relevant for this discussion:


<domain type='lxc'> <name>container_1</name> <memory unit='GiB'>8</memory> <currentMemory unit='GiB'>0</currentMemory> <os> <type arch='x86_64'>exe</type> <init>/sbin/init</init> </os> <devices> <filesystem type='mount' accessmode='passthrough'> <source dir='/usr/local/var/lib/lxc/container_1/rootfs'/> <target dir='/'/> </filesystem> <console type='pty'/> </devices> </domain>

 

The only detail worth noting is that the container root filesystem is located at

/usr/local/var/lib/lxc/container_1/rootfs

in the host.

Note that with this basic configuration, and according to the section “Device Nodes” mentioned above, the container’s

/dev

tree will not contain any of the special entries from the host’s

/dev

tree, including the

/dev/infiniband

directory that we need for usNIC:


[container_1]# ls /dev/infiniband ls: cannot access /dev/infiniband: No such file or directory

 

However, since

/sys

is shared with the host, you can see the entries associated to usNIC enabled Ethernet interfaces:


[container_1]# find /sys/class -name uverbs* /sys/class/infiniband_verbs/uverbs0 /sys/class/infiniband_verbs/uverbs1 /sys/class/infiniband_verbs/uverbs2 /sys/class/infiniband_verbs/uverbs3 [container_1]# find /sys/class -name usnic* /sys/class/infiniband/usnic_0 /sys/class/infiniband/usnic_1 /sys/class/infiniband/usnic_2 /sys/class/infiniband/usnic_3

 

But notice that none of the

/dev/infiniband/uverbsX

devices are present (yet) in the container. Running a simple usNIC diagnostic program in the container shows warnings (one for each device I have configured on my server):


[container_1]# /opt/cisco/usnic/bin/usd_devinfo usd_open_for_attrs: No such device usd_open_for_attrs: No such device usd_open_for_attrs: No such device usd_open_for_attrs: No such device

 

Since we did not assign any host network interface to the container, by default, libvirt allowed the container to see all Ethernet interfaces (i.e., it did not create a new network namespace):


[container_1]# ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 8: enp6s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT qlen 1000 link/ether 00:25:b5:00:00:04 brd ff:ff:ff:ff:ff:ff 9: enp7s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT qlen 1000 link/ether 00:25:b5:00:00:14 brd ff:ff:ff:ff:ff:ff 10: enp8s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT qlen 1000 link/ether 00:25:b5:00:00:24 brd ff:ff:ff:ff:ff:ff 11: enp9s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT qlen 1000 link/ether 00:25:b5:01:01:0f brd ff:ff:ff:ff:ff:ff

 

Now we edit the libvirt configuration to assign one usNIC enabled interface to the container. This means that inside the container:

  1. /dev/infiniband/

    will show an entry for the assigned usNIC enabled interface

  2. ifconfig

    will also show the usNIC enabled Ethernet interface .

Let’s assign

enp7s0f0

(i.e., 

usnic_1

) to the container. Here is the new libvirt LXC container configuration (the changes compared to

container_1

are shown in red):


<domain type='lxc'> <name>container_2</name> <memory unit='GiB'>8</memory> <currentMemory unit='GiB'>0</currentMemory> <os> <type arch='x86_64'>exe</type> <init>/sbin/init</init> </os> <devices> <filesystem type='mount' accessmode='passthrough'> <source dir='/usr/local/var/lib/lxc/centos_container/rootfs'/> <target dir='/'/> </filesystem> <hostdev mode='capabilities' type='misc'> <source> <char>/dev/infiniband/uverbs1</char> </source> </hostdev> <hostdev mode='capabilities' type='net'> <source> <interface>enp7s0f0</interface> </source> </hostdev> <console type='pty'/> </devices> </domain>

 

You can find more details about the above two new pieces of configuration here.

If I start the container with the new “container_2” configuration, this is what I can see now from within it:

  1. Only one network interface (

    enp7s0f0

    )

  2. The device node 

    /dev/infiniband/uverbs1

  3. The same four entries in

    /sys

    (as with the previous configuration

    container_1

    )

Specifically:


[container_2]# ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 9: enp7s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT qlen 1000 link/ether 00:25:b5:00:00:14 brd ff:ff:ff:ff:ff:ff [container_2]# ls -ls /dev/infiniband/ total 0 0 crwx------. 1 root root 231, 193 Apr 1 20:44 uverbs1 [container_2]# find /sys/class -name uverbs* /sys/class/infiniband_verbs/uverbs0 /sys/class/infiniband_verbs/uverbs1 /sys/class/infiniband_verbs/uverbs2 /sys/class/infiniband_verbs/uverbs3 [container_2]# find /sys/class -name usnic* /sys/class/infiniband/usnic_0 /sys/class/infiniband/usnic_1 /sys/class/infiniband/usnic_2 /sys/class/infiniband/usnic_3

 

Here is how the usNIC diagnostic command

usd_devinfo

shows the information about the visible usNIC enabled network interfaces (there are still some warnings because of the

uverbsX

entries that are present in

/sys

but not in

/dev/infiniband

):


[container_2]# /opt/cisco/usnic/bin/usd_devinfo usd_open_for_attrs: No such device usnic_1: Interface: enp7s0f0 MAC Address: 00:25:b5:00:00:14 IP Address: 10.0.7.1 Netmask: 255.255.255.0 Prefix len: 24 MTU: 9000 Link State: UP Bandwidth: 10 Gb/s Device ID: UCSB-PCIE-CSC-02 [VIC 1225] [0x0085] Firmware: 2.2(2.5) VFs: 64 CQ per VF: 6 QP per VF: 6 Max CQ: 256 Max CQ Entries: 65535 Max QP: 384 Max Send Credits: 4095 Max Recv Credits: 4095 Capabilities: CQ sharing: yes PIO Sends: no usd_open_for_attrs: No such device usd_open_for_attrs: No such device

 

Let’s compare the content of

/dev/infiniband

in the host and in the container:


[container_2]# ls -ls /dev/infiniband/ total 0 0 crwx------. 1 root root 231, 193 Apr 1 20:44 uverbs1
[host]# ls -ls /dev/infiniband/ total 0 0 crw-rw-rw-. 1 root root 231, 192 Mar 31 17:30 uverbs0 0 crw-rw-rw-. 1 root root 231, 193 Mar 31 17:30 uverbs1 0 crw-rw-rw-. 1 root root 231, 194 Mar 31 17:30 uverbs2 0 crw-rw-rw-. 1 root root 231, 195 Mar 31 17:30 uverbs3

 

As you can see,

uverbs1

— and only

uverbs1

— is visible in the container. The device major number for all

uverbsX

entries is 231, while the device minors are 192/193/194/195.

Let’s now compare the

device.list

device whitelist for the container and for the host:


[container_2]# cat /sys/fs/cgroup/devices/devices.list c 1:3 rwm c 1:5 rwm c 1:7 rwm c 1:8 rwm c 1:9 rwm c 5:0 rwm c 5:2 rwm c 10:229 rwm c 231:193 rwm c 136:* rwm
[host]# cat /sys/fs/cgroup/devices/devices.list a *:* rwm

 

As you can see from the two commands above:

  • The hostdev/misc entry in the libvirt XML config added the 231:193 rule to the container device whitelist
  • The rest of the devices are the default ones added by libvirt

We can see that “ping” works just fine from inside the container (using the enp7s0f0 interface):


[container_2]# ip addr show dev enp7s0f0 9: enp7s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP qlen 1000 link/ether 00:25:b5:00:00:14 brd ff:ff:ff:ff:ff:ff inet 10.0.7.1/24 brd 10.0.7.255 scope global enp7s0f0 valid_lft forever preferred_lft forever inet6 fe80::225:b5ff:fe00:14/64 scope link valid_lft forever preferred_lft forever [container_2]# ping -c 1 10.0.7.2 PING 10.0.7.2 (10.0.7.2) 56(84) bytes of data. 64 bytes from 10.0.7.2: icmp_seq=1 ttl=64 time=0.279 ms --- 10.0.7.2 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.279/0.279/0.279/0.000 ms

 

We can test the

usnic_1

interface using the

usd_pingpong

command to another container, similarly configured with usNIC enabled interface on another Cisco UCS C240-M3 rack server connected on a regular IP/Ethernet network:


[container_2]# /opt/cisco/usnic/bin/usd_pingpong -d usnic_1 -h 10.0.7.2 open usnic_1 OK, IP=10.0.7.1 QP create OK, addr -h 10.0.7.1 -p 3333 sending params... payload_size=4, pkt_size=46 posted 63 RX buffers, size=64 (4) 100000 pkts, 1.790 us / HRT

 

The 1.79 microsecond half-round trip ping-pong time (show in red, above) shows that we are getting bare-metal performance inside of the container.

Wrapup

As Linux containers become more mainstream — potentially even in HPC — it will become more important to understand how to expose native hardware functionality properly.  Documentation and “best practice” knowledge is still somewhat scarce in the rapidly-evolving Linux containers ecosystem; this blog entry explains some of the underlying concepts and shows some examples of how adding just a few lines of XML allows bare-metal performance with the isolation and configurability of Linux containers.

Tags: