<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Computing@Thayer</title>
	<atom:link href="https://computing.thayer.dartmouth.edu/feed/" rel="self" type="application/rss+xml" />
	<link>https://computing.thayer.dartmouth.edu</link>
	<description>The blog of your Friendly Computing Services Team</description>
	<lastBuildDate>Thu, 20 Apr 2017 17:26:51 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.8</generator>
	<item>
		<title>Redesigned Classroom</title>
		<link>https://computing.thayer.dartmouth.edu/blog/2014/10/12/redesigned-classroom/</link>
		<pubDate>Mon, 13 Oct 2014 01:39:55 +0000</pubDate>
		<dc:creator><![CDATA[jared]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://computing.thayer.dartmouth.edu/?p=663</guid>
		<description><![CDATA[The A/V equipment in many of our classrooms was due for replacement.  As we began to plan the upgrade, we decided the rooms would benefit from getting a full re-thinking from floor to ceiling. The first step was getting community feedback.  We reached out to teaching faculty and students, and received several suggestions for making the rooms a [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>The A/V equipment in many of our classrooms was due for replacement.  As we began to plan the upgrade, we decided the rooms would benefit from getting a full re-thinking from floor to ceiling.</p>
<p>The first step was getting community feedback.  We reached out to teaching faculty and students, and received several suggestions for making the rooms a better teaching and learning space.</p>
<p>We decided to use this feedback to upgrade a single room, Cumming 202, refine it, then replicate what works to other classrooms.  We are currently in the process of upgrading Cummings 105 followed by Cummings 118 and Cummings 200 during winter break.</p>
<p>Here are the changes we&#8217;ve made to Cummings 202:</p>
<h2>Lighting</h2>
<div id="attachment_673" style="width: 630px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2014/10/old_lights.jpg" target="_blank"><img class="wp-image-673 size-large" src="/wp-content/uploads/2014/10/old_lights-620x390.jpg" alt="Old hanging lights" width="620" height="390" srcset="https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/old_lights-620x390.jpg 620w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/old_lights-300x188.jpg 300w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/old_lights.jpg 1024w" sizes="(max-width: 620px) 100vw, 620px" /></a><p class="wp-caption-text">Old hanging lights</p></div>
<p>Old hanging fluorescent lights have been replaced by recessed LED lights.  Each light has occupancy and ambient light sensors and is wireless controlled using built-in mesh networking.  In the future, we can reconfigure how many switches we have, and which lights are associated with each switch.  Previously the room switches controlled the lights in a left and right group, which didn&#8217;t make sense.  We now have them set to control the front and back of the room so you can turn off (or dim) just the front while projecting.</p>
<div id="attachment_674" style="width: 630px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2014/10/new_lights.jpg"><img class="size-large wp-image-674" src="/wp-content/uploads/2014/10/new_lights-620x296.jpg" alt="new LED lights" width="620" height="296" srcset="https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/new_lights-620x296.jpg 620w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/new_lights-300x143.jpg 300w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/new_lights.jpg 1024w" sizes="(max-width: 620px) 100vw, 620px" /></a><p class="wp-caption-text">New LED lights</p></div>
<h2>Writing space</h2>
<p>We greatly increased writing area by installing two huge 16&#8242; x 5&#8242; whiteboards.  So big, they had to come in through the window. We&#8217;ve turned the classroom 180 degrees, but the chalkboard remains in the back for now.</p>
<h2>Projection</h2>
<div id="attachment_675" style="width: 630px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2014/10/whiteboard_with_screen_down.jpg"><img class="size-large wp-image-675" src="/wp-content/uploads/2014/10/whiteboard_with_screen_down-620x365.jpg" alt="When projection screen is in use, the right half of the marker board remains available" width="620" height="365" srcset="https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/whiteboard_with_screen_down-620x365.jpg 620w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/whiteboard_with_screen_down-300x176.jpg 300w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/whiteboard_with_screen_down.jpg 1024w" sizes="(max-width: 620px) 100vw, 620px" /></a><p class="wp-caption-text">When projection screen is in use, the right half of the marker board remains available</p></div>
<p>The most common piece of feedback we received from faculty is the desire to project and write on the board at the same time.  To accommodate this request, we&#8217;ve put the new projection screen on the left, leaving a big area of whiteboard on the right.  The screen itself is now widescreen to match the widescreen projector and most laptops.</p>
<p>While motorized screens are not that much more expensive, we stayed with a manual projection screen in C202.  The faculty we heard from felt the manual screen is faster to put up and take down.</p>
<h2>Furniture</h2>
<div id="attachment_676" style="width: 630px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2014/10/desks_in_u.jpg"><img class="size-large wp-image-676" src="/wp-content/uploads/2014/10/desks_in_u-620x317.jpg" alt="Desks in a &quot;U&quot; configuration" width="620" height="317" srcset="https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/desks_in_u-620x317.jpg 620w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/desks_in_u-300x153.jpg 300w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/desks_in_u.jpg 1024w" sizes="(max-width: 620px) 100vw, 620px" /></a><p class="wp-caption-text">Desks in a &#8220;U&#8221; configuration</p></div>
<div id="attachment_677" style="width: 630px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2014/10/desks_in_clusters.jpg"><img class="size-large wp-image-677" src="/wp-content/uploads/2014/10/desks_in_clusters-620x405.jpg" alt="desks grouped together" width="620" height="405" srcset="https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/desks_in_clusters-620x405.jpg 620w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/desks_in_clusters-300x195.jpg 300w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/desks_in_clusters.jpg 1024w" sizes="(max-width: 620px) 100vw, 620px" /></a><p class="wp-caption-text">desks grouped together</p></div>
<p>The huge, heavy tables have been replaced with smaller tables that have wheels and flip up for compact storage.  These tables should be much easier to reconfigure from class to class.  They can be put in groups or more traditional rows.  The chairs have also been replaced by wheeled chairs with adjustable height.</p>
<p>We&#8217;ve installed an adjustable height desk for the professor that allows you to sit or stand during lectures.</p>
<h2>A/V Controls</h2>
<div id="attachment_679" style="width: 630px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2014/10/classroom_main_controls_screen_mockup_2014-06-03.png"><img class="size-large wp-image-679" src="/wp-content/uploads/2014/10/classroom_main_controls_screen_mockup_2014-06-03-620x372.png" alt="A/V controls" width="620" height="372" srcset="https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/classroom_main_controls_screen_mockup_2014-06-03-620x372.png 620w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/classroom_main_controls_screen_mockup_2014-06-03-300x180.png 300w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/classroom_main_controls_screen_mockup_2014-06-03.png 800w" sizes="(max-width: 620px) 100vw, 620px" /></a><p class="wp-caption-text">A/V controls</p></div>
<p>We are using a custom designed touch screen interface for the room.  We spent a lot of time making the interface as easy to use as possible.  Even better, we made the projector turn on automatically and select the correct input when you connect your laptop.  There is also an occupancy sensor that will shut the system down automatically if you forget.</p>
<h2>Power outlets</h2>
<div id="attachment_680" style="width: 630px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2014/10/outlet.jpg"><img class="wp-image-680 size-large" src="/wp-content/uploads/2014/10/outlet-620x324.jpg" alt="outlet" width="620" height="324" srcset="https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/outlet-620x324.jpg 620w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/outlet-300x157.jpg 300w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/outlet.jpg 1024w" sizes="(max-width: 620px) 100vw, 620px" /></a><p class="wp-caption-text">outlets all around</p></div>
<p>More power outlets for laptops was a common request in our student feedback. Installing floor outlets in Cummings wasn&#8217;t feasible, so we compromised by installing several outlets around the perimeter.</p>
<h2>Recording appliance</h2>
<p>Like our larger classrooms, we&#8217;ve installed a recording appliance in C202.  We are working on getting recording controls added to the touch screen</p>
<h2>A/V Monitoring</h2>
<div id="attachment_681" style="width: 630px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2014/10/chart.png"><img class="wp-image-681 size-large" src="/wp-content/uploads/2014/10/chart-620x185.png" alt="A graph of the lamp hours on the projector" width="620" height="185" srcset="https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/chart-620x185.png 620w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/chart-300x89.png 300w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2014/10/chart.png 1212w" sizes="(max-width: 620px) 100vw, 620px" /></a><p class="wp-caption-text">A graph of the lamp hours on the projector, one of the several items we monitor.</p></div>
<p>We are now monitoring our A/V system.  This will enable us to provide preventative maintenance, and notice when systems are broken before you do.  We can&#8217;t monitor all components due to limitations of some hardware, but we hope our systems will be even more reliable.</p>
]]></content:encoded>
			</item>
		<item>
		<title>VMware View Space Reclamation Problem</title>
		<link>https://computing.thayer.dartmouth.edu/blog/2013/08/15/vmware-view-space-reclamation-problem/</link>
		<pubDate>Thu, 15 Aug 2013 14:35:06 +0000</pubDate>
		<dc:creator><![CDATA[mdailey]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[view]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://computing.thayer.dartmouth.edu/?p=567</guid>
		<description><![CDATA[In setting up our new View infrastructure, we&#8217;ve definitely had to work though many little issues with all the various moving parts. One issue that wasn&#8217;t a show-stopper, but was quite annoying was that after we set up a new pool, it was unable to do space reclamation on the desktops. After about 24 hours [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>In setting up our new View infrastructure, we&#8217;ve definitely had to work though many little issues with all the various moving parts. One issue that wasn&#8217;t a show-stopper, but was quite annoying was that after we set up a new pool, it was unable to do space reclamation on the desktops. After about 24 hours or so, we&#8217;d start getting these messages in the View Administrator event log:</p>
<blockquote><p>Failed to perform space reclamation on machine desktop1 in Pool mypool</p></blockquote>
<p>Once these started, we&#8217;d get them about once per hour for every desktop.</p>
<p>Back over on the View Connection server, we&#8217;d see the corresponding entries in its log (C:\ProgramData\VMware\VDM\logs\log-yyyy-mm-dd.txt):</p>
<blockquote><p>WARN  (08CC-09B8) <PendingOperation-vm-912> [ServiceConnection25] Problem while performing VC operation: &#8216;Permission to perform this operation was denied.&#8217; [com.vmware.vim25.NoPermission]<br />
ERROR (08CC-09B8) <PendingOperation-vm-912> [ServiceConnection25] Permission to perform this operation was denied.<br />
ERROR (08CC-09B8) <PendingOperation-vm-912> [PendingOperation] Error reclaiming space for VM /View/vm/view-pool-storage/mypool/desktop1 :com.vmware.vdi.vcsupport25.VmException25: Permission to perform this operation was denied.</p></blockquote>
<p>We&#8217;d followed the instructions for giving permissions to the vCenter user used by the Connection server outlined on <a href="https://pubs.vmware.com/view-52/topic/com.vmware.view.installation.doc/GUID-997107E5-F66D-494C-B2BA-A74977C7804C.html#GUID-997107E5-F66D-494C-B2BA-A74977C7804C" title="View Manager Privileges Required for the vCenter Server User">View Manager Privileges Required for the vCenter Server User</a>, but there was obviously something missing. As an aside, some of the permissions given in the View documentation needed some &#8220;translating&#8221; for vSphere 5.1 &#8211; thanks to Terence Luk for his blog outlining this: <a href="http://terenceluk.blogspot.com/2013/04/configuring-vcenter-role-permissions.html" title="Configuring vCenter role permissions for VMware vSphere 5.1 and VMware Horizon View 5.2 (View Manager and View Composer)">Configuring vCenter role permissions for VMware vSphere 5.1 and VMware Horizon View 5.2 (View Manager and View Composer)</a></p>
<p>To figure out what was missing, we gave Administrator privileges to the vCenter user for one desktop and then initiated a manual reclamation from the View Connection server:</p>
<blockquote><p>C:\Program Files\VMware\VMware View\Server\tools\bin>vdmadmin -M -d mypool -m desktop1 -markForSpaceReclamation</p></blockquote>
<p>The reclamation worked, and in the event log on the vCenter server, we could see Flex-SE wipe and shrink operations for that desktop. Looking at the role permissions in vCenter, we found the culprit. The vCenter user needed to have this permission added to work properly:</p>
<p><strong>Virtual Machine -> Interaction -> Perform wipe or shrink operations</strong></p>
<p>Once this was added to the role for the vCenter user, all desktops were able to perform reclamation happily, and there are no more errors in the event log.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Remote desktop virtualization pilot planning</title>
		<link>https://computing.thayer.dartmouth.edu/blog/2013/07/24/remote-desktop-virtualization-pilot-planning/</link>
		<pubDate>Thu, 25 Jul 2013 01:55:21 +0000</pubDate>
		<dc:creator><![CDATA[jared]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[VDI]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://computing.thayer.dartmouth.edu/?p=530</guid>
		<description><![CDATA[As I alluded to in the first post on our Desktop Virtualization pilot, our use case is pretty different from the typical one. In most businesses, they are using VDI on employee desktops. Most employees run simple low performance apps like web browsers and word processors, and each person is doing different tasks at different [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>As I alluded to in the <a title="Remote Desktop Virtualization Pilot" href="/blog/2013/07/09/remote-desktop-virtualization-pilot/">first post</a> on our Desktop Virtualization pilot, our use case is pretty different from the typical one. In most businesses, they are using VDI on employee desktops. Most employees run simple low performance apps like web browsers and word processors, and each person is doing different tasks at different times. The ability to &#8220;over subscribe&#8221; a server is quite high, as it is unlikely that all employees will <em>simultaneously</em> run highly demanding operations.</p>
<p>In <em>our</em> case we plan to have a professor doing a SolidWorks tutorial to an entire room of students.  We are likely to see all the users simultaneously do an operation that could stress many components. If 60 students were to all rotate a complex SolidWorks model at the same time, it will stress the GPU, CPU, and network.  Because of this, all the VDI sizing guides were pretty useless.  Our plan was do a little data collection, and then dive in with real equipment.</p>
<p>We purchased <a href="http://www.liquidwarelabs.com/products/stratuspherefit.asp" target="_blank">Liquidware Labs Stratusphere Fit</a>. It comes as a VMware appliance and an agent that gets installed on each client computer you want to monitor. We installed it on our general Windows lab and our CAD Lab systems.</p>
<p>It has a bazillion reports you can run. You can see tables and graphs showing which applications are using resources and how much.  It did give us a general idea of how much RAM we would need, how busy our labs were, and which applications got the most use.</p>
<p><img class="aligncenter size-large wp-image-544" alt="stratusphere_fit_graph" src="/wp-content/uploads/2013/07/stratusphere_fit_graph-620x284.png" width="620" height="284" srcset="https://computing.thayer.dartmouth.edu/wp-content/uploads/2013/07/stratusphere_fit_graph-620x284.png 620w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2013/07/stratusphere_fit_graph-300x137.png 300w" sizes="(max-width: 620px) 100vw, 620px" /></p>
<p>In the end, the data was interesting, but still not enough to have an educated guess at how VMware View would perform for us.  We needed to buy a server and just try it out.</p>
<p>We had no idea what the bottleneck was going to be.  So we wanted to get a very beefy system that still had room to grow.  We knew we wanted a system that supported NVIDIA&#8217;s K1 card for offloading the GPU operations.  This limited our options, as there are a <a href="http://www.nvidia.com/object/enterprise-virtualization-where-to-buy.html" target="_blank">limited number of systems that support the card</a>.  Our existing servers are predominantly Dell or Supermicro based.  After evaluating the options from these two manufacturers, we ended up with the <a href="http://www.dell.com/us/business/p/poweredge-r720/pd" target="_blank">Dell PowerEdge R720</a>.  In only 2U of rack space, it has impressive abilities. It can handle up to two NVIDIA K1 cards, has 24 DIMM slots, 2 CPU slots, and 16 2.5&#8243; storage bays.  Along with the R720 and NVIDIA K1, we purchased a Teradici APEX 2800 card.  It basically does hardware transcoding of the video stream that gets sent over the network to the clients.  It works in conjunction with the NVIDIA K1 card.  Without these two cards, the server CPU would have to take care of all the GPU, video stream encoding, and client CPU operations.  It may work, but the number of simultaneous users could be much lower.</p>
<div id="attachment_547" style="width: 628px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2013/07/desktop_virtualization_hardware.jpg"><img class="size-full wp-image-547" alt="desktop_virtualization_hardware" src="/wp-content/uploads/2013/07/desktop_virtualization_hardware.jpg" width="618" height="439" srcset="https://computing.thayer.dartmouth.edu/wp-content/uploads/2013/07/desktop_virtualization_hardware.jpg 618w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2013/07/desktop_virtualization_hardware-300x213.jpg 300w" sizes="(max-width: 618px) 100vw, 618px" /></a><p class="wp-caption-text">Our hardware stack. A Dell PowerEdge R720, NVIDIA K1, and a Teradici APEX 2800</p></div>
<p>We ended up with the following hardware:</p>
<ul>
<li><span style="line-height: 13px;">2 &#8211; Intel Xeon E5-2670 2.60 GHz CPUs (Currently the fastest that Dell supports in a system with the K1 GPU card)</span></li>
<li>256 GB of RAM</li>
<li>6 &#8211; 200 GB SSD drives (we hope to serve everything off of local fast SSD storage)</li>
<li>1 NVIDIA K1 GRID GPU acceleration card</li>
<li>1 Teradici APEX 2800 LP card</li>
</ul>
<p>We&#8217;ve just received the components and finished getting the VMware Horizon View environment set up.  This wasn&#8217;t exactly smooth.  Despite the software stack almost exclusively coming from VMware, there are several components involved.  We naively expected it to be a, &#8220;download this virtual appliance from VMware and start it up&#8221; operation.  Instead, there are many manual steps involved, including at least two Windows servers that orchestrate the system.  We are still wrapping our heads around the numerous buttons and knobs.</p>
<p>Once we get the  buttons and knobs mostly under control we&#8217;ll be back with part 3&#8230; real world(ish) benchmarking.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Remote Desktop Virtualization Pilot</title>
		<link>https://computing.thayer.dartmouth.edu/blog/2013/07/09/remote-desktop-virtualization-pilot/</link>
		<pubDate>Tue, 09 Jul 2013 23:00:25 +0000</pubDate>
		<dc:creator><![CDATA[jared]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[VDI]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://computing.thayer.dartmouth.edu/?p=526</guid>
		<description><![CDATA[The vast majority of our students now have Apple laptops. This is a challenge in an engineering school where heavily used applications such as Solidworks are Windows only. Additionally, some engineering applications are difficult to install, or are too resource intensive to work on an older laptop. We offer a number of Windows labs with [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>The vast majority of our students now have Apple laptops. This is a challenge in an engineering school where heavily used applications such as Solidworks are Windows only. Additionally, some engineering applications are difficult to install, or are too resource intensive to work on an older laptop.</p>
<p>We offer a number of Windows labs with every application under the sun, but this is a limited resource, one that is often at capacity with a class or students trying to get a project finished. Our buildings are at capacity so adding additional labs is not an option.</p>
<p>We&#8217;ve guided students to install Boot Camp or a virtualization solution on their Mac (Virtualbox, Fusion, or Parallels) but it is a time consuming endeavor, both for us and the student.</p>
<p>We&#8217;ve long wished that we could allow students to run these big engineering applications remotely on our server infrastructure. However, we had concerns about being able to scale and user interface latency. How many servers would we need to accommodate a class of students? Would the app feel sluggish when rotating a CAD model? Until recently, the available solutions didn&#8217;t look promising.</p>
<p>However, with the latest release of <a href="http://www.vmware.com/products/view/overview.html" target="_blank">Horizon View</a> (VMware&#8217;s Virtual Desktop Infrastructure (VDI) solution), and <a href="http://www.nvidia.com/object/grid-boards.html" target="_blank">NVIDIA&#8217;s GRID GPU</a>, DirectX and OpenGL graphics operations can now be offloaded to a dedicated video card. We were intrigued. After our colleagues set us up with a non-graphics-accelerated demo on their VMware View server, were were sufficiently impressed to proceed with a pilot. We couldn&#8217;t find any solid information with estimates of how many users we could support on a single server. So we decided the best way to proceed was to buy some equipment and do our own benchmarking.</p>
<p>Our testing is just under way. We&#8217;ll follow this post up with our pilot set up and our findings on whether running resource intensive applications remotely is really feasible and cost effective.</p>
]]></content:encoded>
			</item>
		<item>
		<title>FreeBSD manual multipath script</title>
		<link>https://computing.thayer.dartmouth.edu/blog/2013/03/01/freebsd-manual-multipath-script/</link>
		<pubDate>Fri, 01 Mar 2013 21:01:45 +0000</pubDate>
		<dc:creator><![CDATA[ben]]></dc:creator>
				<category><![CDATA[Backups]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Servers]]></category>

		<guid isPermaLink="false">http://computing.thayer.dartmouth.edu/?p=485</guid>
		<description><![CDATA[I recently ran into an issue installing FreeBSD on a system that already had some disks &#038; zpools. Because the disks were partitioned previously, automatic multipath was not an option as the last sector of all hard drives isn&#8217;t available to store an ID. The remaining option is to do manual multipath, and it needs [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I recently ran into an issue installing FreeBSD on a system that already had some disks &#038; zpools. Because the disks were partitioned previously, automatic multipath was not an option as the last sector of all hard drives isn&#8217;t available to store an ID. The remaining option is to do manual multipath, and it needs to be done every time the system boots.</p>
<p>Here&#8217;s an rc script that will run early in the sequence and create a multipath &#8220;link&#8221; between drives based on their serial number.</p>
<p>/etc/rc.d/manual_multipath</p>
<pre>#!/bin/sh

# PROVIDES: manual_multipath
# REQUIRE: sysctl
# BEFORE: hostid

. /etc/rc.subr

name="manual_multipath"
start_cmd="${name}_start"
stop_cmd=":"

manual_multipath_start()
{
        echo "> manual_multipath script started"
        echo "> linking drives with the same serial number with gmultipath"
        counter=0
        serials=""
        devices=`/usr/bin/find /dev -maxdepth 1 -regex '.*da[0-9]*' | /usr/bin/cut -d '/' -f 3`
        for device in $devices
        do
                echo $device
                serial=`camcontrol inquiry $device -S`
                substring=`echo "$serials" | /usr/bin/sed -n "s/\|$serial\|.*//p" | /usr/bin/wc -c`
                if [ $substring -eq 0 ]
                then
                        found_multi=0
                        arg1="$device"
                        arg2="$device"
                        for newdevice in $devices
                        do
                                newserial=`camcontrol inquiry $newdevice -S`
                                if [ "$device" != "$newdevice" -a "$serial" == "$newserial" ]
                                then
                                        echo "  same as $newdevice!"
                                        counter=`expr $counter + 1`
                                        found_multi=1
                                        arg1=$arg1"$newdevice"
                                        arg2=$arg2" $newdevice"
                                fi
                        done
                        if [ $found_multi -eq 1 ]
                        then
                                gmultipath create $arg1 $arg2
                        fi
                fi
                serials=$serials"|$serial|"
        done
        echo "> manual_multipath script finished, found $counter matches"
}

load_rc_config $name
run_rc_command "$1"</pre>
<p>Don&#8217;t forget to &#8220;chmod 555 /etc/rc.d/manual_multipath&#8221;.</p>
<p>Lastly, when importing a zpool from the drives you just multipathed, make sure to specify where to look for devices or you might end up importing a mix of multipath and regular devices. Make sure to &#8220;zpool import -d /dev/multipath&#8221;.</p>
]]></content:encoded>
			</item>
		<item>
		<title>ZFS send/receive accross different transport mechanisms</title>
		<link>https://computing.thayer.dartmouth.edu/blog/2012/11/09/zfs-sendreceive-accross-different-transport-mechanisms/</link>
		<pubDate>Fri, 09 Nov 2012 18:01:22 +0000</pubDate>
		<dc:creator><![CDATA[ben]]></dc:creator>
				<category><![CDATA[Backups]]></category>
		<category><![CDATA[File Storage]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Servers]]></category>

		<guid isPermaLink="false">http://computing.thayer.dartmouth.edu/?p=468</guid>
		<description><![CDATA[Sending ZFS snapshots across the wires can be done via multiple mechanisms. Here are examples of how you can go about it and what the strengths and weaknesses are for each approach. SSH strengths: encryption / 1 command on the sender weaknesses: slowest command: zfs send tank/volume@snapshot &#124; ssh user@receiver.domain.com zfs receive tank/new_volume NetCat strengths: [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Sending ZFS snapshots across the wires can be done via multiple mechanisms. Here are examples of how you can go about it and what the strengths and weaknesses are for each approach.</p>
<h2>SSH</h2>
<p><span style="text-decoration: underline;">strengths:</span> encryption / 1 command on the sender</p>
<p><span style="text-decoration: underline;">weaknesses:</span> slowest</p>
<p><span style="text-decoration: underline;">command:</span></p>
<blockquote><p>zfs send tank/volume@snapshot | ssh user@receiver.domain.com zfs receive tank/new_volume</p></blockquote>
<h2>NetCat</h2>
<p><span style="text-decoration: underline;">strengths:</span> pretty fast</p>
<p><span style="text-decoration: underline;">weaknesses:</span> no encryption / 2 commands on each side that need to happen in sync</p>
<p><span style="text-decoration: underline;">command:</span></p>
<p>on the receiver</p>
<blockquote><p>netcat -w 30 -l -p 1337 | zfs receive tank/new_volume</p></blockquote>
<p>on the sender</p>
<blockquote><p>zfs send tank/volume@snapshot | nc receiver.domain.com 1337</p></blockquote>
<p>(make sure that port 1337 is open)</p>
<h2>MBuffer</h2>
<p><span style="text-decoration: underline;">strengths:</span> fastest</p>
<p><span style="text-decoration: underline;">weaknesses:</span> no encryption / 2 commands on each side that need to happen in sync</p>
<p><span style="text-decoration: underline;">command:</span></p>
<p>on the receiver</p>
<blockquote><p>mbuffer -s 128k -m 1G-I 1337 | zfs receive tank/new_volume</p></blockquote>
<p>on the sender</p>
<blockquote><p>zfs send tank/volume@snapshot | mbuffer -s 128k -m 1G -O receiver.domain.com:1337</p></blockquote>
<p>(make sure that port 1337 is open)</p>
<h2>SSH + Mbuffer</h2>
<p><span style="text-decoration: underline;">strengths:</span> 1 command / encryption</p>
<p><span style="text-decoration: underline;">weaknesses:</span> seems CPU bound by SSH encryption, may be a viable option in the future?</p>
<p><span style="text-decoration: underline;">command:</span></p>
<blockquote><p>zfs send tank/volume@snapshot | mbuffer -q -v 0 -s 128k -m 1G | ssh root@receiver.domain.com &#8216;mbuffer -s 128k -m 1G | zfs receive tank/new_volume&#8217;</p></blockquote>
<p>&nbsp;</p>
<p>Finally, here is a pretty graph of the relative time each approach takes:</p>
<p><a href="/wp-content/uploads/2012/11/relative_time.png"><img class="aligncenter size-full wp-image-695" src="/wp-content/uploads/2012/11/relative_time.png" alt="relative_time" width="373" height="283" srcset="https://computing.thayer.dartmouth.edu/wp-content/uploads/2012/11/relative_time.png 373w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2012/11/relative_time-300x228.png 300w" sizes="(max-width: 373px) 100vw, 373px" /></a></p>
<p>SSH + MBuffer would seem like the best of both worlds (speed &amp; encryption), unfortunately it seems as though CPU becomes a bottleneck when doing SSH encryption.</p>
]]></content:encoded>
			</item>
		<item>
		<title>MDNS/Bonjour printer finder</title>
		<link>https://computing.thayer.dartmouth.edu/blog/2012/10/05/mdnsbonjour-printer-finder/</link>
		<pubDate>Fri, 05 Oct 2012 17:54:48 +0000</pubDate>
		<dc:creator><![CDATA[ben]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Printing]]></category>

		<guid isPermaLink="false">http://computing.thayer.dartmouth.edu/?p=455</guid>
		<description><![CDATA[With the ever growing number of Apple devices here at Thayer School, Bonjour is quickly becoming a critical protocol of our I.T. infrastructure. To say the least, Bonjour is not designed for an enterprise environment. Sill, we advertise our printers with it in an effort to accommodate Apple users. Here is a script I wrote [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>With the ever growing number of Apple devices here at Thayer School, Bonjour is quickly becoming a critical protocol of our I.T. infrastructure.</p>
<p><a href="/wp-content/uploads/2012/10/bonjour_counter1.png"><img class="aligncenter size-full wp-image-462" title="bonjour_counter" src="/wp-content/uploads/2012/10/bonjour_counter1.png" alt="" width="603" height="233" srcset="https://computing.thayer.dartmouth.edu/wp-content/uploads/2012/10/bonjour_counter1.png 603w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2012/10/bonjour_counter1-300x115.png 300w" sizes="(max-width: 603px) 100vw, 603px" /></a></p>
<p>To say the least, Bonjour is not designed for an enterprise environment. Sill, we advertise our printers with it in an effort to accommodate Apple users.</p>
<p>Here is a script I wrote that will discover which printers are currently advertised on the network. We use it along with a Nagios check to make sure that our printers are present within the Bonjour noise. Writing it took me through the meanders of MDNS in Python &amp; on Linux with multiple vlans. Let&#8217;s just say non-trivial.</p>
<p><strong>Downloads</strong></p>
<p><a href="/find_mdns_printers_1.0.tar.gz" target="_blank"> find_mdns_printers_1.0.tar.gz</a></p>
<p><strong>Sample output</strong></p>
<p><a href="/wp-content/uploads/2012/10/sample_output.png"><img class="alignleft size-full wp-image-459" title="sample_output" src="/wp-content/uploads/2012/10/sample_output.png" alt="" width="441" height="287" srcset="https://computing.thayer.dartmouth.edu/wp-content/uploads/2012/10/sample_output.png 441w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2012/10/sample_output-300x195.png 300w" sizes="(max-width: 441px) 100vw, 441px" /></a></p>
]]></content:encoded>
			</item>
		<item>
		<title>FreeBSD 9.0: higher MTU &#038; NIC bonding</title>
		<link>https://computing.thayer.dartmouth.edu/blog/2012/09/12/freebsd-9-0-higher-mtu-nic-bonding/</link>
		<pubDate>Wed, 12 Sep 2012 14:53:54 +0000</pubDate>
		<dc:creator><![CDATA[ben]]></dc:creator>
				<category><![CDATA[Backups]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[bond]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[mtu]]></category>

		<guid isPermaLink="false">http://computing.thayer.dartmouth.edu/?p=442</guid>
		<description><![CDATA[Here&#8217;s is some information that took me a good while to gather. With the igb driver in FreeBSD, the mbuf cluster size needed is a mathematical formula involving the number of CPUs &#38; the desired MTU. Unfortunately, it is currently hard set. On enterprise machines with many cores and higher MTUs, it is quite easy [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Here&#8217;s is some information that took me a good while to gather.</p>
<p>With the igb driver in FreeBSD, the mbuf cluster size needed is a mathematical formula involving the number of CPUs &amp; the desired MTU. Unfortunately, it is currently hard set. On enterprise machines with many cores and higher MTUs, it is quite easy to reach this set limit. It will express itself with the following error message after an ifconfig:</p>
<blockquote><p><em>igb0: Could not setup receive structures</em></p></blockquote>
<p>This limit can be overridden with the following in /etc/sysctl.conf</p>
<blockquote><p>kern.ipc.nmbclusters=131072<br />
kern.ipc.nmbjumbo9=38400</p></blockquote>
<p>These are the value that worked for 16 cores &amp; an MTU of 9000.</p>
<p>While we&#8217;re at it, it took me a while to nail the exact syntax require for NIC bonding so here it is:</p>
<p>/etc/rc.conf</p>
<blockquote><p>if_lagg_load=&#8221;YES&#8221;<br />
ifconfig_igb0=&#8221;mtu 9000 UP&#8221;<br />
ifconfig_igb1=&#8221;mtu 9000 UP&#8221;<br />
cloned_interfaces=&#8221;lagg0&#8243;<br />
ifconfig_lagg0=&#8221;laggproto failover laggport igb0 laggport igb1 192.168.0.123 netmask 255.255.255.0&#8243;</p></blockquote>
<p>As far as I can tell, capitalization matters&#8230;</p>
]]></content:encoded>
			</item>
		<item>
		<title>iPad based Conference Room Schedule Displays</title>
		<link>https://computing.thayer.dartmouth.edu/blog/2012/08/04/ipad-conference-room-schedule-displays/</link>
		<pubDate>Sat, 04 Aug 2012 17:11:52 +0000</pubDate>
		<dc:creator><![CDATA[jared]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://computing.thayer.dartmouth.edu/?p=416</guid>
		<description><![CDATA[We&#8217;ve rolled out two new room schedule displays outside MacLean 001 and MacLean 210. This is the fourth generation of hardware we&#8217;ve experimented with. Around four or five years ago, we started out with iPod Touches in custom made cases. They proved unreliable, so we moved to Linux based resistive touch screens. These took some [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>We&#8217;ve rolled out two new room schedule displays outside MacLean 001 and MacLean 210.<br />
<a href="/wp-content/uploads/2012/08/room_schedule_display_m001.jpg"><img src="/wp-content/uploads/2012/08/room_schedule_display_m001-300x225.jpg" alt="iPad based Room Schedule Display" title="room_schedule_display_m001" width="300" height="225" class="alignright size-medium wp-image-421" /></a></p>
<p>This is the fourth generation of hardware we&#8217;ve experimented with. Around four or five years ago, we started out with iPod Touches in custom made cases.  They proved unreliable, so we moved to Linux based resistive touch screens.  These took some work to get stable and are painfully slow.  They&#8217;ve been working reasonably well, but we wanted to try something a little more modern and capable.  The latest round uses an iPad and wall-mount enclosure made by <a href="http://www.nclosuresinc.com/" target="_blank">nClosures Inc.</a>  We are still pulling data from R25 and creating a custom interface using HTML.  We are using <a href="http://www.kioskproapp.com/" target="_blank">Kiosk Pro Plus</a> as the kiosk app that displays the web page in full screen mode.  If we had access to our schedule data with a standard calendar protocol, we might have used an off-the-shelf app like <a href="http://enderlabs.com/eventboard" target="_blank">EventBoard</a>.</p>
<p>iOS has made some simple improvements such as support for synchronizing time via NTP and locking screen rotation.  However, there are still several limitations that may prevent us from deploying iOS devices widely.  Remote management is still challenging or impossible.<br />
<a href="/wp-content/uploads/2012/08/room_schedule_display_screenshot.png"><img src="/wp-content/uploads/2012/08/room_schedule_display_screenshot-300x225.png" alt="Screenshot of the room schedule" title="room_schedule_display_screenshot" width="300" height="225" class="aligncenter size-medium wp-image-420" srcset="https://computing.thayer.dartmouth.edu/wp-content/uploads/2012/08/room_schedule_display_screenshot-300x225.png 300w, https://computing.thayer.dartmouth.edu/wp-content/uploads/2012/08/room_schedule_display_screenshot.png 1024w" sizes="(max-width: 300px) 100vw, 300px" /></a><br />
Things that still are sub-optimal include:</p>
<ul>
<li>no automatic or remote rebooting</li>
<li>can&#8217;t start an app upon power on</li>
<li>can&#8217;t turn off or dim the display</li>
<li>doesn&#8217;t always auto reconnect to wireless if the network is unavailable</li>
</ul>
<p>We now have a <a href="http://www.google.com/nexus/#/7" target="_blank">Google Nexus 7</a> in the office.  This has the advantage of being a great size and significantly cheaper than an iPad.  Hopefully wall-mount enclosures for the Nexus 7 will come out soon (<a href="http://www.ipadenclosures.com/blog/posts/nexus-7-evolve-ipad-enclosure" target="_blank">Armor Active has announced one coming soon</a>).</p>
]]></content:encoded>
			</item>
		<item>
		<title>We&#8217;re growing and hiring another Systems Administrator</title>
		<link>https://computing.thayer.dartmouth.edu/blog/2012/07/17/were-growing-and-hiring-another-systems-administrator/</link>
		<pubDate>Tue, 17 Jul 2012 21:18:07 +0000</pubDate>
		<dc:creator><![CDATA[jared]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://computing.thayer.dartmouth.edu/?p=400</guid>
		<description><![CDATA[You: An inspired sysadmin who has always felt constrained by the title. Us: Thayer School of Engineering IT Department; so collaborative that we built this job description together. What we do Provide crazy good technology service. Thayer School has a unique multidisciplinary approach to engineering education and our IT philosophy reflects this. Rather than just [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><strong>You:</strong> An inspired sysadmin who has always felt constrained by the title.<br />
<strong>Us:</strong> Thayer School of Engineering IT Department; so collaborative that we built this job description together.</p>
<p><strong>What we do</strong></p>
<p>Provide crazy good technology service.</p>
<p>Thayer School has a unique multidisciplinary approach to engineering education and our IT philosophy reflects this. Rather than just being back-room &#8220;crank turners&#8221;, our Computing Services team interacts extensively with faculty, students, staff, and researchers. We go out of our way to spend time with our users, deliberately encouraging community members (often with cookies) to ask questions, explain their needs, and brainstorm solutions.</p>
<p>We work hard to solve problems, implement solutions, and allow Thayer School to make the fullest use of computing technology. We are driven and love a challenge.</p>
<p><strong>How we do it</strong></p>
<p>OS: mostly Linux, some Windows and a little bit of everything else<br />
Virtualization: Yes please. VMware is where we’re at<br />
Scripting: A whirl of Perl, PHP, Python, with a sprinkling of Bash and dash of VBS<br />
Authentication: CAS, AD, kerberos<br />
Storage: NetApp, ZFS (Nexenta, FreeBSD, Solaris)<br />
Protocols: TCP/IP, SNMP, NFS, SSH, Bonjour, VNC, CIFS, HTTP&#8230; (get your Wireshark on)</p>
<p><strong>What we expect, and what you can expect</strong></p>
<ul>
<li>We’ll ask for your opinion and expect you to have one</li>
<li>The desire and ability to quickly learn new &#038; old technologies</li>
<li>The skills and chops to apply your knowledge building integrated systems</li>
<li>Full participation within a small, collaborative, agile team</li>
<li>Automation wherever possible so we can spend time on the fun stuff</li>
<li>Building robust systems that won’t bug you off-hours</li>
<li>Keeping up with the latest in tech and not being afraid of the bleeding edge</li>
<li>Hands in all aspects of computing – full stack.</li>
<li>Close collaboration with all members of the Thayer School community</li>
<li>Enthusiasm for higher education; yours, ours, &#038; everyone else&#8217;s</li>
</ul>
<p><strong>Work environment</strong></p>
<ul>
<li>Not in a basement, daylight will reach you</li>
<li>Top-notch engineering happening all around you</li>
<li>Thriving engineering school within a prestigious college</li>
<li>Northern New England as your backyard</li>
</ul>
<p>Interested? <a href="http://goo.gl/3ihvu">Please click here to fill out the short form on the job page.</a></p>
]]></content:encoded>
			</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

 Served from: computing.thayer.dartmouth.edu @ 2017-12-20 09:32:22 by W3 Total Cache -->