<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Linux: [HS]DD unterstützen - Responsiveness erhöhen</title>
    <link>http://forum.geizhals.at/feed.jsp?id=814037</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Linux: [HS]DD unterstützen - Responsiveness erhöhen</title>
      <link>http://forum.geizhals.at/t814037,6976705.html#6976705</link>
      <description>Hi !&lt;br&gt;&lt;br&gt;Weil ich jetzt in 2 Rechnern (ein Lappy plus mein Serverchen) mit je einer SSD ausgestattet habe, kam ich auf folgende Möglichkeit, die ich empfehle:&lt;br&gt;&lt;br&gt;Tipp für PCs, wo auch nicht-SSD-Platten verbaut sind (so wie mein Server mit&amp;nbsp;&amp;nbsp;6x2TB im SW-Raid5): &lt;br&gt;/, /usr, /home auf die SSD.&lt;br&gt;Zusätzlich für alle anderen Filesysteme (also die, die noch auf den SATA/...-Platten sind): Für jede LV/Partition/... ein eigenes LV auf der SSD einrichten (bei mir: 512MB). &lt;br&gt;&lt;br&gt;Beispiel: Für ein /dev/sata/usr_src ein /dev/ssd/usr_src_log einrichten.&lt;br&gt;Diese SSD-LVs dann als externes Log verwenden. Die Performance der Filesysteme auf dem Raid5 erhöht sich drastisch. &lt;br&gt;&lt;br&gt;&lt;br&gt;Tipp für PCs, wo nur eine SSD drin ist (so wie mein Lappy):&lt;br&gt;Es gilt also die Lebensdauer zu erhöhen - sprich die Schreibzugriffe zu senken.&lt;br&gt;&lt;br&gt;Schreibbelastete Dateisysteme sind bei mir:&lt;br&gt;/home/USER/.cache&lt;br&gt;/home/USER/.mozilla&lt;br&gt;/var/log&lt;br&gt;&lt;br&gt;Die Idee ist nun folgende:&lt;br&gt;Beim Booten wird ein Ordner /dev/shm/ssd-sicherung angelegt.&lt;br&gt;&lt;br&gt;In diesen Ordner kommen Directories wie&lt;br&gt; - _home_user1_.cache&lt;br&gt; - _home_user1_.mozilla&lt;br&gt; - _home_user2_.cache&lt;br&gt; - _home_user2_.mozilla&lt;br&gt; - ...&lt;br&gt; - _var_log&lt;br&gt;&lt;br&gt;Der weitere Ablauf ist wie folgt:&lt;br&gt;über /home/user1/.cache wird bindly nach /dev/shm/ssd-sicherung/_home_user1_.cache gemountet... Genauso bei den anderen Verzeichnissen.&lt;br&gt;Danach wird über das /home/user1/.cache, ... ein tmpfs gemountet - und die Daten von /dev/shm/ssd-sicherung/_home_user1_.cache hineinkopiert. &lt;br&gt;&lt;br&gt;Ab dann passieren die Lese- und Schreibzugriffe auf die Ramdisk. Damit beim runterfahren die Information nicht verloren geht - einfach ein rsync (um nur das nötige zu schreiben) von /home/user1/.cache nach&amp;nbsp;&amp;nbsp;/dev/shm/ssd-sicherung/_home_user1_.cache. &lt;br&gt;&lt;br&gt;Vorteile:&lt;br&gt; - Die stark belasteten Teile (bei mir eben der Cache beim Surfen) belasten nicht die SSD&lt;br&gt; - Es geht nichts "verloren" - beim Reboot wird automatisch gesynct.&lt;br&gt; - Dadurch, dass die Original-Blockdevices immer zur Verfügung stehen, kann man auch zwischendurch syncen um auch bei Stromausfall nichts/wenig zu verlieren.&lt;br&gt;&lt;br&gt;Nachteile:&lt;br&gt; - Das Kopieren von SSD in die Ramdisk dauert natürlich und verlängert den Bootvorgang - bei mir ca. 1 Sekunde.&lt;br&gt; - Etwas Ram wird abgeknuspert - bei mir ca. 800MB.&lt;br&gt;&lt;br&gt;&lt;br&gt;Script, das bei mir mit insmod klappt (noch nicht elegant):&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
&#xD;
#!/bin/bash&#xD;
### BEGIN INIT INFO&#xD;
# Provides:          ssd-schone&#xD;
# Required-Start:    $local_fs&#xD;
# Required-Stop:     $local_fs&#xD;
# X-Start-Before:    rsyslog&#xD;
# X-Stop-After:    rsyslog&#xD;
# Should-Start:&#xD;
# Default-Start:     1 2 3 4 5&#xD;
# Default-Stop:      0 6	&#xD;
# X-Interactive:     true&#xD;
# Short-Description: Kümmert sich darum, SSDs zu schonen.&#xD;
# Description:       Kopiert konfigurierbare Verzeichnisse in Ramdisk&#xD;
#                    Beim Runterfahren werden sie wieder auf Platte geschrieben.&#xD;
### END INIT INFO&#xD;
&#xD;
&#xD;
SICHERUNG=/dev/shm/ssd-sicherung&#xD;
&#xD;
TO_BE_SAVED="&#xD;
/home/*/.cache&#xD;
/home/*/.mozilla&#xD;
/var/cache&#xD;
"&#xD;
# ENDE CONFIG&#xD;
&#xD;
if [ "$1" == "start" ] &#xD;
then&#xD;
	COPY_TO_RAM=1&#xD;
else&#xD;
	if [ "$1" == "stop" ] &#xD;
	then&#xD;
		COPY_TO_RAM=0&#xD;
	else&#xD;
		echo "Parameter muss start oder stop sein"&#xD;
		exit 1&#xD;
	fi&#xD;
fi&#xD;
&#xD;
if [ ! -d $SICHERUNG ]&#xD;
then&#xD;
	mkdir -p $SICHERUNG&#xD;
fi&#xD;
&#xD;
if [ $COPY_TO_RAM -eq 1 ]&#xD;
then&#xD;
	echo "Kopiere Daten in Ramdisk"&#xD;
	&#xD;
else&#xD;
	echo "Beginne mit der Sicherung der Daten aus der Ramdisk"&#xD;
fi&#xD;
&#xD;
for a in $TO_BE_SAVED&#xD;
do&#xD;
	SAVE_SRC_DIR=$a&#xD;
	SAVE_TGT_DIR=$SICHERUNG/$( echo $SAVE_SRC_DIR | tr "/" "_" )&#xD;
&#xD;
	if [ -r $a ]&#xD;
	then&#xD;
		if [ $COPY_TO_RAM == 1 ] &#xD;
		then&#xD;
			# wir fahren hoch und kopieren ins Ram&#xD;
			echo "Kopiere ins Ram: $SAVE_SRC_DIR"&#xD;
			mkdir -p $SAVE_TGT_DIR&#xD;
			mount --bind $SAVE_SRC_DIR $SAVE_TGT_DIR&#xD;
			if [ $? -ne 0 ]&#xD;
			then&#xD;
				echo "Bindly-mount $SAVE_TGT_DIR klappt nicht"&#xD;
				exit&#xD;
			fi&#xD;
			mount -t tmpfs keines $SAVE_SRC_DIR&#xD;
			if [ $? -ne 0 ]&#xD;
			then&#xD;
				echo "TMPFS in $SAVE_SRC_DIR klappt nicht"&#xD;
				umount $SAVE_TGT_DIR&#xD;
				exit&#xD;
			fi&#xD;
			rsync -a $SAVE_TGT_DIR/ $SAVE_SRC_DIR&#xD;
			if [ $? -ne 0 ]&#xD;
			then&#xD;
				echo "rsync $SAVE_SRC_DIR klappt nicht"&#xD;
				umount $SAVE_TGT_DIR&#xD;
				umount $SAVE_SRC_DIR&#xD;
				exit&#xD;
			fi&#xD;
		else&#xD;
			# Wir fahren runter und Kopieren auf Disk&#xD;
			echo "Kopiere auf Disk: $SAVE_SRC_DIR"&#xD;
			rsync -a --delete $SAVE_SRC_DIR/ $SAVE_TGT_DIR&#xD;
			umount $SAVE_SRC_DIR	# Ramdisk über Ziel&#xD;
			umount $SAVE_TGT_DIR	# Bindly-Mount in /dev/shm&#xD;
			rmdir $SAVE_TGT_DIR&#xD;
		fi&#xD;
	fi&#xD;
done&#xD;
&#xD;
&#xD;
&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br/&gt;</description>
      <pubDate>Fri, 04 Jan 2013 15:32:42 GMT</pubDate>
      <guid>http://forum.geizhals.at/t814037,6976705.html#6976705</guid>
      <dc:creator>kombipaket</dc:creator>
      <dc:date>2013-01-04T15:32:42Z</dc:date>
    </item>
  </channel>
</rss>
