Sous-catégories

mercredi, 22 septembre 2010

LVM : migration de données ou comment remplacer un disque defectueux

Voila déjà quelques temps que j'utilise LVM pour gérer mes volumes de stockage.

Extrêmement flexible ce système permet de grandir "à la demande" soit avec l'ajout de volume physique, soit avec la simple allocation d'espace disque supplémentaire.

Nous allons aujourd'hui voir comment migrer des données avec la couche LVM.

Le plan:

J'ai récemment fais l'acquisition d'un NAS Synology DS1010+ offrant, entre autre, la possibilité de publier des volumes via iSCSI. L'idée est donc de déporté tout les volumes de stockage depuis les disques locaux de mon serveur vers le NAS. De la sorte les volumes présents sur mon serveur pourront bénéficier des performances et tolérance de panne offertes par le NAS.

J'ai donc utilisé LVM pour migrer tout ce beau monde.

L'action

je passe sur la configuration du volume iSCSI que j'ai déjà évoqué dans un article précédent. Une fois le volume iSCSI présenté au serveur le reste des action est relativement simple.

Dans un premier temps nous ajoutons le nouveau volume, /dev/sdb dans mon cas, au système LVM

routeur ~ # pvcreate /dev/sdb

On l'ajoute ensuite au VG à migrer

routeur ~ # vgextend shares /dev/sdb

On vérifie

routeur ~ # pvs
  PV         VG     Fmt  Attr PSize   PFree  
  /dev/hdb1  shares lvm2 a-   186,30g      0
  /dev/hdc1  shares lvm2 a-   233,75g      0 
  /dev/sdb   shares lvm2 a-   300,00g 300,00g

On migre ensuite les données d'un PV vers un autre: Attention; pour une migration des données en cours d'utilisation, allez faire un tour dans le man. Pour ma part j'ai démonté les partitions avant l'action.

routeur ~ # pvmove /dev/hdb1 /dev/sdb

l'action est relativement longue selon la quantité de données à migrer.

On observe à présent que l'ensemble du volume /deb/hdb1 est libre.

routeur ~ # pvs
  PV         VG     Fmt  Attr PSize   PFree  
  /dev/hdb1  shares lvm2 a-   186,30g 186,30g
  /dev/hdc1  shares lvm2 a-   233,75g      0 
  /dev/sdb   shares lvm2 a-   300,00g 113,75g

On peut à présent le sortir du Volume Group auquel il appartient

routeur ~ # vgreduce shares /dev/hdb1
  Removed "/dev/hdb1" from volume group "shares"

Pour ensuite le liberer totallement du système LVM

routeur ~ # pvremove /dev/hdb1
  Labels on physical volume "/dev/hdb1" successfully wiped

On observe à présent que le volume ne fait plus partie des volumes disponible et peut donc être retiré du serveur en toute tranquillité.

routeur ~ # pvs
  PV         VG     Fmt  Attr PSize   PFree  
  /dev/hdc1  shares lvm2 a-   233,75g      0 
  /dev/sdb   shares lvm2 a-   300,00g 113,75g

Pour information, J'ai entendu, sans le tester, que la même chose se fait avec lvconvert en utilisant la notion de miroir.

jeudi, 22 juillet 2010

iSCSI

Au cours de cet article nous allons voir comment mettre en œuvre iSCSI. Ce protocole permet la publication de périphériques à travers un réseau IP. L'objet est ici de publier à travers le réseau des volumes qui seront ensuite utilisés comme espace de stockage. La distribution utilisée est ici une Gentoo, il sera donc éventuellement nécessaire d'adapter quelques points si vous utilisez une distribution différente.

Lire la suite...

vendredi, 16 avril 2010

Xorg 1.8 et drivers Nvidia 195.36.15

A l'heure ou j'écris ce billet, je viens tout juste de migrer vers la version 1.8 de Xorg et j'ai rencontré quelques petits soucis. Voici donc la configuration fonctionnelle chez moi.

Noyau : 2.6.33-gentoo

Xorg-server : 1.8

NVidia-drivers : 195.36.15

Dans le fichier /etc/X11/xorg.conf, ajouter la ligne suivante dans la section ServerFlags (Merci Rosiel ;))

Option "IgnoreABI" "On"

Actuellement aucun pilote propriétaire NVidia n'est disponible pour xorg-server-1.8

flopc ~ # emerge -pv nvidia-drivers

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     UD] x11-apps/xinit-1.2.1 [1.2.1-r1] USE="minimal pam -debug" 0 kB
[ebuild     UD] x11-base/xorg-server-1.7.6 [1.8.0] USE="nptl sdl%* xorg -debug% -dmx -hal -ipv6 -kdrive -minimal -tslib (-doc%*) (-static-libs%) (-udev%*)" 0 kB
[ebuild   R   ] x11-drivers/nvidia-drivers-195.36.15  USE="acpi gtk -custom-cflags (-multilib)" 0 kB

Total: 3 packages (2 downgrades, 1 reinstall), Size of downloads: 0 kB
flopc ~ #

Il faut donc éditer l'ebuild afin de supprimer la dépendance gênante et remplacer la ligne <x11-base/xorg-server-1.7.99 par <x11-base/xorg-server-1.9.

flopc ~ # sed -i -e 's/1.7.99/1.9/' /usr/portage/x11-drivers/nvidia-drivers/nvidia-drivers-195.36.15.ebuild

On reconstruit l'empreinte de l'ebuild modifié:

flopc ~ #ebuild /usr/portage/x11-drivers/nvidia-drivers/nvidia-drivers-195.36.15.ebuild digest
>>> Creating Manifest for /usr/portage/x11-drivers/nvidia-drivers
flopc ~ #

Sans cela, chaque nouvelle compilation de votre pilote nvidia (du moins pour la version 195.36.15) forcera un downgrade de votre serveur graphique. Voila à présent le problème de dépendance résolut. Enjoy

flopc ~ # emerge -pv nvidia-drivers
These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] x11-drivers/nvidia-drivers-195.36.15  USE="acpi gtk -custom-cflags (-multilib)" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB
flopc ~ #

mercredi, 31 mars 2010

Synchronisation de l'heure

Plutôt un mémo qu'autre chose étant donné que l'information traîne partout sur le net; voici comment synchroniser votre machine avec un serveur de temps. La configuration du temps sur une machine se fait à deux niveaux:

  • Le niveau système
  • Le niveau matériel

Synchronisation au coup par coup

Voyons à présent comment mettre rapidement à jour notre machine.

1ère méthode

la commande ntpdate vise à synchroniser l'heure système. La syntaxe est ainsi:

flopc ~ # ntpdate unserveur.de.temps.com

Vous trouverez ici une liste de serveur de temps français http://www.cru.fr/services/ntp/serveurs_francais

La commande hwclock quand à elle, permet de fixer l'heure système. La syntaxe est :

flopc ~ # hwclock --systohc

Cette commande vise à synchroniser l'heure matérielle sur l'heure système que nous venons tout juste de mettre à jour. Voila, votre machine est à présent synchronisée.

2ème méthode

Je place en deuxième position cette méthode car je ne suis pas parvenu à trouver la commande sous Ubuntu par exemple voici donc la méthode de faignant qui regroupe les deux actions en une seule commande :-)

flopc ~ # ntpclockset unserveur.de.temps.com

exmple:

flopc ~ # ntpclockset 192.168.10.1
>>> Current clock sync:
before: 2010-03-31 22:43:40.040632000000000000
after:  2010-03-31 22:43:40.072847596892498433

>>> Now setting clock ...   [ok]
>>> Writing time to hardware clock ...   [ok]

>>> New clock sync:
before: 2010-03-31 22:43:42.515547000000000000
after:  2010-03-31 22:43:42.515603280360944568
flopc ~ # 

Synchronisation au quotidien

C'est bien joli tout ça mais on envisage mal aller régulièrement sur le serveur pour effectuer la synchronisation. c'est maintenant qu'entre en jeu le daemon ntp, j'ai nommé ntpd. Cette méthode est bien évidement la plus pratique et recommandée à mettre en œuvre.

Il vous suffira donc d'installer le package correspondant à votre distribution. D'une manière générale j'ai pu observer que les installations par défaut définissaient des serveurs de temps à interroger. La configuration du serveur de temps est définie dans le fichier ntp.conf dans le répertoire /etc. C'est dan ce même fichier que vous allez préciser les serveurs de temps que votre client devra interroger afin de se synchroniser.

Si le fonctionnement du protocole NTP ainsi que la mise en œuvre de son architecture vous intéresse, je ne peux que vous conseiller l'excellent article présentant ce dernier sur Wikipédia.

Liens connexes:

vendredi, 6 mars 2009

Utiliser la RAM pour stocker vos fichiers d'échange.

Présentation

L'objectif ici est d'optimiser les temps d'accès aux données pour les fichiers temporaires en utilisant la RAM pour stocker ces fichiers. Nous allons donc allouer une partie de la RAM présente sur notre machine, un système de fichiers permettant cela: tmpfs.

Lire la suite...

jeudi, 19 février 2009

[ Tips ] find

Aujourd'hui je reçois une alerte d'un file system plein sur un des serveurs que nous supervisons.
Après un rapide coup d'œil; / est effectivement plein à 100%. je m'empresse donc de me rendre sur le serveur et trouver les vilains fichiers qui prennent tant de place.

flopc ~ # find /  -mtime -1 -ls 

Mais voila; ma commande censé me retourner la liste des fichiers modifiés dans / ces dernières 24heures me retourne également des fichiers logiquement sur / mais physiquement sur d'autres filesystem.

En effet; le système est réparti sur plusieurs partitions physique et supprimer des fichiers présents dans /etc ne vont par exemple aucunement alléger la partition / Il existe cependant un moyen d'indiquer à find de ne pas traverser les filesystem

flopc ~ # find / -xdev -mtime -1 -ls

voici aussi une syntaxe mélangeant regex et options d'excution.

flopc ~ # find /media/photos -type f -regex '.*\(avi\|mov\)' -exec vlc {} \;

Et juste histoire d'introduire notre ami xargs voici comment régler le problème de gestion des espaces souvent rencontrés avec ce dernier.

flopc ~ # find /media/photos -type f -regex '.*\(avi\|mov\)' -print0 |  xargs -0 -i{} vlc {}

liens connexes

http://www.wagoneers.com/UNIX/FIND/find-usage.html

dimanche, 25 janvier 2009

Vim correction orthographique

Afin d'activer la correction syntaxique de votre langue dans vim, il vous suffit d'installer le paquet relatif à votre langue ( vim-spell-fr pour ma part). Ne reste plus qu'à activer le plugin dans votre éditeur en entrant la commande suivante une fois le lecteur ouvert.

:setlocal spell spelllang=fr

dimanche, 18 janvier 2009

RAID logiciel : mdadm

En ce moment j'ai pour projet de mettre en œuvre une baie de disque offrant des services de haute disponibilité et de tolérance de panne avec notamment la mise en œuvre d'un RAID logiciel ( RAID5 au final ) ainsi qu'un bonding d'interfaces pour accroître les débits réseaux.

Lire la suite...

vendredi, 2 janvier 2009

Création du hash d'un fichier

Voici une petite commande fort sympathique pour créer le hash md5 d'un fichier

csum –o <output_file> -h MD5 <file_to_hash>

samedi, 13 décembre 2008

[ VLC ] Streaming de Bureau

Une petite méthode sympa afin d'afficher de façon distante un bureau via VLC

Lire la suite...

mardi, 26 août 2008

recuperer les fichiers les plus gros d'un système linux

Il est souvent utile de récupérer la liste des fichiers les plus gros dans une arborescence linux. Voici donc une commande permettant d'afficher les 10 fichiers les plus gros d'un système.

du -a / | sort -n -r | head -n 10

Afin d'obtenir un affichage plus facile à interpréter on peut utiliser la commande suivante.

du -ks /var | sort -n -r | head -n 10

Liens connexes

lundi, 19 mai 2008

SSH et authentification forte

Aujourd'hui au cours d'un entretien pour un stage en entreprise on m'a demandé si j'avais déjà mis en place un serveur ssh avec un système d'authentification dite forte; basé sur une passphrase...

Lire la suite...

mercredi, 9 avril 2008

Packager depuis les sources d'un fichier

Un petit rappel sur comment générer un fichier .deb à partir des sources d'un fichier

Lire la suite...

dimanche, 2 mars 2008

wake-on-lan

Et si on commençait à faire quelques économies d'énergie ... Voici une méthode simple pour démarrer à distance votre machine

La collocation c'est bien... Mais quand votre colocataire a cette fâcheuse manie d'éteindre tout ce qui est allumé (ceci inclus le serveur qui est chez vous...) ça devient vite un peu chiant.

La solution c'est wake-on-lan , ou comment réveiller votre machine à coup d'paquet.

dans un premier temps vérifions que le mode est activé sur la carte : sudo ethtool eth0

si ce n'est pas encore activé

ethtool -s eth0 wol g

Sous linux il semblerait que cela ne soit pas très bien pris en charge et qu'il faille rappeler constamment à la machine de "penser à ne pas éteindre la carte réseau".

Par défaut les paquets sont wake-on-lan sont de type UDP et transitent sur le port 9. ceci est bien évidement variable, ajustable et configurable.

Liens connexes

jeudi, 28 février 2008

Procédure installation GNS3

Une petite méthode qui rappelle vite fait ou et comment se procurer la suite dynagen dynamips interfacée avec GNS3

Voici en quelques lignes la procédure d'installation de GNS3; outil de virtualisation de systemes de routages Cisco.

L'outil se décompose en 3 application Dynamips qui constitue le Dynagen permettant une administration plus facile du serveur Et enfin pour interfacer graphiquement nous allons utiliser GNS

Sur Ubuntu la procédure est très basique: sudo apt-get install dynagen dynamips

Concernant GNS j'ai constaté l'existence d'un dépots qui offre la version packagée de l'application. http://gpl.code.de/oswiki/GplcodedeApt

L'utilisation de cette suite implique que vous disposez auparavant des IOS cisco que vous souhaitez tester. (Attention au versions utilisées toutes ne fonctionnent pas encore pour le moment)

Le problème étant que la version de dynamips fournie par les dépôts ubuntu officielle ne fonctionne pas.

Soit mettre a jour depuis les dépôts allemands fraîchement ajoutés Soit télécharger manuellement le binaire nécessaire depuis cette adresse http://www.ipflow.utc.fr/dynamips/

Nous voici prêt à lancer l'émulateur cisco pour effectuer nos TP.

Alors ? il parait pas plus propre votre bureau avec les 4 routeurs en moins

mercredi, 23 janvier 2008

Parlez moi de températures

Ou comment surveiller les températures, voltage,... de composants comme votre processeur, disques,...

Lire la suite...

jeudi, 15 novembre 2007

Aspirer un site web avec wget

Sans trop entrer dans les détails voici un petit exemple qui me permet de récupérer des sites pour les consulter hors ligne

wget --mirror -w 2 -p --html-extension --convert-links -P ~/mirrored_site/ http://www.linux-france.org/prj/inetdoc/guides/iptables-tutorial/

Pour quelques exemples :http://www.akadia.com/services/wget.html

mercredi, 29 août 2007

Gentoo : Notes sur la gestion des paquets

Voici un petit mémo des outils pratiques pour nettoyer ma gentoo et notamment portage qui, à long terme, peut devenir très lourd

Lire la suite...