• Mike Hibler's avatar
    Rudimentary TRIM support. · bdde40fe
    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.
    bdde40fe
Name
Last commit
Last update
account Loading commit data...
apache Loading commit data...
apt Loading commit data...
assign Loading commit data...
autoconf Loading commit data...
backend Loading commit data...
bugdb Loading commit data...
cdrom Loading commit data...
clientside Loading commit data...
collab Loading commit data...
daikon Loading commit data...
db Loading commit data...
delay Loading commit data...
dhcpd Loading commit data...
discvr Loading commit data...
doc Loading commit data...
event Loading commit data...
firewall Loading commit data...
flash Loading commit data...
fwrules Loading commit data...
hw_config Loading commit data...
hyperviewer Loading commit data...
image-test Loading commit data...
install Loading commit data...
ipod Loading commit data...
mote Loading commit data...
named Loading commit data...
node_usage Loading commit data...
ntpd Loading commit data...
os Loading commit data...
patches Loading commit data...
pelab Loading commit data...
protogeni Loading commit data...
pxe Loading commit data...
rc.d Loading commit data...
robots Loading commit data...
rpms Loading commit data...
security Loading commit data...
sensors Loading commit data...
sql Loading commit data...
ssl Loading commit data...
sysadmin Loading commit data...
tbsetup Loading commit data...
testsuite Loading commit data...
tip Loading commit data...
tmcd Loading commit data...
tools Loading commit data...
utils Loading commit data...
vis Loading commit data...
wiki Loading commit data...
www Loading commit data...
xmlrpc Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.loc-ignore Loading commit data...
AGPL-COPYING Loading commit data...
GNUmakefile.in Loading commit data...
GNUmakerules Loading commit data...
GPL-COPYING Loading commit data...
LGPL-COPYING Loading commit data...
MOVED-TO-WIKI Loading commit data...
Makeconf.in Loading commit data...
README Loading commit data...
TODO Loading commit data...
TODO.plab Loading commit data...
VERSION Loading commit data...
WEBtemplate.in Loading commit data...
config.h.in Loading commit data...
configure Loading commit data...
configure.ac Loading commit data...
defs-apt Loading commit data...
defs-cloudlab-utah Loading commit data...
defs-default Loading commit data...
defs-duerig-emulab Loading commit data...
defs-elabinelab Loading commit data...
defs-example Loading commit data...
defs-gtw-emulab Loading commit data...
defs-johnsond-emulab Loading commit data...
defs-kwebb-apt Loading commit data...
defs-kwebb-cloudlab Loading commit data...
defs-kwebb-emulab Loading commit data...
defs-mike-emulab Loading commit data...
defs-ricci-emulab Loading commit data...
defs-stoller-emulab Loading commit data...
defs-stoller-home Loading commit data...
defs-stoller-lbsdb Loading commit data...
defs-uky Loading commit data...
defs-utahclient Loading commit data...
defs-wbsun-emulab Loading commit data...
defs-wide Loading commit data...
pnet-favicon.ico Loading commit data...