You may have heard of hdparm - a utility for getting info and changing certain parameters for IDE-type hard disk. It can't be used for SCSI hard disk though. So is there any similar utility for scsi hard disk? Yes there's one utility called with almost the same name: sdparm.
You may think that it has the same or at least similar to hdparm. No it is not. Well let's see what we can do with it below.
You may think that it has the same or at least similar to hdparm. No it is not. Well let's see what we can do with it below.
How to install it?
Ubuntu/Debian: apt-get install sdparm
Mandriva: urpmi sdparm
Redhat: yum install sdparm
A few examples:
list common mode parameters of a disk
sdparm /dev/sda
Sample output:
/dev/sda: COMPAQ BF03697B5A HPB2
Read write error recovery mode page:
AWRE 1 [cha: y, def: 1, sav: 1]
ARRE 1 [cha: y, def: 1, sav: 1]
PER 1 [cha: y, def: 1, sav: 1]
Caching (SBC) mode page:
WCE 0 [cha: y, def: 1, sav: 0]
RCD 0 [cha: y, def: 0, sav: 0]
Control mode page:
SWP 0 [cha: y, def: 0, sav: 0]
Informational exceptions control mode page:
EWASC 1 [cha: y, def: 1, sav: 1]
DEXCPT 0 [cha: y, def: 0, sav: 0]
MRIE 4 [cha: y, def: 4, sav: 4]
To list the designators within the device identification VPD page of a disk
sdparm --inquiry /dev/sda
Sample output:
/dev/sda: COMPAQ BF03697B5A HPB2
Device identification VPD page:
Addressed logical unit:
id_type: EUI-64 based, code_set: Binary
[0x0010b9fd080c1129]
id_type: T10 vendor identification, code_set: ASCII
vendor id: COMPAQ
vendor specific: E20C9MKK
To see all parameters for the caching mode pagesdparm --page=ca /dev/sdc
Sample output:
/dev/sda: COMPAQ BF03697B5A HPB2
Caching (SBC) mode page:
IC 0 [cha: y, def: 0, sav: 0]
ABPF 0 [cha: n, def: 0, sav: 0]
CAP 0 [cha: n, def: 0, sav: 0]
DISC 0 [cha: n, def: 0, sav: 0]
SIZE 0 [cha: y, def: 0, sav: 0]
WCE 0 [cha: y, def: 1, sav: 0]
MF 0 [cha: y, def: 0, sav: 0]
RCD 0 [cha: y, def: 0, sav: 0]
DRRP 0 [cha: y, def: 0, sav: 0]
WRP 0 [cha: y, def: 0, sav: 0]
DPTL 512 [cha: y, def:512, sav:512]
MIPF 256 [cha: y, def:256, sav:256]
MAPF 512 [cha: y, def:512, sav:512]
MAPFC 512 [cha: y, def:512, sav:512]
FSW 0 [cha: n, def: 0, sav: 0]
LBCSS 0 [cha: y, def: 0, sav: 0]
DRA 1 [cha: y, def: 1, sav: 1]
NV_DIS 0 [cha: n, def: 0, sav: 0]
NCS 226 [cha: y, def:226, sav:226]
CSS 0 [cha: y, def: 0, sav: 0]
To set the "Writeback Cache Enable" bit in the current values page
# sdparm --set=WCE /dev/sda
Sample output:
/dev/sda: COMPAQ BF03697B5A HPB2
References:
Cyberciti.biz
sdparm manpage
2 comments:
I have done a silly script to enable WCE at boot time.
Copy on a file and modify DISKS variable.
-----------------------------------
[root@jarvis ~]# cat /etc/init.d/scsi_write_cache
#!/bin/bash
#
# scsi_write_cache: Enables write cache for scsi disks that supports it
# chkconfig: 2345 95 20
# description: This script enables write cache for scsi disks
# processname: scsi_write_cache
DISKS="/dev/sg0 /dev/sg1"
start() {
echo -n $"Setting up Write Cache Enabled: ";echo
if [ $UID -ne 0 ]; then
RETVAL=1
echo "I need to be root..."
exit
else
for i in $DISKS
do
/usr/bin/sdparm --set WCE=1 $i
done
fi;
echo
return $RETVAL
}
stop() {
echo -n $"Setting up Write Cache Enabled to 0 (batateitor comming :-S): ";echo
if [ $UID -ne 0 ]; then
RETVAL=1
failure
else
for i in $DISKS
do
/usr/bin/sdparm --set WCE=0 $i
done
fi;
echo
return $RETVAL
}
restart() {
echo -n $"Aca no hay restart... reallity.sys corrupted.. restart universe?";echo
}
RETVAL=0
status() {
for i in $DISKS
do
/usr/bin/sdparm --get WCE $i
done
RETVAL=0
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart|reload)
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit $?
-----------------------------------
Enjoy!
Tristezo2k
Thanks for the script. Of course, we can always use rc.local for it too.
Post a Comment