Étiquette : ramlog

1 août 2015 /

Voici une solution simple qui permet de limiter les écritures sur votre disque SSD afin de prolonger sa durée de vie.

Pour cela, nous allons utiliser l’outil Ramlog qui crée un disque temporaire en mémoire vive, où sont stockés et mis à jour les logs. Les logs originels sont conservés dans le répertoire /var/log.hdd jusqu’à l’arrêt de ramlog où à ce moment elles prennent le chemin inverse. Donc pas de perte de logs systèmes sauf bien sûr si votre ordinateur plante.

On va également placer le paramètre « swappiness ». Ubuntu est conçu pour mettre directement en SWAP, ce qui est destiné à la RAM à partir d’un certain taux d’occupation.
Par défaut ce paramètre est réglé à 60 sur Ubuntu. Cela signifie qu’à partir de 40% d’occupation en RAM, le système part écrire dans la SWAP. On va réduire cette valeur à 90.

On va aussi changer la destination du cache de Firefox et les options de montages des disques.

Cela limitera ainsi grandement le nombre d’accès en écriture sur la carte.

Installation de ramlog sur Ubuntu

Il faut d’abord télécharger le paquet .deb:

wget http://www.tremende.com/ramlog/download/ramlog_2.0.0_all.deb

Maintenant que nous avons le  paquet ramlog_2.0.0_all.deb, il faut l’installer:

sudo dpkg -i ramlog_2.0.0_all.deb

On active Ramlog au démarrage:

sudo update-rc.d ramlog start 2 2 3 4 5 . stop 99 0 1 6 .

Il ne reste plus qu’a redémarré:

sudo reboot

Pour voir l’état de Ramlog il suffit d’utiliser la commande suivante :

/etc/init.d/ramlog status

En cas de problème la log de Ramlog peut être consulté:

more /var/log/ramlog

Pour désinstaller Ramlog :

sudo dpkg -P ramlog

Vous pouvez modifier la configuration de Ramlog en éditant le fichier /etc/default/ramlog.

 

Modification du Swappiness

On édite le fichier:

vi /etc/sysctl.conf

On recherche ensuite le paramètre « vm.swappiness=60 » suivant.

S’il n’est pas présent, ajoutez le et mettez la valeur à 10 pour indiquer au système d’écrire en SWAP à partir de 90% d’occupation de la RAM:

vm.swappiness=10

Il ne vous reste plus qu’a redémarrer votre système pour en profiter.

Vous pouvez aussi supprimer votre partition Swap soi votre machine à beaucoup de Ram ( > à 6 Go).

Pour cela, soit vous ne créer aucune partition swap lors de l’installation du système, soit vous commentez la ligne de montage du fichier swap dans le fichier /etc/fstab:

# swap was on /dev/sda5 during installation
#UUID=1f4d44e9-25bc-43f3-abe7-5a3d002b0d3a none            swap    sw              0       0 

Ne pas écrire sur le disque la date du dernier accès

Montez vos partitions avec l’ option  » noatime » en ouvrant le fichier /etc/fstab:

UUID=5afbf352-08d6-b368-3be6e4574b7c /               ext4    noatime,errors=remount-ro 0       1 

Mettre les fichiers temporaires ( ~ )en mémoire vive

Ajoutez la ligne suivante à la fin du fichier /etc/fstab pour mettre les fichiers temporaires en mémoire vive:

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 

 

# swap was on /dev/sda5 during installation
#UUID=1f4d44e9-25bc-43f3-abe7-5a3d002b0d3a none            swap    sw              0       0 

Déplacer le cache Firefox

Tapez about:config dans firefox et puis créez une nouvelle chaîne de caractères que vous nommerez browser.cache.disk.parent_directory et saisir comme destination /tmp/firefox. Vous pouvez également si vous avez une connexion suffisamment rapide, désactiver le cache persistant en modifiant l’option browser.cache.disk.enable avec la valeur false.

 

Activer le Trimming

Vous devez d’abord vérifier que votre SSD supporte la fonction TRIM avec cette commande:

sudo hdparm -I /dev/sda

Cela va lister tous les paramètres et fonctionnalités du SSD. Dans le paragraphe « Commands/features » une ligne doit clairement indiquer le support TRIM:

/dev/sda:

ATA device, with non-removable media
Model Number:       OCZ-VERTEX4
Serial Number:      OCZ-695030Z008038154
Firmware Revision:  1.5
Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.6, SATA Rev 3.0
Standards:
Supported: 9 8 7 6
Likely used: 9
Configuration:
Logical        max    current
cylinders    16383    0
heads        16    0
sectors/track    63    0
--
LBA    user addressable sectors:  250069680
LBA48  user addressable sectors:  250069680
Logical  Sector size:                   512 bytes
Physical Sector size:                   512 bytes
Logical Sector-0 offset:                  0 bytes
device size with M = 1024*1024:      122104 MBytes
device size with M = 1000*1000:      128035 MBytes (128 GB)
cache/buffer size  = unknown
Nominal Media Rotation Rate: Solid State Device
Capabilities:
LBA, IORDY(can be disabled)
Queue depth: 32
Standby timer values: spec'd by Standard, no device specific minimum
R/W multiple sector transfer: Max = 16    Current = 16
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
Enabled    Supported:
*    SMART feature set
Security Mode feature set
*    Power Management feature set
*    Write cache
*    Host Protected Area feature set
*    WRITE_BUFFER command
*    READ_BUFFER command
*    NOP cmd
*    DOWNLOAD_MICROCODE
*    48-bit Address feature set
*    Mandatory FLUSH_CACHE
*    General Purpose Logging feature set
*    WRITE_{DMA|MULTIPLE}_FUA_EXT
*    64-bit World wide name
*    Write-Read-Verify feature set
*    WRITE_UNCORRECTABLE_EXT command
*    Gen1 signaling speed (1.5Gb/s)
*    Gen2 signaling speed (3.0Gb/s)
*    Gen3 signaling speed (6.0Gb/s)
*    Native Command Queueing (NCQ)
Non-Zero buffer offsets in DMA Setup FIS
*    DMA Setup Auto-Activate optimization
*    In-order data delivery
*    DOWNLOAD MICROCODE DMA command
*    WRITE BUFFER DMA command
*    READ BUFFER DMA command
       *    Data Set Management TRIM supported (limit 16 blocks)
Security:
Master password revision code = 65534
supported
not    enabled
not    locked
not    frozen
not    expired: security count
not    supported: enhanced erase
20min for SECURITY ERASE UNIT. 400min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 5e83a9749d61c923
NAA        : 5
IEEE OUI    : e83a97
Unique ID    : 49d61c923
Checksum: correct 

 

Si le SSD supporte le Trimming, Il suffit d’éditer le fichier /etc/fstab et de rajouter l’option discard sur les volumes en ext4:

# / was on /dev/sda1 during installation
UUID=5afbf352-08d6-b368-3be6e4574b7c /               ext4    noatime,discard,errors=remount-ro 0       1 
29 juillet 2015 /

L’OS du Raspberry Pi fonctionnant sur une carte SD (ou micro SD), voici une solution simple qui permet de limiter les écritures afin de prolonger la durée de vie de votre carte SD.

Pour cela, nous allons utiliser l’outil Ramlog qui crée un disque temporaire en mémoire vive, où sont stockés et mis à jour les logs. Les logs originels sont conservés dans le répertoire /var/log.hdd jusqu’à l’arrêt de ramlog où à ce moment elles prennent le chemin inverse. Donc pas de perte de logs systèmes sauf bien sûr si votre ordinateur plante. Cela limite ainsi grandement le nombre d’accès en écriture sur la carte.

Pour installer Ramlog sur le Raspberry Pi :

sudo apt-get install rsync
sudo apt-get install lsof
wget http://www.tremende.com/ramlog/download/ramlog_2.0.0_all.deb
sudo dpkg -i ramlog_2.0.0_all.deb

Ensuite, editez le fichier suivant :

sudo vi /etc/init.d/ramlog

Et ajoutez ces 2 lignes suivantes dans la section #BEGIN INIT INFO (oui, avec les #):

# X-Start-Before: rsyslog
# X-Stop-After: rsyslog


Puis, éditez le fichier suivant :

sudo vi /etc/init.d/rsyslog

Ajoutez y ramlog aux 2 lignes suivantes pour qu’il ce lance au démarrage et qu’il arrête lors du démontage:
# Required-Start: $remote_fs $time ramlog
# Required-Stop: umountnfs $time ramlog

Pour activer le script au démarrage :

sudo insserv

Redemarrez le Rapsberry 2 fois:

sudo reboot

Une fois redémarré, regardez le fichier /var/log/ramlog pour vérifier que tout se passe bien :

sudo cat /var/log/ramlog

Le plus souvent, les messages d’erreur ont besoin que vous arrêtiez d’autres démons (Cups, Samba etc…) avant de lancer Ramlog.

Pour régler ce problème, on peut indiquer dans les fichiers de configuration des programmes concernés, que Ramlog doit être lancé avant qu’ils ne commencent à écrire dans les logs.

Pour Samba:

sudo vi /etc/init.d/samba

Ajoutez ramlog à la fin des 2 lignes suivantes :
# Required-Start: $network $local_fs $remote_fs ramlog
# Required-Stop: $network $local_fs $remote_fs ramlog

Pour Cups :

sudo vi /etc/init.d/cups

Ajoutez ramlog à la fin de ces 2 lignes :
# Required-Start: $syslog $remote_fs ramlog
# Required-Stop: $syslog $remote_fs ramlog

Refaites un  insserv puis redémarrez :

sudo insserv
sudo reboot

Vous avez maintenant un Ramlog opérationnel.