Tutoriels/Sauvegarder vos données de cartes sur un RAM-disque

De Minecraft Wiki
Aller à : navigation, rechercher

Ce tutoriel a pour but de vous expliquer ce qu'est un RAM-disque, pourquoi l'utiliser pour votre serveur Minecraft et comment l'installer.

Qu'est-ce qu'un RAM-disque ?[modifier | modifier le wikicode]

Habituellement, les fichiers sont stockés sur le disque dur, qui offre une grande capacité au détriment de la vitesse (entre 80Mio/s et 250Mio/s). Les RAM-disques sont des systèmes de fichiers virtuels, à l'intérieur de la RAM de l'ordinateur. Ils offrent des vitesse de transfert beaucoup plus élevés que les disques dur classique (entre 1300Mio/s et 3200Mio/s), mais les fichiers sont effacés après le redémarrage et, de plus, la taille est limité a la quantité de RAM installé sur le système


Avantages et inconvénients[modifier | modifier le wikicode]

Avantages[modifier | modifier le wikicode]

  • Très hautes vitesses de transfert
  • Temps de recherche dans les fichiers très court

Inconvénients[modifier | modifier le wikicode]

  • les RAM-disques sont effacés quand le système redémarre
  • Impossible de l'utiliser si la taille du monde est supérieur a la RAM disponible

Pourquoi l'utiliser pour les serveurs Minecraft ?[modifier | modifier le wikicode]

Dans un serveur Minecraft, le plus grand inconvénient est l'activité E/S, c'est à dire les opérations d'écriture/lecture (gestion des chunks, ..) En déplaçant les données du monde dans la RAM, le temps d'accès sera réduit a (presque) zéro, et les vitesses de transfert seront beaucoup plus élevés, permettant un chargement et une sauvegarde des chunks plus rapide. Étant donné que les mondes Minecraft sont constitués de beaucoup de chunks, cette amélioration des performances est un réel gain

Installation basique[modifier | modifier le wikicode]

(Faites une sauvegarde de vos fichiers avant de commencer !)

Linux[modifier | modifier le wikicode]

Dans la plupart des distributions Linux, il y a déjà un RAM-disque de mis en place (habituellement à /dev/shm (shared memory)). Si ce n'est pas le cas, il existe des moyens de le mettre en place décrits sur internet.

Il est possible de déplacer tout le serveur dans le ramdisk, mais ici nous ne déplaceront que les fichiers du monde.

Imaginons la disposition suivante:

~/minecraft_server/
world/
world_nether/
world_the_end/
minecraft_server.jar
server.log
server.properties

Nous allons créer un script pour automatiser la copie de monde dans le RAM-disque, mais tout d'abord, une petite sauvegarde

$ cd ~/minecraft_server/
$ cp world/ world_storage/world
$ cp world_nether/ world_storage/world_nether
$ cp world_the_end/ world_storage/world_the_end

Maintenant, le script en lui même :

$ mkdir /dev/shm/minecraft
$ mv world/ /dev/shm/minecraft/world
$ mv world_nether/ /dev/shm/minecraft/world_nether
$ mv world_the_end/ /dev/shm/minecraft/world_the_end

Le monde est maintenant chargé dans le RAM-disque, mais pour le serveur Minecraft, il n'existe plus et sera recrée au démarrage. Pour remédier à cela, nous devons créer un lien symbolique du monde dans le RAM-disque.

$ ln -s /dev/shm/minecraft/world/ .
$ ln -s /dev/shm/minecraft/world_nether .
$ ln -s /dev/shm/minecraft/world_the_end .

Cela va créer un lien vers "/dev/shm/minecraft/world/" appelé "world/" dans les documents du serveur, avec lequel le serveur va l'utiliser comme le dossier du monde, mais maintenant à l'intérieur de la RAM.

Maintenant nous avons besoin de faire attention à la volatilité du disque de RAM, en procédant à la sauvegarde du monde de la RAM dans "world_storage/", je vais utiliser cron pour planifier et rsync pour la synchronisation.

Premièrement, nous avons besoin d'un script qui peut être crée par cron (il n'a pas besoin d'être un script, vous pouvez utiliser rsync directement depuis la ligne de commande de cron, mais cela vous permettra de le personnaliser plus facilement plus tard).

#!/bin/sh

VOLATILE="/home/$USER/minecraft_server/world/"
PERMANENT="/home/$USER/minecraft_server/world_storage/"

#TODO: Check if both directories actually exist, skipped here for clearness
rsync -r -t -v "$VOLATILE" "$PERMANENT"

Et puis nous avons besoin de faire exécuter ce script avec un temps intervalle (Je vais utiliser 5 minutes, vous pouvez essayer ce qui fonctionne le mieux pour vous).

$ crontab -e

Vous serez dirigé vers un éditeur (plus précisément : l'éditeur dans votre "EDITOR" dans votre variable d'environnement) pour éditer votre bureau d'utilisateur cron. Ajoutez la ligne suivante :

*/5 * * * * bash /home/<your_username>/minecraft/save_world.sh &>/dev/null

Windows[modifier | modifier le wikicode]

Utilisez un outil comme Dataram RAMDisk pour créer RAM-disque et mettre le serveur dessus. Cet outil gratuit peut automatiquement enregistrer l'image à l'extinction ainsi que toutes les quelques minutes. Remarque : N'oubliez pas de formater le lecteur créé par le logiciel avant de l'utiliser.

Mac OS X[modifier | modifier le wikicode]

Mettre ceci créera votre RAM-disque sur Mac OS:

diskutil erasevolume HFS+ "ramdisk" `hdiutil attach -nomount ram://1165430`

Si vous avez suivi ces instructions, votre RAM-disque sera disponible dans /Volumes/RAM-disque. Après ça, procéder comme si vous étiez sur Linux, à l'aide du terminal et de votre éditeur de texte favori.