pendrive linux

szoval van itthon egy gep amiben szeretnek minel nagyobb csendet, minel olcsobban. Odaig mar eljutottam, hogy a ventillatorok/procihutot mar nem hallom.
Jelenleg a vinyo az az ami hangos es ejszaka kifejezetten zavaro. Mivel nem sok kedvem van befektetni egy ssd-be igy ugy gondoltam, hogy pendriverol fogom
hajtani a cuccot. Erre volt mar egy kiserletem csak siman felturtam a debiant aztan hagytam had menjen de ugye fel-1 ev alatt a pendrvie meghasalt es mar nem
lehet megbizhatoan mountolni rw modeban. Szamitottam erre szoval amikor lattam olcso 8Gs pendriveot akkor mindig vettem:). Szoval van masik... De mivel van
egy szabadnapom ugy gondoltam, hogy leulok es szepen atgondolom, hogy mit is kellene csinalni, hogy kicsit hosszabb eletet csalogassak ki a dologbol.
Amire eddig rajottem
* nem naplozo filerendszer kell (ext2 ez trivialis nem ecsetelem)
* swap... hat arra a ramzswap nevu dolgot talaltam. Ennek inditasa relative egyszeru kell hozza make/cp/meg a skeleton init script modositatsa.
* a gyakran/relative gyakran valtozo fileokat kikapcsolni vagy tmpfsre atrakni. (tmpfsnek lehet rakni felsohatart ami pozitiv, mert igy nem fog elfogyni a memoria)
jelenleg igy nez ki az fstab fileom:
/dev/disk/by-uuid/185589c3-64a1-45d1-a8a5-048fc4dce8f3 / ext2 defaults,rw,sync 0 1
tmpfs /var/log tmpfs defaults,size=50m 0 0
tmpfs /var/lib/dhcp3 tmpfs defaults,size=5m 0 0
tmpfs /var/run tmpfs defaults,size=10m 0 0
tmpfs /tmp tmpfs defaults,size=50m 0 0

A /var/log az kulonosen mokas mivel a programok egy resze nincs felkeszulve arra, hogy nincs meg a log konyvtaruk/filejuk. Szoval kell egy init script ami rendbeszedi a dolgokat bootolaskor. A debian-ban levo skeletont hasznaltam ami kicsit overkill szamomra szoval kicsit paraszthackesen osszaraktam valamit:

#! /bin/sh
### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: initiates /var/log filesystem and saves the file permissions
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.
### END INIT INFO

# Author: kalebris <kalebris@gmail.com>
#
# Please remove the "Author" lines above and replace them
# with your own name if you copy and modify this script.

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="TMPFS logging utilization"
NAME="log-init"
SCRIPTNAME=/etc/init.d/log-init

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

do_save ()
{
	#
	# Checking the old file out
	#
	echo -n "Saving log-init.conf"
	cp $SAVED_FILES /tmp/test.file
	md5sum /tmp/test.file > /tmp/test.md5sum
	find /var/log/* -printf "%h/%f %g %u %m %y\n" >/tmp/test.file
	# Checking if there's a change
	md5sum -c /tmp/test.md5sum 2>/dev/null >/dev/null
	if [[ $? -ne 0 ]]; then
		# saving the changes
		mv /tmp/test.file $SAVED_FILES
	fi
	# removing the temp files
	rm -rf /tmp/test.file	
	rm -rf /tmp/test.md5sum	
	echo " ."
	return 0;
}
do_backup ()
{
	tar cvjfps /var/log_archive/`date +%F-%H-%M`.tar.bz2 /var/log
	return 0
}
#
# Function that starts the daemon/service
#
do_start()
{
	echo -n "Loading Logfiles"
	OLD_IFS=$IFS;
	IFS=$'\n';
	for i in $(<$SAVED_FILES); do
		file=`echo $i | awk '{print $1}'`;
		group=`echo $i | awk '{print $2}'`;
		owner=`echo $i | awk '{print $3}'`;
		mode=`echo $i | awk '{print $4}'`;
		type=`echo $i | awk '{print $5}'`;
		if [[ "$type" == "d" ]]; then 
			mkdir -p $file && chown ${owner}:${group} ${file} && chmod ${mode} ${file};
			if [[ $? -ne 0 ]]; then
				echo "${file} can't be created";
			fi;
		fi;
		if [[ "$type" == "f" ]]; then 
			touch $file && chown ${owner}:${group} ${file} && chmod ${mode} ${file};
			if [[ $? -ne 0 ]]; then
				echo "${file} can't be created";
			fi;
		fi
	done;
	IFS=$OLD_IFS;
	echo .
	return 0;
}

#
# Function that stops the daemon/service
#
do_stop()
{
	#
        # optionally can be enabled
        # do_save
	return 0
	
}
#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
	# the following 2 can be optionally enabled.
	#do_save
	#do_backup
	umount /var/log
	mount /var/log
	do_start
	#return 0
	
}

case "$1" in
  start)
	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
	do_start
	case "$?" in
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	esac
	;;
  stop)
	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
	do_stop
	case "$?" in
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	esac
	;;
  save)
       do_save
	;;
  reload|force-reload)
	 do_reload
	;;
  restart|force-reload)
	#
	# If the "reload" option is implemented then remove the
	# 'force-reload' alias
	#
	log_daemon_msg "Restarting $DESC" "$NAME"
	do_stop
	case "$?" in
	  0|1)
		do_start
		case "$?" in
			0) log_end_msg 0 ;;
			1) log_end_msg 1 ;; # Old process is still running
			*) log_end_msg 1 ;; # Failed to start
		esac
		;;
	  *)
	  	# Failed to stop
		log_end_msg 1
		;;
	esac
	;;
  *)
	#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
	exit 3
	;;
esac

:

Eddig rendben is volnank elnevezzuk log-init-nek a scriptet es berakjuk szepen a mountall.sh utan ez nalam a rcS.d/S38log-init. A befejezesnel opcianlisra hagytam a do_backup-ot hiszen az sok idot is igenybe vehet nem beszelve a gyakori rebootoknal mindig uj file krealodik felhasznalva ertekes write cycleoket. A logokat cronnal havonta egyszer backupolom a do_backup modszerrel.

A .bash_history es a .lesshst fileok helyett egy simlinket csinaltam /dev/null-ra. Hat itt allok jelenleg. Jelenleg meg csak nfs es samba kiszolgalo, de torrentfluxot, mpdt es icecastot akarok rarakni, hogy legyen minden egyhelyen. Ezek azert lesznek erdekesek, mert valamilyen sql kell hozza amihez szinten majd tmpfs-t kell hasznalni csak ott mar fontos, hogy valamilyen uton modon szinkronizaljuk a pendrivval, ha mas nem rebootkor. De errol majd akkor ha mar megoldottam a problemat.

Hozzászólások

...menniyvel egyszerűbb egy hangtalan vinyó... :) a sok tartalékba vásárolt tönkremenős pendrájvnál még olcsóbb is.

----------------------------------
feel the beat - it's everywhere!

Szoval te talalkoztal olyannal???? En kerestem egy ideig, hogy legyen halk vinyom. Akkor feladtam a keresest. Mindegyiknek volt egy idiota magasfrekvencias zummogese ami este kifejezetten idegesito.
Az SSDk ara meg kicsit tavolabb van a pendrivetol. Jelenleg 5 pendriveot veszek ami kitart 2-3 evig meg ha nem is gondolkozok csak eszetlenul hasznalom. Majd ha lehet olcso ssd-t kapni 40-50 euroert ami megeri akkor majd veszek, de addig hagyjatok beken a mindenkihulyecsakenvagyokhelikopter jellegu hozzaszolasokkal.

Egy 4200 RPM-es notebook merevlemeznek abszolut semmi hangja nincsen és nem is rezonál, de szerintem még az 5400 RPM-es zöld merevlemezek se túlságosan észrevehetőek.

Ha pedig teljesítmény kell akkor ott vannak az SSD meghajtók, annyira azért nem kerülnek sokba, legfeljebb a kapacitásuk nem túl nagy.

igen, volt (van) több is.
a leghalkabb talán egy 80 gigás "maxtor" vinyó volt, de ez már seagate volt igazából, csak maxtor címkével. ilyen félúton volt vastagságra a régi "lapos maxtor" és egy normál vinyó közt. a pontos típusra már nem emlékszem, mert ebből van 500 fajta majdnem ugyanolyan típusszám alatt. sata2, 7200rpm, meglepően gyors volt. na ebből volt 2 raid0-ban rendszernek. ennek annyira nem volt hangja, nem rezgett és nem melegedett, hogy szó szerint a füledet rá kellett tapasztani, hogy be van-e kapcsolva.
aztán most ami van, az 2db 320 gigás wd, caviar blue, 7200rpm, sata2, 16mb cache, az egyik: WD3200AAKS-00L6A0, a másik: WD3200AAKS-00L9A0, ezek is raid0-ban, ezek nem hallatszanak ki a gépből, pedig itt van 3, centire. ezek elég gyors cuccok és nem melegszenek, és kaphatók is.
aztán itt van szintén a gépben egy wd caviar black, 500 gigás, 7200rpm, 16mb cache, sata2, típusa: WD5001AALS-00L3B2, ez vipower mobil rackben van, ami elől nyitott, mégsem hallani hangját, pedig épp most töredezettségmentesítem. szintén tudom ajánlani.
aztán még megemlíteném egy ősrégi 160 gigás ata-s maxtor vinyómat, ami sokáig a szerver gépemben volt és éjjelnappal torrentezett. ez még megvan egy másik gépben, de a szervert azóta lecseréltem, ebben laptop vinyó van, de az hangosabb, mint a maxtor. ennek csak éjszaka teljes csendben lehetett hallani a fejmozgását, de a szúnyog zümmögése az ahhoz képest hangosabb.
van még egy 250-as ata wd, az is caviar blue (WD800BB-60JKC0), na annak hangos a seekje. a többit viszont tudom ajánlani. laptopvinyóknál a fentiek halkabbak. (legalábbis a laptop vinyóját azt hallom, ezeket meg nem)
az összes többi vinyóm, ami ezeken kívül valaha is volt, azok hangosak.

----------------------------------
feel the beat - it's everywhere!

ramzswap?

ez valami ramdisk swapnak? mert akkor az eléggé öngól :D

--
\\-- blog --//

miert is? Ezt valaki tenyleg elmagyarazhatna, mert valamit nagyon nem erthetek.

Van egy gep ami az esetek 99%-ban 10% alatt van a cpu hasznalat. Nincs olyan hdd amit lehetne swappolasra hasznalni, de a swap az kell. Akkor fogok az 1 G-bol 250Megat lefoglalom a ramzswapnak es oda swappolok. Ekkor lesz 750M memoriam es 250M+ swapom. Ami jobb mint az 1G memoria jelen esetben.

de beférne ha nem 750 lenne, hanem pont annyival nagyobb mint a swap?

swapba akkor kerül valami a memóriából ha másnak kell a hely, azaz 750 tele, 250-et _mozgassunk_ át a swapmemóriába, hogy plusz 250 memóriánk legyen; ha pedig 1000 lenne a memória akkor egyből lehetne abba írni azt a 250-et mozgatás nélkül

röviden: a swap nem egy gyors lemez hanem a memória szűke miatt használjuk, _semmi_ értelme a ramswapnak
(ha valahol mégis látod az azért van mert valami elbarmolt programot akarunk átverni, vagy valami extra spéci helyet esetén)

még rövidebben: öngól, ahogy balage fogalmazott

az egy elég spéci eset, konkrétan tényleg ha kevés a mem és gyors a proci, ami esetedben pont fordítva lenne célszerű hűtés szempontjából

de izgatottan várom a teljesítményről készül beszámolót is:)

elfeledkeztél a helyesírás-ellenőrző bekapcsolásáról

Ime a legutobbi ertekek. Mar fut egy honapja szoval egesz stabil a kis bestia. Teljesitmenyben nincs semmi baja. Ha sok torrent fut egyszerre akkor kicsit lassan tolti a torrentfluxot de meg a collectd nem generalja gyorsan a grafikonokat rrdbol de mit varunk egy via procitol. Stablinak stabil, elozo probalkozasomnal azert hetente 1x, 2x reboot kellet. Gondolom kicsi megkeszult a sok io varakozastol. Legutobbi adatok a ramzswaprol.

$ free
total used free shared buffers cached
Mem: 1001532 983476 18056 0 4356 207152
-/+ buffers/cache: 771968 229564
Swap: 250372 155316 95056
$ cat /proc/ramzswap
DiskSize: 250380 kB
NumReads: 3823363
NumWrites: 1001166
FailedReads: 0
FailedWrites: 0
InvalidIO: 0
NotifyFree: 0
ZeroPages: 10020
GoodCompress: 67 %
NoCompress: 24 %
PagesStored: 51650
PagesUsed: 21183
OrigDataSize: 206600 kB
ComprDataSize: 82051 kB
MemUsedTotal: 84732 kB
$ uptime
20:27:36 up 29 days, 12:04, 1 user, load average: 1.22, 1.17, 1.06
Jelenleg 16 kulonbozo torrent seedel torrentfluxon. Teljesitmenyben semmi baja a dolognak. NFS zuz 20-30Mbyte/s-el aminel iperf se tolt sokkal tobbet. Vszinu halokari limit. Szoval osszesen kb 10-12 ora raforditasaval sikerult osszehackelni egy hasznalhato megoldast.

nem mélyedtem most el benne, jelenleg összesen annyit értél el vele, hogy:

- 1G lényegében teljesen használt memóriából az utolsó 200M-t állandóan tömörítgeted
- HA esetleg valami oknál fogva mégis kellene több memória (ami ilyen elég stabil, szerver/torrent funkciónál elég valószínűtlen*) akkor van tartalék pár száz megád

jól látom?

teljesítmény alatt valami olyasmi lenne szerintem érdekes hogy kipróbálod így is meg ramzswap nélkül is, és _összehasonlítod_

(*ps: ami miatt sok memó kellhet meg hogy most is ilyen sokat használ, gondolom a torrent cache miatt van, de megosztani meg úgyis eleve tömörített adatokat szoktak, zip vagy avi mindegy)

Nem vagyok szakértő, de úgy tűnik a Linux a swappet nem csak akkor használja, ha már elfogyott a memória.

A rendszer előszeretettel szabadít fel memóriaterületeket úgy, hogy kevésbé használtakat (sok ideig magára hagyott alkalmazás) kiírja swapre, így a felszabadított memóriát más alkalmazások használhatják. Ezt a viselkedést egyébként a swappiness értékének beállításával lehet szabályozni: http://wiki.hup.hu/index.php/Swappiness

Persze ennek a ramba swappolásnak nem sok értelme van, egyszerűbb lebeszélni a swappelésről 0 swappiness értékkel, és akkor minden a memóriában marad, ameddig az el nem fogy.

ugy tunik, hogy azt nem latja be senki, hogy X MB-nyi memoriaterulet tomoritve Y (Y < X ) teruletet foglal el. Idezet trey fentebb emlitett cikkebol:
OrigDataSize: 10072 kB
ComprDataSize: 2668 kB
MemUsedTotal: 2708 kB

Szoval azert nem mindegy hogy 10Mbyteot kiswappolok es lefoglalok vele 3-at vagy marad memoriaban. Es ha a memoria elfogy es nincs swap akkor csunyabb dolgok szoktak tortenni.