- 11 Dec, 2014 1 commit
-
-
Mike Hibler authored
So if we drop to a shell prompt, we can see what happened.
-
- 02 Dec, 2014 1 commit
-
-
Mike Hibler authored
-
- 01 Dec, 2014 1 commit
-
-
Mike Hibler authored
We pass through a flag in the tmcd loadinfo call to tell whether to attempt to do a TRIM when loading the disk (or after loading the disk). If TRIM=1 then we do so. Since it is not clear from what I have read whether repeated TRIMming is a detriment to SSD life, we throttle it as follows: 1. We don't TRIM at all unless the sitevariable general/bootdisk_trim_interval is non zero. If it is set, we will wait at least that many seconds after the previous TRIM before we do it again. 2. We keep track of the last trim via the node_attribute "bootdisk_lasttrim" which is a unix timestamp of the last time that tmcd responded to a loadinfo request in which it returned TRIM=1. 2. We track, on a per-node basis, whether the boot disk should be TRIMmed or not. If the node or node-type attribute "bootdisk_trim" is non-zero, we will attempt a trim if the interval has passed since the last trim. So, we never trim if the sitevariable is 0 (the default value). If it is non-zero, we only trim the boot disk of those nodes that have the node or node_type attribute set and only after a sufficient interval has passed. This does not address non-boot disks, but currently frisbee won't mess with any other disk anyway. Eventually, we will have to have per-disk or per-disktype attributes if we want to do this better.
-
- 25 Nov, 2014 1 commit
-
-
Mike Hibler authored
-
- 23 Nov, 2014 1 commit
-
-
Mike Hibler authored
-
- 25 Jul, 2014 1 commit
-
-
Mike Hibler authored
Mostly this was adding the necessary versioning code (only slicefix each partition once) but also support sizing the socket buffer now that I finally managed to rebuild the Linux/ulibc version of the frisbee client.
-
- 16 Jul, 2014 1 commit
-
-
Mike Hibler authored
Otherwise we might run slicefix after a base image and before a delta which could cause a train wreck in the FS if slicefix changes allocate or deallocate blocks. Also, grudgingly update some of the shell syntax to use constructs introduced in the early 1990s. Sigh...this script will no longer run on a PDP-11.
-
- 07 May, 2014 1 commit
-
-
Mike Hibler authored
Ironic. After all that hoo-haw about dynamically-created MBRs in the previous commit, we introduce a new hardcoded static MBR... Goals: * Single OS partition, in the fast area of rotating disks * Proper alignment for 4k sector drives and SSDs (1MB alignment) * Still works on 40GB disk (aka, pc850s) * P1 16 GiB: goldilocks FS: not too small (> 10GB), but not too big (< 30GB) * P2 3 GiB: can hold a co-loaded MBR 1 image (e.g., FBSD410 delay node OS) * P3 3 GiB: at least as much swap at currently (>= 1GB) The partition table: P1: 2048 33554432 FS, 16GiB P2: 33556480 6291456 possible delay-node OS or additional swap, 3GiB P3: 39847936 6291456 swap, 3GiB P4: 46139392 34278848+ extrafs, 16+GB The larger size and partition alignment are why I pushed this through despite my noble intentions.
-
- 13 Feb, 2014 1 commit
-
-
Mike Hibler authored
-
- 21 Jun, 2013 1 commit
-
-
Mike Hibler authored
-
- 05 Jun, 2013 1 commit
-
-
Mike Hibler authored
-
- 04 Jun, 2013 2 commits
-
-
Mike Hibler authored
More removal of hardwired paths in favor of paths.sh vars. Included script getfromtb.sh does not exist. touch and env do not exist in MFS. Use tmcc, not tmcc.bin. Create /etc/emulab/ismfs as frisbee MFS doesn't have it.
-
Mike Hibler authored
Merge rc.config changes into the real script. Reduce rc.nodecheck varients to a single shell script and get rid of rc subdir. Add copyrights. Add GNUmakefile install target (but not used yet). Replace some hardwired paths with vars from paths.sh.
-
- 22 May, 2013 1 commit
-
-
Leigh B Stoller authored
kernel command line, according to new loadinfo variable returned from tmcd. This is so we can tailor the amount of memory per node type.
-
- 25 Mar, 2013 3 commits
-
-
Mike Hibler authored
BIOSDISK is passed through from the DB bootdisk_bios_id and is used to set the GRUB root device (in situations where grub disagrees with freebsd or linux about the primary boot device). CONSOLE is used to set the console device for an image's boot loader and kernel. Choices are "null", "vga", "sio", (the historic choices) along with "vid" (same as vga), "sio1" (same as sio), "sio2", "sio3", and "sio4". The FreeBSD slicefix script works for FreeBSD 9.x and above as well as Fedora, Ubuntu and CentOS. It will work with FreeBSD 8.x and earlier if the in-image /boot/loader is fixed to avoid hanging while polling a UART. This should be used in conjuction with one of the new pxeboot.emu-{null,vga,sio1,sio2,sio3,sio4} versions of pxeboot which will customize the FreeBSD kernel in the frisbee and admin MFSes. The console can be set via the "console_type" node_ or node_type_attribute tables in the DB. The "pxe_boot_path" attribute should also be set to reflect the appropriate /tftpboot/pxeboot.emu-* version for the console type Note that by default (no console_type or pxe_boot_path), nodes will continue to use the default /tftpboot/pxeboot.emu which can either be linked to one of the above new version, or could just be the current pxeboot which will not mess with the console settings. Finally, note that I made the changes to linux/slicefix, but they are only for FreeBSD images and are untested. The Linux grub-based pxeboot as well as linux_slicefix would still need to be changed for this to work under the "Linux MFS". Task for another day as I already spent waaaaay to long on this.
-
Mike Hibler authored
Helps enormously with debugging.
-
Mike Hibler authored
Used to always use boss, which isn't necessarily right. If host entry isn't present, fall back on boss. The plan is that localize_mfs will create the /etc/hosts entry in the frisbee MFS. I didn't want to have the MFS just use "ntp1" since the rest of the script doesn't depend on a functioning name server.
-
- 24 Sep, 2012 1 commit
-
-
Eric Eide authored
This commit is intended to makes the license status of Emulab and ProtoGENI source files more clear. It replaces license symbols like "EMULAB-COPYRIGHT" and "GENIPUBLIC-COPYRIGHT" with {{{ }}}-delimited blocks that contain actual license statements. This change was driven by the fact that today, most people acquire and track Emulab and ProtoGENI sources via git. Before the Emulab source code was kept in git, the Flux Research Group at the University of Utah would roll distributions by making tar files. As part of that process, the Flux Group would replace the license symbols in the source files with actual license statements. When the Flux Group moved to git, people outside of the group started to see the source files with the "unexpanded" symbols. This meant that people acquired source files without actual license statements in them. All the relevant files had Utah *copyright* statements in them, but without the expanded *license* statements, the licensing status of the source files was unclear. This commit is intended to clear up that confusion. Most Utah-copyrighted files in the Emulab source tree are distributed under the terms of the Affero GNU General Public License, version 3 (AGPLv3). Most Utah-copyrighted files related to ProtoGENI are distributed under the terms of the GENI Public License, which is a BSD-like open-source license. Some Utah-copyrighted files in the Emulab source tree are distributed under the terms of the GNU Lesser General Public License, version 2.1 (LGPL).
-
- 07 Sep, 2012 1 commit
-
-
Mike Hibler authored
-
- 22 Jun, 2012 1 commit
-
-
Mike Hibler authored
Ryan fixed this before, but apparently didn't check it in. This commit also revisits the setting of the "max" values for buffering limits and distinguishes the default values from the max.
-
- 19 Jun, 2012 1 commit
-
-
Mike Hibler authored
Add "-Q <interval>" option to the master server to allow it to act as an IGMP V2 querier in environment where there is otherwise not one. It does essentially what the perl-based querier (code.google.com/p/perl-igmp-querier/) does, sending out a v2 membership query at the specified interval. This eliminates the need to run mrouted in some environments (e.g., elabinelab) just to issue IGMP queries. As a result, all the boss-install and elabinelab setup related to using mrouted to perform this function has been removed. The elabinelab CONFIG_MROUTED option has been changed to CONFIG_QUERIER (the former is still recognized and mapped to the latter). The undocumented defs-* variable NEEDMROUTED has been changed to NEEDMCQUERIER (the former still exists in install/installvars.pm.in but is always set to 0) to more accurately reflect the variable's purpose. If NEEDMCQUERIER is set, then the mfrisbeed startup script is modified to add the "-Q 30" option. The implementation of the client and server "-K <interval>" keep-alive option has been changed to directly send IGMP v2 membership reports containing the associated MC address. Note that the -K options have always been a hack to work-around assorted IGMP-related misconfigurations and incompatibilities, and really should only be used as a last resort. As implemented, they could cause the host machine to be pruned out of other MC groups at the nearest switch since they only report membership in the frisbee MC group. With the master server acting as an IGMP querier, instances of the frisbee server on that host should no longer need to do keep alives. We still have one case where it is needed on the client-side: a FreeBSD 8.x or later host connected to an IGMPv2-only switch. It appears that the IGMPv3 implementation added in FreeBSD 8.x always sends v3 reports, even when the default is configured (via sysctl or even recompiling the kernel) as v2.
-
- 26 Apr, 2012 1 commit
-
-
Mike Hibler authored
I had never completed this. Two things to note: 1. Distribution via broadcast is still disabled by default in the master server. To enable it, see the comment added in 3.mfrisbeed.sh.in. To use broadcast by default in the client, see the comment in rc.frisbee. 2. If you specify broadcast (-b) in either the client or server, then you should use "-m 255.255.255.255". However, this will broadcast to ALL interfaces on the client/server. To limit to a specific interface, also include "-i <interface-IP>". This will tell the client/server to look up that interface and use the subnet broadcast address in place of 255.255.255.255. Since the master server always starts up frisbeed instances with -i, broadcast will always be directed on the server. Since our rc.frisbee script also fires up the client with -i, it will likewise be directed.
-
- 15 Mar, 2012 1 commit
-
-
Mike Hibler authored
-
- 01 Feb, 2012 1 commit
-
-
Mike Hibler authored
This is for BSD, so that we can tweak the default /boot/loader.conf file to turn off "comconsole" on machines that don't have a UART. In my experience, trying to probe the UART on newer machines that don't have one causes a kernel crash. Currently this attribute is just signalled by the existance of the /etc/testbed/isvgaonly file in the diskloader MFS. But this will be eventually sent over via "tmcc loadinfo" so that we can set the attribute on a per-node-type or per-node basis.
-
- 04 Oct, 2011 1 commit
-
-
Mike Hibler authored
This is for FreeBSD to turn off use of the CLFLUSH instruction via the hw.clflush_disable loader var. We have encountered some opteron machines on which this causes problems. The attribute can be set for the node_type (via the web page for editing node types) or the node (via brute-force SQL hackary) to override whatever FreeBSD would do by default. This attribute is passed via tmcd to the diskloader MFS which will fixup the loader.conf file post-frisbee.
-
- 21 Jul, 2011 1 commit
-
-
Leigh B Stoller authored
directory.
-
- 02 Feb, 2011 2 commits
-
-
Mike Hibler authored
-
Mike Hibler authored
Properly reset some variables prior to parsing loadinfo info for an image. This could cause failure if loading multiple images.
-
- 01 Feb, 2011 1 commit
-
-
Mike Hibler authored
The big backward compatibility issue is that we no longer store running frisbeed info in the DB. This means that loadinfo could not return address:port info to clients and thus old frisbee MFSes could no longer work. While not a show stopper to require people to update their MFS first, I made a token effort to implement backward compat as follows. When an old frisbee MFS does "tmcc loadinfo" (as identified by a tmcd version < 33), tmcd will invoke "frisbeehelper" to startup a daemon. Sound like frisbeelauncher? Well sorta, but vastly simplified and I only want this to be temporary. The helper just uses the frisbee client to make a "proxy" request to the localhost master server. The Emulab configuration of the master server now allows requests from localhost to proxy for another node. frisbeehelper is also used by webfrisbeekiller to kill a running daemon (yes, just like frisbeelauncher). It makes a proxy status request on localhost and uses the returned info to identify the particular instance and kill it.
-
- 24 Jan, 2011 1 commit
-
-
Mike Hibler authored
PREPARE means we are reloading the disk to a default state, so no custom MBRs allowed.
-
- 11 Jan, 2011 1 commit
-
-
Mike Hibler authored
More work on the hierarchical configuration for subboss. When doing host-based authentication, allow client to pass an explicit host (IP) to the mserver. If the mserver is configured to allow it, that IP is used for authenticating the request instead of the caller's IP. Add a default ("null") configuration so the mserver can operate out-of-the-box with no config file. The goal of these two changes is for an mserver instance with the default config and a proxy option to serve the needs of a subboss node (i.e., so no explicit configuration will be needed).
-
- 28 Jun, 2010 1 commit
-
-
Mike Hibler authored
In our sed 's///' commands applied to loadinfo we were assuming that if a variable pattern didn't match, we would get back an empty string. But what we really get back is the entire loadinfo string. Now sure how this ever worked (if it ever did!) Also did the piss-on-it thing.
-
- 23 Jun, 2010 1 commit
-
-
Ryan Jackson authored
-
- 13 Nov, 2009 1 commit
-
-
Ryan Jackson authored
-
- 05 Aug, 2009 1 commit
-
-
Kevin Atkinson authored
-
- 04 Aug, 2009 2 commits
-
-
Kevin Atkinson authored
-
Kevin Atkinson authored
-
- 24 Mar, 2009 1 commit
-
-
Ryan Jackson authored
Prevents linux from mounting the wrong partition as root when mounting by label.
-
- 07 Nov, 2008 1 commit
-
-
Ryan Jackson authored
Linux mounting a filesystem with the same label or UUID from the wrong disk.
-
- 31 Aug, 2007 1 commit
-
-
Mike Hibler authored
tweak the disk afterward.
-