:::: MENU ::::

Home

  • Feb 19 / 2014
  • 0
Linux

Create Software RAID under Linux systemCréer un RAID logiciel sous Linux

A hard drive disk is a device with limits (performance, lifetime, …) and a broken disk often leads to a data loss, and sometimes with a loss of data more or less important.
In order to avoid that kind of inconvenience, there are several hardware solutions allowing disk replication, but most of time with a too high cost for a standard use (non professional). Fortunately, there is also a software RAID, which can be set up easily and quickly without any additional hardware (assuming you already own at least 2 hard drive disks) given that it’s working on a software layer between the hardware abstraction layer and the file system.

There are different levels of RAID ; the most common levels are:

  • RAID 0 : the “striping” allows to improve performance by splitting the IO requests on several devices in parallel (2 to n disks)
  • RAID 1 : the “mirroring” allows to write same data on several disks at the same time (to disks)
  • RAID 5 : the “striping and mirroring” allows the combination of RAID 0 and RAID 1 (3 to n disks)

I will present here how to set up a RAID 1 solution (mirroring) but it will be easy to adapt the following steps if you need another RAID level.

RAID 1 setup

For the setting up, ensure you have the mdadm package installed and ready on your system. For Debian/Ubuntu, you can use the following command:

Prepare both disks in Software Raid (type 0xfd) thanks to the fdisk tool:

You can now shrink and erase both disks with zeros thanks to the command below:

Create your RAID 1 (or any level, by changing the level attribute):

Format this new partition in ext4:

Mount your partition you just created:

To get an automatic mounting point after any restart of the system, edit the file /etc/fstab  and add this following line:

You can now check and follow your RAID status, by using following commands:

RAID Monitoring

To ensure the RAID is always working correctly and be informed when a disk is out of order, it is possible to set a monitoring solution thanks to the common tools of mdadm with a mail alert system.

Check that the monitoring settings are correctly defined in the file /etc/mdadm/mdadm.conf with the sender address (MAILFROM) and the receiver address (MAILADDR):

You will need a mail server enabled on your server (postfix, ssmtp, …) and listening on port 25.

To check and test this configuration, ou can easily perform a test by sending a mail report thanks to this command:

To ensure that monitoring is enabled for your RAID devices, just check that the –monitor option is correctly set by performing the following command:

If it’s not, you will have to add the option in the /etc/default/mdadm file (DAEMON_OPTIONS).Un disque dur est un matériel qui a des limites (performances, durée de vie, …) et un disque qui lâche a bien souvent pour impact la perte de données, et parfois la perte d’informations plus ou moins importantes.
Afin d’éviter ce désagrément, il existe de nombreuses solutions matérielles permettant les réplications de disque, mais bien souvent à des prix trop élevés pour un usage standard et non professionnel. Heureusement, il existe également le RAID logiciel, qui peut être mis en place très facilement et rapidement sans matériel supplémentaire (il faudra bien entendu posséder au moins 2 disques) puisqu’il se base sur une couche logicielle entre la couche d’abstraction matérielle et le système de fichiers.

Il existe différents niveaux de RAID ; les niveaux les plus standards sont :

  • RAID 0 : les “volumes agrégés par bande” permettent de répartir les performances en faisant travailler plusieurs disques en parallèle (2 à n disques)
  • RAID 1 : la “réplication des disques” permet d’écrire les mêmes données sur plusieurs disques en même temps (à disques)
  • RAID 5 : le “volume agrégé par bandes à parité répartie” permet de combiner les aspects du RAID 0 et du RAID 1 (3 à n disques)

Je détaillerai ici, la mise en place du RAID 1 (réplication), mais il suffira d’adapter les commandes pour la mise en place d’un RAID d’un autre niveau.

Mise en place du RAID

Pour la mise en place, assurez-vous d’avoir le package mdadm installé sur votre système. Sous Debian/Ubuntu, vous pouvez utiliser la commande suivante :

Préparez vos deux disques en Software Raid (type 0xfd) grâce à l’outil fdisk :

Vous pouvez maintenant écraser les disques avec des zéros grâce à la commande suivante :

Créez votre RAID 1 (ou de tout autre niveau, en changeant l’attribut level) :

Formatez cette nouvelle partition en ext4 :

Montez votre partition tout juste créée :

Pour avoir un montage permanent à tout redémarrage, éditez le fichier /etc/fstab  et ajoutez la ligne suivante:

Vous pouvez maintenant vérifier et suivre le statut de votre RAID, grâce aux commandes suivantes :

Monitoring du RAID

Afin de s’assurer que le RAID est bien fonctionnel et être informé lorsque l’un des disques est défaillant, il est possible de mettre en place une solution de supervision des disques grâce aux outils standards avec un système d’alertes par mail.

Vérifiez que les paramètres de monitoring soient bien définis dans le fichier /etc/mdadm/mdadm.conf pour l’adresse émettrice (MAILFROM) et l’adresse réceptrice (MAILADDR) :

Il vous faudra bien entendu vérifier que vous ayez un serveur mail actif sur votre serveur (postfix, ssmtp,  …) et qui écoute sur le port 25.

Pour tester cette configuration, vous pouvez effectuer un test pour envoyer un rapport par mail grâce à la commande suivante :

Pour vous assurer que le monitoring est bien activé sur vos périphériques RAID, il suffit de vérifier que l’option –monitor est bien activée grâce à la commande suivante :

Si ce n’est pas le cas, il vous faudra ajouter l’option dans le fichier par défaut /etc/default/mdadm (DAEMON_OPTIONS).

  • Feb 12 / 2014
  • 0
Linux

Add a Swap FileAjouter un fichier swap

When you’re running on a Linux System (or any Unix Operating System), it’s common to use a swap to complete and optimize the memory usage on the computer (especially for older ones). There are different ways to do that, you can:

  • Create a swap on a full partition system (most of Linux distribution will allow you to create it when installing the system or later using fdisk commands to create partition and activate it by following the same steps than below from #2)
  • Create a swap file later on any partition and activate it directly using command-line

I will present here the second case: the creation of a swap file (you will need to get root rights to perform most of the following commands).

  1. Create a file with dd command to create a 1024MB empty file (which will be used by swap).

    We are here writing a file of 1024*1024MB=1048576 blocks size with a Read/Write of 1024 bytes at a time.
  2. Now format the file to swap format
  3. Ensure that the rights access are correct on this file (for security purposes)
  4. Now activate swap on your file
  5. To deactivate swap on your file, juste use the following command

You can now check your swap availability by using the top or free -m command.

Right now, you probably want this swap file to be mounted and activated automatically at the system startup to avoid to perform these steps manually each time ? No problem, juste edit the /etc/fstab file and add this following line:


Your system has now a swap file ready to use !Lorsque vous utilisez un système Linux (ou n’importe quel Système d’Exploitation Unix), il est d’usage d’utiliser du swap pour compléter et optimiser l’utilisation de la mémoire sur la machine (surtout pour les machines “vieillissantes”). Pour cela, il y a différents moyens de procéder, vous pouvez :

  • Créer un swap sur une partition système entière (la plupart des distributions Linux vous le proposeront lorsque vous effectuerez l’installation ou vous pouvez toujours le faire plus tard en utilisant les commandes fdisk pour créer la partition, et ensuite l’activer de la même manière qu’expliquée après à partir de l’étape #2)
  • Créer un fichier de swap plus tard sur n’importe quelle partition et l’activer directement en utilisant la ligne de commande

Je vais donc présenter ici le second cas : la création d’un fichier de swap (vous aurez besoin d’avoir les droits root pour la plupart des commandes suivantes).

  1. Créez un fichier avec la commande dd pour créer un fichier vide de 1024MB (qui sera utilisé pour le swap)

    Nous créons ici un fichier de 1024*1024MB=1048576 blocs avec une Lecture/Ecriture de 1024 octets à la fois
  2. Formattez maintenant votre fichier
  3. Assurez-vous que les droits d’accès au fichier soient corrects (pour des raisons de sécurité)
  4. Activez maintenant le swap sur votre fichier
  5. Pour ensuite désactiver le swap sur ce fichier, vous pouvez simplement utiliser la commande suivante

Vous pouvez maintenant vérifier la disponibilité de votre swap en utilisant la commande top ou free -m.

Vous souhaitez certainement que ce fichier de swap soit mounté et activé automatiquement au redémarrage du système afin d’éviter de devoir el faire manuellement à chaque fois ? Pas de problème, éditez simplement le fichier /etc/fstab et ajoutez la ligne suivante :

Votre système a désormais un fichier de swap prêt à être utilisé !

  • Feb 06 / 2014
  • 0
Google Chrome

Uninstall/Install manually Google ChromeDésinstaller/Installer manuellement Google Chrome

Sometimes, further to a problem, an automatic uninstall process of Chrome is not efficient. In that case, you will need to proceed with a manual uninstall. Here are the steps you can use to perform a safe reinstallation:

  1. Perform a Google Chrome uninstall as explained right here: https://support.google.com/chrome/answer/95319?hl=en
  2. Create a new Chrome user profile: https://support.google.com/chrome/answer/142059?hl=en
  3. Download file remove.zip (right click – Save as), save it on your desktop, unzip it and execute the remove.reg file to remove any Google Chrome entries in your Windows registry (you will probably need administrator rights for this step)
  4. Once you’ve performed all these steps, you can perform a fresh install of Google Chrome from the official website: https://www.google.com/chrome

You can now start again your favorite browser, and reconfigure it as you want (or simply connect to your Google Account and let the synchronization do it by itself …) !Parfois, suite à un problème, une désinstallation automatique de Chrome n’est pas suffisante. Il faut donc procéder à une désinstallation manuelle. Voici les démarches à suivre pour effectuer proprement cette réinstallation :

  1. Effectuer la désinstallation de Google Chrome comme indiqué ici : https://support.google.com/chrome/answer/95319?hl=fr
  2. Créez un nouveau profil utilisateur Chrome : https://support.google.com/chrome/answer/142059?hl=fr
  3. Récupérez le fichier remove.zip (clic droit – enregistrer), enregistrez le sur le bureau, dézippez-le et exécutez le fichier remove.reg afin de supprimer les entrées de Google Chrome du registre Windows (vous aurez très certainement besoin des droits administrateurs pour cette étape)
  4. Une fois toutes ces étapes effectuées, installez à nouveau Chrome depuis le site officiel : https://www.google.com/chrome

Vous pouvez maintenant relancer le navigateur, et le reconfigurer à vos souhaits (ou tout simplement vous reconnecter avec votre compte Google et laisser agir …) !

  • Jan 31 / 2014
  • 0
Android, Google Chrome

Set Chrome as default browser on AndroidDéfinir Chrome comme navigateur par défaut sous Android

You have just installed Chrome on your Android device, and you now want to define it as default for your browser. Badly, you already have a browser installed on your phone which is the default browser… here are the steps to modify this:

  1. Go in the Settings of your phone
  2. In these settings, open the Applications parameters
  3. Once opened, look for the actual default browser (can be called Browser, Internet, …)
  4. Choose it, and under the Launch by default section, click on Clear defaults
  5. Go back to the Home and try to open any Internet link, the phone will now ask you which is the browser you want to use as default. You just need to choose Chrome

Voila, Chrome is now your default browser !Vous avez installé Chrome sur votre périphérique Android, et vous souhaitez maintenant le définir comme navigateur par défaut. Malheureusement, c’est toujours le navigateur de base qui est pris par défaut … voici la démarche pour modifier cela :

  1. Allez dans les Paramètres de votre téléphone
  2. Dans les paramètres, ouvrez les paramètres pour les Applications
  3. Une fois ouvert, cherchez le navigateur par défaut (peut s’appeler NavigateurInternet, …)
  4. Choisissez-le, et dans la section Lancer par défaut, appuyez sur Effacer les actions par défaut
  5. Revenez sur votre page d’accueil et ouvrez n’importe quel lien Internet, le téléphone va alors vous demander quel est le navigateur par défaut que vous souhaitez utiliser, il vous suffira de choisir Chrome

Voilà, Chrome est maintenant votre navigateur par défaut !

  • Jan 27 / 2014
  • 0
Python, web2py

Web2py frameworkFramework Web2py

Do you like web development and Python ? You’re looking for a framework free, complete and in a constant evolution (features, security, …) ? So Web2py is for you !

web2py is a free, open-source web framework for agile development of secure database-driven web applications; it is written in Python and programmable in Python. web2py is a full-stack framework, meaning that it contains all the components you need to build fully functional web applications.

web2py is designed to guide a web developer to follow good software engineering practices, such as using the Model View Controller (MVC) pattern. web2py separates the data representation (the model) from the data presentation (the view) and also from the application logic and workflow (the controller). web2py provides libraries to help the developer design, implement, and test each of these three parts separately, and makes them work together.

web2py is built for security. This means that it automatically addresses many of the issues that can lead to security vulnerabilities, by following well established practices. For example, it validates all input (to prevent injections), escapes all output (to prevent cross-site scripting), renames uploaded files (to prevent directory traversal attacks). web2py takes care of main security issues, so developers have less chances of introducing vulnerabilities.

web2py includes a Database Abstraction Layer (DAL) that writes SQL dynamically so that you, the developer, don’t have to. The DAL knows how to generate SQL transparently for SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix and Ingres.

The DAL can also generate function calls for the Google Datastore when running on the Google App Engine (GAE). Experimentally we support more databases and new ones are constantly added. Please check on the web2py web site and mailing list for more recent adapters. Once one or more database tables are defined, web2py automatically generates a fully functional web-based database administration interface to access the database and the tables.

web2py differs from other web frameworks in that it is the only framework to fully embrace the Web 2.0 paradigm, where the web is the computer. In fact, web2py does not require installation or configuration; it runs on any architecture that can run Python (Windows, Windows CE, Mac OS X, iOS, and Unix/Linux), and the development, deployment, and maintenance phases for the applications can be done via a local or remote web interface. web2py runs with CPython (the C implementation) and PyPy (Python written in Python), on Python versions 2.5, 2.6, and 2.7.

web2py provides a ticketing system for error events. If an error occurs, a ticket is issued to the user, and the error is logged for the administrator.

web2py is open source and released under the LGPL version 3 license.

Official website : Official Website Web2py
Informations source : Web2py BookVous aimez le développement web et le python ? Vous recherchez un framework libre, complet et en constante évolution (fonctionnalités, sécurité, …) ? Alors Web2py est fait pour vous !

Web2py est un framework web libre et open-source pour le développement agile et sécurisé d’applications web pilotées par base de données; il est écrit en Python et programmable en Python. web2py est un framework complet, contenant donc tous les composants nécessaires pour construire des applications web totalement fonctionnelles.

web2py est conçu pour guider le développeur web à suivre les bonnes pratiques de l’ingénierie logicielle, telles que l’utilisation du pattern Modèle Vue Contrôleur (MVC). web2py sépare la représentation des données (modèle) de la présentation des données (la vue) et également de la logique applicative et de ses flux de travail (le contrôleur). web2py fournit des librairies pour aider le développeur à dessiner, implémenter et tester chacune des trois parties séparément, et les faire fonctionner ensemble.

web2py est construit pour la sécurité. Cela signifie qu’il élimine automatiquement la plupart des problèmes qui peuvent amener à des failles de sécurité, en suivant des pratiques bien établies. Par exemple, toute entrée est validée (pour éviter les injections), toute sortie est contrôlée (pour éviter le cross-site scripting), et tout fichier uploadé est renommé (pour éviter toute attaque traverse de répertoireà. web2py fait attention aux principaux problèmes de sécurité, afin que les développeurs aient le moins de chande d’introduire des failles dans leur développement.

web2py inclut une couche d’abstraction à la base de données (Database Abstraction Layer -DAL) qui écrit les requêtes SQL dynamiquement afin que vous, développeurs, n’ayez pas à le faire. Cette couche d’abstraction (DAL) sait parfaitement comment générer les requêtes SQL de manière transparente pour SQLite, MySQL, PostgreSQL, MSSQL, FireBird, Oracle, IBM DB2, Informix et Ingres.

La couche d’abstraction peut également générer des appels de fonction pour le Datastore Google lorsqu’elle fonctionne sur les Google App Engine (GAE). De manière expérimentale, nous supportons plus de bases de données et de nouvelles sont constamment ajoutées. Veuillez vérifier le site web de web2py et la mailing list pour trouver les connecteurs les plus récents. Une fois qu’une ou plusieurs tables ont été définies, web2py génère automatiquement une interface d’aministration web complète pour accéder à la base de données et aux tables.

web2py diffère des autres frameworks web du fait que ce soit le seul à totalement adopter le paradigme Web 2.0, où le web est l’ordinateur. En fait, web2py ne nécessite aucune installation ou configuration; il fonctionne sur n’importe quelle architecture qui peut exécuter du Python (Windows, Windows CE, Mac OS X, iOS, et Unix/Linux), et le développement, le déploiement, et les phases de maintenance phases pour les applications peuvent être faites via une interface web locale ou distante. web2py fonctionne avec CPython (l’implémentation C) et PyPy (Python écrit en Python), sur les versions Python 2.5, 2.6, et 2.7.

web2py fournit un système de tickets pour les erreurs remontées. Si une erreur survient, un ticket est attribué à l’utilisateur et l’erreur est enregistrée pour l’administrateur.

web2py est open source et distribué sous la licence LGPG version 3.

Site officiel de Web2py : Site Officiel Web2py
Source d’informations : Web2py Book

  • Jan 26 / 2014
  • 0
Google Chrome

Uninstall manually a Chrome extensionDésinstaller manuellement une extension Chrome

It can sometimes happen that an extension doesn’t want to be uninstalled with the steps provided by Google Chrome Support (to be tried first): https://support.google.com/chrome/answer/113907?hl=en.

Don’t worry, there’s a workaround available to delete definitely and manually this extension. Here are the steps:

  • Type about:extensions in the address bar and click on Developer Mode in the top-right hand corner
  • You will so find a ID line below any extension name. Copy this extension ID in a external text editor for example (you will need it several times later).
  • Right now, close entirely Chrome
  • Open Windows Start Menu and type the following line in the search box (or in the Execute menu):
    %LOCALAPPDATA%\Google\Chrome\User Data\Default\Extensions
  • In the explorer which has just opened, delete the folder with the ID matching the ID you have previously retrieved.
  • With the same steps, now access to this folder:
    %LOCALAPPDATA%\Google\Chrome\User Data\Default\Local Storage
  • In this folder, check if there is a file with a name such like chrome-extension_ID_0.localstorage (replace the ID value with the good one from your extension). If there is, delete it also.
  • Finally, one last step to be sure that this extension won’t re-install by itself automatically, you can check by typing regedit in the search bar of your Start Menu and then find the following path: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelist. Check that there is no entry containing the extension ID.
  • If there is, delete it ; else, everything is good !
  • You can now restart Chrome, and everything should run smoothly and fine !

Here it is, the extension doesn’t exist anymore on your PC ! (Don’t worry, you will be able to re-install it later if you want).

Il arrive parfois qu’une extension refuse de se désinstaller en suivant la démarche indiquée dans les articles du support Google Chrome (à effectuer en priorité) : https://support.google.com/chrome/answer/113907?hl=fr.

Pour contourner ce problème, il existe une technique pour supprimer définitivement une extension manuellement. Voici la démarche à effectuer:

  • Tapez about:extensions dans la barre d’adresses et cliquez sur Mode développeur en haut à droite
  • Vous verrez alors une ligne ID qui se rajoute en dessous de chaque extension. Copiez l’ID de l’extension en question sur un fichier texte par exemple car il vous sera nécessaire à plusieurs reprises.
  • A ce stade, fermez totalement Chrome
  • Ouvrez le menu Démarrer de Windows puis tapez la ligne suivante dans la case de recherche :
    %LOCALAPPDATA%\Google\Chrome\User Data\Default\Extensions
  • Dans la fenêtre d’explorateur qui s’ouvre, supprimez le dossier dont l’ID correspond à l’ID précédemment relevé
  • Par la même démarche, accédez maintenant au dossier suivant :
    %LOCALAPPDATA%\Google\Chrome\User Data\Default\Local Storage
  • Dans ce répertoire, vérifiez s’il y a un fichier de la forme chrome-extension_ID_0.localstorage (remplacez par l’ID de l’extension). Si il y en a un, supprimez le également.
  • Enfin, une dernière étape pour être sûr que l’extension ne se réinstallera pas automatiquement, vous pouvez vérifier en tapant regedit dans la zone de recherche du menu Démarrer puis dans l’arborescence suivante : HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelist que vous n’ayez pas une clé contenant l’ID de l’extension.
  • Si c’est le cas, supprimez-là, sinon tout est bon !
  • Redémarrez maintenant Chrome, et tout devrait être revenu dans l’ordre !

Et voilà l’extension disparue à tout jamais !! (Rassurez-vous, vous pourrez la ré-installer par la suite si vous le souhaitez).

Question ? Contact