Re: Ambient temperature spike: effect on hardware?
From: Dave (nospam_at_nowhere.com)
Date: 02/22/05
- Previous message: eclectic9_at_fast.net: "Lots of sun3 stuff available"
- In reply to: Stefaan A Eeckels: "Re: Ambient temperature spike: effect on hardware?"
- Next in thread: Stefaan A Eeckels: "Re: Ambient temperature spike: effect on hardware?"
- Reply: Stefaan A Eeckels: "Re: Ambient temperature spike: effect on hardware?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Tue, 22 Feb 2005 04:29:25 +0000
Stefaan A Eeckels wrote:
> Both the e4500 and the v1280 are rated up to 104F,
> so they're probably OK.
Although he did say the temperature could have hit 120F, which is a lot
higher than 104F.
However, the Suns are usually rated at high altitude too, so if the OP
is nearer sea level, he will get away with higher temperatures, as the
*mass* of air flow per unit time is higher at low altitudes. As you go
up in altitude, air becomes thinner, so is less effective in cooling. I
believe the effect of this is not small, but significant.
The following is a data *** for a valve (tube to Americans) capable of
dissipating 5kW. At sea level and 25deg C is needs 180cfm to keep it
cool (that's below 250deg C). At 5000' altitude this rises to 255cfm,
then at 10000' it rises to 305cfm.
At an air inlet temp of 50deg C, the airflow varies from 260cfm (at sea
level) to 385cfm at 10,000'. (see page 3 if interested).
http://www.g8wrb.org/data/Eimac/3CPX5000A7.pdf
It needs very similar (255 vs 260 cfm) to keep it cool at 25deg C and
5000' as it does at 50deg C at sea level. The effect may be less on
something that runs cooler (like hard disks) than it does on devices
like a ceramic vacuum tube, which are designed to run hot.
You might find the disk has a record of the max temperature in
non-volatile memory. You might find some software to read that.
# luxadm stop device_file // Standard Solaris command
will spin the disk down (do after a umount -f).
I've got a script I wrote that spins the disks down if they get too hot.
Below is a bit of C-code, written by someone else (I hacked it very
little), that reports the temperature of a disk, as well as the maximum
temperature it should be run at. It's easy to hack something together
that will shut a system down.
For a SPARC 20, which is old and its temperature can't be read via the
USCSI commands, I took a brute-force approach
http://www.g8wrb.org/useful-stuff/Sun/cooling-Sun-SPARCstation-20/index.html
where I just remove the +5V lead with a bi-metalic strip. In the summer,
that did trip a couple of times in my garage, where there is no air-con.
It sounds like the OP's RAID array is not shutting down. He might like
to add a bi-metallic strip. Brute force, but effective and simple.
sparrow /usr/local/bin # more hdtemp.c
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/scsi/scsi.h>
#define LOG_SENSE 0x4d
#define TEMPERATURE_PAGE 0x0d
int
scsi_log_sense(int fd, int pagenum, uint8_t *pbuf, size_t buflen,
size_t known_resp_len)
{
struct uscsi_cmd ucmd;
struct scsi_extended_sense sense;
uint8_t cdb[10];
int status;
memset(&ucmd, 0, sizeof (ucmd));
memset(cdb, 0, sizeof (cdb));
cdb[0] = LOG_SENSE;
cdb[2] = 0x40 | (pagenum & 0x3f);
cdb[7] = known_resp_len >> 8;
cdb[8] = known_resp_len;
ucmd.uscsi_cdb = (caddr_t)cdb;
ucmd.uscsi_cdblen = sizeof (cdb);
ucmd.uscsi_bufaddr = pbuf;
ucmd.uscsi_buflen = known_resp_len;
ucmd.uscsi_rqbuf = (caddr_t)&sense;
ucmd.uscsi_rqlen = sizeof (sense);
ucmd.uscsi_timeout = 15;
ucmd.uscsi_flags = USCSI_READ;
status = ioctl(fd, USCSICMD, &ucmd);
return (status);
}
int main(int argc, char *argv[])
{
char *device;
int fd;
int err;
uint8_t tbuf[16];
if (argc != 2) {
fprintf(stderr, "usage: %s <device>\n", argv[0]);
exit (1);
}
device = argv[1];
fd = open(device, O_RDONLY | O_NONBLOCK);
if (fd < 0) {
perror(device);
exit(1);
}
memset(tbuf, 0, sizeof (tbuf));
err = scsi_log_sense(fd, TEMPERATURE_PAGE, tbuf, sizeof (tbuf),
sizeof (tbuf));
if (err != 0) {
perror("scsi_log_sense failed - disk might not exist,
or be powered off");
tbuf[9]=1;
}
if (tbuf[9] == 255 )
tbuf[9]=0;
printf("current temp = %d C, trip temp = %d C\n", tbuf[9], tbuf[15]);
return (0);
}
- Previous message: eclectic9_at_fast.net: "Lots of sun3 stuff available"
- In reply to: Stefaan A Eeckels: "Re: Ambient temperature spike: effect on hardware?"
- Next in thread: Stefaan A Eeckels: "Re: Ambient temperature spike: effect on hardware?"
- Reply: Stefaan A Eeckels: "Re: Ambient temperature spike: effect on hardware?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]